From 43ae4cd3db3e95d10daf3dd162fc4651bdb087c3 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Tue, 10 Dec 2024 18:13:10 -0800 Subject: [PATCH 01/77] feat: adding new multi-tenent profile --- apps/console/houdini.config.js | 9 +- apps/console/schema.graphql | 4736 ++++++++++++----- apps/console/src/lib/api/search-rules.ts | 2 +- .../lib/graphql/MUTATION.AddOrganization.gql | 4 +- .../src/lib/graphql/MUTATION.CreateOrg.gql | 3 +- .../src/lib/graphql/MUTATION.CreatePolicy.gql | 6 +- .../src/lib/graphql/MUTATION.DeleteOrg.gql | 6 +- .../src/lib/graphql/MUTATION.UpdateOrgs.gql | 6 +- .../lib/graphql/MUTATION.Updatehomeroles.gql | 20 - .../graphql/MUTATION.Updatenonhomeroles.gql | 16 +- .../lib/graphql/QUERY.GetOrganizations.gql | 2 +- .../src/lib/graphql/QUERY.GetOrgsbyOrg.gql | 7 +- .../src/lib/graphql/QUERY.GetPolicy.gql | 2 +- .../src/lib/graphql/QUERY.GetUserById.gql | 9 +- .../src/lib/graphql/QUERY.SearchGroups.gql | 6 +- .../lib/graphql/QUERY.SearchOrganizations.gql | 4 +- apps/console/src/lib/links.ts | 6 +- apps/console/src/lib/schema/organization.ts | 10 +- apps/console/src/lib/schema/user.ts | 4 +- apps/console/src/lib/types/index.ts | 6 +- .../components/search-policies-result.svelte | 21 +- .../routes/(app)/policies/create/+page.svelte | 27 +- .../components/personal-access-tokens.svelte | 2 +- .../profile/components/security-key.svelte | 2 +- .../profile/components/user-details.svelte | 35 +- .../profile/components/user-org-roles.svelte | 40 +- apps/console/src/routes/(app)/rules/+page.gql | 2 +- .../src/routes/(app)/rules/rule.svelte | 2 +- .../[id=uuid]/components/delegation.svelte | 42 +- .../src/routes/(auth)/signup/+page.gql | 4 +- docs/hasura-auth.md | 14 +- docs/nhost.md | 2 + .../emails/bg/email-confirm-change/body.html | 60 +- nhost/emails/bg/email-verify/body.html | 60 +- nhost/emails/bg/password-reset/body.html | 60 +- nhost/emails/bg/signin-otp/body.html | 43 + nhost/emails/bg/signin-otp/subject.txt | 1 + nhost/emails/bg/signin-passwordless/body.html | 60 +- .../emails/cs/email-confirm-change/body.html | 60 +- nhost/emails/cs/email-verify/body.html | 60 +- nhost/emails/cs/password-reset/body.html | 60 +- nhost/emails/cs/signin-otp/body.html | 43 + nhost/emails/cs/signin-otp/subject.txt | 1 + nhost/emails/cs/signin-passwordless/body.html | 60 +- .../emails/en/email-confirm-change/body.html | 58 +- nhost/emails/en/email-verify/body.html | 59 +- nhost/emails/en/password-reset/body.html | 59 +- nhost/emails/en/signin-otp/body.html | 43 + nhost/emails/en/signin-otp/subject.txt | 1 + nhost/emails/en/signin-passwordless/body.html | 59 +- .../emails/es/email-confirm-change/body.html | 60 +- nhost/emails/es/email-verify/body.html | 61 +- nhost/emails/es/password-reset/body.html | 60 +- nhost/emails/es/signin-otp/body.html | 43 + nhost/emails/es/signin-otp/subject.txt | 1 + nhost/emails/es/signin-passwordless/body.html | 60 +- .../emails/fr/email-confirm-change/body.html | 60 +- nhost/emails/fr/email-verify/body.html | 60 +- nhost/emails/fr/password-reset/body.html | 58 +- nhost/emails/fr/signin-otp/body.html | 43 + nhost/emails/fr/signin-otp/subject.txt | 1 + nhost/emails/fr/signin-passwordless/body.html | 58 +- .../emails/generator/email-confirm-change.tsx | 4 +- nhost/emails/generator/email-verify.tsx | 2 +- nhost/emails/generator/password-reset.tsx | 2 +- nhost/emails/generator/render-emails.ts | 9 + nhost/emails/generator/signin-otp.tsx | 124 + .../emails/generator/signin-passwordless.tsx | 2 +- nhost/metadata/actions.yaml | 8 +- nhost/metadata/databases/databases.yaml | 1 + .../default/functions/functions.yaml | 4 + .../public_device_associated_pools.yaml | 3 + .../public_device_dissociated_pools.yaml | 3 + .../public_user_associated_groups.yaml | 3 + .../public_user_dissociated_groups.yaml | 3 + .../default/tables/auth_refresh_tokens.yaml | 5 +- .../default/tables/auth_user_providers.yaml | 5 +- .../default/tables/auth_user_roles.yaml | 58 +- .../tables/auth_user_security_keys.yaml | 5 +- .../databases/default/tables/auth_users.yaml | 105 +- .../default/tables/public_action.yaml | 16 +- .../default/tables/public_device_pools.yaml | 32 +- .../default/tables/public_devices.yaml | 131 +- .../default/tables/public_direction.yaml | 18 +- .../default/tables/public_groups.yaml | 126 +- .../default/tables/public_organizations.yaml | 159 +- .../databases/default/tables/public_plan.yaml | 12 + .../default/tables/public_policies.yaml | 171 +- .../default/tables/public_pools.yaml | 122 +- .../default/tables/public_protocol.yaml | 18 +- .../default/tables/public_rules.yaml | 220 +- .../default/tables/public_status.yaml | 12 + .../default/tables/public_subject_type.yaml | 15 +- .../default/tables/public_subscriptions.yaml | 60 + .../default/tables/public_user_groups.yaml | 86 +- .../default/tables/public_user_org_roles.yaml | 136 +- .../databases/default/tables/tables.yaml | 3 + nhost/metadata/inherited_roles.yaml | 18 +- .../default/1684206403640_init/up.sql | 363 -- .../down.sql | 15 - .../up.sql | 25 - .../default/1733695883620_init/up.sql | 45 + .../down.sql | 9 + .../up.sql | 7 + .../down.sql | 1 + .../up.sql | 35 + .../down.sql | 1 + .../up.sql | 35 + .../down.sql | 2 + .../up.sql | 22 + .../down.sql | 2 + .../up.sql | 34 + .../down.sql | 4 + .../up.sql | 99 + .../down.sql | 1 + .../up.sql | 18 + .../down.sql | 1 + .../up.sql | 32 + .../down.sql | 3 + .../up.sql | 29 + .../down.sql | 1 + .../up.sql | 10 + .../down.sql | 1 + .../up.sql | 10 + .../down.sql | 1 + .../up.sql | 36 + .../down.sql | 1 + .../up.sql | 12 + .../down.sql | 1 + .../up.sql | 9 + .../down.sql | 1 + .../up.sql | 16 + .../down.sql | 1 + .../up.sql | 12 + .../down.sql | 1 + .../up.sql | 46 + .../down.sql | 1 + .../up.sql | 38 + .../down.sql | 38 + .../up.sql | 36 + .../down.sql | 36 + .../up.sql | 34 + .../down.sql | 31 + .../up.sql | 29 + .../1733781905395_auth_miscellaneous/down.sql | 2 + .../1733781905395_auth_miscellaneous/up.sql | 2 + nhost/nhost.toml | 30 +- nhost/overlays/local.json | 15 +- nhost/overlays/swzucovdccjouwebopwb.json | 26 - nhost/seeds/default/001_organizations.sql | 3 - nhost/seeds/default/001_users.sql | 3 + nhost/seeds/default/002_user_roles.sql | 5 + nhost/seeds/default/002_users.sql | 38 - nhost/seeds/default/003_organizations.sql | 3 + nhost/seeds/default/004_user_org_roles.sql | 2 + nhost/seeds/default/005_groups.sql | 3 + nhost/seeds/default/006_user_groups.sql | 3 + nhost/seeds/default/011_devices.sql | 4 - nhost/seeds/default/011_rules.sql | 7 + nhost/seeds/default/012_policies.sql | 7 + nhost/seeds/default/012_rules.sql | 7 - nhost/seeds/default/013_devices.sql | 4 + nhost/seeds/default/013_pools.sql | 4 - nhost/seeds/default/014_policies.sql | 7 - nhost/seeds/default/014_pools.sql | 4 + nhost/tests/auth.http | 31 +- nhost/tests/devices.http | 60 +- nhost/tests/hasura.http | 24 +- nhost/tests/organizations.http | 94 + nhost/tests/policies.http | 108 +- nhost/tests/pool_device.http | 12 +- nhost/tests/pools.http | 72 +- nhost/tests/rules.http | 72 +- packages/smart/src/components/chat.svelte | 74 +- packages/utils/src/collections.ts | 8 +- 175 files changed, 6389 insertions(+), 3700 deletions(-) delete mode 100644 apps/console/src/lib/graphql/MUTATION.Updatehomeroles.gql create mode 100644 nhost/emails/bg/signin-otp/body.html create mode 100644 nhost/emails/bg/signin-otp/subject.txt create mode 100644 nhost/emails/cs/signin-otp/body.html create mode 100644 nhost/emails/cs/signin-otp/subject.txt create mode 100644 nhost/emails/en/signin-otp/body.html create mode 100644 nhost/emails/en/signin-otp/subject.txt create mode 100644 nhost/emails/es/signin-otp/body.html create mode 100644 nhost/emails/es/signin-otp/subject.txt create mode 100644 nhost/emails/fr/signin-otp/body.html create mode 100644 nhost/emails/fr/signin-otp/subject.txt create mode 100644 nhost/emails/generator/signin-otp.tsx create mode 100644 nhost/metadata/databases/default/functions/functions.yaml create mode 100644 nhost/metadata/databases/default/functions/public_device_associated_pools.yaml create mode 100644 nhost/metadata/databases/default/functions/public_device_dissociated_pools.yaml create mode 100644 nhost/metadata/databases/default/functions/public_user_associated_groups.yaml create mode 100644 nhost/metadata/databases/default/functions/public_user_dissociated_groups.yaml create mode 100644 nhost/metadata/databases/default/tables/public_plan.yaml create mode 100644 nhost/metadata/databases/default/tables/public_status.yaml create mode 100644 nhost/metadata/databases/default/tables/public_subscriptions.yaml delete mode 100644 nhost/migrations/default/1684206403640_init/up.sql delete mode 100644 nhost/migrations/default/1686378049757_insert_seed_type_data/down.sql delete mode 100644 nhost/migrations/default/1686378049757_insert_seed_type_data/up.sql create mode 100644 nhost/migrations/default/1733695883620_init/up.sql create mode 100644 nhost/migrations/default/1733695951358_add_roles_to_auth_roles/down.sql create mode 100644 nhost/migrations/default/1733695951358_add_roles_to_auth_roles/up.sql create mode 100644 nhost/migrations/default/1733695986269_create_table_public_organizations/down.sql create mode 100644 nhost/migrations/default/1733695986269_create_table_public_organizations/up.sql create mode 100644 nhost/migrations/default/1733696090407_create_table_public_user_org_roles/down.sql create mode 100644 nhost/migrations/default/1733696090407_create_table_public_user_org_roles/up.sql create mode 100644 nhost/migrations/default/1733696145344_create_trigger_enforce_single_current_org_per_user/down.sql create mode 100644 nhost/migrations/default/1733696145344_create_trigger_enforce_single_current_org_per_user/up.sql create mode 100644 nhost/migrations/default/1733696194204_create_trigger_sync_default_role/down.sql create mode 100644 nhost/migrations/default/1733696194204_create_trigger_sync_default_role/up.sql create mode 100644 nhost/migrations/default/1733696275842_create_trigger_auto_enroll_users_to_org/down.sql create mode 100644 nhost/migrations/default/1733696275842_create_trigger_auto_enroll_users_to_org/up.sql create mode 100644 nhost/migrations/default/1733696328444_create_function_user_current_org/down.sql create mode 100644 nhost/migrations/default/1733696328444_create_function_user_current_org/up.sql create mode 100644 nhost/migrations/default/1733696364187_create_table_public_groups/down.sql create mode 100644 nhost/migrations/default/1733696364187_create_table_public_groups/up.sql create mode 100644 nhost/migrations/default/1733696411072_create_table_public_user_groups/down.sql create mode 100644 nhost/migrations/default/1733696411072_create_table_public_user_groups/up.sql create mode 100644 nhost/migrations/default/1733696442327_create_table_public_plan_enum/down.sql create mode 100644 nhost/migrations/default/1733696442327_create_table_public_plan_enum/up.sql create mode 100644 nhost/migrations/default/1733696468495_create_table_public_status_enum/down.sql create mode 100644 nhost/migrations/default/1733696468495_create_table_public_status_enum/up.sql create mode 100644 nhost/migrations/default/1733696500115_create_table_public_subscriptions/down.sql create mode 100644 nhost/migrations/default/1733696500115_create_table_public_subscriptions/up.sql create mode 100644 nhost/migrations/default/1733696529179_create_table_public_action_enum/down.sql create mode 100644 nhost/migrations/default/1733696529179_create_table_public_action_enum/up.sql create mode 100644 nhost/migrations/default/1733696550536_create_table_public_direction_enum/down.sql create mode 100644 nhost/migrations/default/1733696550536_create_table_public_direction_enum/up.sql create mode 100644 nhost/migrations/default/1733696571331_create_table_public_protocol_enum/down.sql create mode 100644 nhost/migrations/default/1733696571331_create_table_public_protocol_enum/up.sql create mode 100644 nhost/migrations/default/1733696597519_create_table_public_subject_type_enum/down.sql create mode 100644 nhost/migrations/default/1733696597519_create_table_public_subject_type_enum/up.sql create mode 100644 nhost/migrations/default/1733770579830_create_table_public_rules/down.sql create mode 100644 nhost/migrations/default/1733770579830_create_table_public_rules/up.sql create mode 100644 nhost/migrations/default/1733770610828_create_table_public_policies/down.sql create mode 100644 nhost/migrations/default/1733770610828_create_table_public_policies/up.sql create mode 100644 nhost/migrations/default/1733776768047_create_table_public_devices/down.sql create mode 100644 nhost/migrations/default/1733776768047_create_table_public_devices/up.sql create mode 100644 nhost/migrations/default/1733776810389_create_table_public_pools/down.sql create mode 100644 nhost/migrations/default/1733776810389_create_table_public_pools/up.sql create mode 100644 nhost/migrations/default/1733776913067_create_table_public_device_pools/down.sql create mode 100644 nhost/migrations/default/1733776913067_create_table_public_device_pools/up.sql create mode 100644 nhost/migrations/default/1733781905395_auth_miscellaneous/down.sql create mode 100644 nhost/migrations/default/1733781905395_auth_miscellaneous/up.sql delete mode 100644 nhost/seeds/default/001_organizations.sql create mode 100644 nhost/seeds/default/001_users.sql create mode 100644 nhost/seeds/default/002_user_roles.sql delete mode 100644 nhost/seeds/default/002_users.sql create mode 100644 nhost/seeds/default/003_organizations.sql create mode 100644 nhost/seeds/default/004_user_org_roles.sql create mode 100644 nhost/seeds/default/005_groups.sql create mode 100644 nhost/seeds/default/006_user_groups.sql delete mode 100644 nhost/seeds/default/011_devices.sql create mode 100644 nhost/seeds/default/011_rules.sql create mode 100644 nhost/seeds/default/012_policies.sql delete mode 100644 nhost/seeds/default/012_rules.sql create mode 100644 nhost/seeds/default/013_devices.sql delete mode 100644 nhost/seeds/default/013_pools.sql delete mode 100644 nhost/seeds/default/014_policies.sql create mode 100644 nhost/seeds/default/014_pools.sql create mode 100644 nhost/tests/organizations.http diff --git a/apps/console/houdini.config.js b/apps/console/houdini.config.js index 2125ed060..66ea81e06 100644 --- a/apps/console/houdini.config.js +++ b/apps/console/houdini.config.js @@ -17,8 +17,13 @@ const config = { // HINT: we need to generate scheam for highest role level that app support. headers: { 'X-Hasura-Admin-Secret': (env) => env.HASURA_GRAPHQL_ADMIN_SECRET, - 'x-hasura-allowed-roles': 'user me supervisor manager', - 'x-hasura-role': 'manager', + 'x-hasura-allowed-roles': 'user me sys:admin', + 'x-hasura-role': 'sys:admin', + }, + }, + types: { + user_org_roles: { + keys: ['userId', 'orgId'], }, }, // types: { diff --git a/apps/console/schema.graphql b/apps/console/schema.graphql index e7ecfba4c..3b2bcd838 100644 --- a/apps/console/schema.graphql +++ b/apps/console/schema.graphql @@ -159,29 +159,12 @@ input String_comparison_exp { _similar: String } -"""action enum""" +"""policy action enum""" type action { description: String! value: String! } -""" -aggregated selection of "action" -""" -type action_aggregate { - aggregate: action_aggregate_fields - nodes: [action!]! -} - -""" -aggregate fields of "action" -""" -type action_aggregate_fields { - count(columns: [action_select_column!], distinct: Boolean): Int! - max: action_max_fields - min: action_min_fields -} - """ Boolean expression to filter rows from the table "action". All fields are combined with a logical 'AND'. """ @@ -221,18 +204,6 @@ input action_enum_comparison_exp { _nin: [action_enum!] } -"""aggregate max on columns""" -type action_max_fields { - description: String - value: String -} - -"""aggregate min on columns""" -type action_min_fields { - description: String - value: String -} - """Ordering options when selecting data from "action".""" input action_order_by { description: order_by @@ -304,6 +275,34 @@ type authRefreshTokens { userId: uuid! } +""" +aggregated selection of "auth.refresh_tokens" +""" +type authRefreshTokens_aggregate { + aggregate: authRefreshTokens_aggregate_fields + nodes: [authRefreshTokens!]! +} + +input authRefreshTokens_aggregate_bool_exp { + count: authRefreshTokens_aggregate_bool_exp_count +} + +input authRefreshTokens_aggregate_bool_exp_count { + arguments: [authRefreshTokens_select_column!] + distinct: Boolean + filter: authRefreshTokens_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "auth.refresh_tokens" +""" +type authRefreshTokens_aggregate_fields { + count(columns: [authRefreshTokens_select_column!], distinct: Boolean): Int! + max: authRefreshTokens_max_fields + min: authRefreshTokens_min_fields +} + """ order by aggregate values of table "auth.refresh_tokens" """ @@ -329,6 +328,14 @@ input authRefreshTokens_bool_exp { userId: uuid_comparison_exp } +"""aggregate max on columns""" +type authRefreshTokens_max_fields { + createdAt: timestamptz + expiresAt: timestamptz + id: uuid + userId: uuid +} + """ order by max() on columns of table "auth.refresh_tokens" """ @@ -339,6 +346,14 @@ input authRefreshTokens_max_order_by { userId: order_by } +"""aggregate min on columns""" +type authRefreshTokens_min_fields { + createdAt: timestamptz + expiresAt: timestamptz + id: uuid + userId: uuid +} + """ order by min() on columns of table "auth.refresh_tokens" """ @@ -430,6 +445,34 @@ type authUserProviders { userId: uuid! } +""" +aggregated selection of "auth.user_providers" +""" +type authUserProviders_aggregate { + aggregate: authUserProviders_aggregate_fields + nodes: [authUserProviders!]! +} + +input authUserProviders_aggregate_bool_exp { + count: authUserProviders_aggregate_bool_exp_count +} + +input authUserProviders_aggregate_bool_exp_count { + arguments: [authUserProviders_select_column!] + distinct: Boolean + filter: authUserProviders_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "auth.user_providers" +""" +type authUserProviders_aggregate_fields { + count(columns: [authUserProviders_select_column!], distinct: Boolean): Int! + max: authUserProviders_max_fields + min: authUserProviders_min_fields +} + """ order by aggregate values of table "auth.user_providers" """ @@ -455,6 +498,16 @@ input authUserProviders_bool_exp { userId: uuid_comparison_exp } +"""aggregate max on columns""" +type authUserProviders_max_fields { + createdAt: timestamptz + id: uuid + providerId: String + providerUserId: String + updatedAt: timestamptz + userId: uuid +} + """ order by max() on columns of table "auth.user_providers" """ @@ -467,6 +520,16 @@ input authUserProviders_max_order_by { userId: order_by } +"""aggregate min on columns""" +type authUserProviders_min_fields { + createdAt: timestamptz + id: uuid + providerId: String + providerUserId: String + updatedAt: timestamptz + userId: uuid +} + """ order by min() on columns of table "auth.user_providers" """ @@ -609,29 +672,6 @@ input authUserRoles_bool_exp { userId: uuid_comparison_exp } -""" -unique or primary key constraints on table "auth.user_roles" -""" -enum authUserRoles_constraint { - """ - unique or primary key constraint on columns "id" - """ - user_roles_pkey - - """ - unique or primary key constraint on columns "user_id", "role" - """ - user_roles_user_id_role_key -} - -""" -input type for inserting data into table "auth.user_roles" -""" -input authUserRoles_insert_input { - role: String - userId: uuid -} - """aggregate max on columns""" type authUserRoles_max_fields { createdAt: timestamptz @@ -679,15 +719,6 @@ type authUserRoles_mutation_response { returning: [authUserRoles!]! } -""" -on_conflict condition type for table "auth.user_roles" -""" -input authUserRoles_on_conflict { - constraint: authUserRoles_constraint! - update_columns: [authUserRoles_update_column!]! = [] - where: authUserRoles_bool_exp -} - """Ordering options when selecting data from "auth.user_roles".""" input authUserRoles_order_by { createdAt: order_by @@ -733,14 +764,6 @@ input authUserRoles_stream_cursor_value_input { userId: uuid } -""" -placeholder for update columns of table "auth.user_roles" (current role has no relevant permissions) -""" -enum authUserRoles_update_column { - """placeholder (do not use)""" - _PLACEHOLDER -} - """ User webauthn security keys. Don't modify its structure as Hasura Auth relies on it to function properly. """ @@ -753,6 +776,34 @@ type authUserSecurityKeys { userId: uuid! } +""" +aggregated selection of "auth.user_security_keys" +""" +type authUserSecurityKeys_aggregate { + aggregate: authUserSecurityKeys_aggregate_fields + nodes: [authUserSecurityKeys!]! +} + +input authUserSecurityKeys_aggregate_bool_exp { + count: authUserSecurityKeys_aggregate_bool_exp_count +} + +input authUserSecurityKeys_aggregate_bool_exp_count { + arguments: [authUserSecurityKeys_select_column!] + distinct: Boolean + filter: authUserSecurityKeys_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "auth.user_security_keys" +""" +type authUserSecurityKeys_aggregate_fields { + count(columns: [authUserSecurityKeys_select_column!], distinct: Boolean): Int! + max: authUserSecurityKeys_max_fields + min: authUserSecurityKeys_min_fields +} + """ order by aggregate values of table "auth.user_security_keys" """ @@ -775,6 +826,13 @@ input authUserSecurityKeys_bool_exp { userId: uuid_comparison_exp } +"""aggregate max on columns""" +type authUserSecurityKeys_max_fields { + id: uuid + nickname: String + userId: uuid +} + """ order by max() on columns of table "auth.user_security_keys" """ @@ -784,6 +842,13 @@ input authUserSecurityKeys_max_order_by { userId: order_by } +"""aggregate min on columns""" +type authUserSecurityKeys_min_fields { + id: uuid + nickname: String + userId: uuid +} + """ order by min() on columns of table "auth.user_security_keys" """ @@ -908,12 +973,19 @@ enum cursor_ordering { DESC } -"""device to pool bridge table""" +input device_associated_pools_args { + device_row: devices_scalar +} + +input device_dissociated_pools_args { + device_row: devices_scalar +} + +"""Device to Pool association table""" type device_pools { """An object relationship""" device: devices! deviceId: uuid! - id: uuid! """An object relationship""" pool: pools! @@ -928,17 +1000,6 @@ type device_pools_aggregate { nodes: [device_pools!]! } -input device_pools_aggregate_bool_exp { - count: device_pools_aggregate_bool_exp_count -} - -input device_pools_aggregate_bool_exp_count { - arguments: [device_pools_select_column!] - distinct: Boolean - filter: device_pools_bool_exp - predicate: Int_comparison_exp! -} - """ aggregate fields of "device_pools" """ @@ -948,25 +1009,6 @@ type device_pools_aggregate_fields { min: device_pools_min_fields } -""" -order by aggregate values of table "device_pools" -""" -input device_pools_aggregate_order_by { - count: order_by - max: device_pools_max_order_by - min: device_pools_min_order_by -} - -""" -input type for inserting array relation for remote table "device_pools" -""" -input device_pools_arr_rel_insert_input { - data: [device_pools_insert_input!]! - - """upsert condition""" - on_conflict: device_pools_on_conflict -} - """ Boolean expression to filter rows from the table "device_pools". All fields are combined with a logical 'AND'. """ @@ -976,7 +1018,6 @@ input device_pools_bool_exp { _or: [device_pools_bool_exp!] device: devices_bool_exp deviceId: uuid_comparison_exp - id: uuid_comparison_exp pool: pools_bool_exp poolId: uuid_comparison_exp } @@ -985,15 +1026,10 @@ input device_pools_bool_exp { unique or primary key constraints on table "device_pools" """ enum device_pools_constraint { - """ - unique or primary key constraint on columns "id" - """ - device_pools_pkey - """ unique or primary key constraint on columns "pool_id", "device_id" """ - device_pools_pool_id_device_id_key + device_pools_pkey } """ @@ -1008,35 +1044,15 @@ input device_pools_insert_input { """aggregate max on columns""" type device_pools_max_fields { deviceId: uuid - id: uuid poolId: uuid } -""" -order by max() on columns of table "device_pools" -""" -input device_pools_max_order_by { - deviceId: order_by - id: order_by - poolId: order_by -} - """aggregate min on columns""" type device_pools_min_fields { deviceId: uuid - id: uuid poolId: uuid } -""" -order by min() on columns of table "device_pools" -""" -input device_pools_min_order_by { - deviceId: order_by - id: order_by - poolId: order_by -} - """ response of any mutation on the table "device_pools" """ @@ -1061,7 +1077,6 @@ input device_pools_on_conflict { input device_pools_order_by { device: devices_order_by deviceId: order_by - id: order_by pool: pools_order_by poolId: order_by } @@ -1073,9 +1088,6 @@ enum device_pools_select_column { """column name""" deviceId - """column name""" - id - """column name""" poolId } @@ -1094,7 +1106,6 @@ input device_pools_stream_cursor_input { """Initial value of the column from where the streaming should start""" input device_pools_stream_cursor_value_input { deviceId: uuid - id: uuid poolId: uuid } @@ -1106,10 +1117,9 @@ enum device_pools_update_column { _PLACEHOLDER } -"""Devices Metadata""" +"""Table containing devices data""" type devices { alternateDns: Boolean - annotations: hstore """Used as Computed Field on Devices Table""" associatedPools( @@ -1129,7 +1139,7 @@ type devices { where: pools_bool_exp ): [pools!] createdAt: timestamptz! - createdBy: String! + createdBy: uuid! description: String displayName: String! @@ -1152,12 +1162,16 @@ type devices { ): [pools!] id: uuid! ip: String! - organization: String! + metadata( + """JSON select path""" + path: String + ): jsonb + orgId: uuid! proxyIp: Boolean publicIp: String tags: [String!] updatedAt: timestamptz! - updatedBy: String! + updatedBy: uuid! version: String } @@ -1178,6 +1192,11 @@ type devices_aggregate_fields { min: devices_min_fields } +"""append existing jsonb value of filtered columns with new jsonb value""" +input devices_append_input { + metadata: jsonb +} + """ Boolean expression to filter rows from the table "devices". All fields are combined with a logical 'AND'. """ @@ -1186,53 +1205,74 @@ input devices_bool_exp { _not: devices_bool_exp _or: [devices_bool_exp!] alternateDns: Boolean_comparison_exp - annotations: hstore_comparison_exp associatedPools: pools_bool_exp createdAt: timestamptz_comparison_exp - createdBy: String_comparison_exp + createdBy: uuid_comparison_exp description: String_comparison_exp displayName: String_comparison_exp dissociatedPools: pools_bool_exp id: uuid_comparison_exp ip: String_comparison_exp - organization: String_comparison_exp + metadata: jsonb_comparison_exp + orgId: uuid_comparison_exp proxyIp: Boolean_comparison_exp publicIp: String_comparison_exp tags: String_array_comparison_exp updatedAt: timestamptz_comparison_exp - updatedBy: String_comparison_exp + updatedBy: uuid_comparison_exp version: String_comparison_exp } +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input devices_delete_at_path_input { + metadata: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input devices_delete_elem_input { + metadata: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input devices_delete_key_input { + metadata: String +} + """aggregate max on columns""" type devices_max_fields { createdAt: timestamptz - createdBy: String + createdBy: uuid description: String displayName: String id: uuid ip: String - organization: String + orgId: uuid publicIp: String tags: [String!] updatedAt: timestamptz - updatedBy: String + updatedBy: uuid version: String } """aggregate min on columns""" type devices_min_fields { createdAt: timestamptz - createdBy: String + createdBy: uuid description: String displayName: String id: uuid ip: String - organization: String + orgId: uuid publicIp: String tags: [String!] updatedAt: timestamptz - updatedBy: String + updatedBy: uuid version: String } @@ -1250,7 +1290,6 @@ type devices_mutation_response { """Ordering options when selecting data from "devices".""" input devices_order_by { alternateDns: order_by - annotations: order_by associatedPools_aggregate: pools_aggregate_order_by createdAt: order_by createdBy: order_by @@ -1259,7 +1298,8 @@ input devices_order_by { dissociatedPools_aggregate: pools_aggregate_order_by id: order_by ip: order_by - organization: order_by + metadata: order_by + orgId: order_by proxyIp: order_by publicIp: order_by tags: order_by @@ -1273,6 +1313,13 @@ input devices_pk_columns_input { id: uuid! } +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input devices_prepend_input { + metadata: jsonb +} + +scalar devices_scalar + """ select columns of table "devices" """ @@ -1280,9 +1327,6 @@ enum devices_select_column { """column name""" alternateDns - """column name""" - annotations - """column name""" createdAt @@ -1302,7 +1346,10 @@ enum devices_select_column { ip """column name""" - organization + metadata + + """column name""" + orgId """column name""" proxyIp @@ -1327,9 +1374,10 @@ enum devices_select_column { input type for updating data in table "devices" """ input devices_set_input { - annotations: hstore - deletedAt: timestamptz + alternateDns: Boolean description: String + metadata: jsonb + proxyIp: Boolean tags: [String!] } @@ -1347,23 +1395,44 @@ input devices_stream_cursor_input { """Initial value of the column from where the streaming should start""" input devices_stream_cursor_value_input { alternateDns: Boolean - annotations: hstore createdAt: timestamptz - createdBy: String + createdBy: uuid description: String displayName: String id: uuid ip: String - organization: String + metadata: jsonb + orgId: uuid proxyIp: Boolean publicIp: String tags: [String!] updatedAt: timestamptz - updatedBy: String + updatedBy: uuid version: String } input devices_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: devices_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: devices_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: devices_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: devices_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: devices_prepend_input + """sets the columns of the filtered rows to the given values""" _set: devices_set_input @@ -1371,29 +1440,12 @@ input devices_updates { where: devices_bool_exp! } -"""direction enum""" +"""policy direction enum""" type direction { description: String! value: String! } -""" -aggregated selection of "direction" -""" -type direction_aggregate { - aggregate: direction_aggregate_fields - nodes: [direction!]! -} - -""" -aggregate fields of "direction" -""" -type direction_aggregate_fields { - count(columns: [direction_select_column!], distinct: Boolean): Int! - max: direction_max_fields - min: direction_min_fields -} - """ Boolean expression to filter rows from the table "direction". All fields are combined with a logical 'AND'. """ @@ -1424,18 +1476,6 @@ input direction_enum_comparison_exp { _nin: [direction_enum!] } -"""aggregate max on columns""" -type direction_max_fields { - description: String - value: String -} - -"""aggregate min on columns""" -type direction_min_fields { - description: String - value: String -} - """Ordering options when selecting data from "direction".""" input direction_order_by { description: order_by @@ -1470,209 +1510,76 @@ input direction_stream_cursor_value_input { value: String } -""" -columns and relationships of "storage.files" -""" -type files { - bucketId: String! +"""Table containing user groups that belongs to an organization""" +type groups { createdAt: timestamptz! - etag: String + createdBy: uuid! + description: String + displayName: String! id: uuid! - isUploaded: Boolean metadata( """JSON select path""" path: String ): jsonb - mimeType: String - name: String - size: Int - updatedAt: timestamptz! - uploadedByUserId: uuid -} - -""" -Boolean expression to filter rows from the table "storage.files". All fields are combined with a logical 'AND'. -""" -input files_bool_exp { - _and: [files_bool_exp!] - _not: files_bool_exp - _or: [files_bool_exp!] - bucketId: String_comparison_exp - createdAt: timestamptz_comparison_exp - etag: String_comparison_exp - id: uuid_comparison_exp - isUploaded: Boolean_comparison_exp - metadata: jsonb_comparison_exp - mimeType: String_comparison_exp - name: String_comparison_exp - size: Int_comparison_exp - updatedAt: timestamptz_comparison_exp - uploadedByUserId: uuid_comparison_exp -} - -""" -unique or primary key constraints on table "storage.files" -""" -enum files_constraint { - """ - unique or primary key constraint on columns "id" - """ - files_pkey -} + orgId: uuid! -""" -input type for inserting data into table "storage.files" -""" -input files_insert_input { - bucketId: String - createdAt: timestamptz - etag: String - id: uuid - isUploaded: Boolean - metadata: jsonb - mimeType: String - name: String - size: Int - updatedAt: timestamptz + """An object relationship""" + organization: organizations! + tags: [String!] + updatedAt: timestamptz! + updatedBy: uuid! } """ -response of any mutation on the table "storage.files" +aggregated selection of "groups" """ -type files_mutation_response { - """number of rows affected by the mutation""" - affected_rows: Int! - - """data from the rows affected by the mutation""" - returning: [files!]! +type groups_aggregate { + aggregate: groups_aggregate_fields + nodes: [groups!]! } -""" -on_conflict condition type for table "storage.files" -""" -input files_on_conflict { - constraint: files_constraint! - update_columns: [files_update_column!]! = [] - where: files_bool_exp +input groups_aggregate_bool_exp { + count: groups_aggregate_bool_exp_count } -"""Ordering options when selecting data from "storage.files".""" -input files_order_by { - bucketId: order_by - createdAt: order_by - etag: order_by - id: order_by - isUploaded: order_by - metadata: order_by - mimeType: order_by - name: order_by - size: order_by - updatedAt: order_by - uploadedByUserId: order_by +input groups_aggregate_bool_exp_count { + arguments: [groups_select_column!] + distinct: Boolean + filter: groups_bool_exp + predicate: Int_comparison_exp! } """ -select columns of table "storage.files" +aggregate fields of "groups" """ -enum files_select_column { - """column name""" - bucketId - - """column name""" - createdAt - - """column name""" - etag - - """column name""" - id - - """column name""" - isUploaded - - """column name""" - metadata - - """column name""" - mimeType - - """column name""" - name - - """column name""" - size - - """column name""" - updatedAt - - """column name""" - uploadedByUserId +type groups_aggregate_fields { + count(columns: [groups_select_column!], distinct: Boolean): Int! + max: groups_max_fields + min: groups_min_fields } """ -Streaming cursor of the table "files" +order by aggregate values of table "groups" """ -input files_stream_cursor_input { - """Stream column input with initial value""" - initial_value: files_stream_cursor_value_input! - - """cursor ordering""" - ordering: cursor_ordering +input groups_aggregate_order_by { + count: order_by + max: groups_max_order_by + min: groups_min_order_by } -"""Initial value of the column from where the streaming should start""" -input files_stream_cursor_value_input { - bucketId: String - createdAt: timestamptz - etag: String - id: uuid - isUploaded: Boolean +"""append existing jsonb value of filtered columns with new jsonb value""" +input groups_append_input { metadata: jsonb - mimeType: String - name: String - size: Int - updatedAt: timestamptz - uploadedByUserId: uuid } """ -placeholder for update columns of table "storage.files" (current role has no relevant permissions) +input type for inserting array relation for remote table "groups" """ -enum files_update_column { - """placeholder (do not use)""" - _PLACEHOLDER -} - -"""User groups defined per organization""" -type groups { - annotations: hstore - createdAt: timestamptz! - createdBy: String! - description: String - displayName: String! - - """An array relationship""" - group_users( - """distinct select on columns""" - distinct_on: [user_groups_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [user_groups_order_by!] +input groups_arr_rel_insert_input { + data: [groups_insert_input!]! - """filter the rows returned""" - where: user_groups_bool_exp - ): [user_groups!]! - id: uuid! - organization: String! - tags: [String!] - updatedAt: timestamptz! - updatedBy: String! + """upsert condition""" + on_conflict: groups_on_conflict } """ @@ -1682,17 +1589,17 @@ input groups_bool_exp { _and: [groups_bool_exp!] _not: groups_bool_exp _or: [groups_bool_exp!] - annotations: hstore_comparison_exp createdAt: timestamptz_comparison_exp - createdBy: String_comparison_exp + createdBy: uuid_comparison_exp description: String_comparison_exp displayName: String_comparison_exp - group_users: user_groups_bool_exp id: uuid_comparison_exp - organization: String_comparison_exp + metadata: jsonb_comparison_exp + orgId: uuid_comparison_exp + organization: organizations_bool_exp tags: String_array_comparison_exp updatedAt: timestamptz_comparison_exp - updatedBy: String_comparison_exp + updatedBy: uuid_comparison_exp } """ @@ -1700,9 +1607,9 @@ unique or primary key constraints on table "groups" """ enum groups_constraint { """ - unique or primary key constraint on columns "display_name", "organization" + unique or primary key constraint on columns "display_name", "org_id" """ - groups_display_name_organization_unique + groups_org_id_display_name_key """ unique or primary key constraint on columns "id" @@ -1710,16 +1617,92 @@ enum groups_constraint { groups_pkey } +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input groups_delete_at_path_input { + metadata: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input groups_delete_elem_input { + metadata: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input groups_delete_key_input { + metadata: String +} + """ input type for inserting data into table "groups" """ input groups_insert_input { - annotations: hstore description: String displayName: String - group_users: user_groups_arr_rel_insert_input - organization: String + metadata: jsonb + organization: organizations_obj_rel_insert_input + tags: [String!] +} + +"""aggregate max on columns""" +type groups_max_fields { + createdAt: timestamptz + createdBy: uuid + description: String + displayName: String + id: uuid + orgId: uuid + tags: [String!] + updatedAt: timestamptz + updatedBy: uuid +} + +""" +order by max() on columns of table "groups" +""" +input groups_max_order_by { + createdAt: order_by + createdBy: order_by + description: order_by + displayName: order_by + id: order_by + orgId: order_by + tags: order_by + updatedAt: order_by + updatedBy: order_by +} + +"""aggregate min on columns""" +type groups_min_fields { + createdAt: timestamptz + createdBy: uuid + description: String + displayName: String + id: uuid + orgId: uuid tags: [String!] + updatedAt: timestamptz + updatedBy: uuid +} + +""" +order by min() on columns of table "groups" +""" +input groups_min_order_by { + createdAt: order_by + createdBy: order_by + description: order_by + displayName: order_by + id: order_by + orgId: order_by + tags: order_by + updatedAt: order_by + updatedBy: order_by } """ @@ -1754,14 +1737,14 @@ input groups_on_conflict { """Ordering options when selecting data from "groups".""" input groups_order_by { - annotations: order_by createdAt: order_by createdBy: order_by description: order_by displayName: order_by - group_users_aggregate: user_groups_aggregate_order_by id: order_by - organization: order_by + metadata: order_by + orgId: order_by + organization: organizations_order_by tags: order_by updatedAt: order_by updatedBy: order_by @@ -1772,13 +1755,15 @@ input groups_pk_columns_input { id: uuid! } +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input groups_prepend_input { + metadata: jsonb +} + """ select columns of table "groups" """ enum groups_select_column { - """column name""" - annotations - """column name""" createdAt @@ -1795,7 +1780,10 @@ enum groups_select_column { id """column name""" - organization + metadata + + """column name""" + orgId """column name""" tags @@ -1811,10 +1799,9 @@ enum groups_select_column { input type for updating data in table "groups" """ input groups_set_input { - annotations: hstore - deletedAt: timestamptz description: String displayName: String + metadata: jsonb tags: [String!] } @@ -1831,39 +1818,57 @@ input groups_stream_cursor_input { """Initial value of the column from where the streaming should start""" input groups_stream_cursor_value_input { - annotations: hstore createdAt: timestamptz - createdBy: String + createdBy: uuid description: String displayName: String id: uuid - organization: String + metadata: jsonb + orgId: uuid tags: [String!] updatedAt: timestamptz - updatedBy: String + updatedBy: uuid } """ update columns of table "groups" """ enum groups_update_column { - """column name""" - annotations - - """column name""" - deletedAt - """column name""" description """column name""" displayName + """column name""" + metadata + """column name""" tags } input groups_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: groups_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: groups_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: groups_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: groups_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: groups_prepend_input + """sets the columns of the filtered rows to the given values""" _set: groups_set_input @@ -1871,23 +1876,6 @@ input groups_updates { where: groups_bool_exp! } -scalar hstore - -""" -Boolean expression to compare columns of type "hstore". All fields are combined with logical 'AND'. -""" -input hstore_comparison_exp { - _eq: hstore - _gt: hstore - _gte: hstore - _in: [hstore!] - _is_null: Boolean - _lt: hstore - _lte: hstore - _neq: hstore - _nin: [hstore!] -} - scalar jsonb input jsonb_cast_exp { @@ -1980,30 +1968,43 @@ type mutation_root { ): authUserSecurityKeys_mutation_response """ - delete single row from the table: "storage.files" + delete data from the table: "device_pools" + """ + delete_device_pools( + """filter the rows which have to be deleted""" + where: device_pools_bool_exp! + ): device_pools_mutation_response + + """ + delete single row from the table: "device_pools" """ - deleteFile(id: uuid!): files + delete_device_pools_by_pk(deviceId: uuid!, poolId: uuid!): device_pools """ - delete data from the table: "storage.files" + delete data from the table: "devices" """ - deleteFiles( + delete_devices( """filter the rows which have to be deleted""" - where: files_bool_exp! - ): files_mutation_response + where: devices_bool_exp! + ): devices_mutation_response """ - delete data from the table: "device_pools" + delete single row from the table: "devices" """ - delete_device_pools( + delete_devices_by_pk(id: uuid!): devices + + """ + delete data from the table: "groups" + """ + delete_groups( """filter the rows which have to be deleted""" - where: device_pools_bool_exp! - ): device_pools_mutation_response + where: groups_bool_exp! + ): groups_mutation_response """ - delete single row from the table: "device_pools" + delete single row from the table: "groups" """ - delete_device_pools_by_pk(id: uuid!): device_pools + delete_groups_by_pk(id: uuid!): groups """ delete data from the table: "organizations" @@ -2016,77 +2017,72 @@ type mutation_root { """ delete single row from the table: "organizations" """ - delete_organizations_by_pk(organization: String!): organizations + delete_organizations_by_pk(id: uuid!): organizations """ - delete data from the table: "user_groups" + delete data from the table: "policies" """ - delete_user_groups( + delete_policies( """filter the rows which have to be deleted""" - where: user_groups_bool_exp! - ): user_groups_mutation_response + where: policies_bool_exp! + ): policies_mutation_response """ - delete single row from the table: "user_groups" + delete single row from the table: "policies" """ - delete_user_groups_by_pk(id: uuid!): user_groups + delete_policies_by_pk(id: uuid!): policies """ - delete data from the table: "user_org_roles" + delete data from the table: "pools" """ - delete_user_org_roles( + delete_pools( """filter the rows which have to be deleted""" - where: user_org_roles_bool_exp! - ): user_org_roles_mutation_response - + where: pools_bool_exp! + ): pools_mutation_response + """ - delete single row from the table: "user_org_roles" + delete single row from the table: "pools" """ - delete_user_org_roles_by_pk(id: uuid!): user_org_roles + delete_pools_by_pk(id: uuid!): pools """ - insert a single row into the table: "auth.user_roles" + delete data from the table: "rules" """ - insertAuthUserRole( - """the row to be inserted""" - object: authUserRoles_insert_input! - - """upsert condition""" - on_conflict: authUserRoles_on_conflict - ): authUserRoles + delete_rules( + """filter the rows which have to be deleted""" + where: rules_bool_exp! + ): rules_mutation_response """ - insert data into the table: "auth.user_roles" + delete single row from the table: "rules" """ - insertAuthUserRoles( - """the rows to be inserted""" - objects: [authUserRoles_insert_input!]! - - """upsert condition""" - on_conflict: authUserRoles_on_conflict - ): authUserRoles_mutation_response + delete_rules_by_pk(id: uuid!): rules """ - insert a single row into the table: "storage.files" + delete data from the table: "user_groups" """ - insertFile( - """the row to be inserted""" - object: files_insert_input! + delete_user_groups( + """filter the rows which have to be deleted""" + where: user_groups_bool_exp! + ): user_groups_mutation_response - """upsert condition""" - on_conflict: files_on_conflict - ): files + """ + delete single row from the table: "user_groups" + """ + delete_user_groups_by_pk(groupId: uuid!, userId: uuid!): user_groups """ - insert data into the table: "storage.files" + delete data from the table: "user_org_roles" """ - insertFiles( - """the rows to be inserted""" - objects: [files_insert_input!]! + delete_user_org_roles( + """filter the rows which have to be deleted""" + where: user_org_roles_bool_exp! + ): user_org_roles_mutation_response - """upsert condition""" - on_conflict: files_on_conflict - ): files_mutation_response + """ + delete single row from the table: "user_org_roles" + """ + delete_user_org_roles_by_pk(orgId: uuid!, userId: uuid!): user_org_roles """ insert data into the table: "device_pools" @@ -2330,6 +2326,27 @@ type mutation_root { update data of the table: "devices" """ update_devices( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: devices_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: devices_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: devices_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: devices_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: devices_prepend_input + """sets the columns of the filtered rows to the given values""" _set: devices_set_input @@ -2341,6 +2358,27 @@ type mutation_root { update single row of the table: "devices" """ update_devices_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: devices_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: devices_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: devices_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: devices_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: devices_prepend_input + """sets the columns of the filtered rows to the given values""" _set: devices_set_input pk_columns: devices_pk_columns_input! @@ -2358,6 +2396,27 @@ type mutation_root { update data of the table: "groups" """ update_groups( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: groups_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: groups_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: groups_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: groups_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: groups_prepend_input + """sets the columns of the filtered rows to the given values""" _set: groups_set_input @@ -2369,6 +2428,27 @@ type mutation_root { update single row of the table: "groups" """ update_groups_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: groups_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: groups_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: groups_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: groups_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: groups_prepend_input + """sets the columns of the filtered rows to the given values""" _set: groups_set_input pk_columns: groups_pk_columns_input! @@ -2386,6 +2466,27 @@ type mutation_root { update data of the table: "organizations" """ update_organizations( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: organizations_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: organizations_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: organizations_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: organizations_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: organizations_prepend_input + """sets the columns of the filtered rows to the given values""" _set: organizations_set_input @@ -2397,6 +2498,27 @@ type mutation_root { update single row of the table: "organizations" """ update_organizations_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: organizations_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: organizations_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: organizations_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: organizations_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: organizations_prepend_input + """sets the columns of the filtered rows to the given values""" _set: organizations_set_input pk_columns: organizations_pk_columns_input! @@ -2448,6 +2570,27 @@ type mutation_root { update data of the table: "pools" """ update_pools( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: pools_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: pools_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: pools_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: pools_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: pools_prepend_input + """sets the columns of the filtered rows to the given values""" _set: pools_set_input @@ -2459,6 +2602,27 @@ type mutation_root { update single row of the table: "pools" """ update_pools_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: pools_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: pools_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: pools_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: pools_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: pools_prepend_input + """sets the columns of the filtered rows to the given values""" _set: pools_set_input pk_columns: pools_pk_columns_input! @@ -2476,9 +2640,30 @@ type mutation_root { update data of the table: "rules" """ update_rules( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: rules_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: rules_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: rules_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: rules_delete_key_input + """increments the numeric columns with given value of the filtered values""" _inc: rules_inc_input + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: rules_prepend_input + """sets the columns of the filtered rows to the given values""" _set: rules_set_input @@ -2490,9 +2675,30 @@ type mutation_root { update single row of the table: "rules" """ update_rules_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: rules_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: rules_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: rules_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: rules_delete_key_input + """increments the numeric columns with given value of the filtered values""" _inc: rules_inc_input + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: rules_prepend_input + """sets the columns of the filtered rows to the given values""" _set: rules_set_input pk_columns: rules_pk_columns_input! @@ -2564,74 +2770,274 @@ enum order_by { desc_nulls_last } -"""organizations in multitenant env""" +""" +Table containing organizations owned by users. Auto-enroll members based on email domain +""" type organizations { allowedEmailDomains: [String!] allowedEmails: [String!] - description: String! - organization: String! -} + autoEnroll: Boolean! + blockedEmailDomains: [String!] + blockedEmails: [String!] + createdAt: timestamptz! + createdBy: uuid! + description: String + displayName: String! -""" -order by aggregate values of table "organizations" -""" -input organizations_aggregate_order_by { - count: order_by - max: organizations_max_order_by - min: organizations_min_order_by -} + """An array relationship""" + groups( + """distinct select on columns""" + distinct_on: [groups_select_column!] -""" -Boolean expression to filter rows from the table "organizations". All fields are combined with a logical 'AND'. -""" -input organizations_bool_exp { - _and: [organizations_bool_exp!] - _not: organizations_bool_exp - _or: [organizations_bool_exp!] - allowedEmailDomains: String_array_comparison_exp - allowedEmails: String_array_comparison_exp - description: String_comparison_exp - organization: String_comparison_exp -} + """limit the number of rows returned""" + limit: Int -""" -unique or primary key constraints on table "organizations" -""" -enum organizations_constraint { - """ - unique or primary key constraint on columns "organization" - """ - organization_pkey -} + """skip the first n rows. Use only with order_by""" + offset: Int -""" -input type for inserting data into table "organizations" -""" -input organizations_insert_input { - allowedEmailDomains: [String!] - allowedEmails: [String!] - description: String - organization: String -} + """sort the rows by one or more columns""" + order_by: [groups_order_by!] -""" -order by max() on columns of table "organizations" -""" -input organizations_max_order_by { - allowedEmailDomains: order_by - allowedEmails: order_by - description: order_by - organization: order_by -} + """filter the rows returned""" + where: groups_bool_exp + ): [groups!]! -""" -order by min() on columns of table "organizations" -""" -input organizations_min_order_by { - allowedEmailDomains: order_by - allowedEmails: order_by - description: order_by - organization: order_by + """An aggregate relationship""" + groups_aggregate( + """distinct select on columns""" + distinct_on: [groups_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [groups_order_by!] + + """filter the rows returned""" + where: groups_bool_exp + ): groups_aggregate! + id: uuid! + metadata( + """JSON select path""" + path: String + ): jsonb + + """An object relationship""" + owner: users! + ownerId: uuid! + + """An array relationship""" + subscriptions( + """distinct select on columns""" + distinct_on: [subscriptions_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [subscriptions_order_by!] + + """filter the rows returned""" + where: subscriptions_bool_exp + ): [subscriptions!]! + + """An aggregate relationship""" + subscriptions_aggregate( + """distinct select on columns""" + distinct_on: [subscriptions_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [subscriptions_order_by!] + + """filter the rows returned""" + where: subscriptions_bool_exp + ): subscriptions_aggregate! + tags: [String!] + updatedAt: timestamptz! + updatedBy: uuid! + + """An array relationship""" + users( + """distinct select on columns""" + distinct_on: [user_org_roles_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [user_org_roles_order_by!] + + """filter the rows returned""" + where: user_org_roles_bool_exp + ): [user_org_roles!]! + + """An aggregate relationship""" + users_aggregate( + """distinct select on columns""" + distinct_on: [user_org_roles_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [user_org_roles_order_by!] + + """filter the rows returned""" + where: user_org_roles_bool_exp + ): user_org_roles_aggregate! +} + +""" +aggregated selection of "organizations" +""" +type organizations_aggregate { + aggregate: organizations_aggregate_fields + nodes: [organizations!]! +} + +""" +aggregate fields of "organizations" +""" +type organizations_aggregate_fields { + count(columns: [organizations_select_column!], distinct: Boolean): Int! + max: organizations_max_fields + min: organizations_min_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input organizations_append_input { + metadata: jsonb +} + +""" +Boolean expression to filter rows from the table "organizations". All fields are combined with a logical 'AND'. +""" +input organizations_bool_exp { + _and: [organizations_bool_exp!] + _not: organizations_bool_exp + _or: [organizations_bool_exp!] + allowedEmailDomains: String_array_comparison_exp + allowedEmails: String_array_comparison_exp + autoEnroll: Boolean_comparison_exp + blockedEmailDomains: String_array_comparison_exp + blockedEmails: String_array_comparison_exp + createdAt: timestamptz_comparison_exp + createdBy: uuid_comparison_exp + description: String_comparison_exp + displayName: String_comparison_exp + groups: groups_bool_exp + groups_aggregate: groups_aggregate_bool_exp + id: uuid_comparison_exp + metadata: jsonb_comparison_exp + owner: users_bool_exp + ownerId: uuid_comparison_exp + subscriptions: subscriptions_bool_exp + subscriptions_aggregate: subscriptions_aggregate_bool_exp + tags: String_array_comparison_exp + updatedAt: timestamptz_comparison_exp + updatedBy: uuid_comparison_exp + users: user_org_roles_bool_exp + users_aggregate: user_org_roles_aggregate_bool_exp +} + +""" +unique or primary key constraints on table "organizations" +""" +enum organizations_constraint { + """ + unique or primary key constraint on columns "id" + """ + organizations_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input organizations_delete_at_path_input { + metadata: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input organizations_delete_elem_input { + metadata: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input organizations_delete_key_input { + metadata: String +} + +""" +input type for inserting data into table "organizations" +""" +input organizations_insert_input { + allowedEmailDomains: [String!] + allowedEmails: [String!] + autoEnroll: Boolean + blockedEmailDomains: [String!] + blockedEmails: [String!] + description: String + displayName: String + groups: groups_arr_rel_insert_input + metadata: jsonb + tags: [String!] + users: user_org_roles_arr_rel_insert_input +} + +"""aggregate max on columns""" +type organizations_max_fields { + allowedEmailDomains: [String!] + allowedEmails: [String!] + blockedEmailDomains: [String!] + blockedEmails: [String!] + createdAt: timestamptz + createdBy: uuid + description: String + displayName: String + id: uuid + ownerId: uuid + tags: [String!] + updatedAt: timestamptz + updatedBy: uuid +} + +"""aggregate min on columns""" +type organizations_min_fields { + allowedEmailDomains: [String!] + allowedEmails: [String!] + blockedEmailDomains: [String!] + blockedEmails: [String!] + createdAt: timestamptz + createdBy: uuid + description: String + displayName: String + id: uuid + ownerId: uuid + tags: [String!] + updatedAt: timestamptz + updatedBy: uuid } """ @@ -2645,6 +3051,16 @@ type organizations_mutation_response { returning: [organizations!]! } +""" +input type for inserting object relation for remote table "organizations" +""" +input organizations_obj_rel_insert_input { + data: organizations_insert_input! + + """upsert condition""" + on_conflict: organizations_on_conflict +} + """ on_conflict condition type for table "organizations" """ @@ -2658,13 +3074,33 @@ input organizations_on_conflict { input organizations_order_by { allowedEmailDomains: order_by allowedEmails: order_by + autoEnroll: order_by + blockedEmailDomains: order_by + blockedEmails: order_by + createdAt: order_by + createdBy: order_by description: order_by - organization: order_by + displayName: order_by + groups_aggregate: groups_aggregate_order_by + id: order_by + metadata: order_by + owner: users_order_by + ownerId: order_by + subscriptions_aggregate: subscriptions_aggregate_order_by + tags: order_by + updatedAt: order_by + updatedBy: order_by + users_aggregate: user_org_roles_aggregate_order_by } """primary key columns input for table: organizations""" input organizations_pk_columns_input { - organization: String! + id: uuid! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input organizations_prepend_input { + metadata: jsonb } """ @@ -2677,11 +3113,44 @@ enum organizations_select_column { """column name""" allowedEmails + """column name""" + autoEnroll + + """column name""" + blockedEmailDomains + + """column name""" + blockedEmails + + """column name""" + createdAt + + """column name""" + createdBy + """column name""" description """column name""" - organization + displayName + + """column name""" + id + + """column name""" + metadata + + """column name""" + ownerId + + """column name""" + tags + + """column name""" + updatedAt + + """column name""" + updatedBy } """ @@ -2690,8 +3159,14 @@ input type for updating data in table "organizations" input organizations_set_input { allowedEmailDomains: [String!] allowedEmails: [String!] + autoEnroll: Boolean + blockedEmailDomains: [String!] + blockedEmails: [String!] description: String - organization: String + displayName: String + metadata: jsonb + ownerId: uuid + tags: [String!] } """ @@ -2709,8 +3184,19 @@ input organizations_stream_cursor_input { input organizations_stream_cursor_value_input { allowedEmailDomains: [String!] allowedEmails: [String!] + autoEnroll: Boolean + blockedEmailDomains: [String!] + blockedEmails: [String!] + createdAt: timestamptz + createdBy: uuid description: String - organization: String + displayName: String + id: uuid + metadata: jsonb + ownerId: uuid + tags: [String!] + updatedAt: timestamptz + updatedBy: uuid } """ @@ -2723,28 +3209,143 @@ enum organizations_update_column { """column name""" allowedEmails + """column name""" + autoEnroll + + """column name""" + blockedEmailDomains + + """column name""" + blockedEmails + """column name""" description """column name""" - organization + displayName + + """column name""" + metadata + + """column name""" + ownerId + + """column name""" + tags } input organizations_updates { - """sets the columns of the filtered rows to the given values""" - _set: organizations_set_input + """append existing jsonb value of filtered columns with new jsonb value""" + _append: organizations_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: organizations_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: organizations_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: organizations_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: organizations_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: organizations_set_input """filter the rows which have to be updated""" where: organizations_bool_exp! } +"""plan enum""" +type plan { + description: String! + value: String! +} + +""" +Boolean expression to filter rows from the table "plan". All fields are combined with a logical 'AND'. +""" +input plan_bool_exp { + _and: [plan_bool_exp!] + _not: plan_bool_exp + _or: [plan_bool_exp!] + description: String_comparison_exp + value: String_comparison_exp +} + +enum plan_enum { + """Enterprise""" + enterprise + + """Pro""" + pro + + """Starter""" + starter +} + +""" +Boolean expression to compare columns of type "plan_enum". All fields are combined with logical 'AND'. +""" +input plan_enum_comparison_exp { + _eq: plan_enum + _in: [plan_enum!] + _is_null: Boolean + _neq: plan_enum + _nin: [plan_enum!] +} + +"""Ordering options when selecting data from "plan".""" +input plan_order_by { + description: order_by + value: order_by +} + +""" +select columns of table "plan" +""" +enum plan_select_column { + """column name""" + description + + """column name""" + value +} + +""" +Streaming cursor of the table "plan" +""" +input plan_stream_cursor_input { + """Stream column input with initial value""" + initial_value: plan_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input plan_stream_cursor_value_input { + description: String + value: String +} + """Joint table associating subjects polymorphically with rules""" type policies { active: Boolean! createdAt: timestamptz! - createdBy: String! + createdBy: uuid! id: uuid! - organization: String! + orgId: uuid! + + """An object relationship""" + organization: organizations! """An object relationship""" rule: rules! @@ -2754,12 +3355,42 @@ type policies { subjectSecondaryId: String! subjectType: subject_type_enum! updatedAt: timestamptz! - updatedBy: String! + updatedBy: uuid! validFrom: timestamptz! validTo: timestamptz weight: smallint! } +""" +aggregated selection of "policies" +""" +type policies_aggregate { + aggregate: policies_aggregate_fields + nodes: [policies!]! +} + +""" +aggregate fields of "policies" +""" +type policies_aggregate_fields { + avg: policies_avg_fields + count(columns: [policies_select_column!], distinct: Boolean): Int! + max: policies_max_fields + min: policies_min_fields + stddev: policies_stddev_fields + stddev_pop: policies_stddev_pop_fields + stddev_samp: policies_stddev_samp_fields + sum: policies_sum_fields + var_pop: policies_var_pop_fields + var_samp: policies_var_samp_fields + variance: policies_variance_fields +} + +"""aggregate avg on columns""" +type policies_avg_fields { + weight: Float +} + """ Boolean expression to filter rows from the table "policies". All fields are combined with a logical 'AND'. """ @@ -2769,9 +3400,10 @@ input policies_bool_exp { _or: [policies_bool_exp!] active: Boolean_comparison_exp createdAt: timestamptz_comparison_exp - createdBy: String_comparison_exp + createdBy: uuid_comparison_exp id: uuid_comparison_exp - organization: String_comparison_exp + orgId: uuid_comparison_exp + organization: organizations_bool_exp rule: rules_bool_exp ruleId: uuid_comparison_exp subjectDisplayName: String_comparison_exp @@ -2779,7 +3411,7 @@ input policies_bool_exp { subjectSecondaryId: String_comparison_exp subjectType: subject_type_enum_comparison_exp updatedAt: timestamptz_comparison_exp - updatedBy: String_comparison_exp + updatedBy: uuid_comparison_exp validFrom: timestamptz_comparison_exp validTo: timestamptz_comparison_exp weight: smallint_comparison_exp @@ -2790,14 +3422,14 @@ unique or primary key constraints on table "policies" """ enum policies_constraint { """ - unique or primary key constraint on columns "id" + unique or primary key constraint on columns "subject_id", "rule_id", "subject_type", "org_id" """ - policies_pkey + policies_org_id_rule_id_subject_id_subject_type_key """ - unique or primary key constraint on columns "subject_id", "organization", "rule_id", "subject_type" + unique or primary key constraint on columns "id" """ - policies_subject_id_subject_type_rule_id_organization_unique + policies_pkey } """ @@ -2812,7 +3444,7 @@ input type for inserting data into table "policies" """ input policies_insert_input { active: Boolean - organization: String + organization: organizations_obj_rel_insert_input rule: rules_obj_rel_insert_input ruleId: uuid subjectDisplayName: String @@ -2824,6 +3456,40 @@ input policies_insert_input { weight: smallint } +"""aggregate max on columns""" +type policies_max_fields { + createdAt: timestamptz + createdBy: uuid + id: uuid + orgId: uuid + ruleId: uuid + subjectDisplayName: String + subjectId: uuid + subjectSecondaryId: String + updatedAt: timestamptz + updatedBy: uuid + validFrom: timestamptz + validTo: timestamptz + weight: smallint +} + +"""aggregate min on columns""" +type policies_min_fields { + createdAt: timestamptz + createdBy: uuid + id: uuid + orgId: uuid + ruleId: uuid + subjectDisplayName: String + subjectId: uuid + subjectSecondaryId: String + updatedAt: timestamptz + updatedBy: uuid + validFrom: timestamptz + validTo: timestamptz + weight: smallint +} + """ response of any mutation on the table "policies" """ @@ -2850,7 +3516,8 @@ input policies_order_by { createdAt: order_by createdBy: order_by id: order_by - organization: order_by + orgId: order_by + organization: organizations_order_by rule: rules_order_by ruleId: order_by subjectDisplayName: order_by @@ -2886,7 +3553,7 @@ enum policies_select_column { id """column name""" - organization + orgId """column name""" ruleId @@ -2924,12 +3591,26 @@ input type for updating data in table "policies" """ input policies_set_input { active: Boolean - deletedAt: timestamptz validFrom: timestamptz validTo: timestamptz weight: smallint } +"""aggregate stddev on columns""" +type policies_stddev_fields { + weight: Float +} + +"""aggregate stddev_pop on columns""" +type policies_stddev_pop_fields { + weight: Float +} + +"""aggregate stddev_samp on columns""" +type policies_stddev_samp_fields { + weight: Float +} + """ Streaming cursor of the table "policies" """ @@ -2945,21 +3626,26 @@ input policies_stream_cursor_input { input policies_stream_cursor_value_input { active: Boolean createdAt: timestamptz - createdBy: String + createdBy: uuid id: uuid - organization: String + orgId: uuid ruleId: uuid subjectDisplayName: String subjectId: uuid subjectSecondaryId: String subjectType: subject_type_enum updatedAt: timestamptz - updatedBy: String + updatedBy: uuid validFrom: timestamptz validTo: timestamptz weight: smallint } +"""aggregate sum on columns""" +type policies_sum_fields { + weight: smallint +} + """ update columns of table "policies" """ @@ -2967,9 +3653,6 @@ enum policies_update_column { """column name""" active - """column name""" - deletedAt - """column name""" validFrom @@ -2991,59 +3674,41 @@ input policies_updates { where: policies_bool_exp! } -"""Device pools""" -type pools { - annotations: hstore - createdAt: timestamptz! - createdBy: String! - description: String - - """An array relationship""" - devices( - """distinct select on columns""" - distinct_on: [device_pools_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [device_pools_order_by!] - - """filter the rows returned""" - where: device_pools_bool_exp - ): [device_pools!]! - - """An aggregate relationship""" - devices_aggregate( - """distinct select on columns""" - distinct_on: [device_pools_select_column!] - - """limit the number of rows returned""" - limit: Int +"""aggregate var_pop on columns""" +type policies_var_pop_fields { + weight: Float +} - """skip the first n rows. Use only with order_by""" - offset: Int +"""aggregate var_samp on columns""" +type policies_var_samp_fields { + weight: Float +} - """sort the rows by one or more columns""" - order_by: [device_pools_order_by!] +"""aggregate variance on columns""" +type policies_variance_fields { + weight: Float +} - """filter the rows returned""" - where: device_pools_bool_exp - ): device_pools_aggregate! +"""Table containing device pools data""" +type pools { + alternateDns: Boolean + createdAt: timestamptz! + createdBy: uuid! + description: String displayName: String! id: uuid! - organization: String! + metadata( + """JSON select path""" + path: String + ): jsonb + orgId: uuid! + proxyIp: Boolean tags: [String!] updatedAt: timestamptz! - updatedBy: String! + updatedBy: uuid! + version: String } -""" -aggregated selection of "pools" -""" type pools_aggregate { aggregate: pools_aggregate_fields nodes: [pools!]! @@ -3067,6 +3732,11 @@ input pools_aggregate_order_by { min: pools_min_order_by } +"""append existing jsonb value of filtered columns with new jsonb value""" +input pools_append_input { + metadata: jsonb +} + """ Boolean expression to filter rows from the table "pools". All fields are combined with a logical 'AND'. """ @@ -3074,18 +3744,19 @@ input pools_bool_exp { _and: [pools_bool_exp!] _not: pools_bool_exp _or: [pools_bool_exp!] - annotations: hstore_comparison_exp + alternateDns: Boolean_comparison_exp createdAt: timestamptz_comparison_exp - createdBy: String_comparison_exp + createdBy: uuid_comparison_exp description: String_comparison_exp - devices: device_pools_bool_exp - devices_aggregate: device_pools_aggregate_bool_exp displayName: String_comparison_exp id: uuid_comparison_exp - organization: String_comparison_exp + metadata: jsonb_comparison_exp + orgId: uuid_comparison_exp + proxyIp: Boolean_comparison_exp tags: String_array_comparison_exp updatedAt: timestamptz_comparison_exp - updatedBy: String_comparison_exp + updatedBy: uuid_comparison_exp + version: String_comparison_exp } """ @@ -3093,9 +3764,9 @@ unique or primary key constraints on table "pools" """ enum pools_constraint { """ - unique or primary key constraint on columns "display_name", "organization" + unique or primary key constraint on columns "display_name", "org_id" """ - pools_display_name_organization_unique + pools_org_id_display_name_key """ unique or primary key constraint on columns "id" @@ -3103,29 +3774,52 @@ enum pools_constraint { pools_pkey } +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input pools_delete_at_path_input { + metadata: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input pools_delete_elem_input { + metadata: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input pools_delete_key_input { + metadata: String +} + """ input type for inserting data into table "pools" """ input pools_insert_input { - annotations: hstore + alternateDns: Boolean description: String - devices: device_pools_arr_rel_insert_input displayName: String - organization: String + metadata: jsonb + proxyIp: Boolean tags: [String!] + version: String } """aggregate max on columns""" type pools_max_fields { createdAt: timestamptz - createdBy: String + createdBy: uuid description: String displayName: String id: uuid - organization: String + orgId: uuid tags: [String!] updatedAt: timestamptz - updatedBy: String + updatedBy: uuid + version: String } """ @@ -3137,23 +3831,25 @@ input pools_max_order_by { description: order_by displayName: order_by id: order_by - organization: order_by + orgId: order_by tags: order_by updatedAt: order_by updatedBy: order_by + version: order_by } """aggregate min on columns""" type pools_min_fields { createdAt: timestamptz - createdBy: String + createdBy: uuid description: String displayName: String id: uuid - organization: String + orgId: uuid tags: [String!] updatedAt: timestamptz - updatedBy: String + updatedBy: uuid + version: String } """ @@ -3165,10 +3861,11 @@ input pools_min_order_by { description: order_by displayName: order_by id: order_by - organization: order_by + orgId: order_by tags: order_by updatedAt: order_by updatedBy: order_by + version: order_by } """ @@ -3203,17 +3900,19 @@ input pools_on_conflict { """Ordering options when selecting data from "pools".""" input pools_order_by { - annotations: order_by + alternateDns: order_by createdAt: order_by createdBy: order_by description: order_by - devices_aggregate: device_pools_aggregate_order_by displayName: order_by id: order_by - organization: order_by + metadata: order_by + orgId: order_by + proxyIp: order_by tags: order_by updatedAt: order_by updatedBy: order_by + version: order_by } """primary key columns input for table: pools""" @@ -3221,12 +3920,17 @@ input pools_pk_columns_input { id: uuid! } +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input pools_prepend_input { + metadata: jsonb +} + """ select columns of table "pools" """ enum pools_select_column { """column name""" - annotations + alternateDns """column name""" createdAt @@ -3244,7 +3948,13 @@ enum pools_select_column { id """column name""" - organization + metadata + + """column name""" + orgId + + """column name""" + proxyIp """column name""" tags @@ -3254,17 +3964,22 @@ enum pools_select_column { """column name""" updatedBy + + """column name""" + version } """ input type for updating data in table "pools" """ input pools_set_input { - annotations: hstore - deletedAt: timestamptz + alternateDns: Boolean description: String displayName: String + metadata: jsonb + proxyIp: Boolean tags: [String!] + version: String } """ @@ -3280,16 +3995,19 @@ input pools_stream_cursor_input { """Initial value of the column from where the streaming should start""" input pools_stream_cursor_value_input { - annotations: hstore + alternateDns: Boolean createdAt: timestamptz - createdBy: String + createdBy: uuid description: String displayName: String id: uuid - organization: String + metadata: jsonb + orgId: uuid + proxyIp: Boolean tags: [String!] updatedAt: timestamptz - updatedBy: String + updatedBy: uuid + version: String } """ @@ -3297,10 +4015,7 @@ update columns of table "pools" """ enum pools_update_column { """column name""" - annotations - - """column name""" - deletedAt + alternateDns """column name""" description @@ -3308,39 +4023,52 @@ enum pools_update_column { """column name""" displayName + """column name""" + metadata + + """column name""" + proxyIp + """column name""" tags + + """column name""" + version } input pools_updates { - """sets the columns of the filtered rows to the given values""" - _set: pools_set_input - - """filter the rows which have to be updated""" - where: pools_bool_exp! -} + """append existing jsonb value of filtered columns with new jsonb value""" + _append: pools_append_input -"""network protocol enum""" -type protocol { - description: String! - value: String! -} + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: pools_delete_at_path_input -""" -aggregated selection of "protocol" -""" -type protocol_aggregate { - aggregate: protocol_aggregate_fields - nodes: [protocol!]! + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: pools_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: pools_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: pools_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: pools_set_input + + """filter the rows which have to be updated""" + where: pools_bool_exp! } -""" -aggregate fields of "protocol" -""" -type protocol_aggregate_fields { - count(columns: [protocol_select_column!], distinct: Boolean): Int! - max: protocol_max_fields - min: protocol_min_fields +"""policy network protocol enum""" +type protocol { + description: String! + value: String! } """ @@ -3394,18 +4122,6 @@ input protocol_enum_comparison_exp { _nin: [protocol_enum!] } -"""aggregate max on columns""" -type protocol_max_fields { - description: String - value: String -} - -"""aggregate min on columns""" -type protocol_min_fields { - description: String - value: String -} - """Ordering options when selecting data from "protocol".""" input protocol_order_by { description: order_by @@ -3467,12 +4183,20 @@ type query_root { where: action_bool_exp ): [action!]! + """fetch data from the table: "action" using primary key columns""" + action_by_pk(value: String!): action + + """ + fetch data from the table: "auth.refresh_tokens" using primary key columns + """ + authRefreshToken(id: uuid!): authRefreshTokens + """ - fetch aggregated fields from the table: "action" + fetch data from the table: "auth.refresh_tokens" """ - action_aggregate( + authRefreshTokens( """distinct select on columns""" - distinct_on: [action_select_column!] + distinct_on: [authRefreshTokens_select_column!] """limit the number of rows returned""" limit: Int @@ -3481,24 +4205,16 @@ type query_root { offset: Int """sort the rows by one or more columns""" - order_by: [action_order_by!] + order_by: [authRefreshTokens_order_by!] """filter the rows returned""" - where: action_bool_exp - ): action_aggregate! - - """fetch data from the table: "action" using primary key columns""" - action_by_pk(value: String!): action - - """ - fetch data from the table: "auth.refresh_tokens" using primary key columns - """ - authRefreshToken(id: uuid!): authRefreshTokens + where: authRefreshTokens_bool_exp + ): [authRefreshTokens!]! """ - fetch data from the table: "auth.refresh_tokens" + fetch aggregated fields from the table: "auth.refresh_tokens" """ - authRefreshTokens( + authRefreshTokensAggregate( """distinct select on columns""" distinct_on: [authRefreshTokens_select_column!] @@ -3513,7 +4229,7 @@ type query_root { """filter the rows returned""" where: authRefreshTokens_bool_exp - ): [authRefreshTokens!]! + ): authRefreshTokens_aggregate! """ fetch data from the table: "auth.user_providers" using primary key columns @@ -3540,6 +4256,26 @@ type query_root { where: authUserProviders_bool_exp ): [authUserProviders!]! + """ + fetch aggregated fields from the table: "auth.user_providers" + """ + authUserProvidersAggregate( + """distinct select on columns""" + distinct_on: [authUserProviders_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [authUserProviders_order_by!] + + """filter the rows returned""" + where: authUserProviders_bool_exp + ): authUserProviders_aggregate! + """fetch data from the table: "auth.user_roles" using primary key columns""" authUserRole(id: uuid!): authUserRoles @@ -3608,6 +4344,126 @@ type query_root { where: authUserSecurityKeys_bool_exp ): [authUserSecurityKeys!]! + """ + fetch aggregated fields from the table: "auth.user_security_keys" + """ + authUserSecurityKeysAggregate( + """distinct select on columns""" + distinct_on: [authUserSecurityKeys_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [authUserSecurityKeys_order_by!] + + """filter the rows returned""" + where: authUserSecurityKeys_bool_exp + ): authUserSecurityKeys_aggregate! + + """ + execute function "device_associated_pools" which returns "pools" + """ + device_associated_pools( + """ + input parameters for function "device_associated_pools" + """ + args: device_associated_pools_args! + + """distinct select on columns""" + distinct_on: [pools_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pools_order_by!] + + """filter the rows returned""" + where: pools_bool_exp + ): [pools!]! + + """ + execute function "device_associated_pools" and query aggregates on result of table type "pools" + """ + device_associated_pools_aggregate( + """ + input parameters for function "device_associated_pools_aggregate" + """ + args: device_associated_pools_args! + + """distinct select on columns""" + distinct_on: [pools_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pools_order_by!] + + """filter the rows returned""" + where: pools_bool_exp + ): pools_aggregate! + + """ + execute function "device_dissociated_pools" which returns "pools" + """ + device_dissociated_pools( + """ + input parameters for function "device_dissociated_pools" + """ + args: device_dissociated_pools_args! + + """distinct select on columns""" + distinct_on: [pools_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pools_order_by!] + + """filter the rows returned""" + where: pools_bool_exp + ): [pools!]! + + """ + execute function "device_dissociated_pools" and query aggregates on result of table type "pools" + """ + device_dissociated_pools_aggregate( + """ + input parameters for function "device_dissociated_pools_aggregate" + """ + args: device_dissociated_pools_args! + + """distinct select on columns""" + distinct_on: [pools_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pools_order_by!] + + """filter the rows returned""" + where: pools_bool_exp + ): pools_aggregate! + """ fetch data from the table: "device_pools" """ @@ -3649,7 +4505,7 @@ type query_root { ): device_pools_aggregate! """fetch data from the table: "device_pools" using primary key columns""" - device_pools_by_pk(id: uuid!): device_pools + device_pools_by_pk(deviceId: uuid!, poolId: uuid!): device_pools """ fetch data from the table: "devices" @@ -3714,38 +4570,13 @@ type query_root { where: direction_bool_exp ): [direction!]! - """ - fetch aggregated fields from the table: "direction" - """ - direction_aggregate( - """distinct select on columns""" - distinct_on: [direction_select_column!] - - """limit the number of rows returned""" - limit: Int - - """skip the first n rows. Use only with order_by""" - offset: Int - - """sort the rows by one or more columns""" - order_by: [direction_order_by!] - - """filter the rows returned""" - where: direction_bool_exp - ): direction_aggregate! - """fetch data from the table: "direction" using primary key columns""" direction_by_pk(value: String!): direction - """fetch data from the table: "storage.files" using primary key columns""" - file(id: uuid!): files - - """ - fetch data from the table: "storage.files" - """ - files( + """An array relationship""" + groups( """distinct select on columns""" - distinct_on: [files_select_column!] + distinct_on: [groups_select_column!] """limit the number of rows returned""" limit: Int @@ -3754,16 +4585,14 @@ type query_root { offset: Int """sort the rows by one or more columns""" - order_by: [files_order_by!] + order_by: [groups_order_by!] """filter the rows returned""" - where: files_bool_exp - ): [files!]! + where: groups_bool_exp + ): [groups!]! - """ - fetch data from the table: "groups" - """ - groups( + """An aggregate relationship""" + groups_aggregate( """distinct select on columns""" distinct_on: [groups_select_column!] @@ -3778,7 +4607,7 @@ type query_root { """filter the rows returned""" where: groups_bool_exp - ): [groups!]! + ): groups_aggregate! """fetch data from the table: "groups" using primary key columns""" groups_by_pk(id: uuid!): groups @@ -3803,15 +4632,12 @@ type query_root { where: organizations_bool_exp ): [organizations!]! - """fetch data from the table: "organizations" using primary key columns""" - organizations_by_pk(organization: String!): organizations - """ - fetch data from the table: "policies" + fetch aggregated fields from the table: "organizations" """ - policies( + organizations_aggregate( """distinct select on columns""" - distinct_on: [policies_select_column!] + distinct_on: [organizations_select_column!] """limit the number of rows returned""" limit: Int @@ -3820,21 +4646,21 @@ type query_root { offset: Int """sort the rows by one or more columns""" - order_by: [policies_order_by!] + order_by: [organizations_order_by!] """filter the rows returned""" - where: policies_bool_exp - ): [policies!]! + where: organizations_bool_exp + ): organizations_aggregate! - """fetch data from the table: "policies" using primary key columns""" - policies_by_pk(id: uuid!): policies + """fetch data from the table: "organizations" using primary key columns""" + organizations_by_pk(id: uuid!): organizations """ - fetch data from the table: "pools" + fetch data from the table: "plan" """ - pools( + plan( """distinct select on columns""" - distinct_on: [pools_select_column!] + distinct_on: [plan_select_column!] """limit the number of rows returned""" limit: Int @@ -3843,18 +4669,21 @@ type query_root { offset: Int """sort the rows by one or more columns""" - order_by: [pools_order_by!] + order_by: [plan_order_by!] """filter the rows returned""" - where: pools_bool_exp - ): [pools!]! + where: plan_bool_exp + ): [plan!]! + + """fetch data from the table: "plan" using primary key columns""" + plan_by_pk(value: String!): plan """ - fetch aggregated fields from the table: "pools" + fetch data from the table: "policies" """ - pools_aggregate( + policies( """distinct select on columns""" - distinct_on: [pools_select_column!] + distinct_on: [policies_select_column!] """limit the number of rows returned""" limit: Int @@ -3863,21 +4692,18 @@ type query_root { offset: Int """sort the rows by one or more columns""" - order_by: [pools_order_by!] + order_by: [policies_order_by!] """filter the rows returned""" - where: pools_bool_exp - ): pools_aggregate! - - """fetch data from the table: "pools" using primary key columns""" - pools_by_pk(id: uuid!): pools + where: policies_bool_exp + ): [policies!]! """ - fetch data from the table: "protocol" + fetch aggregated fields from the table: "policies" """ - protocol( + policies_aggregate( """distinct select on columns""" - distinct_on: [protocol_select_column!] + distinct_on: [policies_select_column!] """limit the number of rows returned""" limit: Int @@ -3886,16 +4712,62 @@ type query_root { offset: Int """sort the rows by one or more columns""" - order_by: [protocol_order_by!] + order_by: [policies_order_by!] """filter the rows returned""" - where: protocol_bool_exp - ): [protocol!]! + where: policies_bool_exp + ): policies_aggregate! + + """fetch data from the table: "policies" using primary key columns""" + policies_by_pk(id: uuid!): policies + + """ + fetch data from the table: "pools" + """ + pools( + """distinct select on columns""" + distinct_on: [pools_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pools_order_by!] + + """filter the rows returned""" + where: pools_bool_exp + ): [pools!]! + + """ + fetch aggregated fields from the table: "pools" + """ + pools_aggregate( + """distinct select on columns""" + distinct_on: [pools_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pools_order_by!] + + """filter the rows returned""" + where: pools_bool_exp + ): pools_aggregate! + + """fetch data from the table: "pools" using primary key columns""" + pools_by_pk(id: uuid!): pools """ - fetch aggregated fields from the table: "protocol" + fetch data from the table: "protocol" """ - protocol_aggregate( + protocol( """distinct select on columns""" distinct_on: [protocol_select_column!] @@ -3910,7 +4782,7 @@ type query_root { """filter the rows returned""" where: protocol_bool_exp - ): protocol_aggregate! + ): [protocol!]! """fetch data from the table: "protocol" using primary key columns""" protocol_by_pk(value: String!): protocol @@ -3935,9 +4807,52 @@ type query_root { where: rules_bool_exp ): [rules!]! + """ + fetch aggregated fields from the table: "rules" + """ + rules_aggregate( + """distinct select on columns""" + distinct_on: [rules_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [rules_order_by!] + + """filter the rows returned""" + where: rules_bool_exp + ): rules_aggregate! + """fetch data from the table: "rules" using primary key columns""" rules_by_pk(id: uuid!): rules + """ + fetch data from the table: "status" + """ + status( + """distinct select on columns""" + distinct_on: [status_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [status_order_by!] + + """filter the rows returned""" + where: status_bool_exp + ): [status!]! + + """fetch data from the table: "status" using primary key columns""" + status_by_pk(value: String!): status + """ fetch data from the table: "subject_type" """ @@ -3961,9 +4876,148 @@ type query_root { """fetch data from the table: "subject_type" using primary key columns""" subject_type_by_pk(value: String!): subject_type + """An array relationship""" + subscriptions( + """distinct select on columns""" + distinct_on: [subscriptions_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [subscriptions_order_by!] + + """filter the rows returned""" + where: subscriptions_bool_exp + ): [subscriptions!]! + + """An aggregate relationship""" + subscriptions_aggregate( + """distinct select on columns""" + distinct_on: [subscriptions_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [subscriptions_order_by!] + + """filter the rows returned""" + where: subscriptions_bool_exp + ): subscriptions_aggregate! + + """fetch data from the table: "subscriptions" using primary key columns""" + subscriptions_by_pk(id: uuid!): subscriptions + """fetch data from the table: "auth.users" using primary key columns""" user(id: uuid!): users + """ + execute function "user_associated_groups" which returns "groups" + """ + user_associated_groups( + """ + input parameters for function "user_associated_groups" + """ + args: user_associated_groups_args! + + """distinct select on columns""" + distinct_on: [groups_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [groups_order_by!] + + """filter the rows returned""" + where: groups_bool_exp + ): [groups!]! + + """ + execute function "user_associated_groups" and query aggregates on result of table type "groups" + """ + user_associated_groups_aggregate( + """ + input parameters for function "user_associated_groups_aggregate" + """ + args: user_associated_groups_args! + + """distinct select on columns""" + distinct_on: [groups_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [groups_order_by!] + + """filter the rows returned""" + where: groups_bool_exp + ): groups_aggregate! + + """ + execute function "user_dissociated_groups" which returns "groups" + """ + user_dissociated_groups( + """ + input parameters for function "user_dissociated_groups" + """ + args: user_dissociated_groups_args! + + """distinct select on columns""" + distinct_on: [groups_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [groups_order_by!] + + """filter the rows returned""" + where: groups_bool_exp + ): [groups!]! + + """ + execute function "user_dissociated_groups" and query aggregates on result of table type "groups" + """ + user_dissociated_groups_aggregate( + """ + input parameters for function "user_dissociated_groups_aggregate" + """ + args: user_dissociated_groups_args! + + """distinct select on columns""" + distinct_on: [groups_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [groups_order_by!] + + """filter the rows returned""" + where: groups_bool_exp + ): groups_aggregate! + """ fetch data from the table: "user_groups" """ @@ -3984,8 +5038,28 @@ type query_root { where: user_groups_bool_exp ): [user_groups!]! + """ + fetch aggregated fields from the table: "user_groups" + """ + user_groups_aggregate( + """distinct select on columns""" + distinct_on: [user_groups_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [user_groups_order_by!] + + """filter the rows returned""" + where: user_groups_bool_exp + ): user_groups_aggregate! + """fetch data from the table: "user_groups" using primary key columns""" - user_groups_by_pk(id: uuid!): user_groups + user_groups_by_pk(groupId: uuid!, userId: uuid!): user_groups """ fetch data from the table: "user_org_roles" @@ -4028,7 +5102,7 @@ type query_root { ): user_org_roles_aggregate! """fetch data from the table: "user_org_roles" using primary key columns""" - user_org_roles_by_pk(id: uuid!): user_org_roles + user_org_roles_by_pk(orgId: uuid!, userId: uuid!): user_org_roles """ fetch data from the table: "auth.users" @@ -4049,22 +5123,45 @@ type query_root { """filter the rows returned""" where: users_bool_exp ): [users!]! + + """ + fetch aggregated fields from the table: "auth.users" + """ + usersAggregate( + """distinct select on columns""" + distinct_on: [users_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [users_order_by!] + + """filter the rows returned""" + where: users_bool_exp + ): users_aggregate! } -"""5-tuple firewalls rules""" +"""Table containing shared or single-use 5-tuple firewalls rules""" type rules { action: action_enum! - annotations: hstore appId: String createdAt: timestamptz! - createdBy: String! + createdBy: uuid! description: String destination: String destinationPort: String direction: direction_enum! displayName: String! id: uuid! - organization: String! + metadata( + """JSON select path""" + path: String + ): jsonb + orgId: uuid! protocol: protocol_enum! shared: Boolean! source: String @@ -4072,10 +5169,45 @@ type rules { tags: [String!] throttleRate: String updatedAt: timestamptz! - updatedBy: String! + updatedBy: uuid! weight: smallint! } +""" +aggregated selection of "rules" +""" +type rules_aggregate { + aggregate: rules_aggregate_fields + nodes: [rules!]! +} + +""" +aggregate fields of "rules" +""" +type rules_aggregate_fields { + avg: rules_avg_fields + count(columns: [rules_select_column!], distinct: Boolean): Int! + max: rules_max_fields + min: rules_min_fields + stddev: rules_stddev_fields + stddev_pop: rules_stddev_pop_fields + stddev_samp: rules_stddev_samp_fields + sum: rules_sum_fields + var_pop: rules_var_pop_fields + var_samp: rules_var_samp_fields + variance: rules_variance_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input rules_append_input { + metadata: jsonb +} + +"""aggregate avg on columns""" +type rules_avg_fields { + weight: Float +} + """ Boolean expression to filter rows from the table "rules". All fields are combined with a logical 'AND'. """ @@ -4084,17 +5216,17 @@ input rules_bool_exp { _not: rules_bool_exp _or: [rules_bool_exp!] action: action_enum_comparison_exp - annotations: hstore_comparison_exp appId: String_comparison_exp createdAt: timestamptz_comparison_exp - createdBy: String_comparison_exp + createdBy: uuid_comparison_exp description: String_comparison_exp destination: String_comparison_exp destinationPort: String_comparison_exp direction: direction_enum_comparison_exp displayName: String_comparison_exp id: uuid_comparison_exp - organization: String_comparison_exp + metadata: jsonb_comparison_exp + orgId: uuid_comparison_exp protocol: protocol_enum_comparison_exp shared: Boolean_comparison_exp source: String_comparison_exp @@ -4102,7 +5234,7 @@ input rules_bool_exp { tags: String_array_comparison_exp throttleRate: String_comparison_exp updatedAt: timestamptz_comparison_exp - updatedBy: String_comparison_exp + updatedBy: uuid_comparison_exp weight: smallint_comparison_exp } @@ -4111,9 +5243,9 @@ unique or primary key constraints on table "rules" """ enum rules_constraint { """ - unique or primary key constraint on columns "display_name", "organization" + unique or primary key constraint on columns "display_name", "org_id" """ - rules_display_name_organization_unique + rules_org_id_display_name_key """ unique or primary key constraint on columns "id" @@ -4122,25 +5254,45 @@ enum rules_constraint { } """ -input type for incrementing numeric columns in table "rules" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) """ -input rules_inc_input { - weight: smallint +input rules_delete_at_path_input { + metadata: [String!] } """ -input type for inserting data into table "rules" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input rules_delete_elem_input { + metadata: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input rules_delete_key_input { + metadata: String +} + +""" +input type for incrementing numeric columns in table "rules" +""" +input rules_inc_input { + weight: smallint +} + +""" +input type for inserting data into table "rules" """ input rules_insert_input { action: action_enum - annotations: hstore appId: String description: String destination: String destinationPort: String direction: direction_enum displayName: String - organization: String + metadata: jsonb protocol: protocol_enum shared: Boolean source: String @@ -4150,6 +5302,46 @@ input rules_insert_input { weight: smallint } +"""aggregate max on columns""" +type rules_max_fields { + appId: String + createdAt: timestamptz + createdBy: uuid + description: String + destination: String + destinationPort: String + displayName: String + id: uuid + orgId: uuid + source: String + sourcePort: String + tags: [String!] + throttleRate: String + updatedAt: timestamptz + updatedBy: uuid + weight: smallint +} + +"""aggregate min on columns""" +type rules_min_fields { + appId: String + createdAt: timestamptz + createdBy: uuid + description: String + destination: String + destinationPort: String + displayName: String + id: uuid + orgId: uuid + source: String + sourcePort: String + tags: [String!] + throttleRate: String + updatedAt: timestamptz + updatedBy: uuid + weight: smallint +} + """ response of any mutation on the table "rules" """ @@ -4183,7 +5375,6 @@ input rules_on_conflict { """Ordering options when selecting data from "rules".""" input rules_order_by { action: order_by - annotations: order_by appId: order_by createdAt: order_by createdBy: order_by @@ -4193,7 +5384,8 @@ input rules_order_by { direction: order_by displayName: order_by id: order_by - organization: order_by + metadata: order_by + orgId: order_by protocol: order_by shared: order_by source: order_by @@ -4210,6 +5402,11 @@ input rules_pk_columns_input { id: uuid! } +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input rules_prepend_input { + metadata: jsonb +} + """ select columns of table "rules" """ @@ -4217,9 +5414,6 @@ enum rules_select_column { """column name""" action - """column name""" - annotations - """column name""" appId @@ -4248,7 +5442,10 @@ enum rules_select_column { id """column name""" - organization + metadata + + """column name""" + orgId """column name""" protocol @@ -4283,15 +5480,13 @@ input type for updating data in table "rules" """ input rules_set_input { action: action_enum - annotations: hstore appId: String - deletedAt: timestamptz description: String destination: String destinationPort: String direction: direction_enum displayName: String - organization: String + metadata: jsonb protocol: protocol_enum shared: Boolean source: String @@ -4301,6 +5496,21 @@ input rules_set_input { weight: smallint } +"""aggregate stddev on columns""" +type rules_stddev_fields { + weight: Float +} + +"""aggregate stddev_pop on columns""" +type rules_stddev_pop_fields { + weight: Float +} + +"""aggregate stddev_samp on columns""" +type rules_stddev_samp_fields { + weight: Float +} + """ Streaming cursor of the table "rules" """ @@ -4315,17 +5525,17 @@ input rules_stream_cursor_input { """Initial value of the column from where the streaming should start""" input rules_stream_cursor_value_input { action: action_enum - annotations: hstore appId: String createdAt: timestamptz - createdBy: String + createdBy: uuid description: String destination: String destinationPort: String direction: direction_enum displayName: String id: uuid - organization: String + metadata: jsonb + orgId: uuid protocol: protocol_enum shared: Boolean source: String @@ -4333,7 +5543,12 @@ input rules_stream_cursor_value_input { tags: [String!] throttleRate: String updatedAt: timestamptz - updatedBy: String + updatedBy: uuid + weight: smallint +} + +"""aggregate sum on columns""" +type rules_sum_fields { weight: smallint } @@ -4344,15 +5559,9 @@ enum rules_update_column { """column name""" action - """column name""" - annotations - """column name""" appId - """column name""" - deletedAt - """column name""" description @@ -4369,7 +5578,7 @@ enum rules_update_column { displayName """column name""" - organization + metadata """column name""" protocol @@ -4394,9 +5603,30 @@ enum rules_update_column { } input rules_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: rules_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: rules_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: rules_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: rules_delete_key_input + """increments the numeric columns with given value of the filtered values""" _inc: rules_inc_input + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: rules_prepend_input + """sets the columns of the filtered rows to the given values""" _set: rules_set_input @@ -4404,6 +5634,21 @@ input rules_updates { where: rules_bool_exp! } +"""aggregate var_pop on columns""" +type rules_var_pop_fields { + weight: Float +} + +"""aggregate var_samp on columns""" +type rules_var_samp_fields { + weight: Float +} + +"""aggregate variance on columns""" +type rules_variance_fields { + weight: Float +} + scalar smallint """ @@ -4421,7 +5666,80 @@ input smallint_comparison_exp { _nin: [smallint!] } -"""subject enum""" +"""status enum""" +type status { + description: String! + value: String! +} + +""" +Boolean expression to filter rows from the table "status". All fields are combined with a logical 'AND'. +""" +input status_bool_exp { + _and: [status_bool_exp!] + _not: status_bool_exp + _or: [status_bool_exp!] + description: String_comparison_exp + value: String_comparison_exp +} + +enum status_enum { + """Active""" + active + + """Closed""" + closed + + """Disabled""" + disabled +} + +""" +Boolean expression to compare columns of type "status_enum". All fields are combined with logical 'AND'. +""" +input status_enum_comparison_exp { + _eq: status_enum + _in: [status_enum!] + _is_null: Boolean + _neq: status_enum + _nin: [status_enum!] +} + +"""Ordering options when selecting data from "status".""" +input status_order_by { + description: order_by + value: order_by +} + +""" +select columns of table "status" +""" +enum status_select_column { + """column name""" + description + + """column name""" + value +} + +""" +Streaming cursor of the table "status" +""" +input status_stream_cursor_input { + """Stream column input with initial value""" + initial_value: status_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input status_stream_cursor_value_input { + description: String + value: String +} + +"""policy subject type enum""" type subject_type { description: String! value: String! @@ -4466,47 +5784,418 @@ input subject_type_enum_comparison_exp { _nin: [subject_type_enum!] } -"""Ordering options when selecting data from "subject_type".""" -input subject_type_order_by { - description: order_by - value: order_by -} +"""Ordering options when selecting data from "subject_type".""" +input subject_type_order_by { + description: order_by + value: order_by +} + +""" +select columns of table "subject_type" +""" +enum subject_type_select_column { + """column name""" + description + + """column name""" + value +} + +""" +Streaming cursor of the table "subject_type" +""" +input subject_type_stream_cursor_input { + """Stream column input with initial value""" + initial_value: subject_type_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input subject_type_stream_cursor_value_input { + description: String + value: String +} + +type subscription_root { + """ + fetch data from the table: "action" + """ + action( + """distinct select on columns""" + distinct_on: [action_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [action_order_by!] + + """filter the rows returned""" + where: action_bool_exp + ): [action!]! + + """fetch data from the table: "action" using primary key columns""" + action_by_pk(value: String!): action + + """ + fetch data from the table in a streaming manner: "action" + """ + action_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [action_stream_cursor_input]! + + """filter the rows returned""" + where: action_bool_exp + ): [action!]! + + """ + fetch data from the table: "auth.refresh_tokens" using primary key columns + """ + authRefreshToken(id: uuid!): authRefreshTokens + + """ + fetch data from the table: "auth.refresh_tokens" + """ + authRefreshTokens( + """distinct select on columns""" + distinct_on: [authRefreshTokens_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [authRefreshTokens_order_by!] + + """filter the rows returned""" + where: authRefreshTokens_bool_exp + ): [authRefreshTokens!]! + + """ + fetch aggregated fields from the table: "auth.refresh_tokens" + """ + authRefreshTokensAggregate( + """distinct select on columns""" + distinct_on: [authRefreshTokens_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [authRefreshTokens_order_by!] + + """filter the rows returned""" + where: authRefreshTokens_bool_exp + ): authRefreshTokens_aggregate! + + """ + fetch data from the table in a streaming manner: "auth.refresh_tokens" + """ + authRefreshTokens_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [authRefreshTokens_stream_cursor_input]! + + """filter the rows returned""" + where: authRefreshTokens_bool_exp + ): [authRefreshTokens!]! + + """ + fetch data from the table: "auth.user_providers" using primary key columns + """ + authUserProvider(id: uuid!): authUserProviders + + """ + fetch data from the table: "auth.user_providers" + """ + authUserProviders( + """distinct select on columns""" + distinct_on: [authUserProviders_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [authUserProviders_order_by!] + + """filter the rows returned""" + where: authUserProviders_bool_exp + ): [authUserProviders!]! + + """ + fetch aggregated fields from the table: "auth.user_providers" + """ + authUserProvidersAggregate( + """distinct select on columns""" + distinct_on: [authUserProviders_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [authUserProviders_order_by!] + + """filter the rows returned""" + where: authUserProviders_bool_exp + ): authUserProviders_aggregate! + + """ + fetch data from the table in a streaming manner: "auth.user_providers" + """ + authUserProviders_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [authUserProviders_stream_cursor_input]! + + """filter the rows returned""" + where: authUserProviders_bool_exp + ): [authUserProviders!]! + + """fetch data from the table: "auth.user_roles" using primary key columns""" + authUserRole(id: uuid!): authUserRoles + + """ + fetch data from the table: "auth.user_roles" + """ + authUserRoles( + """distinct select on columns""" + distinct_on: [authUserRoles_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [authUserRoles_order_by!] + + """filter the rows returned""" + where: authUserRoles_bool_exp + ): [authUserRoles!]! + + """ + fetch aggregated fields from the table: "auth.user_roles" + """ + authUserRolesAggregate( + """distinct select on columns""" + distinct_on: [authUserRoles_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [authUserRoles_order_by!] + + """filter the rows returned""" + where: authUserRoles_bool_exp + ): authUserRoles_aggregate! + + """ + fetch data from the table in a streaming manner: "auth.user_roles" + """ + authUserRoles_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [authUserRoles_stream_cursor_input]! + + """filter the rows returned""" + where: authUserRoles_bool_exp + ): [authUserRoles!]! + + """ + fetch data from the table: "auth.user_security_keys" using primary key columns + """ + authUserSecurityKey(id: uuid!): authUserSecurityKeys + + """ + fetch data from the table: "auth.user_security_keys" + """ + authUserSecurityKeys( + """distinct select on columns""" + distinct_on: [authUserSecurityKeys_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [authUserSecurityKeys_order_by!] + + """filter the rows returned""" + where: authUserSecurityKeys_bool_exp + ): [authUserSecurityKeys!]! + + """ + fetch aggregated fields from the table: "auth.user_security_keys" + """ + authUserSecurityKeysAggregate( + """distinct select on columns""" + distinct_on: [authUserSecurityKeys_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [authUserSecurityKeys_order_by!] + + """filter the rows returned""" + where: authUserSecurityKeys_bool_exp + ): authUserSecurityKeys_aggregate! + + """ + fetch data from the table in a streaming manner: "auth.user_security_keys" + """ + authUserSecurityKeys_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [authUserSecurityKeys_stream_cursor_input]! + + """filter the rows returned""" + where: authUserSecurityKeys_bool_exp + ): [authUserSecurityKeys!]! + + """ + execute function "device_associated_pools" which returns "pools" + """ + device_associated_pools( + """ + input parameters for function "device_associated_pools" + """ + args: device_associated_pools_args! + + """distinct select on columns""" + distinct_on: [pools_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pools_order_by!] + + """filter the rows returned""" + where: pools_bool_exp + ): [pools!]! + + """ + execute function "device_associated_pools" and query aggregates on result of table type "pools" + """ + device_associated_pools_aggregate( + """ + input parameters for function "device_associated_pools_aggregate" + """ + args: device_associated_pools_args! + + """distinct select on columns""" + distinct_on: [pools_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pools_order_by!] + + """filter the rows returned""" + where: pools_bool_exp + ): pools_aggregate! + + """ + execute function "device_dissociated_pools" which returns "pools" + """ + device_dissociated_pools( + """ + input parameters for function "device_dissociated_pools" + """ + args: device_dissociated_pools_args! + + """distinct select on columns""" + distinct_on: [pools_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int -""" -select columns of table "subject_type" -""" -enum subject_type_select_column { - """column name""" - description + """sort the rows by one or more columns""" + order_by: [pools_order_by!] - """column name""" - value -} + """filter the rows returned""" + where: pools_bool_exp + ): [pools!]! -""" -Streaming cursor of the table "subject_type" -""" -input subject_type_stream_cursor_input { - """Stream column input with initial value""" - initial_value: subject_type_stream_cursor_value_input! + """ + execute function "device_dissociated_pools" and query aggregates on result of table type "pools" + """ + device_dissociated_pools_aggregate( + """ + input parameters for function "device_dissociated_pools_aggregate" + """ + args: device_dissociated_pools_args! - """cursor ordering""" - ordering: cursor_ordering -} + """distinct select on columns""" + distinct_on: [pools_select_column!] -"""Initial value of the column from where the streaming should start""" -input subject_type_stream_cursor_value_input { - description: String - value: String -} + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pools_order_by!] + + """filter the rows returned""" + where: pools_bool_exp + ): pools_aggregate! -type subscription_root { """ - fetch data from the table: "action" + fetch data from the table: "device_pools" """ - action( + device_pools( """distinct select on columns""" - distinct_on: [action_select_column!] + distinct_on: [device_pools_select_column!] """limit the number of rows returned""" limit: Int @@ -4515,18 +6204,18 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [action_order_by!] + order_by: [device_pools_order_by!] """filter the rows returned""" - where: action_bool_exp - ): [action!]! + where: device_pools_bool_exp + ): [device_pools!]! """ - fetch aggregated fields from the table: "action" + fetch aggregated fields from the table: "device_pools" """ - action_aggregate( + device_pools_aggregate( """distinct select on columns""" - distinct_on: [action_select_column!] + distinct_on: [device_pools_select_column!] """limit the number of rows returned""" limit: Int @@ -4535,40 +6224,55 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [action_order_by!] + order_by: [device_pools_order_by!] """filter the rows returned""" - where: action_bool_exp - ): action_aggregate! + where: device_pools_bool_exp + ): device_pools_aggregate! - """fetch data from the table: "action" using primary key columns""" - action_by_pk(value: String!): action + """fetch data from the table: "device_pools" using primary key columns""" + device_pools_by_pk(deviceId: uuid!, poolId: uuid!): device_pools """ - fetch data from the table in a streaming manner: "action" + fetch data from the table in a streaming manner: "device_pools" """ - action_stream( + device_pools_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [action_stream_cursor_input]! + cursor: [device_pools_stream_cursor_input]! """filter the rows returned""" - where: action_bool_exp - ): [action!]! + where: device_pools_bool_exp + ): [device_pools!]! """ - fetch data from the table: "auth.refresh_tokens" using primary key columns + fetch data from the table: "devices" """ - authRefreshToken(id: uuid!): authRefreshTokens + devices( + """distinct select on columns""" + distinct_on: [devices_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [devices_order_by!] + + """filter the rows returned""" + where: devices_bool_exp + ): [devices!]! """ - fetch data from the table: "auth.refresh_tokens" + fetch aggregated fields from the table: "devices" """ - authRefreshTokens( + devices_aggregate( """distinct select on columns""" - distinct_on: [authRefreshTokens_select_column!] + distinct_on: [devices_select_column!] """limit the number of rows returned""" limit: Int @@ -4577,37 +6281,35 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [authRefreshTokens_order_by!] + order_by: [devices_order_by!] """filter the rows returned""" - where: authRefreshTokens_bool_exp - ): [authRefreshTokens!]! + where: devices_bool_exp + ): devices_aggregate! + + """fetch data from the table: "devices" using primary key columns""" + devices_by_pk(id: uuid!): devices """ - fetch data from the table in a streaming manner: "auth.refresh_tokens" + fetch data from the table in a streaming manner: "devices" """ - authRefreshTokens_stream( + devices_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [authRefreshTokens_stream_cursor_input]! + cursor: [devices_stream_cursor_input]! """filter the rows returned""" - where: authRefreshTokens_bool_exp - ): [authRefreshTokens!]! - - """ - fetch data from the table: "auth.user_providers" using primary key columns - """ - authUserProvider(id: uuid!): authUserProviders + where: devices_bool_exp + ): [devices!]! """ - fetch data from the table: "auth.user_providers" + fetch data from the table: "direction" """ - authUserProviders( + direction( """distinct select on columns""" - distinct_on: [authUserProviders_select_column!] + distinct_on: [direction_select_column!] """limit the number of rows returned""" limit: Int @@ -4616,35 +6318,33 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [authUserProviders_order_by!] + order_by: [direction_order_by!] """filter the rows returned""" - where: authUserProviders_bool_exp - ): [authUserProviders!]! + where: direction_bool_exp + ): [direction!]! + + """fetch data from the table: "direction" using primary key columns""" + direction_by_pk(value: String!): direction """ - fetch data from the table in a streaming manner: "auth.user_providers" + fetch data from the table in a streaming manner: "direction" """ - authUserProviders_stream( + direction_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [authUserProviders_stream_cursor_input]! + cursor: [direction_stream_cursor_input]! """filter the rows returned""" - where: authUserProviders_bool_exp - ): [authUserProviders!]! - - """fetch data from the table: "auth.user_roles" using primary key columns""" - authUserRole(id: uuid!): authUserRoles + where: direction_bool_exp + ): [direction!]! - """ - fetch data from the table: "auth.user_roles" - """ - authUserRoles( + """An array relationship""" + groups( """distinct select on columns""" - distinct_on: [authUserRoles_select_column!] + distinct_on: [groups_select_column!] """limit the number of rows returned""" limit: Int @@ -4653,18 +6353,16 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [authUserRoles_order_by!] + order_by: [groups_order_by!] """filter the rows returned""" - where: authUserRoles_bool_exp - ): [authUserRoles!]! + where: groups_bool_exp + ): [groups!]! - """ - fetch aggregated fields from the table: "auth.user_roles" - """ - authUserRolesAggregate( + """An aggregate relationship""" + groups_aggregate( """distinct select on columns""" - distinct_on: [authUserRoles_select_column!] + distinct_on: [groups_select_column!] """limit the number of rows returned""" limit: Int @@ -4673,37 +6371,35 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [authUserRoles_order_by!] + order_by: [groups_order_by!] """filter the rows returned""" - where: authUserRoles_bool_exp - ): authUserRoles_aggregate! + where: groups_bool_exp + ): groups_aggregate! + + """fetch data from the table: "groups" using primary key columns""" + groups_by_pk(id: uuid!): groups """ - fetch data from the table in a streaming manner: "auth.user_roles" + fetch data from the table in a streaming manner: "groups" """ - authUserRoles_stream( + groups_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [authUserRoles_stream_cursor_input]! + cursor: [groups_stream_cursor_input]! """filter the rows returned""" - where: authUserRoles_bool_exp - ): [authUserRoles!]! - - """ - fetch data from the table: "auth.user_security_keys" using primary key columns - """ - authUserSecurityKey(id: uuid!): authUserSecurityKeys + where: groups_bool_exp + ): [groups!]! """ - fetch data from the table: "auth.user_security_keys" + fetch data from the table: "organizations" """ - authUserSecurityKeys( + organizations( """distinct select on columns""" - distinct_on: [authUserSecurityKeys_select_column!] + distinct_on: [organizations_select_column!] """limit the number of rows returned""" limit: Int @@ -4712,32 +6408,18 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [authUserSecurityKeys_order_by!] - - """filter the rows returned""" - where: authUserSecurityKeys_bool_exp - ): [authUserSecurityKeys!]! - - """ - fetch data from the table in a streaming manner: "auth.user_security_keys" - """ - authUserSecurityKeys_stream( - """maximum number of rows returned in a single batch""" - batch_size: Int! - - """cursor to stream the results returned by the query""" - cursor: [authUserSecurityKeys_stream_cursor_input]! + order_by: [organizations_order_by!] """filter the rows returned""" - where: authUserSecurityKeys_bool_exp - ): [authUserSecurityKeys!]! + where: organizations_bool_exp + ): [organizations!]! """ - fetch data from the table: "device_pools" + fetch aggregated fields from the table: "organizations" """ - device_pools( + organizations_aggregate( """distinct select on columns""" - distinct_on: [device_pools_select_column!] + distinct_on: [organizations_select_column!] """limit the number of rows returned""" limit: Int @@ -4745,19 +6427,36 @@ type subscription_root { """skip the first n rows. Use only with order_by""" offset: Int - """sort the rows by one or more columns""" - order_by: [device_pools_order_by!] + """sort the rows by one or more columns""" + order_by: [organizations_order_by!] + + """filter the rows returned""" + where: organizations_bool_exp + ): organizations_aggregate! + + """fetch data from the table: "organizations" using primary key columns""" + organizations_by_pk(id: uuid!): organizations + + """ + fetch data from the table in a streaming manner: "organizations" + """ + organizations_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [organizations_stream_cursor_input]! """filter the rows returned""" - where: device_pools_bool_exp - ): [device_pools!]! + where: organizations_bool_exp + ): [organizations!]! """ - fetch aggregated fields from the table: "device_pools" + fetch data from the table: "plan" """ - device_pools_aggregate( + plan( """distinct select on columns""" - distinct_on: [device_pools_select_column!] + distinct_on: [plan_select_column!] """limit the number of rows returned""" limit: Int @@ -4766,35 +6465,35 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [device_pools_order_by!] + order_by: [plan_order_by!] """filter the rows returned""" - where: device_pools_bool_exp - ): device_pools_aggregate! + where: plan_bool_exp + ): [plan!]! - """fetch data from the table: "device_pools" using primary key columns""" - device_pools_by_pk(id: uuid!): device_pools + """fetch data from the table: "plan" using primary key columns""" + plan_by_pk(value: String!): plan """ - fetch data from the table in a streaming manner: "device_pools" + fetch data from the table in a streaming manner: "plan" """ - device_pools_stream( + plan_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [device_pools_stream_cursor_input]! + cursor: [plan_stream_cursor_input]! """filter the rows returned""" - where: device_pools_bool_exp - ): [device_pools!]! + where: plan_bool_exp + ): [plan!]! """ - fetch data from the table: "devices" + fetch data from the table: "policies" """ - devices( + policies( """distinct select on columns""" - distinct_on: [devices_select_column!] + distinct_on: [policies_select_column!] """limit the number of rows returned""" limit: Int @@ -4803,18 +6502,18 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [devices_order_by!] + order_by: [policies_order_by!] """filter the rows returned""" - where: devices_bool_exp - ): [devices!]! + where: policies_bool_exp + ): [policies!]! """ - fetch aggregated fields from the table: "devices" + fetch aggregated fields from the table: "policies" """ - devices_aggregate( + policies_aggregate( """distinct select on columns""" - distinct_on: [devices_select_column!] + distinct_on: [policies_select_column!] """limit the number of rows returned""" limit: Int @@ -4823,35 +6522,35 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [devices_order_by!] + order_by: [policies_order_by!] """filter the rows returned""" - where: devices_bool_exp - ): devices_aggregate! + where: policies_bool_exp + ): policies_aggregate! - """fetch data from the table: "devices" using primary key columns""" - devices_by_pk(id: uuid!): devices + """fetch data from the table: "policies" using primary key columns""" + policies_by_pk(id: uuid!): policies """ - fetch data from the table in a streaming manner: "devices" + fetch data from the table in a streaming manner: "policies" """ - devices_stream( + policies_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [devices_stream_cursor_input]! + cursor: [policies_stream_cursor_input]! """filter the rows returned""" - where: devices_bool_exp - ): [devices!]! + where: policies_bool_exp + ): [policies!]! """ - fetch data from the table: "direction" + fetch data from the table: "pools" """ - direction( + pools( """distinct select on columns""" - distinct_on: [direction_select_column!] + distinct_on: [pools_select_column!] """limit the number of rows returned""" limit: Int @@ -4860,18 +6559,18 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [direction_order_by!] + order_by: [pools_order_by!] """filter the rows returned""" - where: direction_bool_exp - ): [direction!]! + where: pools_bool_exp + ): [pools!]! """ - fetch aggregated fields from the table: "direction" + fetch aggregated fields from the table: "pools" """ - direction_aggregate( + pools_aggregate( """distinct select on columns""" - distinct_on: [direction_select_column!] + distinct_on: [pools_select_column!] """limit the number of rows returned""" limit: Int @@ -4880,38 +6579,35 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [direction_order_by!] + order_by: [pools_order_by!] """filter the rows returned""" - where: direction_bool_exp - ): direction_aggregate! + where: pools_bool_exp + ): pools_aggregate! - """fetch data from the table: "direction" using primary key columns""" - direction_by_pk(value: String!): direction + """fetch data from the table: "pools" using primary key columns""" + pools_by_pk(id: uuid!): pools """ - fetch data from the table in a streaming manner: "direction" + fetch data from the table in a streaming manner: "pools" """ - direction_stream( + pools_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [direction_stream_cursor_input]! + cursor: [pools_stream_cursor_input]! """filter the rows returned""" - where: direction_bool_exp - ): [direction!]! - - """fetch data from the table: "storage.files" using primary key columns""" - file(id: uuid!): files + where: pools_bool_exp + ): [pools!]! """ - fetch data from the table: "storage.files" + fetch data from the table: "protocol" """ - files( + protocol( """distinct select on columns""" - distinct_on: [files_select_column!] + distinct_on: [protocol_select_column!] """limit the number of rows returned""" limit: Int @@ -4920,32 +6616,35 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [files_order_by!] + order_by: [protocol_order_by!] """filter the rows returned""" - where: files_bool_exp - ): [files!]! + where: protocol_bool_exp + ): [protocol!]! + + """fetch data from the table: "protocol" using primary key columns""" + protocol_by_pk(value: String!): protocol """ - fetch data from the table in a streaming manner: "storage.files" + fetch data from the table in a streaming manner: "protocol" """ - files_stream( + protocol_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [files_stream_cursor_input]! + cursor: [protocol_stream_cursor_input]! """filter the rows returned""" - where: files_bool_exp - ): [files!]! + where: protocol_bool_exp + ): [protocol!]! """ - fetch data from the table: "groups" + fetch data from the table: "rules" """ - groups( + rules( """distinct select on columns""" - distinct_on: [groups_select_column!] + distinct_on: [rules_select_column!] """limit the number of rows returned""" limit: Int @@ -4954,35 +6653,55 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [groups_order_by!] + order_by: [rules_order_by!] """filter the rows returned""" - where: groups_bool_exp - ): [groups!]! + where: rules_bool_exp + ): [rules!]! - """fetch data from the table: "groups" using primary key columns""" - groups_by_pk(id: uuid!): groups + """ + fetch aggregated fields from the table: "rules" + """ + rules_aggregate( + """distinct select on columns""" + distinct_on: [rules_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [rules_order_by!] + + """filter the rows returned""" + where: rules_bool_exp + ): rules_aggregate! + + """fetch data from the table: "rules" using primary key columns""" + rules_by_pk(id: uuid!): rules """ - fetch data from the table in a streaming manner: "groups" + fetch data from the table in a streaming manner: "rules" """ - groups_stream( + rules_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [groups_stream_cursor_input]! + cursor: [rules_stream_cursor_input]! """filter the rows returned""" - where: groups_bool_exp - ): [groups!]! + where: rules_bool_exp + ): [rules!]! """ - fetch data from the table: "organizations" + fetch data from the table: "status" """ - organizations( + status( """distinct select on columns""" - distinct_on: [organizations_select_column!] + distinct_on: [status_select_column!] """limit the number of rows returned""" limit: Int @@ -4991,35 +6710,35 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [organizations_order_by!] + order_by: [status_order_by!] """filter the rows returned""" - where: organizations_bool_exp - ): [organizations!]! + where: status_bool_exp + ): [status!]! - """fetch data from the table: "organizations" using primary key columns""" - organizations_by_pk(organization: String!): organizations + """fetch data from the table: "status" using primary key columns""" + status_by_pk(value: String!): status """ - fetch data from the table in a streaming manner: "organizations" + fetch data from the table in a streaming manner: "status" """ - organizations_stream( + status_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [organizations_stream_cursor_input]! + cursor: [status_stream_cursor_input]! """filter the rows returned""" - where: organizations_bool_exp - ): [organizations!]! + where: status_bool_exp + ): [status!]! """ - fetch data from the table: "policies" + fetch data from the table: "subject_type" """ - policies( + subject_type( """distinct select on columns""" - distinct_on: [policies_select_column!] + distinct_on: [subject_type_select_column!] """limit the number of rows returned""" limit: Int @@ -5028,35 +6747,33 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [policies_order_by!] + order_by: [subject_type_order_by!] """filter the rows returned""" - where: policies_bool_exp - ): [policies!]! + where: subject_type_bool_exp + ): [subject_type!]! - """fetch data from the table: "policies" using primary key columns""" - policies_by_pk(id: uuid!): policies + """fetch data from the table: "subject_type" using primary key columns""" + subject_type_by_pk(value: String!): subject_type """ - fetch data from the table in a streaming manner: "policies" + fetch data from the table in a streaming manner: "subject_type" """ - policies_stream( + subject_type_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [policies_stream_cursor_input]! + cursor: [subject_type_stream_cursor_input]! """filter the rows returned""" - where: policies_bool_exp - ): [policies!]! + where: subject_type_bool_exp + ): [subject_type!]! - """ - fetch data from the table: "pools" - """ - pools( + """An array relationship""" + subscriptions( """distinct select on columns""" - distinct_on: [pools_select_column!] + distinct_on: [subscriptions_select_column!] """limit the number of rows returned""" limit: Int @@ -5065,18 +6782,16 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [pools_order_by!] + order_by: [subscriptions_order_by!] """filter the rows returned""" - where: pools_bool_exp - ): [pools!]! + where: subscriptions_bool_exp + ): [subscriptions!]! - """ - fetch aggregated fields from the table: "pools" - """ - pools_aggregate( + """An aggregate relationship""" + subscriptions_aggregate( """distinct select on columns""" - distinct_on: [pools_select_column!] + distinct_on: [subscriptions_select_column!] """limit the number of rows returned""" limit: Int @@ -5085,35 +6800,43 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [pools_order_by!] + order_by: [subscriptions_order_by!] """filter the rows returned""" - where: pools_bool_exp - ): pools_aggregate! + where: subscriptions_bool_exp + ): subscriptions_aggregate! - """fetch data from the table: "pools" using primary key columns""" - pools_by_pk(id: uuid!): pools + """fetch data from the table: "subscriptions" using primary key columns""" + subscriptions_by_pk(id: uuid!): subscriptions """ - fetch data from the table in a streaming manner: "pools" + fetch data from the table in a streaming manner: "subscriptions" """ - pools_stream( + subscriptions_stream( """maximum number of rows returned in a single batch""" batch_size: Int! """cursor to stream the results returned by the query""" - cursor: [pools_stream_cursor_input]! + cursor: [subscriptions_stream_cursor_input]! """filter the rows returned""" - where: pools_bool_exp - ): [pools!]! + where: subscriptions_bool_exp + ): [subscriptions!]! + + """fetch data from the table: "auth.users" using primary key columns""" + user(id: uuid!): users """ - fetch data from the table: "protocol" + execute function "user_associated_groups" which returns "groups" """ - protocol( + user_associated_groups( + """ + input parameters for function "user_associated_groups" + """ + args: user_associated_groups_args! + """distinct select on columns""" - distinct_on: [protocol_select_column!] + distinct_on: [groups_select_column!] """limit the number of rows returned""" limit: Int @@ -5122,18 +6845,23 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [protocol_order_by!] + order_by: [groups_order_by!] """filter the rows returned""" - where: protocol_bool_exp - ): [protocol!]! + where: groups_bool_exp + ): [groups!]! """ - fetch aggregated fields from the table: "protocol" + execute function "user_associated_groups" and query aggregates on result of table type "groups" """ - protocol_aggregate( + user_associated_groups_aggregate( + """ + input parameters for function "user_associated_groups_aggregate" + """ + args: user_associated_groups_args! + """distinct select on columns""" - distinct_on: [protocol_select_column!] + distinct_on: [groups_select_column!] """limit the number of rows returned""" limit: Int @@ -5142,35 +6870,23 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [protocol_order_by!] + order_by: [groups_order_by!] """filter the rows returned""" - where: protocol_bool_exp - ): protocol_aggregate! - - """fetch data from the table: "protocol" using primary key columns""" - protocol_by_pk(value: String!): protocol + where: groups_bool_exp + ): groups_aggregate! """ - fetch data from the table in a streaming manner: "protocol" + execute function "user_dissociated_groups" which returns "groups" """ - protocol_stream( - """maximum number of rows returned in a single batch""" - batch_size: Int! - - """cursor to stream the results returned by the query""" - cursor: [protocol_stream_cursor_input]! - - """filter the rows returned""" - where: protocol_bool_exp - ): [protocol!]! + user_dissociated_groups( + """ + input parameters for function "user_dissociated_groups" + """ + args: user_dissociated_groups_args! - """ - fetch data from the table: "rules" - """ - rules( """distinct select on columns""" - distinct_on: [rules_select_column!] + distinct_on: [groups_select_column!] """limit the number of rows returned""" limit: Int @@ -5179,35 +6895,23 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [rules_order_by!] + order_by: [groups_order_by!] """filter the rows returned""" - where: rules_bool_exp - ): [rules!]! - - """fetch data from the table: "rules" using primary key columns""" - rules_by_pk(id: uuid!): rules + where: groups_bool_exp + ): [groups!]! """ - fetch data from the table in a streaming manner: "rules" + execute function "user_dissociated_groups" and query aggregates on result of table type "groups" """ - rules_stream( - """maximum number of rows returned in a single batch""" - batch_size: Int! - - """cursor to stream the results returned by the query""" - cursor: [rules_stream_cursor_input]! - - """filter the rows returned""" - where: rules_bool_exp - ): [rules!]! + user_dissociated_groups_aggregate( + """ + input parameters for function "user_dissociated_groups_aggregate" + """ + args: user_dissociated_groups_args! - """ - fetch data from the table: "subject_type" - """ - subject_type( """distinct select on columns""" - distinct_on: [subject_type_select_column!] + distinct_on: [groups_select_column!] """limit the number of rows returned""" limit: Int @@ -5216,36 +6920,36 @@ type subscription_root { offset: Int """sort the rows by one or more columns""" - order_by: [subject_type_order_by!] + order_by: [groups_order_by!] """filter the rows returned""" - where: subject_type_bool_exp - ): [subject_type!]! - - """fetch data from the table: "subject_type" using primary key columns""" - subject_type_by_pk(value: String!): subject_type + where: groups_bool_exp + ): groups_aggregate! """ - fetch data from the table in a streaming manner: "subject_type" + fetch data from the table: "user_groups" """ - subject_type_stream( - """maximum number of rows returned in a single batch""" - batch_size: Int! + user_groups( + """distinct select on columns""" + distinct_on: [user_groups_select_column!] - """cursor to stream the results returned by the query""" - cursor: [subject_type_stream_cursor_input]! + """limit the number of rows returned""" + limit: Int - """filter the rows returned""" - where: subject_type_bool_exp - ): [subject_type!]! + """skip the first n rows. Use only with order_by""" + offset: Int - """fetch data from the table: "auth.users" using primary key columns""" - user(id: uuid!): users + """sort the rows by one or more columns""" + order_by: [user_groups_order_by!] + + """filter the rows returned""" + where: user_groups_bool_exp + ): [user_groups!]! """ - fetch data from the table: "user_groups" + fetch aggregated fields from the table: "user_groups" """ - user_groups( + user_groups_aggregate( """distinct select on columns""" distinct_on: [user_groups_select_column!] @@ -5260,10 +6964,10 @@ type subscription_root { """filter the rows returned""" where: user_groups_bool_exp - ): [user_groups!]! + ): user_groups_aggregate! """fetch data from the table: "user_groups" using primary key columns""" - user_groups_by_pk(id: uuid!): user_groups + user_groups_by_pk(groupId: uuid!, userId: uuid!): user_groups """ fetch data from the table in a streaming manner: "user_groups" @@ -5320,7 +7024,7 @@ type subscription_root { ): user_org_roles_aggregate! """fetch data from the table: "user_org_roles" using primary key columns""" - user_org_roles_by_pk(id: uuid!): user_org_roles + user_org_roles_by_pk(orgId: uuid!, userId: uuid!): user_org_roles """ fetch data from the table in a streaming manner: "user_org_roles" @@ -5352,23 +7056,389 @@ type subscription_root { """sort the rows by one or more columns""" order_by: [users_order_by!] - """filter the rows returned""" - where: users_bool_exp - ): [users!]! + """filter the rows returned""" + where: users_bool_exp + ): [users!]! + + """ + fetch aggregated fields from the table: "auth.users" + """ + usersAggregate( + """distinct select on columns""" + distinct_on: [users_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [users_order_by!] + + """filter the rows returned""" + where: users_bool_exp + ): users_aggregate! + + """ + fetch data from the table in a streaming manner: "auth.users" + """ + users_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [users_stream_cursor_input]! + + """filter the rows returned""" + where: users_bool_exp + ): [users!]! +} + +"""Table containing subscriptions for an organization""" +type subscriptions { + createdAt: timestamptz! + createdBy: uuid! + credits: Int! + id: uuid! + orgId: uuid! + + """An object relationship""" + organization: organizations! + plan: plan_enum! + status: status_enum! + stripeCheckoutSessionId: String + stripeCustomerId: String + stripeSubscriptionId: String + updatedAt: timestamptz! + updatedBy: uuid! + validUntil: timestamptz! +} + +""" +aggregated selection of "subscriptions" +""" +type subscriptions_aggregate { + aggregate: subscriptions_aggregate_fields + nodes: [subscriptions!]! +} + +input subscriptions_aggregate_bool_exp { + count: subscriptions_aggregate_bool_exp_count +} + +input subscriptions_aggregate_bool_exp_count { + arguments: [subscriptions_select_column!] + distinct: Boolean + filter: subscriptions_bool_exp + predicate: Int_comparison_exp! +} + +""" +aggregate fields of "subscriptions" +""" +type subscriptions_aggregate_fields { + avg: subscriptions_avg_fields + count(columns: [subscriptions_select_column!], distinct: Boolean): Int! + max: subscriptions_max_fields + min: subscriptions_min_fields + stddev: subscriptions_stddev_fields + stddev_pop: subscriptions_stddev_pop_fields + stddev_samp: subscriptions_stddev_samp_fields + sum: subscriptions_sum_fields + var_pop: subscriptions_var_pop_fields + var_samp: subscriptions_var_samp_fields + variance: subscriptions_variance_fields +} + +""" +order by aggregate values of table "subscriptions" +""" +input subscriptions_aggregate_order_by { + avg: subscriptions_avg_order_by + count: order_by + max: subscriptions_max_order_by + min: subscriptions_min_order_by + stddev: subscriptions_stddev_order_by + stddev_pop: subscriptions_stddev_pop_order_by + stddev_samp: subscriptions_stddev_samp_order_by + sum: subscriptions_sum_order_by + var_pop: subscriptions_var_pop_order_by + var_samp: subscriptions_var_samp_order_by + variance: subscriptions_variance_order_by +} + +"""aggregate avg on columns""" +type subscriptions_avg_fields { + credits: Float +} + +""" +order by avg() on columns of table "subscriptions" +""" +input subscriptions_avg_order_by { + credits: order_by +} + +""" +Boolean expression to filter rows from the table "subscriptions". All fields are combined with a logical 'AND'. +""" +input subscriptions_bool_exp { + _and: [subscriptions_bool_exp!] + _not: subscriptions_bool_exp + _or: [subscriptions_bool_exp!] + createdAt: timestamptz_comparison_exp + createdBy: uuid_comparison_exp + credits: Int_comparison_exp + id: uuid_comparison_exp + orgId: uuid_comparison_exp + organization: organizations_bool_exp + plan: plan_enum_comparison_exp + status: status_enum_comparison_exp + stripeCheckoutSessionId: String_comparison_exp + stripeCustomerId: String_comparison_exp + stripeSubscriptionId: String_comparison_exp + updatedAt: timestamptz_comparison_exp + updatedBy: uuid_comparison_exp + validUntil: timestamptz_comparison_exp +} + +"""aggregate max on columns""" +type subscriptions_max_fields { + createdAt: timestamptz + createdBy: uuid + credits: Int + id: uuid + orgId: uuid + stripeCheckoutSessionId: String + stripeCustomerId: String + stripeSubscriptionId: String + updatedAt: timestamptz + updatedBy: uuid + validUntil: timestamptz +} + +""" +order by max() on columns of table "subscriptions" +""" +input subscriptions_max_order_by { + createdAt: order_by + createdBy: order_by + credits: order_by + id: order_by + orgId: order_by + stripeCheckoutSessionId: order_by + stripeCustomerId: order_by + stripeSubscriptionId: order_by + updatedAt: order_by + updatedBy: order_by + validUntil: order_by +} + +"""aggregate min on columns""" +type subscriptions_min_fields { + createdAt: timestamptz + createdBy: uuid + credits: Int + id: uuid + orgId: uuid + stripeCheckoutSessionId: String + stripeCustomerId: String + stripeSubscriptionId: String + updatedAt: timestamptz + updatedBy: uuid + validUntil: timestamptz +} + +""" +order by min() on columns of table "subscriptions" +""" +input subscriptions_min_order_by { + createdAt: order_by + createdBy: order_by + credits: order_by + id: order_by + orgId: order_by + stripeCheckoutSessionId: order_by + stripeCustomerId: order_by + stripeSubscriptionId: order_by + updatedAt: order_by + updatedBy: order_by + validUntil: order_by +} + +"""Ordering options when selecting data from "subscriptions".""" +input subscriptions_order_by { + createdAt: order_by + createdBy: order_by + credits: order_by + id: order_by + orgId: order_by + organization: organizations_order_by + plan: order_by + status: order_by + stripeCheckoutSessionId: order_by + stripeCustomerId: order_by + stripeSubscriptionId: order_by + updatedAt: order_by + updatedBy: order_by + validUntil: order_by +} + +""" +select columns of table "subscriptions" +""" +enum subscriptions_select_column { + """column name""" + createdAt + + """column name""" + createdBy + + """column name""" + credits + + """column name""" + id + + """column name""" + orgId + + """column name""" + plan + + """column name""" + status + + """column name""" + stripeCheckoutSessionId + + """column name""" + stripeCustomerId + + """column name""" + stripeSubscriptionId + + """column name""" + updatedAt + + """column name""" + updatedBy + + """column name""" + validUntil +} + +"""aggregate stddev on columns""" +type subscriptions_stddev_fields { + credits: Float +} + +""" +order by stddev() on columns of table "subscriptions" +""" +input subscriptions_stddev_order_by { + credits: order_by +} + +"""aggregate stddev_pop on columns""" +type subscriptions_stddev_pop_fields { + credits: Float +} + +""" +order by stddev_pop() on columns of table "subscriptions" +""" +input subscriptions_stddev_pop_order_by { + credits: order_by +} + +"""aggregate stddev_samp on columns""" +type subscriptions_stddev_samp_fields { + credits: Float +} + +""" +order by stddev_samp() on columns of table "subscriptions" +""" +input subscriptions_stddev_samp_order_by { + credits: order_by +} + +""" +Streaming cursor of the table "subscriptions" +""" +input subscriptions_stream_cursor_input { + """Stream column input with initial value""" + initial_value: subscriptions_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input subscriptions_stream_cursor_value_input { + createdAt: timestamptz + createdBy: uuid + credits: Int + id: uuid + orgId: uuid + plan: plan_enum + status: status_enum + stripeCheckoutSessionId: String + stripeCustomerId: String + stripeSubscriptionId: String + updatedAt: timestamptz + updatedBy: uuid + validUntil: timestamptz +} + +"""aggregate sum on columns""" +type subscriptions_sum_fields { + credits: Int +} + +""" +order by sum() on columns of table "subscriptions" +""" +input subscriptions_sum_order_by { + credits: order_by +} + +"""aggregate var_pop on columns""" +type subscriptions_var_pop_fields { + credits: Float +} + +""" +order by var_pop() on columns of table "subscriptions" +""" +input subscriptions_var_pop_order_by { + credits: order_by +} - """ - fetch data from the table in a streaming manner: "auth.users" - """ - users_stream( - """maximum number of rows returned in a single batch""" - batch_size: Int! +"""aggregate var_samp on columns""" +type subscriptions_var_samp_fields { + credits: Float +} - """cursor to stream the results returned by the query""" - cursor: [users_stream_cursor_input]! +""" +order by var_samp() on columns of table "subscriptions" +""" +input subscriptions_var_samp_order_by { + credits: order_by +} - """filter the rows returned""" - where: users_bool_exp - ): [users!]! +"""aggregate variance on columns""" +type subscriptions_variance_fields { + credits: Float +} + +""" +order by variance() on columns of table "subscriptions" +""" +input subscriptions_variance_order_by { + credits: order_by } scalar timestamptz @@ -5388,14 +7458,19 @@ input timestamptz_comparison_exp { _nin: [timestamptz!] } +input user_associated_groups_args { + user_row: users_scalar +} + +input user_dissociated_groups_args { + user_row: users_scalar +} + """User to Group association table""" type user_groups { - createdAt: timestamptz! - """An object relationship""" group: groups! groupId: uuid! - id: uuid! """An object relationship""" user: users! @@ -5403,22 +7478,20 @@ type user_groups { } """ -order by aggregate values of table "user_groups" +aggregated selection of "user_groups" """ -input user_groups_aggregate_order_by { - count: order_by - max: user_groups_max_order_by - min: user_groups_min_order_by +type user_groups_aggregate { + aggregate: user_groups_aggregate_fields + nodes: [user_groups!]! } """ -input type for inserting array relation for remote table "user_groups" +aggregate fields of "user_groups" """ -input user_groups_arr_rel_insert_input { - data: [user_groups_insert_input!]! - - """upsert condition""" - on_conflict: user_groups_on_conflict +type user_groups_aggregate_fields { + count(columns: [user_groups_select_column!], distinct: Boolean): Int! + max: user_groups_max_fields + min: user_groups_min_fields } """ @@ -5428,10 +7501,8 @@ input user_groups_bool_exp { _and: [user_groups_bool_exp!] _not: user_groups_bool_exp _or: [user_groups_bool_exp!] - createdAt: timestamptz_comparison_exp group: groups_bool_exp groupId: uuid_comparison_exp - id: uuid_comparison_exp user: users_bool_exp userId: uuid_comparison_exp } @@ -5441,7 +7512,7 @@ unique or primary key constraints on table "user_groups" """ enum user_groups_constraint { """ - unique or primary key constraint on columns "id" + unique or primary key constraint on columns "user_id", "group_id" """ user_groups_pkey } @@ -5455,24 +7526,16 @@ input user_groups_insert_input { userId: uuid } -""" -order by max() on columns of table "user_groups" -""" -input user_groups_max_order_by { - createdAt: order_by - groupId: order_by - id: order_by - userId: order_by +"""aggregate max on columns""" +type user_groups_max_fields { + groupId: uuid + userId: uuid } -""" -order by min() on columns of table "user_groups" -""" -input user_groups_min_order_by { - createdAt: order_by - groupId: order_by - id: order_by - userId: order_by +"""aggregate min on columns""" +type user_groups_min_fields { + groupId: uuid + userId: uuid } """ @@ -5497,10 +7560,8 @@ input user_groups_on_conflict { """Ordering options when selecting data from "user_groups".""" input user_groups_order_by { - createdAt: order_by group: groups_order_by groupId: order_by - id: order_by user: users_order_by userId: order_by } @@ -5509,15 +7570,9 @@ input user_groups_order_by { select columns of table "user_groups" """ enum user_groups_select_column { - """column name""" - createdAt - """column name""" groupId - """column name""" - id - """column name""" userId } @@ -5535,9 +7590,7 @@ input user_groups_stream_cursor_input { """Initial value of the column from where the streaming should start""" input user_groups_stream_cursor_value_input { - createdAt: timestamptz groupId: uuid - id: uuid userId: uuid } @@ -5549,14 +7602,21 @@ enum user_groups_update_column { _PLACEHOLDER } -"""Roles of User for a given Org.""" +"""Table containing user's org and default_role""" type user_org_roles { createdAt: timestamptz! createdBy: uuid! - id: uuid! - isDefaultRole: Boolean! - organization: String! + isCurrentOrg: Boolean! + orgId: uuid! + + """An object relationship""" + organization: organizations! role: String! + updatedAt: timestamptz! + updatedBy: uuid! + + """An object relationship""" + user: users! userId: uuid! } @@ -5613,6 +7673,16 @@ input user_org_roles_aggregate_order_by { min: user_org_roles_min_order_by } +""" +input type for inserting array relation for remote table "user_org_roles" +""" +input user_org_roles_arr_rel_insert_input { + data: [user_org_roles_insert_input!]! + + """upsert condition""" + on_conflict: user_org_roles_on_conflict +} + """ Boolean expression to filter rows from the table "user_org_roles". All fields are combined with a logical 'AND'. """ @@ -5622,10 +7692,13 @@ input user_org_roles_bool_exp { _or: [user_org_roles_bool_exp!] createdAt: timestamptz_comparison_exp createdBy: uuid_comparison_exp - id: uuid_comparison_exp - isDefaultRole: Boolean_comparison_exp - organization: String_comparison_exp + isCurrentOrg: Boolean_comparison_exp + orgId: uuid_comparison_exp + organization: organizations_bool_exp role: String_comparison_exp + updatedAt: timestamptz_comparison_exp + updatedBy: uuid_comparison_exp + user: users_bool_exp userId: uuid_comparison_exp } @@ -5634,27 +7707,23 @@ unique or primary key constraints on table "user_org_roles" """ enum user_org_roles_constraint { """ - unique or primary key constraint on columns "id" + unique or primary key constraint on columns "user_id", "org_id" """ user_org_roles_pkey """ - unique or primary key constraint on columns "user_id", "organization" - """ - user_org_roles_user_id_organization_default_role_unique - - """ - unique or primary key constraint on columns "user_id", "organization", "role" + unique or primary key constraint on columns "user_id" """ - user_org_roles_user_id_role_organization_key + user_org_roles_unique_current_org } """ input type for inserting data into table "user_org_roles" """ input user_org_roles_insert_input { - isDefaultRole: Boolean - organization: String + isCurrentOrg: Boolean + orgId: uuid + organization: organizations_obj_rel_insert_input role: String userId: uuid } @@ -5663,9 +7732,10 @@ input user_org_roles_insert_input { type user_org_roles_max_fields { createdAt: timestamptz createdBy: uuid - id: uuid - organization: String + orgId: uuid role: String + updatedAt: timestamptz + updatedBy: uuid userId: uuid } @@ -5675,9 +7745,10 @@ order by max() on columns of table "user_org_roles" input user_org_roles_max_order_by { createdAt: order_by createdBy: order_by - id: order_by - organization: order_by + orgId: order_by role: order_by + updatedAt: order_by + updatedBy: order_by userId: order_by } @@ -5685,9 +7756,10 @@ input user_org_roles_max_order_by { type user_org_roles_min_fields { createdAt: timestamptz createdBy: uuid - id: uuid - organization: String + orgId: uuid role: String + updatedAt: timestamptz + updatedBy: uuid userId: uuid } @@ -5697,9 +7769,10 @@ order by min() on columns of table "user_org_roles" input user_org_roles_min_order_by { createdAt: order_by createdBy: order_by - id: order_by - organization: order_by + orgId: order_by role: order_by + updatedAt: order_by + updatedBy: order_by userId: order_by } @@ -5727,16 +7800,20 @@ input user_org_roles_on_conflict { input user_org_roles_order_by { createdAt: order_by createdBy: order_by - id: order_by - isDefaultRole: order_by - organization: order_by + isCurrentOrg: order_by + orgId: order_by + organization: organizations_order_by role: order_by + updatedAt: order_by + updatedBy: order_by + user: users_order_by userId: order_by } """primary key columns input for table: user_org_roles""" input user_org_roles_pk_columns_input { - id: uuid! + orgId: uuid! + userId: uuid! } """ @@ -5750,16 +7827,19 @@ enum user_org_roles_select_column { createdBy """column name""" - id + isCurrentOrg + + """column name""" + orgId """column name""" - isDefaultRole + role """column name""" - organization + updatedAt """column name""" - role + updatedBy """column name""" userId @@ -5770,7 +7850,7 @@ select "user_org_roles_aggregate_bool_exp_bool_and_arguments_columns" columns of """ enum user_org_roles_select_column_user_org_roles_aggregate_bool_exp_bool_and_arguments_columns { """column name""" - isDefaultRole + isCurrentOrg } """ @@ -5778,14 +7858,15 @@ select "user_org_roles_aggregate_bool_exp_bool_or_arguments_columns" columns of """ enum user_org_roles_select_column_user_org_roles_aggregate_bool_exp_bool_or_arguments_columns { """column name""" - isDefaultRole + isCurrentOrg } """ input type for updating data in table "user_org_roles" """ input user_org_roles_set_input { - isDefaultRole: Boolean + isCurrentOrg: Boolean + role: String } """ @@ -5803,10 +7884,11 @@ input user_org_roles_stream_cursor_input { input user_org_roles_stream_cursor_value_input { createdAt: timestamptz createdBy: uuid - id: uuid - isDefaultRole: Boolean - organization: String + isCurrentOrg: Boolean + orgId: uuid role: String + updatedAt: timestamptz + updatedBy: uuid userId: uuid } @@ -5815,7 +7897,10 @@ update columns of table "user_org_roles" """ enum user_org_roles_update_column { """column name""" - isDefaultRole + isCurrentOrg + + """column name""" + role } input user_org_roles_updates { @@ -5832,12 +7917,10 @@ User account information. Don't modify its structure as Hasura Auth relies on it type users { activeMfaType: String - """ - A computed field, executes function "user_allowed_orgs" - """ + """An array relationship""" allowedOrgs( """distinct select on columns""" - distinct_on: [organizations_select_column!] + distinct_on: [user_org_roles_select_column!] """limit the number of rows returned""" limit: Int @@ -5846,21 +7929,73 @@ type users { offset: Int """sort the rows by one or more columns""" - order_by: [organizations_order_by!] + order_by: [user_org_roles_order_by!] """filter the rows returned""" - where: organizations_bool_exp - ): [organizations!] + where: user_org_roles_bool_exp + ): [user_org_roles!]! + + """An aggregate relationship""" + allowedOrgs_aggregate( + """distinct select on columns""" + distinct_on: [user_org_roles_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [user_org_roles_order_by!] + + """filter the rows returned""" + where: user_org_roles_bool_exp + ): user_org_roles_aggregate! + + """Used as Computed Field on Users Table""" + associatedGroups( + """distinct select on columns""" + distinct_on: [groups_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [groups_order_by!] + + """filter the rows returned""" + where: groups_bool_exp + ): [groups!] avatarUrl: String! createdAt: timestamptz! - """ - A computed field, executes function "user_default_org" - """ - defaultOrg: String + """Function Used as Computed Field on Users Table""" + currentOrgId: uuid defaultRole: String! disabled: Boolean! displayName: String! + + """Used as Computed Field on Users Table""" + dissociatedGroups( + """distinct select on columns""" + distinct_on: [groups_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [groups_order_by!] + + """filter the rows returned""" + where: groups_bool_exp + ): [groups!] email: citext emailVerified: Boolean! id: uuid! @@ -5892,6 +8027,24 @@ type users { where: authRefreshTokens_bool_exp ): [authRefreshTokens!]! + """An aggregate relationship""" + refreshTokens_aggregate( + """distinct select on columns""" + distinct_on: [authRefreshTokens_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [authRefreshTokens_order_by!] + + """filter the rows returned""" + where: authRefreshTokens_bool_exp + ): authRefreshTokens_aggregate! + """An array relationship""" roles( """distinct select on columns""" @@ -5945,12 +8098,11 @@ type users { """filter the rows returned""" where: authUserSecurityKeys_bool_exp ): [authUserSecurityKeys!]! - updatedAt: timestamptz! - """An array relationship""" - userOrgRoles( + """An aggregate relationship""" + securityKeys_aggregate( """distinct select on columns""" - distinct_on: [user_org_roles_select_column!] + distinct_on: [authUserSecurityKeys_select_column!] """limit the number of rows returned""" limit: Int @@ -5959,16 +8111,17 @@ type users { offset: Int """sort the rows by one or more columns""" - order_by: [user_org_roles_order_by!] + order_by: [authUserSecurityKeys_order_by!] """filter the rows returned""" - where: user_org_roles_bool_exp - ): [user_org_roles!]! + where: authUserSecurityKeys_bool_exp + ): authUserSecurityKeys_aggregate! + updatedAt: timestamptz! - """An aggregate relationship""" - userOrgRoles_aggregate( + """An array relationship""" + userProviders( """distinct select on columns""" - distinct_on: [user_org_roles_select_column!] + distinct_on: [authUserProviders_select_column!] """limit the number of rows returned""" limit: Int @@ -5977,14 +8130,14 @@ type users { offset: Int """sort the rows by one or more columns""" - order_by: [user_org_roles_order_by!] + order_by: [authUserProviders_order_by!] """filter the rows returned""" - where: user_org_roles_bool_exp - ): user_org_roles_aggregate! + where: authUserProviders_bool_exp + ): [authUserProviders!]! - """An array relationship""" - userProviders( + """An aggregate relationship""" + userProviders_aggregate( """distinct select on columns""" distinct_on: [authUserProviders_select_column!] @@ -5999,7 +8152,24 @@ type users { """filter the rows returned""" where: authUserProviders_bool_exp - ): [authUserProviders!]! + ): authUserProviders_aggregate! +} + +""" +aggregated selection of "auth.users" +""" +type users_aggregate { + aggregate: users_aggregate_fields + nodes: [users!]! +} + +""" +aggregate fields of "auth.users" +""" +type users_aggregate_fields { + count(columns: [users_select_column!], distinct: Boolean): Int! + max: users_max_fields + min: users_min_fields } """append existing jsonb value of filtered columns with new jsonb value""" @@ -6015,13 +8185,16 @@ input users_bool_exp { _not: users_bool_exp _or: [users_bool_exp!] activeMfaType: String_comparison_exp - allowedOrgs: organizations_bool_exp + allowedOrgs: user_org_roles_bool_exp + allowedOrgs_aggregate: user_org_roles_aggregate_bool_exp + associatedGroups: groups_bool_exp avatarUrl: String_comparison_exp createdAt: timestamptz_comparison_exp - defaultOrg: String_comparison_exp + currentOrgId: uuid_comparison_exp defaultRole: String_comparison_exp disabled: Boolean_comparison_exp displayName: String_comparison_exp + dissociatedGroups: groups_bool_exp email: citext_comparison_exp emailVerified: Boolean_comparison_exp id: uuid_comparison_exp @@ -6032,13 +8205,14 @@ input users_bool_exp { phoneNumber: String_comparison_exp phoneNumberVerified: Boolean_comparison_exp refreshTokens: authRefreshTokens_bool_exp + refreshTokens_aggregate: authRefreshTokens_aggregate_bool_exp roles: authUserRoles_bool_exp roles_aggregate: authUserRoles_aggregate_bool_exp securityKeys: authUserSecurityKeys_bool_exp + securityKeys_aggregate: authUserSecurityKeys_aggregate_bool_exp updatedAt: timestamptz_comparison_exp - userOrgRoles: user_org_roles_bool_exp - userOrgRoles_aggregate: user_org_roles_aggregate_bool_exp userProviders: authUserProviders_bool_exp + userProviders_aggregate: authUserProviders_aggregate_bool_exp } """ @@ -6062,6 +8236,42 @@ input users_delete_key_input { metadata: String } +"""aggregate max on columns""" +type users_max_fields { + activeMfaType: String + avatarUrl: String + createdAt: timestamptz + + """Function Used as Computed Field on Users Table""" + currentOrgId: uuid + defaultRole: String + displayName: String + email: citext + id: uuid + lastSeen: timestamptz + locale: String + phoneNumber: String + updatedAt: timestamptz +} + +"""aggregate min on columns""" +type users_min_fields { + activeMfaType: String + avatarUrl: String + createdAt: timestamptz + + """Function Used as Computed Field on Users Table""" + currentOrgId: uuid + defaultRole: String + displayName: String + email: citext + id: uuid + lastSeen: timestamptz + locale: String + phoneNumber: String + updatedAt: timestamptz +} + """ response of any mutation on the table "auth.users" """ @@ -6076,13 +8286,15 @@ type users_mutation_response { """Ordering options when selecting data from "auth.users".""" input users_order_by { activeMfaType: order_by - allowedOrgs_aggregate: organizations_aggregate_order_by + allowedOrgs_aggregate: user_org_roles_aggregate_order_by + associatedGroups_aggregate: groups_aggregate_order_by avatarUrl: order_by createdAt: order_by - defaultOrg: order_by + currentOrgId: order_by defaultRole: order_by disabled: order_by displayName: order_by + dissociatedGroups_aggregate: groups_aggregate_order_by email: order_by emailVerified: order_by id: order_by @@ -6096,7 +8308,6 @@ input users_order_by { roles_aggregate: authUserRoles_aggregate_order_by securityKeys_aggregate: authUserSecurityKeys_aggregate_order_by updatedAt: order_by - userOrgRoles_aggregate: user_org_roles_aggregate_order_by userProviders_aggregate: authUserProviders_aggregate_order_by } @@ -6110,6 +8321,8 @@ input users_prepend_input { metadata: jsonb } +scalar users_scalar + """ select columns of table "auth.users" """ @@ -6174,7 +8387,6 @@ input users_set_input { email: citext locale: String metadata: jsonb - phoneNumber: String } """ diff --git a/apps/console/src/lib/api/search-rules.ts b/apps/console/src/lib/api/search-rules.ts index bdc0fddc0..68009633c 100644 --- a/apps/console/src/lib/api/search-rules.ts +++ b/apps/console/src/lib/api/search-rules.ts @@ -22,7 +22,7 @@ const searchRules = graphql(` displayName description tags - annotations + metadata shared source sourcePort diff --git a/apps/console/src/lib/graphql/MUTATION.AddOrganization.gql b/apps/console/src/lib/graphql/MUTATION.AddOrganization.gql index 2e15822da..7ceb1f918 100644 --- a/apps/console/src/lib/graphql/MUTATION.AddOrganization.gql +++ b/apps/console/src/lib/graphql/MUTATION.AddOrganization.gql @@ -1,8 +1,8 @@ mutation AddOrganization($roles: [user_org_roles_insert_input!]!) { insert_user_org_roles(objects: $roles) { returning { - id - organization + userId + orgId } } } diff --git a/apps/console/src/lib/graphql/MUTATION.CreateOrg.gql b/apps/console/src/lib/graphql/MUTATION.CreateOrg.gql index c6cd0a515..5d5bcc5db 100644 --- a/apps/console/src/lib/graphql/MUTATION.CreateOrg.gql +++ b/apps/console/src/lib/graphql/MUTATION.CreateOrg.gql @@ -1,6 +1,7 @@ mutation CreateOrg($data: organizations_insert_input!) { insert_organizations_one(object: $data) { - organization + id + displayName description allowedEmails allowedEmailDomains diff --git a/apps/console/src/lib/graphql/MUTATION.CreatePolicy.gql b/apps/console/src/lib/graphql/MUTATION.CreatePolicy.gql index 8447fc9bd..982504185 100644 --- a/apps/console/src/lib/graphql/MUTATION.CreatePolicy.gql +++ b/apps/console/src/lib/graphql/MUTATION.CreatePolicy.gql @@ -13,13 +13,13 @@ mutation CreatePolicy1($data: policies_insert_input!) { createdAt updatedAt updatedBy - organization + orgId rule { id displayName description tags - annotations + metadata shared source sourcePort @@ -35,7 +35,7 @@ mutation CreatePolicy1($data: policies_insert_input!) { createdAt updatedAt updatedBy - organization + orgId } } } diff --git a/apps/console/src/lib/graphql/MUTATION.DeleteOrg.gql b/apps/console/src/lib/graphql/MUTATION.DeleteOrg.gql index abee38bab..cb172be88 100644 --- a/apps/console/src/lib/graphql/MUTATION.DeleteOrg.gql +++ b/apps/console/src/lib/graphql/MUTATION.DeleteOrg.gql @@ -1,6 +1,6 @@ -mutation DeleteOrg($organization: String!) { - delete_organizations_by_pk(organization: $organization) { - organization +mutation DeleteOrg($id: uuid!) { + delete_organizations_by_pk(id: $id) { + displayName description } } diff --git a/apps/console/src/lib/graphql/MUTATION.UpdateOrgs.gql b/apps/console/src/lib/graphql/MUTATION.UpdateOrgs.gql index 30ac9a520..f6ab7cb39 100644 --- a/apps/console/src/lib/graphql/MUTATION.UpdateOrgs.gql +++ b/apps/console/src/lib/graphql/MUTATION.UpdateOrgs.gql @@ -1,6 +1,6 @@ -mutation UpdateOrgs($organization: String!, $data: organizations_set_input!) { - update_organizations_by_pk(pk_columns: { organization: $organization }, _set: $data) { - organization +mutation UpdateOrgs($id: uuid!, $data: organizations_set_input!) { + update_organizations_by_pk(pk_columns: { id: $id }, _set: $data) { + displayName description allowedEmails allowedEmailDomains diff --git a/apps/console/src/lib/graphql/MUTATION.Updatehomeroles.gql b/apps/console/src/lib/graphql/MUTATION.Updatehomeroles.gql deleted file mode 100644 index afe8b41f8..000000000 --- a/apps/console/src/lib/graphql/MUTATION.Updatehomeroles.gql +++ /dev/null @@ -1,20 +0,0 @@ -mutation Updatehomeroles( - $userId: uuid! - $defaultRole: String - $delroles: [String!]! - $Authroles: [authUserRoles_insert_input!]! -) { - updateUser(pk_columns: { id: $userId }, _set: { defaultRole: $defaultRole }) { - defaultRole - displayName - } - deleteAuthUserRoles(where: { userId: { _eq: $userId }, role: { _in: $delroles } }) { - affected_rows - } - insertAuthUserRoles(objects: $Authroles) { - returning { - id - role - } - } -} diff --git a/apps/console/src/lib/graphql/MUTATION.Updatenonhomeroles.gql b/apps/console/src/lib/graphql/MUTATION.Updatenonhomeroles.gql index 755152280..3da7c6a29 100644 --- a/apps/console/src/lib/graphql/MUTATION.Updatenonhomeroles.gql +++ b/apps/console/src/lib/graphql/MUTATION.Updatenonhomeroles.gql @@ -1,31 +1,31 @@ mutation Updatenonhomeroles( $userId: uuid! - $Org: String + $orgId: uuid! $defrole: String $delroles: [String!]! $roles: [user_org_roles_insert_input!]! ) { - delete_user_org_roles(where: { userId: { _eq: $userId }, organization: { _eq: $Org }, role: { _in: $delroles } }) { + delete_user_org_roles(where: { userId: { _eq: $userId }, orgId: { _eq: $orgId }, role: { _in: $delroles } }) { affected_rows } insert_user_org_roles(objects: $roles) { returning { - id - organization + userId + orgId } } update_user_org_roles( - where: { userId: { _eq: $userId }, organization: { _eq: $Org }, role: { _eq: $defrole } } - _set: { isDefaultRole: true } + where: { userId: { _eq: $userId }, orgId: { _eq: $orgId }, role: { _eq: $defrole } } + _set: { isCurrentOrg: true } ) { affected_rows } forother: update_user_org_roles( - where: { userId: { _eq: $userId }, organization: { _eq: $Org }, role: { _neq: $defrole } } - _set: { isDefaultRole: false } + where: { userId: { _eq: $userId }, orgId: { _eq: $orgId }, role: { _neq: $defrole } } + _set: { isCurrentOrg: false } ) { affected_rows } diff --git a/apps/console/src/lib/graphql/QUERY.GetOrganizations.gql b/apps/console/src/lib/graphql/QUERY.GetOrganizations.gql index 3f927aa0a..d16c9122a 100644 --- a/apps/console/src/lib/graphql/QUERY.GetOrganizations.gql +++ b/apps/console/src/lib/graphql/QUERY.GetOrganizations.gql @@ -3,6 +3,6 @@ query GetOrganizations @cache(policy: NetworkOnly) { allowedEmailDomains allowedEmails description - organization + id } } diff --git a/apps/console/src/lib/graphql/QUERY.GetOrgsbyOrg.gql b/apps/console/src/lib/graphql/QUERY.GetOrgsbyOrg.gql index 26a7757d5..0a794b4e8 100644 --- a/apps/console/src/lib/graphql/QUERY.GetOrgsbyOrg.gql +++ b/apps/console/src/lib/graphql/QUERY.GetOrgsbyOrg.gql @@ -1,8 +1,9 @@ -query GetOrgsbyOrg($organization: String!) { - organizations_by_pk(organization: $organization) { +query GetOrgsbyOrg($id: uuid!) { + organizations_by_pk(id: $id) { allowedEmailDomains allowedEmails description - organization + displayName + id } } diff --git a/apps/console/src/lib/graphql/QUERY.GetPolicy.gql b/apps/console/src/lib/graphql/QUERY.GetPolicy.gql index e203b25f6..41e0e81a9 100644 --- a/apps/console/src/lib/graphql/QUERY.GetPolicy.gql +++ b/apps/console/src/lib/graphql/QUERY.GetPolicy.gql @@ -13,7 +13,7 @@ query GetPolicy($id: uuid!) { displayName description tags - annotations + metadata shared source sourcePort diff --git a/apps/console/src/lib/graphql/QUERY.GetUserById.gql b/apps/console/src/lib/graphql/QUERY.GetUserById.gql index 2ab1fb495..2ab7be095 100644 --- a/apps/console/src/lib/graphql/QUERY.GetUserById.gql +++ b/apps/console/src/lib/graphql/QUERY.GetUserById.gql @@ -2,7 +2,7 @@ query GetUserById($id: uuid!) { user(id: $id) { id allowedOrgs { - organization + orgId } defaultRole displayName @@ -11,12 +11,9 @@ query GetUserById($id: uuid!) { metadata } user_org_roles(where: { userId: { _eq: $id } }) { - organization + orgId role - isDefaultRole - } - organizations { - organization + isCurrentOrg } authUserRoles { role diff --git a/apps/console/src/lib/graphql/QUERY.SearchGroups.gql b/apps/console/src/lib/graphql/QUERY.SearchGroups.gql index fa9198357..49131519a 100644 --- a/apps/console/src/lib/graphql/QUERY.SearchGroups.gql +++ b/apps/console/src/lib/graphql/QUERY.SearchGroups.gql @@ -2,15 +2,15 @@ query SearchGroups1( $where: groups_bool_exp $limit: Int = 50 $offset: Int = 0 - $orderBy: [groups_order_by!] = [{ organization: desc_nulls_last }] + $orderBy: [groups_order_by!] = [{ orgId: desc_nulls_last }] ) { groups(order_by: $orderBy, limit: $limit, offset: $offset, where: $where) { id displayName description tags - annotations - organization + metadata + orgId createdBy updatedBy createdAt diff --git a/apps/console/src/lib/graphql/QUERY.SearchOrganizations.gql b/apps/console/src/lib/graphql/QUERY.SearchOrganizations.gql index 30280d645..1b6b02ccf 100644 --- a/apps/console/src/lib/graphql/QUERY.SearchOrganizations.gql +++ b/apps/console/src/lib/graphql/QUERY.SearchOrganizations.gql @@ -2,10 +2,10 @@ query SearchOrganizations( $where: organizations_bool_exp $limit: Int = 50 $offset: Int = 0 - $orderBy: [organizations_order_by!] = [{ organization: desc_nulls_last }] + $orderBy: [organizations_order_by!] = [{ id: desc_nulls_last }] ) @cache(policy: NetworkOnly) { organizations(order_by: $orderBy, limit: $limit, offset: $offset, where: $where) { - organization + id description allowedEmailDomains allowedEmails diff --git a/apps/console/src/lib/links.ts b/apps/console/src/lib/links.ts index a6cc85139..7cb033a8d 100644 --- a/apps/console/src/lib/links.ts +++ b/apps/console/src/lib/links.ts @@ -82,14 +82,14 @@ export const menuNavLinks: MenuNavLinks = { href: '/organizations', label: 'Organizations', keywords: 'account, organization', - roles: [Roles.Manager, Roles.Supervisor], + roles: [Roles.Owner, Roles.Admin], }, - { href: '/users', label: 'Users', keywords: 'account, user, admin', roles: [Roles.Manager, Roles.Supervisor] }, + { href: '/users', label: 'Users', keywords: 'account, user, admin', roles: [Roles.Owner, Roles.Admin] }, { href: '/groups', label: 'Groups', keywords: 'account, group, admin', - roles: [Roles.Manager, Roles.Supervisor], + roles: [Roles.Owner, Roles.Admin], }, ], }, diff --git a/apps/console/src/lib/schema/organization.ts b/apps/console/src/lib/schema/organization.ts index 0245ac323..dc3e98c91 100644 --- a/apps/console/src/lib/schema/organization.ts +++ b/apps/console/src/lib/schema/organization.ts @@ -1,10 +1,16 @@ import { z } from 'zod'; export const organization = z.object({ - organization: z.string().trim().min(2), - description: z.string().trim().max(256).min(2), + id: z.string().trim().uuid(), + displayName: z.string().trim().min(4).max(256), //.default(env.PUBLIC_DEFAULT_ORGANIZATION ?? DEFAULT_ORGANIZATION), + description: z.string().trim().min(4).max(256).nullish(), + tags: z.string().trim().min(2).array().max(5).nullish(), + metadata: z.string().trim().nullish(), + // metadata: z.record(z.string(), z.string()).nullish(), allowedEmails: z.string().email().array().nullish(), allowedEmailDomains: z.string().trim().min(2).array().nullish(), + blockedEmails: z.string().email().array().nullish(), + blockedEmailDomains: z.string().trim().min(2).array().nullish(), }); export type organizationsSchema = typeof organization; diff --git a/apps/console/src/lib/schema/user.ts b/apps/console/src/lib/schema/user.ts index adf4cfb20..4fe82136c 100644 --- a/apps/console/src/lib/schema/user.ts +++ b/apps/console/src/lib/schema/user.ts @@ -51,14 +51,13 @@ export const userSchema = z.object({ phoneNumber: z.string().regex(phoneRegex, 'Invalid Number!').min(10).max(15).nullable(), avatarUrl: z.string().url().nullable(), defaultRole: z.nativeEnum(Roles, { required_error: 'You must have a role' }).default(Roles.User), - plan: z.enum(['free', 'pro', 'enterprise']).default('free'), + note: z.string().optional(), locale: z.enum(['en', 'es', 'de']).default('en'), verified: z.boolean().default(false), token: z.string().optional(), receiveEmail: z.boolean().default(true), createdAt: z.date().optional(), updatedAt: z.date().optional(), - organization: z.string().default(env.PUBLIC_DEFAULT_ORGANIZATION ?? DEFAULT_ORGANIZATION), }); /** @@ -75,7 +74,6 @@ export const updateUserDetailsSchema = userSchema.omit({ receiveEmail: true, createdAt: true, updatedAt: true, - organization: true, }); export type UpdateUserDetailsSchema = typeof updateUserDetailsSchema; export type updateUserDetails = z.infer; diff --git a/apps/console/src/lib/types/index.ts b/apps/console/src/lib/types/index.ts index 290b0bb0c..401ef5630 100644 --- a/apps/console/src/lib/types/index.ts +++ b/apps/console/src/lib/types/index.ts @@ -38,8 +38,10 @@ export enum Roles { Me = 'me', Anonymous = 'anonymous', User = 'user', - Supervisor = 'supervisor', - Manager = 'manager', + Owner = 'org:owner', + Admin = 'org:admin', + Billing = 'org:billing', + Member = 'org:member', } export type Link = { diff --git a/apps/console/src/routes/(app)/policies/components/search-policies-result.svelte b/apps/console/src/routes/(app)/policies/components/search-policies-result.svelte index d44047ac0..0d228714c 100644 --- a/apps/console/src/routes/(app)/policies/components/search-policies-result.svelte +++ b/apps/console/src/routes/(app)/policies/components/search-policies-result.svelte @@ -31,25 +31,10 @@ const rows = handler.getRows(); */ let isDeleting = false; const deletePolicy = graphql(` - mutation DeletePolicy( - $policyId: uuid! - $ruleId: uuid! - $deletedAt: timestamptz! - ) { - update_policies_by_pk( - pk_columns: { id: $policyId } - _set: { deletedAt: $deletedAt } - ) { - id + mutation DeletePolicy($policyId: uuid! ) { + delete_policies_by_pk(id: $policyId) { ...Search_Policies_remove } - update_rules( - where: { shared: { _eq: false }, id: { _eq: $ruleId } } - _set: { deletedAt: $deletedAt } - ) { - affected_rows - # ...Search_Rules_remove - } } `); const handleDelete: MouseEventHandler = async (event) => { @@ -64,8 +49,6 @@ const handleDelete: MouseEventHandler = async (event) => { const deletedAt = new Date(); const { data, errors: gqlErrors } = await deletePolicy.mutate({ policyId, - ruleId, - deletedAt, }); if (gqlErrors) { handleMessage( diff --git a/apps/console/src/routes/(app)/policies/create/+page.svelte b/apps/console/src/routes/(app)/policies/create/+page.svelte index bd7ba5972..a9db83a10 100644 --- a/apps/console/src/routes/(app)/policies/create/+page.svelte +++ b/apps/console/src/routes/(app)/policies/create/+page.svelte @@ -60,13 +60,13 @@ const createPolicy = graphql(` createdAt updatedAt updatedBy - organization + orgId rule { id displayName description tags - annotations + metadata shared source sourcePort @@ -82,7 +82,7 @@ const createPolicy = graphql(` createdAt updatedAt updatedBy - organization + orgId } } } @@ -133,10 +133,7 @@ const superform = superForm(defaults(zod(createPolicySchema)), { } log.debug('payload:', payload); - const { data, errors } = await createPolicy.mutate( - { data: payload }, - { metadata: { logResult: true, useRole: 'user' } }, - ); + const { data, errors } = await createPolicy.mutate({ data: payload }, { metadata: { logResult: true } }); if (errors) { for (const error of errors) { @@ -163,7 +160,7 @@ const superform = superForm(defaults(zod(createPolicySchema)), { } as const; setMessage(form, message); handleMessage(message, toastStore); - await goto(i18n.resolveRoute('/dashboard/policies'), { + await goto(i18n.resolveRoute('/policies'), { invalidateAll: false, }); }, @@ -253,7 +250,7 @@ async function onRuleChange(changedSubject: CustomEvent) { $form.rule.displayName = changedSubject.detail.displayName; $form.rule.description = changedSubject.detail.description; $form.rule.tags = changedSubject.detail.tags; - $form.rule.annotations = changedSubject.detail.annotations; + $form.rule.metadata = changedSubject.detail.metadata; $form.rule.source = changedSubject.detail.source; $form.rule.sourcePort = changedSubject.detail.sourcePort; $form.rule.destination = changedSubject.detail.destination; @@ -273,7 +270,7 @@ async function onRuleChange(changedSubject: CustomEvent) { $form.rule.displayName = ''; $form.rule.description = undefined; $form.rule.tags = []; - $form.rule.annotations = undefined; + $form.rule.metadata = undefined; $form.rule.source = undefined; $form.rule.sourcePort = undefined; $form.rule.destination = undefined; @@ -296,7 +293,7 @@ function clearRule(event: Event) { $form.rule.displayName = ''; $form.rule.description = undefined; $form.rule.tags = []; - $form.rule.annotations = undefined; + $form.rule.metadata = undefined; $form.rule.source = undefined; $form.rule.sourcePort = undefined; $form.rule.destination = undefined; @@ -547,16 +544,16 @@ $: loadingState.setFormLoading($delayed);
- + - Annotations + Metadata = async (event) => { const { data, errors: gqlErrors } = await deletePersonalAccessToken.mutate( { id }, { - metadata: { logResult: true, useRole: 'me' }, + metadata: { logResult: true, useRole: 'user' }, }, ); if (gqlErrors) { diff --git a/apps/console/src/routes/(app)/profile/components/security-key.svelte b/apps/console/src/routes/(app)/profile/components/security-key.svelte index 28b31f6ca..856e62277 100644 --- a/apps/console/src/routes/(app)/profile/components/security-key.svelte +++ b/apps/console/src/routes/(app)/profile/components/security-key.svelte @@ -67,7 +67,7 @@ const handleDelete = async () => { const { data, errors: gqlErrors } = await deleteSecurityKey.mutate( { id }, { - metadata: { logResult: true, useRole: 'me' }, + metadata: { logResult: true, useRole: 'user' }, }, ); if (gqlErrors) { diff --git a/apps/console/src/routes/(app)/profile/components/user-details.svelte b/apps/console/src/routes/(app)/profile/components/user-details.svelte index 40767157c..3eb73dcf7 100644 --- a/apps/console/src/routes/(app)/profile/components/user-details.svelte +++ b/apps/console/src/routes/(app)/profile/components/user-details.svelte @@ -34,16 +34,16 @@ $: data = fragment( displayName email phoneNumber - defaultOrg + currentOrgId defaultRole avatarUrl locale - plan: metadata(path: "plan") + note: metadata(path: "note") } `), ); -$: ({ id, displayName, email, phoneNumber, defaultOrg, defaultRole, avatarUrl, locale, plan } = $data); +$: ({ id, displayName, email, phoneNumber, currentOrgId, defaultRole, avatarUrl, locale, note } = $data); const updateUserDetails = graphql(` mutation UpdateUserDetails($id: uuid!, $data: users_set_input!) { @@ -51,7 +51,7 @@ const updateUserDetails = graphql(` displayName phoneNumber locale - plan: metadata(path: "plan") + note: metadata(path: "note") avatarUrl } } @@ -90,7 +90,7 @@ const form = superForm(defaults(zod(updateUserDetailsSchema)), { displayName: form.data.displayName, phoneNumber: form.data.phoneNumber, locale: form.data.locale, - metadata: { plan: form.data.plan, default_org: defaultOrg }, + metadata: { note: form.data.note }, avatarUrl: form.data.avatarUrl, }; const variables: UpdateUserDetails$input = { id, data: payload }; @@ -162,9 +162,9 @@ $: valid = $allErrors.length === 0; $: loadingState.setFormLoading($delayed); // copy initialData to superform as soon as data is loaded -// $: $formData = { displayName, email, phoneNumber, defaultRole, locale, plan, avatarUrl }; +// $: $formData = { displayName, email, phoneNumber, defaultRole, locale, note, avatarUrl }; $: if (id !== PendingValue) { - $formData = { displayName, email, phoneNumber, defaultRole, locale, plan, avatarUrl }; + $formData = { displayName, email, phoneNumber, defaultRole, locale, note, avatarUrl }; } @@ -285,20 +285,19 @@ $: if (id !== PendingValue) {
- + - Plan - - - - - + placeholder="User Notes..." + bind:value={$formData.note} + /> - - + +
diff --git a/apps/console/src/routes/(app)/profile/components/user-org-roles.svelte b/apps/console/src/routes/(app)/profile/components/user-org-roles.svelte index 4d3e61096..2e838bc32 100644 --- a/apps/console/src/routes/(app)/profile/components/user-org-roles.svelte +++ b/apps/console/src/routes/(app)/profile/components/user-org-roles.svelte @@ -9,19 +9,26 @@ $: data = fragment( user, graphql(` fragment UserOrgRolesFragment on users { - userOrgRoles(order_by: { organization: asc }) @list(name: "User_Org_Roles") @loading(cascade: true) { - organization + allowedOrgs(order_by: { orgId: asc }) @list(name: "User_Org_Roles") @loading(cascade: true) { + orgId + organization { + displayName + description + } role - isDefaultRole + + isCurrentOrg } } - `), + `), ); -$: ({ userOrgRoles } = $data); +$: ({ allowedOrgs } = $data); //variables -const handler = new DataHandler(userOrgRoles?.filter(loaded), { rowsPerPage: 5 }); -$: handler.setRows(userOrgRoles); +const handler = new DataHandler(allowedOrgs?.filter(loaded), { + rowsPerPage: 5, +}); +$: handler.setRows(allowedOrgs); const rows = handler.getRows(); @@ -35,24 +42,29 @@ const rows = handler.getRows(); Organization + Description Role - isDefaultRole + isCurrentOrg {#each $rows as role} - {#if role.organization === PendingValue} + {#if role.orgId === PendingValue}
+
{:else} - - {role.organization} - {role.role} - {role.isDefaultRole} - + + {role.organization.displayName} + {role.organization.description} + {role.role} + {role.isCurrentOrg} + {/if} {:else} diff --git a/apps/console/src/routes/(app)/rules/+page.gql b/apps/console/src/routes/(app)/rules/+page.gql index 9f17df56e..3e4b21ced 100644 --- a/apps/console/src/routes/(app)/rules/+page.gql +++ b/apps/console/src/routes/(app)/rules/+page.gql @@ -1,7 +1,7 @@ query Rules { rules(order_by: { createdAt: asc }) @list(name: "Rules") { action - annotations + metadata appId description destination diff --git a/apps/console/src/routes/(app)/rules/rule.svelte b/apps/console/src/routes/(app)/rules/rule.svelte index 6d57c1134..4ad8019c9 100644 --- a/apps/console/src/routes/(app)/rules/rule.svelte +++ b/apps/console/src/routes/(app)/rules/rule.svelte @@ -11,7 +11,7 @@ $: data = fragment( id createdAt updatedAt - organization + orgId tags } `), diff --git a/apps/console/src/routes/(app)/users/[id=uuid]/components/delegation.svelte b/apps/console/src/routes/(app)/users/[id=uuid]/components/delegation.svelte index 180cf3483..92100996b 100644 --- a/apps/console/src/routes/(app)/users/[id=uuid]/components/delegation.svelte +++ b/apps/console/src/routes/(app)/users/[id=uuid]/components/delegation.svelte @@ -1,6 +1,6 @@ diff --git a/packages/utils/src/collections.ts b/packages/utils/src/collections.ts index 4bd4bdb44..3ca9fdbf2 100644 --- a/packages/utils/src/collections.ts +++ b/packages/utils/src/collections.ts @@ -82,8 +82,8 @@ if (import.meta.vitest) { }); it('Test hasIntersection', async () => { - const bigArr = ['anonymous', 'me', 'user', 'supervisor', 'manager']; - const smallArr = ['something', 'supervisor', 'manager']; + const bigArr = ['anonymous', 'me', 'user', 'org:admin', 'org:owner']; + const smallArr = ['something', 'org:admin', 'org:owner']; const result = hasIntersection(bigArr, smallArr); @@ -91,8 +91,8 @@ if (import.meta.vitest) { }); it('Test isSubset', async () => { - const bigArr = ['anonymous', 'me', 'user', 'supervisor', 'manager']; - const smallArr = ['supervisor', 'manager']; + const bigArr = ['anonymous', 'me', 'user', 'org:admin', 'org:owner']; + const smallArr = ['org:admin', 'org:owner']; const result = isSubset(bigArr, smallArr); From 5a0bac84accc58a084876f601cb14c94718f78d5 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Sat, 14 Dec 2024 12:13:34 -0800 Subject: [PATCH 02/77] fix: updated deps --- apps/console/package.json | 43 +- apps/console/project.inlang/es.json | 1 - apps/console/project.inlang/settings.json | 8 +- apps/console/schema.graphql | 268 ++ apps/console/src/app.d.ts | 5 + apps/console/src/lib/i18n.ts | 2 +- .../src/routes/(app)/dashboard/+page.svelte | 16 +- apps/console/src/routes/+error.svelte | 2 +- apps/console/src/routes/+layout.svelte | 2 +- apps/console/vite.config.ts | 3 +- apps/console/vitest.config.ts | 1 - apps/docs/astro.config.mjs | 1 - apps/docs/package.json | 14 +- apps/docs/src/content.config.ts | 8 + apps/docs/src/content/config.ts | 7 - apps/smart/.gitignore | 1 + apps/smart/package.json | 41 +- apps/smart/src/app.d.ts | 5 + apps/smart/vite.config.ts | 1 + apps/web/astro.config.mjs | 56 +- apps/web/package.json | 20 +- .../{content/config.ts => content.config.ts} | 0 apps/web/src/content/newsletter/.gitkeep | 0 apps/web/src/layouts/layout.astro | 2 + apps/web/tsconfig.json | 1 + docs/hasura-auth.md | 15 +- docs/playbook.md | 4 +- package.json | 8 +- packages/skeleton-ui/package.json | 14 +- packages/smart/package.json | 20 +- packages/ui/package.json | 24 +- packages/utils/package.json | 2 +- pnpm-lock.yaml | 3671 +++++++---------- 33 files changed, 1925 insertions(+), 2341 deletions(-) create mode 100644 apps/docs/src/content.config.ts delete mode 100644 apps/docs/src/content/config.ts rename apps/web/src/{content/config.ts => content.config.ts} (100%) delete mode 100644 apps/web/src/content/newsletter/.gitkeep diff --git a/apps/console/package.json b/apps/console/package.json index 6ea789d8d..76cd0794f 100644 --- a/apps/console/package.json +++ b/apps/console/package.json @@ -31,15 +31,14 @@ "test:unit:ui": "dotenv-run -f .env -f .secrets -v -- vitest --ui" }, "devDependencies": { - "@ai-sdk/azure": "1.0.7", - "@ai-sdk/openai": "1.0.5", - "@ai-sdk/svelte": "1.0.3", + "@ai-sdk/azure": "1.0.10", + "@ai-sdk/openai": "1.0.8", + "@ai-sdk/svelte": "1.0.6", "@aibrow/dom-types": "1.2.1", "@floating-ui/dom": "1.6.12", "@fontsource-variable/inter": "5.1.0", "@inlang/cli": "2.18.1", - "@inlang/paraglide-js": "1.11.3", - "@inlang/paraglide-js-adapter-sveltekit": "0.6.7", + "@inlang/paraglide-sveltekit": "0.14.0", "@nhost/nhost-js": "3.2.1", "@skeletonlabs/skeleton": "2.10.3", "@skeletonlabs/tw-plugin": "0.4.0", @@ -51,10 +50,10 @@ "@spectacular/utils": "workspace:*", "@svelte-plugins/datepicker": "1.0.9", "@sveltejs/adapter-auto": "3.3.1", - "@sveltejs/adapter-node": "5.2.9", - "@sveltejs/adapter-vercel": "5.5.0", + "@sveltejs/adapter-node": "5.2.10", + "@sveltejs/adapter-vercel": "5.5.2", "@sveltejs/enhanced-img": "0.3.10", - "@sveltejs/kit": "2.8.5", + "@sveltejs/kit": "2.11.1", "@sveltejs/vite-plugin-svelte": "3.1.2", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/forms": "0.5.9", @@ -64,17 +63,17 @@ "@types/d3-scale": "4.0.8", "@types/dom-chromium-ai": "0.0.4", "@types/js-cookie": "3.0.6", - "@types/node": "22.10.1", - "@unovis/svelte": "1.5.0-beta.3", - "@unovis/ts": "1.5.0-beta.3", + "@types/node": "22.10.2", + "@unovis/svelte": "1.5.0", + "@unovis/ts": "1.5.0", "@vercel/analytics": "1.4.1", "@vercel/flags": "2.6.3", "@vercel/speed-insights": "1.1.0", - "@vercel/toolbar": "0.1.27", + "@vercel/toolbar": "0.1.28", "@vincjo/datatables": "1.14.10", "@vitest/coverage-v8": "2.1.8", - "@xyflow/svelte": "0.1.24", - "ai": "4.0.10", + "@xyflow/svelte": "0.1.25", + "ai": "4.0.18", "autoprefixer": "10.4.20", "chrome-ai": "1.11.1", "date-fns": "4.1.0", @@ -85,37 +84,37 @@ "houdini-svelte": "2.0.1", "js-cookie": "3.0.5", "jsdom": "25.0.1", - "lucide-svelte": "0.462.0", + "lucide-svelte": "0.468.0", "neverthrow": "8.1.1", - "ollama-ai-provider": "1.0.0", + "ollama-ai-provider": "1.1.0", "openai-zod-to-json-schema": "1.0.3", "paneforge": "0.0.6", "postcss": "8.4.49", "svelte": "4.2.19", "svelte-adapter-bun": "0.5.2", - "svelte-check": "4.1.0", + "svelte-check": "4.1.1", "svelte-meta-tags": "3.1.4", "svelte-persisted-store": "0.12.0", "svelte-select": "5.8.3", "sveltekit-flash-message": "2.4.4", "sveltekit-rate-limiter": "0.6.1", "sveltekit-search-params": "3.0.0", - "sveltekit-superforms": "2.21.0", + "sveltekit-superforms": "2.21.1", "sveltekit-view-transition": "0.5.3", - "swapy": "0.4.2", + "swapy": "1.0.2", "tailwind-merge": "2.5.5", "tailwind-variants": "0.3.0", - "tailwindcss": "3.4.15", + "tailwindcss": "3.4.16", "tailwindcss-animate": "1.0.7", "tslib": "2.8.1", "typescript": "5.7.2", "vite": "5.4.11", "vitest": "2.1.8", "xstate": "4.38.3", - "zod": "3.23.8" + "zod": "3.24.1" }, "optionalDependencies": { - "@playwright/test": "1.49.0", + "@playwright/test": "1.49.1", "@vitest/ui": "2.1.8" } } diff --git a/apps/console/project.inlang/es.json b/apps/console/project.inlang/es.json index 1c5810064..18c79565a 100644 --- a/apps/console/project.inlang/es.json +++ b/apps/console/project.inlang/es.json @@ -14,7 +14,6 @@ "lastName": "Apellido", "profile": "Perfil", "home": "Inicio", - "protected": "Protegido", "auth_password_reset_success_emailSent": "Correo electrónico de restablecimiento de contraseña enviado", "auth_password_reset_success_checkEmail": "Verifique su cuenta de correo electrónico para obtener un enlace para restablecer su contraseña. Si no aparece en unos minutos, verifique su carpeta de correo no deseado.", "auth_password_reset_resetProblem": "Problema al restablecer la contraseña", diff --git a/apps/console/project.inlang/settings.json b/apps/console/project.inlang/settings.json index 4746c68dc..023621dd4 100644 --- a/apps/console/project.inlang/settings.json +++ b/apps/console/project.inlang/settings.json @@ -1,14 +1,12 @@ { "$schema": "https://inlang.com/schema/project-settings", - "sourceLanguageTag": "en", - "languageTags": ["en", "de"], "modules": [ "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-empty-pattern@latest/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-identical-pattern@latest/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-missing-translation@latest/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-without-source@latest/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-valid-js-identifier@latest/dist/index.js", - "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@latest/dist/index.js", + "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@2/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@latest/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-snake-case-id@latest/dist/index.js" ], @@ -18,5 +16,7 @@ "messageLintRuleLevels": { "messageLintRule.inlang.missingTranslation": "error", "messageLintRule.inlang.validJsIdentifier": "error" - } + }, + "sourceLanguageTag": "en", + "languageTags": ["en", "es", "de"] } diff --git a/apps/console/schema.graphql b/apps/console/schema.graphql index 3b2bcd838..b24ae453e 100644 --- a/apps/console/schema.graphql +++ b/apps/console/schema.graphql @@ -1510,6 +1510,179 @@ input direction_stream_cursor_value_input { value: String } +""" +columns and relationships of "storage.files" +""" +type files { + bucketId: String! + createdAt: timestamptz! + etag: String + id: uuid! + isUploaded: Boolean + metadata( + """JSON select path""" + path: String + ): jsonb + mimeType: String + name: String + size: Int + updatedAt: timestamptz! + uploadedByUserId: uuid +} + +""" +Boolean expression to filter rows from the table "storage.files". All fields are combined with a logical 'AND'. +""" +input files_bool_exp { + _and: [files_bool_exp!] + _not: files_bool_exp + _or: [files_bool_exp!] + bucketId: String_comparison_exp + createdAt: timestamptz_comparison_exp + etag: String_comparison_exp + id: uuid_comparison_exp + isUploaded: Boolean_comparison_exp + metadata: jsonb_comparison_exp + mimeType: String_comparison_exp + name: String_comparison_exp + size: Int_comparison_exp + updatedAt: timestamptz_comparison_exp + uploadedByUserId: uuid_comparison_exp +} + +""" +unique or primary key constraints on table "storage.files" +""" +enum files_constraint { + """ + unique or primary key constraint on columns "id" + """ + files_pkey +} + +""" +input type for inserting data into table "storage.files" +""" +input files_insert_input { + bucketId: String + createdAt: timestamptz + etag: String + id: uuid + isUploaded: Boolean + metadata: jsonb + mimeType: String + name: String + size: Int + updatedAt: timestamptz +} + +""" +response of any mutation on the table "storage.files" +""" +type files_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [files!]! +} + +""" +on_conflict condition type for table "storage.files" +""" +input files_on_conflict { + constraint: files_constraint! + update_columns: [files_update_column!]! = [] + where: files_bool_exp +} + +"""Ordering options when selecting data from "storage.files".""" +input files_order_by { + bucketId: order_by + createdAt: order_by + etag: order_by + id: order_by + isUploaded: order_by + metadata: order_by + mimeType: order_by + name: order_by + size: order_by + updatedAt: order_by + uploadedByUserId: order_by +} + +""" +select columns of table "storage.files" +""" +enum files_select_column { + """column name""" + bucketId + + """column name""" + createdAt + + """column name""" + etag + + """column name""" + id + + """column name""" + isUploaded + + """column name""" + metadata + + """column name""" + mimeType + + """column name""" + name + + """column name""" + size + + """column name""" + updatedAt + + """column name""" + uploadedByUserId +} + +""" +Streaming cursor of the table "files" +""" +input files_stream_cursor_input { + """Stream column input with initial value""" + initial_value: files_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input files_stream_cursor_value_input { + bucketId: String + createdAt: timestamptz + etag: String + id: uuid + isUploaded: Boolean + metadata: jsonb + mimeType: String + name: String + size: Int + updatedAt: timestamptz + uploadedByUserId: uuid +} + +""" +placeholder for update columns of table "storage.files" (current role has no relevant permissions) +""" +enum files_update_column { + """placeholder (do not use)""" + _PLACEHOLDER +} + """Table containing user groups that belongs to an organization""" type groups { createdAt: timestamptz! @@ -1967,6 +2140,19 @@ type mutation_root { where: authUserSecurityKeys_bool_exp! ): authUserSecurityKeys_mutation_response + """ + delete single row from the table: "storage.files" + """ + deleteFile(id: uuid!): files + + """ + delete data from the table: "storage.files" + """ + deleteFiles( + """filter the rows which have to be deleted""" + where: files_bool_exp! + ): files_mutation_response + """ delete data from the table: "device_pools" """ @@ -2084,6 +2270,28 @@ type mutation_root { """ delete_user_org_roles_by_pk(orgId: uuid!, userId: uuid!): user_org_roles + """ + insert a single row into the table: "storage.files" + """ + insertFile( + """the row to be inserted""" + object: files_insert_input! + + """upsert condition""" + on_conflict: files_on_conflict + ): files + + """ + insert data into the table: "storage.files" + """ + insertFiles( + """the rows to be inserted""" + objects: [files_insert_input!]! + + """upsert condition""" + on_conflict: files_on_conflict + ): files_mutation_response + """ insert data into the table: "device_pools" """ @@ -4573,6 +4781,29 @@ type query_root { """fetch data from the table: "direction" using primary key columns""" direction_by_pk(value: String!): direction + """fetch data from the table: "storage.files" using primary key columns""" + file(id: uuid!): files + + """ + fetch data from the table: "storage.files" + """ + files( + """distinct select on columns""" + distinct_on: [files_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [files_order_by!] + + """filter the rows returned""" + where: files_bool_exp + ): [files!]! + """An array relationship""" groups( """distinct select on columns""" @@ -6341,6 +6572,43 @@ type subscription_root { where: direction_bool_exp ): [direction!]! + """fetch data from the table: "storage.files" using primary key columns""" + file(id: uuid!): files + + """ + fetch data from the table: "storage.files" + """ + files( + """distinct select on columns""" + distinct_on: [files_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [files_order_by!] + + """filter the rows returned""" + where: files_bool_exp + ): [files!]! + + """ + fetch data from the table in a streaming manner: "storage.files" + """ + files_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [files_stream_cursor_input]! + + """filter the rows returned""" + where: files_bool_exp + ): [files!]! + """An array relationship""" groups( """distinct select on columns""" diff --git a/apps/console/src/app.d.ts b/apps/console/src/app.d.ts index 5c958c582..b8a97acf0 100644 --- a/apps/console/src/app.d.ts +++ b/apps/console/src/app.d.ts @@ -1,6 +1,8 @@ // See https://kit.svelte.dev/docs/types#app // for information about these interfaces import type AI from '@aibrow/dom-types'; +import type { AvailableLanguageTag } from '$lib/paraglide/runtime'; +import type { ParaglideLocals } from '@inlang/paraglide-sveltekit'; type NhostClient = import('@nhost/nhost-js').NhostClient; type ToastSettings = import('@skeletonlabs/skeleton').ToastSettings; type AvailableLanguageTag = import('$i18n/runtime').AvailableLanguageTag; @@ -25,6 +27,9 @@ declare global { interface Locals { nhost: NhostClient; } + interface Locals { + paraglide: ParaglideLocals; + } interface PageData { // user?: Omit; /** diff --git a/apps/console/src/lib/i18n.ts b/apps/console/src/lib/i18n.ts index 9dfb8811d..a42322c9e 100644 --- a/apps/console/src/lib/i18n.ts +++ b/apps/console/src/lib/i18n.ts @@ -1,6 +1,6 @@ import * as m from '$i18n/messages'; import * as runtime from '$i18n/runtime.js'; -import { createI18n } from '@inlang/paraglide-js-adapter-sveltekit'; +import { createI18n } from '@inlang/paraglide-sveltekit'; export const i18n = createI18n(runtime, { pathnames: { diff --git a/apps/console/src/routes/(app)/dashboard/+page.svelte b/apps/console/src/routes/(app)/dashboard/+page.svelte index 21903b71f..f5a5587a9 100644 --- a/apps/console/src/routes/(app)/dashboard/+page.svelte +++ b/apps/console/src/routes/(app)/dashboard/+page.svelte @@ -1,11 +1,12 @@ diff --git a/apps/console/src/routes/+error.svelte b/apps/console/src/routes/+error.svelte index a1dd88516..7bb20761d 100644 --- a/apps/console/src/routes/+error.svelte +++ b/apps/console/src/routes/+error.svelte @@ -2,7 +2,7 @@ import { page } from '$app/stores'; import * as m from '$i18n/messages'; import { i18n } from '$lib/i18n'; -import { ParaglideJS } from '@inlang/paraglide-js-adapter-sveltekit'; +import { ParaglideJS } from '@inlang/paraglide-sveltekit'; import { LogoAnim } from '@spectacular/skeleton/components/logos'; const details = $page.error?.details; diff --git a/apps/console/src/routes/+layout.svelte b/apps/console/src/routes/+layout.svelte index 2bf2e2785..cecea0f25 100644 --- a/apps/console/src/routes/+layout.svelte +++ b/apps/console/src/routes/+layout.svelte @@ -14,7 +14,7 @@ import { scroll, storeTheme, storeVercelProductionMode } from '$lib/stores'; import { setLoadingState } from '$lib/stores/loading'; import { online, orientation, size } from '$lib/stores/window'; import { arrow, autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom'; -import { ParaglideJS } from '@inlang/paraglide-js-adapter-sveltekit'; +import { ParaglideJS } from '@inlang/paraglide-sveltekit'; import { Modal, initializeStores, prefersReducedMotionStore, storePopup } from '@skeletonlabs/skeleton'; import type { ModalComponent } from '@skeletonlabs/skeleton'; // biome-ignore lint/style/useImportType: biome still don't understand svelte diff --git a/apps/console/vite.config.ts b/apps/console/vite.config.ts index af7cc4c16..c2d3b659b 100644 --- a/apps/console/vite.config.ts +++ b/apps/console/vite.config.ts @@ -1,5 +1,5 @@ import * as child_process from 'node:child_process'; -import { paraglide } from '@inlang/paraglide-js-adapter-sveltekit/vite'; +import { paraglide } from '@inlang/paraglide-sveltekit/vite'; import { enhancedImages } from '@sveltejs/enhanced-img'; import { sveltekit } from '@sveltejs/kit/vite'; import { vercelToolbar } from '@vercel/toolbar/plugins/vite'; @@ -28,6 +28,7 @@ export default defineConfig({ paraglide({ project: './project.inlang', outdir: './src/i18n', + // experimentalUseVirtualModules: true, // TODO not working with svelte 4 }), vercelToolbar(), ], diff --git a/apps/console/vitest.config.ts b/apps/console/vitest.config.ts index 9810a3b1f..50b96e90a 100644 --- a/apps/console/vitest.config.ts +++ b/apps/console/vitest.config.ts @@ -1,5 +1,4 @@ import { sveltekit } from '@sveltejs/kit/vite'; -import { svelte } from '@sveltejs/vite-plugin-svelte'; import { svelteTesting } from '@testing-library/svelte/vite'; import { configDefaults, defineConfig } from 'vitest/config'; diff --git a/apps/docs/astro.config.mjs b/apps/docs/astro.config.mjs index f05d2c933..9b2d50f37 100644 --- a/apps/docs/astro.config.mjs +++ b/apps/docs/astro.config.mjs @@ -141,7 +141,6 @@ export default defineConfig({ applyBaseStyles: false, }), ], - output: process.env.CI ? 'static' : 'hybrid', // HINT: To set build output, same way like sveltekit for Dockerfile build: { server: './build', diff --git a/apps/docs/package.json b/apps/docs/package.json index d4b3fe63d..996b0683c 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -15,16 +15,16 @@ }, "dependencies": { "@astrojs/check": "0.9.4", - "@astrojs/node": "8.3.4", - "@astrojs/starlight": "0.29.2", - "@astrojs/starlight-tailwind": "2.0.3", - "@astrojs/tailwind": "5.1.2", - "@astrojs/vercel": "7.8.2", + "@astrojs/node": "9.0.0", + "@astrojs/starlight": "0.30.1", + "@astrojs/starlight-tailwind": "3.0.0", + "@astrojs/tailwind": "5.1.3", + "@astrojs/vercel": "8.0.1", "@fontsource-variable/inter": "5.1.0", "@fontsource/source-code-pro": "5.1.0", - "astro": "4.16.16", + "astro": "5.0.5", "sharp": "0.33.5", - "tailwindcss": "3.4.15", + "tailwindcss": "3.4.16", "typescript": "5.7.2" }, "devDependencies": { diff --git a/apps/docs/src/content.config.ts b/apps/docs/src/content.config.ts new file mode 100644 index 000000000..e54e72fa2 --- /dev/null +++ b/apps/docs/src/content.config.ts @@ -0,0 +1,8 @@ +import { defineCollection } from 'astro:content'; +import { docsLoader, i18nLoader } from '@astrojs/starlight/loaders'; +import { docsSchema, i18nSchema } from '@astrojs/starlight/schema'; + +export const collections = { + docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }), + i18n: defineCollection({ loader: i18nLoader(), schema: i18nSchema() }), +}; diff --git a/apps/docs/src/content/config.ts b/apps/docs/src/content/config.ts deleted file mode 100644 index 02ea2ac07..000000000 --- a/apps/docs/src/content/config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineCollection } from 'astro:content'; -import { docsSchema, i18nSchema } from '@astrojs/starlight/schema'; - -export const collections = { - docs: defineCollection({ schema: docsSchema() }), - i18n: defineCollection({ type: 'data', schema: i18nSchema() }), -}; diff --git a/apps/smart/.gitignore b/apps/smart/.gitignore index 7ea7f78fc..962b5f093 100644 --- a/apps/smart/.gitignore +++ b/apps/smart/.gitignore @@ -6,3 +6,4 @@ node_modules vite.config.js.timestamp-* vite.config.ts.timestamp-* test-results +src/i18n diff --git a/apps/smart/package.json b/apps/smart/package.json index 3ce59dee6..ebaf1a688 100644 --- a/apps/smart/package.json +++ b/apps/smart/package.json @@ -26,45 +26,50 @@ "test:e2e": "dotenv-run -f .env -f .secrets -v -- playwright test" }, "devDependencies": { + "@ai-sdk/azure": "1.0.10", + "@ai-sdk/openai": "1.0.8", + "@ai-sdk/svelte": "1.0.6", "@aibrow/dom-types": "1.2.1", - "@inlang/paraglide-sveltekit": "0.12.1", - "@playwright/test": "1.49.0", + "@inlang/paraglide-sveltekit": "0.14.0", + "@playwright/test": "1.49.1", "@spectacular/biome-config": "workspace:*", "@spectacular/typescript-config": "workspace:*", "@spectacular/ui": "workspace:*", "@spectacular/utils": "workspace:*", "@sveltejs/adapter-auto": "3.3.1", - "@sveltejs/enhanced-img": "0.4.1", - "@sveltejs/kit": "2.9.0", - "@sveltejs/vite-plugin-svelte": "5.0.1", - "@tailwindcss/aspect-ratio": "0.4.2", + "@sveltejs/adapter-node": "5.2.10", + "@sveltejs/adapter-vercel": "5.5.2", + "@sveltejs/enhanced-img": "0.4.4", + "@sveltejs/kit": "2.11.1", + "@sveltejs/vite-plugin-svelte": "5.0.2", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/forms": "0.5.9", "@tailwindcss/typography": "0.5.15", "@tanstack/table-core": "8.20.5", "@types/dom-chromium-ai": "0.0.4", + "ai": "4.0.18", "autoprefixer": "10.4.20", - "bits-ui": "1.0.0-next.51", + "bits-ui": "1.0.0-next.71", "clsx": "2.1.1", - "formsnap": "2.0.0-next.1", - "lucide-svelte": "0.462.0", + "formsnap": "2.0.0", + "lucide-svelte": "0.468.0", "mode-watcher": "0.5.0", - "openai-zod-to-json-schema": "^1.0.3", - "runed": "0.16.1", - "svelte": "5.4.0", - "svelte-check": "4.1.0", + "openai-zod-to-json-schema": "1.0.3", + "runed": "0.18.0", + "svelte": "5.13.0", + "svelte-check": "4.1.1", "svelte-persisted-store": "0.12.0", "svelte-radix": "2.0.1", "svelte-sonner": "0.3.28", - "sveltekit-superforms": "2.21.0", + "sveltekit-superforms": "2.21.1", "tailwind-merge": "2.5.5", "tailwind-variants": "0.3.0", - "tailwindcss": "3.4.15", + "tailwindcss": "3.4.16", "tailwindcss-animate": "1.0.7", "typescript": "5.7.2", - "vaul-svelte": "1.0.0-next.2", - "vite": "6.0.2", + "vaul-svelte": "1.0.0-next.3", + "vite": "6.0.3", "vitest": "2.1.8", - "zod": "3.23.8" + "zod": "3.24.1" } } diff --git a/apps/smart/src/app.d.ts b/apps/smart/src/app.d.ts index 9637f21fc..efba314b4 100644 --- a/apps/smart/src/app.d.ts +++ b/apps/smart/src/app.d.ts @@ -2,9 +2,14 @@ // for information about these interfaces import type AI from '@aibrow/dom-types'; +import type { AvailableLanguageTag } from "$lib/paraglide/runtime" +import type { ParaglideLocals } from "@inlang/paraglide-sveltekit" declare global { namespace App { + interface Locals { + paraglide: ParaglideLocals + } // interface Error {} // interface Locals {} // interface PageData {} diff --git a/apps/smart/vite.config.ts b/apps/smart/vite.config.ts index 44f55e692..a70568163 100644 --- a/apps/smart/vite.config.ts +++ b/apps/smart/vite.config.ts @@ -10,6 +10,7 @@ export default defineConfig({ paraglide({ project: './project.inlang', outdir: './src/i18n', + experimentalUseVirtualModules: true, }), ], test: { diff --git a/apps/web/astro.config.mjs b/apps/web/astro.config.mjs index 1ee6abc67..24a96ee6b 100644 --- a/apps/web/astro.config.mjs +++ b/apps/web/astro.config.mjs @@ -15,7 +15,7 @@ const SITE_URL = process.env.VERCEL_ENV === 'production' ? process.env.SITE_URL export default defineConfig({ site: SITE_URL, integrations: [ - starlight({ title: 'Web' }), + starlight({ title: 'Web', disable404Route: true }), tailwind({ // Disable the default base styles: // Example: Disable injecting a basic `base.css` import on every page. @@ -28,7 +28,6 @@ export default defineConfig({ expressiveCode(), mdx(), ], - output: 'hybrid', // HINT: To set build output, same way like sveltekit for Dockerfile build: { server: './build', @@ -51,34 +50,31 @@ export default defineConfig({ prefetchAll: true, defaultStrategy: 'hover', }, - experimental: { - serverIslands: true, - clientPrerender: true, - env: { - schema: { - API_VERSION: envField.enum({ - context: 'server', - access: 'secret', - values: ['v1', 'v2'], - optional: true, - }), - API_PORT: envField.number({ - context: 'server', - access: 'secret', - gt: 1024, - default: 7000, - }), - PUBLIC_SOME_SERVER_FEATURE_FLAG: envField.boolean({ - context: 'server', - access: 'public', - default: false, - }), - PUBLIC_SOME_CLIENT_FEATURE_FLAG: envField.boolean({ - context: 'client', - access: 'public', - default: false, - }), - }, + + env: { + schema: { + API_VERSION: envField.enum({ + context: 'server', + access: 'secret', + values: ['v1', 'v2'], + optional: true, + }), + API_PORT: envField.number({ + context: 'server', + access: 'secret', + gt: 1024, + default: 7000, + }), + PUBLIC_SOME_SERVER_FEATURE_FLAG: envField.boolean({ + context: 'server', + access: 'public', + default: false, + }), + PUBLIC_SOME_CLIENT_FEATURE_FLAG: envField.boolean({ + context: 'client', + access: 'public', + default: false, + }), }, }, }); diff --git a/apps/web/package.json b/apps/web/package.json index 080a98486..e5bb325d3 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -20,14 +20,14 @@ }, "devDependencies": { "@astrojs/check": "0.9.4", - "@astrojs/mdx": "3.1.9", - "@astrojs/node": "8.3.4", + "@astrojs/mdx": "4.0.2", + "@astrojs/node": "9.0.0", "@astrojs/partytown": "2.1.2", "@astrojs/sitemap": "3.2.1", - "@astrojs/starlight": "0.29.2", - "@astrojs/svelte": "6.0.2", - "@astrojs/tailwind": "5.1.2", - "@astrojs/vercel": "7.8.2", + "@astrojs/starlight": "0.30.1", + "@astrojs/svelte": "7.0.1", + "@astrojs/tailwind": "5.1.3", + "@astrojs/vercel": "8.0.1", "@fontsource-variable/inter": "5.1.0", "@fontsource/source-code-pro": "5.1.0", "@spectacular/biome-config": "workspace:*", @@ -35,14 +35,14 @@ "@spectacular/utils": "workspace:*", "@tailwindcss/typography": "0.5.15", "@vitest/coverage-v8": "2.1.8", - "astro": "4.16.16", + "astro": "5.0.5", "astro-expressive-code": "0.38.3", "astro-seo": "0.8.4", - "lucide-svelte": "0.462.0", + "lucide-svelte": "0.468.0", "mode-watcher": "0.5.0", - "svelte": "5.4.0", + "svelte": "5.13.0", "tailwind-merge": "2.5.5", - "tailwindcss": "3.4.15", + "tailwindcss": "3.4.16", "typescript": "5.7.2", "vitest": "2.1.8" } diff --git a/apps/web/src/content/config.ts b/apps/web/src/content.config.ts similarity index 100% rename from apps/web/src/content/config.ts rename to apps/web/src/content.config.ts diff --git a/apps/web/src/content/newsletter/.gitkeep b/apps/web/src/content/newsletter/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/web/src/layouts/layout.astro b/apps/web/src/layouts/layout.astro index 2a339bd0f..d325e6e6a 100644 --- a/apps/web/src/layouts/layout.astro +++ b/apps/web/src/layouts/layout.astro @@ -6,6 +6,7 @@ import AppFooter from '@components/app-footer.astro'; import AppHeader from '@components/app-header.astro'; import { SEO } from 'astro-seo'; import { ModeWatcher } from 'mode-watcher'; +import { ClientRouter } from 'astro:transitions'; interface Props { title: string; @@ -49,6 +50,7 @@ const { title } = Astro.props; }, }} /> + diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index 7ae3865f9..313a4da6e 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -13,5 +13,6 @@ "@styles/*": ["styles/*"] } }, + "include": [".astro/types.d.ts", "**/*"], "exclude": ["node_modules", "dist", ".vercel"] } diff --git a/docs/hasura-auth.md b/docs/hasura-auth.md index 809e857ae..8b34180fe 100644 --- a/docs/hasura-auth.md +++ b/docs/hasura-auth.md @@ -105,6 +105,12 @@ await nhost.auth.signUp({ }) ``` +Current user's `allowed-roles` and `default-role` once they switch to an `Org` in multi-tenancy setup : + +> allowed roles = user roles (auth.user_roles) + org role (public.user_org_roles) + +> default role = org role (public.user_org_roles) = user default role (auth.user) + ### Set Role for GraphQL Requests When no role is specified, the user’s default role will be used: @@ -131,10 +137,14 @@ await nhost.graphql.request( | Role | Action | Permissions | | ---------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------- | -| org:member | select | {"_and":[{"deleted_at":{"_is_null":true}},{"organization":{"_eq":"x-hasura-default-org"}},{"created_by":{"_eq":"x-hasura-user-id"}}]} | +| user | select | {"_and":[{"deleted_at":{"_is_null":true}},{"organization":{"_eq":"x-hasura-default-org"}},{"created_by":{"_eq":"x-hasura-user-id"}}]} | | org:admin | select | {"_and":[{"deleted_at":{"_is_null":true}},{"organization":{"_eq":"x-hasura-default-org"}}]} | -| org:member | update | {"_and":[{"deleted_at":{"_is_null":true}},{"organization":{"_eq":"x-hasura-default-org"}},{"created_by":{"_eq":"x-hasura-user-id"}}]} | +| org:owner | select | {"_and":[{"deleted_at":{"_is_null":true}},{"organization":{"_eq":"x-hasura-default-org"}}]} | +| sys:admin | select | {"_and":[{"deleted_at":{"_is_null":true}},{"organization":{"_eq":"x-hasura-default-org"}}]} | +| user | update | {"_and":[{"deleted_at":{"_is_null":true}},{"organization":{"_eq":"x-hasura-default-org"}},{"created_by":{"_eq":"x-hasura-user-id"}}]} | | org:admin | update | {"_and":[{"deleted_at":{"_is_null":true}},{"organization":{"_eq":"x-hasura-default-org"}}]} | +| org:owner | update | {"_and":[{"deleted_at":{"_is_null":true}},{"organization":{"_eq":"x-hasura-default-org"}}]} | +| sys:admin | update | {"_and":[{"deleted_at":{"_is_null":true}},{"organization":{"_eq":"x-hasura-default-org"}}]} | > `delete` action is desable for most cases, as we do `soft-delete` @@ -233,3 +243,4 @@ You can find an example of a function that can generate a valid access token for - [user management in nhost](https://docs.nhost.io/guides/auth/users) - [Hasura Authentication Using JWTs](https://hasura.io/docs/latest/auth/authentication/jwt/) - [logto: Understand how organizations work](https://docs.logto.io/docs/recipes/organizations/understand-how-it-works/) +- [FedCA](https://developer.mozilla.org/en-US/docs/Web/API/Credential_Management_API/Credential_types) diff --git a/docs/playbook.md b/docs/playbook.md index 57bf304b0..c82ce2ca1 100644 --- a/docs/playbook.md +++ b/docs/playbook.md @@ -413,8 +413,8 @@ pnpm add -D svelte-select We switched to inlang's [Paraglide JS](https://inlang.com/m/dxnzrydw/library-inlang-paraglideJsAdapterSvelteKit) for i18n ```shell -npx @inlang/paraglide-js init -npm i -D @inlang/paraglide-js-adapter-sveltekit +npx @inlang/paraglide-sveltekit init +npm install ``` #### Progressive Web Apps (PWA) diff --git a/package.json b/package.json index 7caea9b1d..8c502f0ea 100644 --- a/package.json +++ b/package.json @@ -60,14 +60,14 @@ "@changesets/cli": "2.27.10", "@dotenv-run/cli": "1.3.6", "@manypkg/cli": "0.23.0", - "@markuplint/astro-parser": "4.6.13", - "@markuplint/svelte-parser": "4.7.3", + "@markuplint/astro-parser": "4.6.14", + "@markuplint/svelte-parser": "4.7.4", "@spectacular/biome-config": "workspace:*", "@spectacular/typescript-config": "workspace:*", "cspell": "8.16.1", "husky": "9.1.7", - "lint-staged": "15.2.10", - "markuplint": "4.11.3", + "lint-staged": "15.2.11", + "markuplint": "4.11.4", "turbo": "2.3.3", "vitest": "2.1.8" }, diff --git a/packages/skeleton-ui/package.json b/packages/skeleton-ui/package.json index 8e2babddc..ffa7b6818 100644 --- a/packages/skeleton-ui/package.json +++ b/packages/skeleton-ui/package.json @@ -35,18 +35,20 @@ "devDependencies": { "@floating-ui/dom": "1.6.12", "@fontsource-variable/inter": "5.1.0", + "@inlang/paraglide-sveltekit": "0.14.0", "@skeletonlabs/skeleton": "2.10.3", "@skeletonlabs/tw-plugin": "0.4.0", "@spectacular/biome-config": "workspace:*", "@spectacular/typescript-config": "workspace:*", "@spectacular/utils": "workspace:*", - "@sveltejs/kit": "2.8.5", + "@sveltejs/kit": "2.11.1", + "@sveltejs/vite-plugin-svelte": "3.1.2", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/forms": "0.5.9", "@tailwindcss/line-clamp": "0.4.4", "@tailwindcss/typography": "0.5.15", "@tsconfig/svelte": "5.0.4", - "@types/node": "22.10.1", + "@types/node": "22.10.2", "@vincjo/datatables": "1.14.10", "@vitest/coverage-v8": "2.1.8", "autoprefixer": "10.4.20", @@ -56,20 +58,20 @@ "date-fns": "4.1.0", "formsnap": "1.0.1", "graphql": "16.9.0", - "lucide-svelte": "0.462.0", + "lucide-svelte": "0.468.0", "postcss": "8.4.49", "postcss-import": "16.1.0", "postcss-load-config": "6.0.1", "svelte": "4.2.19", - "sveltekit-superforms": "2.21.0", + "sveltekit-superforms": "2.21.1", "tailwind-merge": "2.5.5", "tailwind-variants": "0.3.0", - "tailwindcss": "3.4.15", + "tailwindcss": "3.4.16", "tslib": "2.8.1", "typescript": "5.7.2", "vite": "5.4.11", "vitest": "2.1.8", - "zod": "3.23.8" + "zod": "3.24.1" }, "peerDependencies": { "@sveltejs/kit": "^2.0.0", diff --git a/packages/smart/package.json b/packages/smart/package.json index 73bc94a66..02bd95bdb 100644 --- a/packages/smart/package.json +++ b/packages/smart/package.json @@ -27,38 +27,40 @@ "test:watch": "vitest" }, "devDependencies": { - "@ai-sdk/svelte": "1.0.3", + "@ai-sdk/svelte": "1.0.6", "@aibrow/dom-types": "1.2.1", "@floating-ui/dom": "1.6.12", + "@inlang/paraglide-sveltekit": "0.14.0", "@skeletonlabs/skeleton": "2.10.3", "@spectacular/biome-config": "workspace:*", "@spectacular/skeleton": "workspace:*", "@spectacular/typescript-config": "workspace:*", "@spectacular/utils": "workspace:*", "@svelte-plugins/datepicker": "1.0.9", - "@sveltejs/kit": "2.8.5", + "@sveltejs/kit": "2.11.1", + "@sveltejs/vite-plugin-svelte": "3.1.2", "@tsconfig/svelte": "5.0.4", "@types/dom-chromium-ai": "0.0.4", - "@types/node": "22.10.1", + "@types/node": "22.10.2", "@vitest/coverage-v8": "2.1.8", - "ai": "4.0.10", + "ai": "4.0.18", "chrome-ai": "1.11.1", "date-fns": "4.1.0", "formsnap": "1.0.1", "gjp-4-gpt": "0.0.8", - "lucide-svelte": "0.462.0", + "lucide-svelte": "0.468.0", "svelte": "4.2.19", - "svelte-check": "4.1.0", + "svelte-check": "4.1.1", "svelte-select": "5.8.3", - "sveltekit-superforms": "2.21.0", + "sveltekit-superforms": "2.21.1", "tailwind-merge": "2.5.5", "tailwind-variants": "0.3.0", - "tailwindcss": "3.4.15", + "tailwindcss": "3.4.16", "tslib": "2.8.1", "typescript": "5.7.2", "vite": "5.4.11", "vitest": "2.1.8", - "zod": "3.23.8" + "zod": "3.24.1" }, "peerDependencies": { "@sveltejs/kit": "^2.0.0", diff --git a/packages/ui/package.json b/packages/ui/package.json index ed4995cd7..dc5dd316f 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -43,42 +43,42 @@ "tailwindcss-animate": "1.0.7" }, "devDependencies": { - "@inlang/paraglide-sveltekit": "0.12.1", + "@inlang/paraglide-sveltekit": "0.14.0", "@internationalized/date": "3.6.0", "@spectacular/biome-config": "workspace:*", "@spectacular/typescript-config": "workspace:*", "@spectacular/utils": "workspace:*", "@sveltejs/adapter-auto": "3.3.1", - "@sveltejs/kit": "2.9.0", - "@sveltejs/vite-plugin-svelte": "5.0.1", + "@sveltejs/kit": "2.11.1", + "@sveltejs/vite-plugin-svelte": "5.0.2", "@tailwindcss/aspect-ratio": "0.4.2", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/forms": "0.5.9", "@tailwindcss/typography": "0.5.15", "@tanstack/table-core": "8.20.5", "@tsconfig/svelte": "5.0.4", - "@types/node": "22.10.1", + "@types/node": "22.10.2", "@vitest/coverage-v8": "2.1.8", "autoprefixer": "10.4.20", "bits-ui": "1.0.0-next.51", "cssnano": "7.0.6", "embla-carousel-svelte": "8.5.1", - "formsnap": "2.0.0-next.1", - "lucide-svelte": "0.462.0", + "formsnap": "2.0.0", + "lucide-svelte": "0.468.0", "mode-watcher": "0.5.0", "paneforge": "1.0.0-next.1", "postcss-import": "16.1.0", "postcss-load-config": "6.0.1", - "svelte": "5.4.0", - "svelte-check": "4.1.0", + "svelte": "5.13.0", + "svelte-check": "4.1.1", "svelte-sonner": "0.3.28", - "sveltekit-superforms": "2.21.0", - "tailwindcss": "3.4.15", + "sveltekit-superforms": "2.21.1", + "tailwindcss": "3.4.16", "typescript": "5.7.2", "vaul-svelte": "1.0.0-next.2", - "vite": "6.0.2", + "vite": "6.0.3", "vitest": "2.1.8", - "zod": "3.23.8" + "zod": "3.24.1" }, "peerDependencies": { "@sveltejs/kit": "^2.0.0", diff --git a/packages/utils/package.json b/packages/utils/package.json index 7fe6f06db..2ac77c541 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -22,7 +22,7 @@ "@spectacular/biome-config": "workspace:*", "@spectacular/typescript-config": "workspace:*", "@vitest/coverage-v8": "2.1.8", - "zod": "3.23.8", + "zod": "3.24.1", "zod-validation-error": "3.4.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b8e592ad5..7bb366589 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,11 +28,11 @@ importers: specifier: 0.23.0 version: 0.23.0 '@markuplint/astro-parser': - specifier: 4.6.13 - version: 4.6.13(typescript@5.7.2) + specifier: 4.6.14 + version: 4.6.14(typescript@5.7.2) '@markuplint/svelte-parser': - specifier: 4.7.3 - version: 4.7.3 + specifier: 4.7.4 + version: 4.7.4 '@spectacular/biome-config': specifier: workspace:* version: link:packages/biome-config @@ -46,36 +46,36 @@ importers: specifier: 9.1.7 version: 9.1.7 lint-staged: - specifier: 15.2.10 - version: 15.2.10 + specifier: 15.2.11 + version: 15.2.11 markuplint: - specifier: 4.11.3 - version: 4.11.3(typescript@5.7.2) + specifier: 4.11.4 + version: 4.11.4(typescript@5.7.2) turbo: specifier: 2.3.3 version: 2.3.3 vitest: specifier: 2.1.8 - version: 2.1.8(@types/node@22.10.1)(@vitest/ui@2.1.8)(jsdom@25.0.1) + version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1) apps/console: optionalDependencies: '@playwright/test': - specifier: 1.49.0 - version: 1.49.0 + specifier: 1.49.1 + version: 1.49.1 '@vitest/ui': specifier: 2.1.8 version: 2.1.8(vitest@2.1.8) devDependencies: '@ai-sdk/azure': - specifier: 1.0.7 - version: 1.0.7(zod@3.23.8) + specifier: 1.0.10 + version: 1.0.10(zod@3.24.1) '@ai-sdk/openai': - specifier: 1.0.5 - version: 1.0.5(zod@3.23.8) + specifier: 1.0.8 + version: 1.0.8(zod@3.24.1) '@ai-sdk/svelte': - specifier: 1.0.3 - version: 1.0.3(svelte@4.2.19)(zod@3.23.8) + specifier: 1.0.6 + version: 1.0.6(svelte@4.2.19)(zod@3.24.1) '@aibrow/dom-types': specifier: 1.2.1 version: 1.2.1 @@ -88,12 +88,9 @@ importers: '@inlang/cli': specifier: 2.18.1 version: 2.18.1 - '@inlang/paraglide-js': - specifier: 1.11.3 - version: 1.11.3(babel-plugin-macros@3.1.0) - '@inlang/paraglide-js-adapter-sveltekit': - specifier: 0.6.7 - version: 0.6.7(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(babel-plugin-macros@3.1.0)(svelte@4.2.19) + '@inlang/paraglide-sveltekit': + specifier: 0.14.0 + version: 0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) '@nhost/nhost-js': specifier: 3.2.1 version: 3.2.1(graphql@16.9.0) @@ -102,7 +99,7 @@ importers: version: 2.10.3(svelte@4.2.19) '@skeletonlabs/tw-plugin': specifier: 0.4.0 - version: 0.4.0(tailwindcss@3.4.15) + version: 0.4.0(tailwindcss@3.4.16) '@spectacular/biome-config': specifier: workspace:* version: link:../../packages/biome-config @@ -126,37 +123,37 @@ importers: version: 1.0.9 '@sveltejs/adapter-auto': specifier: 3.3.1 - version: 3.3.1(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))) + version: 3.3.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) '@sveltejs/adapter-node': - specifier: 5.2.9 - version: 5.2.9(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))) + specifier: 5.2.10 + version: 5.2.10(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) '@sveltejs/adapter-vercel': - specifier: 5.5.0 - version: 5.5.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(rollup@4.28.0) + specifier: 5.5.2 + version: 5.5.2(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(rollup@4.28.1) '@sveltejs/enhanced-img': specifier: 0.3.10 - version: 0.3.10(rollup@4.28.0)(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + version: 0.3.10(rollup@4.28.1)(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/kit': - specifier: 2.8.5 - version: 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + specifier: 2.11.1 + version: 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/vite-plugin-svelte': specifier: 3.1.2 - version: 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + version: 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@tailwindcss/container-queries': specifier: 0.1.1 - version: 0.1.1(tailwindcss@3.4.15) + version: 0.1.1(tailwindcss@3.4.16) '@tailwindcss/forms': specifier: 0.5.9 - version: 0.5.9(tailwindcss@3.4.15) + version: 0.5.9(tailwindcss@3.4.16) '@tailwindcss/typography': specifier: 0.5.15 - version: 0.5.15(tailwindcss@3.4.15) + version: 0.5.15(tailwindcss@3.4.16) '@testing-library/jest-dom': specifier: 6.6.3 version: 6.6.3 '@testing-library/svelte': specifier: 5.2.6 - version: 5.2.6(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))(vitest@2.1.8) + version: 5.2.6(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))(vitest@2.1.8) '@types/d3-scale': specifier: 4.0.8 version: 4.0.8 @@ -167,26 +164,26 @@ importers: specifier: 3.0.6 version: 3.0.6 '@types/node': - specifier: 22.10.1 - version: 22.10.1 + specifier: 22.10.2 + version: 22.10.2 '@unovis/svelte': - specifier: 1.5.0-beta.3 - version: 1.5.0-beta.3(@unovis/ts@1.5.0-beta.3)(svelte@4.2.19) + specifier: 1.5.0 + version: 1.5.0(@unovis/ts@1.5.0)(svelte@4.2.19) '@unovis/ts': - specifier: 1.5.0-beta.3 - version: 1.5.0-beta.3 + specifier: 1.5.0 + version: 1.5.0 '@vercel/analytics': specifier: 1.4.1 - version: 1.4.1(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(react@18.3.1)(svelte@4.2.19) + version: 1.4.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19) '@vercel/flags': specifier: 2.6.3 - version: 2.6.3(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(react@18.3.1) + version: 2.6.3(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1) '@vercel/speed-insights': specifier: 1.1.0 - version: 1.1.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(react@18.3.1)(svelte@4.2.19) + version: 1.1.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19) '@vercel/toolbar': - specifier: 0.1.27 - version: 0.1.27(react@18.3.1)(vite@5.4.11(@types/node@22.10.1)) + specifier: 0.1.28 + version: 0.1.28(react@18.3.1)(vite@5.4.11(@types/node@22.10.2)) '@vincjo/datatables': specifier: 1.14.10 version: 1.14.10(svelte@4.2.19) @@ -194,11 +191,11 @@ importers: specifier: 2.1.8 version: 2.1.8(vitest@2.1.8) '@xyflow/svelte': - specifier: 0.1.24 - version: 0.1.24(svelte@4.2.19) + specifier: 0.1.25 + version: 0.1.25(svelte@4.2.19) ai: - specifier: 4.0.10 - version: 4.0.10(react@18.3.1)(zod@3.23.8) + specifier: 4.0.18 + version: 4.0.18(react@18.3.1)(zod@3.24.1) autoprefixer: specifier: 10.4.20 version: 10.4.20(postcss@8.4.49) @@ -210,7 +207,7 @@ importers: version: 4.1.0 formsnap: specifier: 1.0.1 - version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) + version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) graphql: specifier: 16.9.0 version: 16.9.0 @@ -222,7 +219,7 @@ importers: version: 1.3.1 houdini-svelte: specifier: 2.0.1 - version: 2.0.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/node@22.10.1) + version: 2.0.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/node@22.10.2) js-cookie: specifier: 3.0.5 version: 3.0.5 @@ -230,17 +227,17 @@ importers: specifier: 25.0.1 version: 25.0.1 lucide-svelte: - specifier: 0.462.0 - version: 0.462.0(svelte@4.2.19) + specifier: 0.468.0 + version: 0.468.0(svelte@4.2.19) neverthrow: specifier: 8.1.1 version: 8.1.1 ollama-ai-provider: - specifier: 1.0.0 - version: 1.0.0(zod@3.23.8) + specifier: 1.1.0 + version: 1.1.0(zod@3.24.1) openai-zod-to-json-schema: specifier: 1.0.3 - version: 1.0.3(zod@3.23.8) + version: 1.0.3(zod@3.24.1) paneforge: specifier: 0.0.6 version: 0.0.6(svelte@4.2.19) @@ -254,8 +251,8 @@ importers: specifier: 0.5.2 version: 0.5.2 svelte-check: - specifier: 4.1.0 - version: 4.1.0(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.7.2) + specifier: 4.1.1 + version: 4.1.1(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.7.2) svelte-meta-tags: specifier: 3.1.4 version: 3.1.4(svelte@4.2.19)(typescript@5.7.2) @@ -267,34 +264,34 @@ importers: version: 5.8.3 sveltekit-flash-message: specifier: 2.4.4 - version: 2.4.4(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19) + version: 2.4.4(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19) sveltekit-rate-limiter: specifier: 0.6.1 - version: 0.6.1(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))) + version: 0.6.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) sveltekit-search-params: specifier: 3.0.0 - version: 3.0.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + version: 3.0.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) sveltekit-superforms: - specifier: 2.21.0 - version: 2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + specifier: 2.21.1 + version: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) sveltekit-view-transition: specifier: 0.5.3 - version: 0.5.3(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19) + version: 0.5.3(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19) swapy: - specifier: 0.4.2 - version: 0.4.2 + specifier: 1.0.2 + version: 1.0.2 tailwind-merge: specifier: 2.5.5 version: 2.5.5 tailwind-variants: specifier: 0.3.0 - version: 0.3.0(tailwindcss@3.4.15) + version: 0.3.0(tailwindcss@3.4.16) tailwindcss: - specifier: 3.4.15 - version: 3.4.15 + specifier: 3.4.16 + version: 3.4.16 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.15) + version: 1.0.7(tailwindcss@3.4.16) tslib: specifier: 2.8.1 version: 2.8.1 @@ -303,16 +300,16 @@ importers: version: 5.7.2 vite: specifier: 5.4.11 - version: 5.4.11(@types/node@22.10.1) + version: 5.4.11(@types/node@22.10.2) vitest: specifier: 2.1.8 - version: 2.1.8(@types/node@22.10.1)(@vitest/ui@2.1.8)(jsdom@25.0.1) + version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1) xstate: specifier: 4.38.3 version: 4.38.3 zod: - specifier: 3.23.8 - version: 3.23.8 + specifier: 3.24.1 + version: 3.24.1 apps/docs: dependencies: @@ -320,20 +317,20 @@ importers: specifier: 0.9.4 version: 0.9.4(typescript@5.7.2) '@astrojs/node': - specifier: 8.3.4 - version: 8.3.4(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)) + specifier: 9.0.0 + version: 9.0.0(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/starlight': - specifier: 0.29.2 - version: 0.29.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)) + specifier: 0.30.1 + version: 0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/starlight-tailwind': - specifier: 2.0.3 - version: 2.0.3(@astrojs/starlight@0.29.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)))(@astrojs/tailwind@5.1.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(tailwindcss@3.4.15))(tailwindcss@3.4.15) + specifier: 3.0.0 + version: 3.0.0(@astrojs/starlight@0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)))(@astrojs/tailwind@5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16))(tailwindcss@3.4.16) '@astrojs/tailwind': - specifier: 5.1.2 - version: 5.1.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(tailwindcss@3.4.15) + specifier: 5.1.3 + version: 5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16) '@astrojs/vercel': - specifier: 7.8.2 - version: 7.8.2(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(react@18.3.1)(rollup@4.28.0)(svelte@5.4.0) + specifier: 8.0.1 + version: 8.0.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.13.0) '@fontsource-variable/inter': specifier: 5.1.0 version: 5.1.0 @@ -341,14 +338,14 @@ importers: specifier: 5.1.0 version: 5.1.0 astro: - specifier: 4.16.16 - version: 4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2) + specifier: 5.0.5 + version: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) sharp: specifier: 0.33.5 version: 0.33.5 tailwindcss: - specifier: 3.4.15 - version: 3.4.15 + specifier: 3.4.16 + version: 3.4.16 typescript: specifier: 5.7.2 version: 5.7.2 @@ -359,15 +356,24 @@ importers: apps/smart: devDependencies: + '@ai-sdk/azure': + specifier: 1.0.10 + version: 1.0.10(zod@3.24.1) + '@ai-sdk/openai': + specifier: 1.0.8 + version: 1.0.8(zod@3.24.1) + '@ai-sdk/svelte': + specifier: 1.0.6 + version: 1.0.6(svelte@5.13.0)(zod@3.24.1) '@aibrow/dom-types': specifier: 1.2.1 version: 1.2.1 '@inlang/paraglide-sveltekit': - specifier: 0.12.1 - version: 0.12.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) + specifier: 0.14.0 + version: 0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) '@playwright/test': - specifier: 1.49.0 - version: 1.49.0 + specifier: 1.49.1 + version: 1.49.1 '@spectacular/biome-config': specifier: workspace:* version: link:../../packages/biome-config @@ -382,103 +388,109 @@ importers: version: link:../../packages/utils '@sveltejs/adapter-auto': specifier: 3.3.1 - version: 3.3.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1))) + version: 3.3.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))) + '@sveltejs/adapter-node': + specifier: 5.2.10 + version: 5.2.10(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))) + '@sveltejs/adapter-vercel': + specifier: 5.5.2 + version: 5.5.2(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(rollup@4.28.1) '@sveltejs/enhanced-img': - specifier: 0.4.1 - version: 0.4.1(rollup@4.28.0)(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) + specifier: 0.4.4 + version: 0.4.4(rollup@4.28.1)(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@sveltejs/kit': - specifier: 2.9.0 - version: 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) + specifier: 2.11.1 + version: 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': - specifier: 5.0.1 - version: 5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) - '@tailwindcss/aspect-ratio': - specifier: 0.4.2 - version: 0.4.2(tailwindcss@3.4.15) + specifier: 5.0.2 + version: 5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@tailwindcss/container-queries': specifier: 0.1.1 - version: 0.1.1(tailwindcss@3.4.15) + version: 0.1.1(tailwindcss@3.4.16) '@tailwindcss/forms': specifier: 0.5.9 - version: 0.5.9(tailwindcss@3.4.15) + version: 0.5.9(tailwindcss@3.4.16) '@tailwindcss/typography': specifier: 0.5.15 - version: 0.5.15(tailwindcss@3.4.15) + version: 0.5.15(tailwindcss@3.4.16) '@tanstack/table-core': specifier: 8.20.5 version: 8.20.5 '@types/dom-chromium-ai': specifier: 0.0.4 version: 0.0.4 + ai: + specifier: 4.0.18 + version: 4.0.18(react@18.3.1)(zod@3.24.1) autoprefixer: specifier: 10.4.20 version: 10.4.20(postcss@8.4.49) bits-ui: - specifier: 1.0.0-next.51 - version: 1.0.0-next.51(svelte@5.4.0) + specifier: 1.0.0-next.71 + version: 1.0.0-next.71(svelte@5.13.0) clsx: specifier: 2.1.1 version: 2.1.1 formsnap: - specifier: 2.0.0-next.1 - version: 2.0.0-next.1(svelte@5.4.0)(sveltekit-superforms@2.21.0(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.4.0)(typescript@5.7.2)) + specifier: 2.0.0 + version: 2.0.0(svelte@5.13.0)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2)) lucide-svelte: - specifier: 0.462.0 - version: 0.462.0(svelte@5.4.0) + specifier: 0.468.0 + version: 0.468.0(svelte@5.13.0) mode-watcher: specifier: 0.5.0 - version: 0.5.0(svelte@5.4.0) + version: 0.5.0(svelte@5.13.0) openai-zod-to-json-schema: - specifier: ^1.0.3 - version: 1.0.3(zod@3.23.8) + specifier: 1.0.3 + version: 1.0.3(zod@3.24.1) runed: - specifier: 0.16.1 - version: 0.16.1(svelte@5.4.0) + specifier: 0.18.0 + version: 0.18.0(svelte@5.13.0) svelte: - specifier: 5.4.0 - version: 5.4.0 + specifier: 5.13.0 + version: 5.13.0 svelte-check: - specifier: 4.1.0 - version: 4.1.0(picomatch@4.0.2)(svelte@5.4.0)(typescript@5.7.2) + specifier: 4.1.1 + version: 4.1.1(picomatch@4.0.2)(svelte@5.13.0)(typescript@5.7.2) svelte-persisted-store: specifier: 0.12.0 - version: 0.12.0(svelte@5.4.0) + version: 0.12.0(svelte@5.13.0) svelte-radix: specifier: 2.0.1 - version: 2.0.1(svelte@5.4.0) + version: 2.0.1(svelte@5.13.0) svelte-sonner: specifier: 0.3.28 - version: 0.3.28(svelte@5.4.0) + version: 0.3.28(svelte@5.13.0) sveltekit-superforms: - specifier: 2.21.0 - version: 2.21.0(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.4.0)(typescript@5.7.2) + specifier: 2.21.1 + version: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2) tailwind-merge: specifier: 2.5.5 version: 2.5.5 tailwind-variants: specifier: 0.3.0 - version: 0.3.0(tailwindcss@3.4.15) + version: 0.3.0(tailwindcss@3.4.16) tailwindcss: - specifier: 3.4.15 - version: 3.4.15 + specifier: 3.4.16 + version: 3.4.16 tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.15) + version: 1.0.7(tailwindcss@3.4.16) typescript: specifier: 5.7.2 version: 5.7.2 vaul-svelte: - specifier: 1.0.0-next.2 - version: 1.0.0-next.2(svelte@5.4.0) + specifier: 1.0.0-next.3 + version: 1.0.0-next.3(svelte@5.13.0) vite: - specifier: 6.0.2 - version: 6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1) + specifier: 6.0.3 + version: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) vitest: specifier: 2.1.8 - version: 2.1.8(@types/node@22.10.1)(@vitest/ui@2.1.8)(jsdom@25.0.1) + version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1) zod: - specifier: 3.23.8 - version: 3.23.8 + specifier: 3.24.1 + version: 3.24.1 apps/web: dependencies: @@ -490,11 +502,11 @@ importers: specifier: 0.9.4 version: 0.9.4(typescript@5.7.2) '@astrojs/mdx': - specifier: 3.1.9 - version: 3.1.9(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)) + specifier: 4.0.2 + version: 4.0.2(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/node': - specifier: 8.3.4 - version: 8.3.4(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)) + specifier: 9.0.0 + version: 9.0.0(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/partytown': specifier: 2.1.2 version: 2.1.2 @@ -502,17 +514,17 @@ importers: specifier: 3.2.1 version: 3.2.1 '@astrojs/starlight': - specifier: 0.29.2 - version: 0.29.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)) + specifier: 0.30.1 + version: 0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/svelte': - specifier: 6.0.2 - version: 6.0.2(@types/node@22.10.1)(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(svelte@5.4.0)(typescript@5.7.2) + specifier: 7.0.1 + version: 7.0.1(@types/node@22.10.2)(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(jiti@1.21.6)(svelte@5.13.0)(typescript@5.7.2)(yaml@2.6.1) '@astrojs/tailwind': - specifier: 5.1.2 - version: 5.1.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(tailwindcss@3.4.15) + specifier: 5.1.3 + version: 5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16) '@astrojs/vercel': - specifier: 7.8.2 - version: 7.8.2(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(react@18.3.1)(rollup@4.28.0)(svelte@5.4.0) + specifier: 8.0.1 + version: 8.0.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.13.0) '@fontsource-variable/inter': specifier: 5.1.0 version: 5.1.0 @@ -530,40 +542,40 @@ importers: version: link:../../packages/utils '@tailwindcss/typography': specifier: 0.5.15 - version: 0.5.15(tailwindcss@3.4.15) + version: 0.5.15(tailwindcss@3.4.16) '@vitest/coverage-v8': specifier: 2.1.8 version: 2.1.8(vitest@2.1.8) astro: - specifier: 4.16.16 - version: 4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2) + specifier: 5.0.5 + version: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) astro-expressive-code: specifier: 0.38.3 - version: 0.38.3(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)) + version: 0.38.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) astro-seo: specifier: 0.8.4 version: 0.8.4(typescript@5.7.2) lucide-svelte: - specifier: 0.462.0 - version: 0.462.0(svelte@5.4.0) + specifier: 0.468.0 + version: 0.468.0(svelte@5.13.0) mode-watcher: specifier: 0.5.0 - version: 0.5.0(svelte@5.4.0) + version: 0.5.0(svelte@5.13.0) svelte: - specifier: 5.4.0 - version: 5.4.0 + specifier: 5.13.0 + version: 5.13.0 tailwind-merge: specifier: 2.5.5 version: 2.5.5 tailwindcss: - specifier: 3.4.15 - version: 3.4.15 + specifier: 3.4.16 + version: 3.4.16 typescript: specifier: 5.7.2 version: 5.7.2 vitest: specifier: 2.1.8 - version: 2.1.8(@types/node@22.10.1)(@vitest/ui@2.1.8)(jsdom@25.0.1) + version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1) packages/assets: devDependencies: @@ -607,12 +619,15 @@ importers: '@fontsource-variable/inter': specifier: 5.1.0 version: 5.1.0 + '@inlang/paraglide-sveltekit': + specifier: 0.14.0 + version: 0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) '@skeletonlabs/skeleton': specifier: 2.10.3 version: 2.10.3(svelte@4.2.19) '@skeletonlabs/tw-plugin': specifier: 0.4.0 - version: 0.4.0(tailwindcss@3.4.15) + version: 0.4.0(tailwindcss@3.4.16) '@spectacular/biome-config': specifier: workspace:* version: link:../biome-config @@ -623,26 +638,29 @@ importers: specifier: workspace:* version: link:../utils '@sveltejs/kit': - specifier: 2.8.5 - version: 2.8.5(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + specifier: 2.11.1 + version: 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/vite-plugin-svelte': + specifier: 3.1.2 + version: 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@tailwindcss/container-queries': specifier: 0.1.1 - version: 0.1.1(tailwindcss@3.4.15) + version: 0.1.1(tailwindcss@3.4.16) '@tailwindcss/forms': specifier: 0.5.9 - version: 0.5.9(tailwindcss@3.4.15) + version: 0.5.9(tailwindcss@3.4.16) '@tailwindcss/line-clamp': specifier: 0.4.4 - version: 0.4.4(tailwindcss@3.4.15) + version: 0.4.4(tailwindcss@3.4.16) '@tailwindcss/typography': specifier: 0.5.15 - version: 0.5.15(tailwindcss@3.4.15) + version: 0.5.15(tailwindcss@3.4.16) '@tsconfig/svelte': specifier: 5.0.4 version: 5.0.4 '@types/node': - specifier: 22.10.1 - version: 22.10.1 + specifier: 22.10.2 + version: 22.10.2 '@vincjo/datatables': specifier: 1.14.10 version: 1.14.10(svelte@4.2.19) @@ -666,13 +684,13 @@ importers: version: 4.1.0 formsnap: specifier: 1.0.1 - version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) + version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) graphql: specifier: 16.9.0 version: 16.9.0 lucide-svelte: - specifier: 0.462.0 - version: 0.462.0(svelte@4.2.19) + specifier: 0.468.0 + version: 0.468.0(svelte@4.2.19) postcss: specifier: 8.4.49 version: 8.4.49 @@ -686,17 +704,17 @@ importers: specifier: 4.2.19 version: 4.2.19 sveltekit-superforms: - specifier: 2.21.0 - version: 2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + specifier: 2.21.1 + version: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) tailwind-merge: specifier: 2.5.5 version: 2.5.5 tailwind-variants: specifier: 0.3.0 - version: 0.3.0(tailwindcss@3.4.15) + version: 0.3.0(tailwindcss@3.4.16) tailwindcss: - specifier: 3.4.15 - version: 3.4.15 + specifier: 3.4.16 + version: 3.4.16 tslib: specifier: 2.8.1 version: 2.8.1 @@ -705,25 +723,28 @@ importers: version: 5.7.2 vite: specifier: 5.4.11 - version: 5.4.11(@types/node@22.10.1) + version: 5.4.11(@types/node@22.10.2) vitest: specifier: 2.1.8 - version: 2.1.8(@types/node@22.10.1)(@vitest/ui@2.1.8)(jsdom@25.0.1) + version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1) zod: - specifier: 3.23.8 - version: 3.23.8 + specifier: 3.24.1 + version: 3.24.1 packages/smart: devDependencies: '@ai-sdk/svelte': - specifier: 1.0.3 - version: 1.0.3(svelte@4.2.19)(zod@3.23.8) + specifier: 1.0.6 + version: 1.0.6(svelte@4.2.19)(zod@3.24.1) '@aibrow/dom-types': specifier: 1.2.1 version: 1.2.1 '@floating-ui/dom': specifier: 1.6.12 version: 1.6.12 + '@inlang/paraglide-sveltekit': + specifier: 0.14.0 + version: 0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) '@skeletonlabs/skeleton': specifier: 2.10.3 version: 2.10.3(svelte@4.2.19) @@ -743,8 +764,11 @@ importers: specifier: 1.0.9 version: 1.0.9 '@sveltejs/kit': - specifier: 2.8.5 - version: 2.8.5(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + specifier: 2.11.1 + version: 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/vite-plugin-svelte': + specifier: 3.1.2 + version: 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@tsconfig/svelte': specifier: 5.0.4 version: 5.0.4 @@ -752,14 +776,14 @@ importers: specifier: 0.0.4 version: 0.0.4 '@types/node': - specifier: 22.10.1 - version: 22.10.1 + specifier: 22.10.2 + version: 22.10.2 '@vitest/coverage-v8': specifier: 2.1.8 version: 2.1.8(vitest@2.1.8) ai: - specifier: 4.0.10 - version: 4.0.10(react@18.3.1)(zod@3.23.8) + specifier: 4.0.18 + version: 4.0.18(react@18.3.1)(zod@3.24.1) chrome-ai: specifier: 1.11.1 version: 1.11.1 @@ -768,34 +792,34 @@ importers: version: 4.1.0 formsnap: specifier: 1.0.1 - version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) + version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) gjp-4-gpt: specifier: 0.0.8 version: 0.0.8 lucide-svelte: - specifier: 0.462.0 - version: 0.462.0(svelte@4.2.19) + specifier: 0.468.0 + version: 0.468.0(svelte@4.2.19) svelte: specifier: 4.2.19 version: 4.2.19 svelte-check: - specifier: 4.1.0 - version: 4.1.0(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.7.2) + specifier: 4.1.1 + version: 4.1.1(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.7.2) svelte-select: specifier: 5.8.3 version: 5.8.3 sveltekit-superforms: - specifier: 2.21.0 - version: 2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + specifier: 2.21.1 + version: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) tailwind-merge: specifier: 2.5.5 version: 2.5.5 tailwind-variants: specifier: 0.3.0 - version: 0.3.0(tailwindcss@3.4.15) + version: 0.3.0(tailwindcss@3.4.16) tailwindcss: - specifier: 3.4.15 - version: 3.4.15 + specifier: 3.4.16 + version: 3.4.16 tslib: specifier: 2.8.1 version: 2.8.1 @@ -804,13 +828,13 @@ importers: version: 5.7.2 vite: specifier: 5.4.11 - version: 5.4.11(@types/node@22.10.1) + version: 5.4.11(@types/node@22.10.2) vitest: specifier: 2.1.8 - version: 2.1.8(@types/node@22.10.1)(@vitest/ui@2.1.8)(jsdom@25.0.1) + version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1) zod: - specifier: 3.23.8 - version: 3.23.8 + specifier: 3.24.1 + version: 3.24.1 packages/typescript-config: {} @@ -821,23 +845,23 @@ importers: version: 2.1.1 svelte-persisted-store: specifier: 0.12.0 - version: 0.12.0(svelte@5.4.0) + version: 0.12.0(svelte@5.13.0) svelte-radix: specifier: 2.0.1 - version: 2.0.1(svelte@5.4.0) + version: 2.0.1(svelte@5.13.0) tailwind-merge: specifier: 2.5.5 version: 2.5.5 tailwind-variants: specifier: 0.3.0 - version: 0.3.0(tailwindcss@3.4.15) + version: 0.3.0(tailwindcss@3.4.16) tailwindcss-animate: specifier: 1.0.7 - version: 1.0.7(tailwindcss@3.4.15) + version: 1.0.7(tailwindcss@3.4.16) devDependencies: '@inlang/paraglide-sveltekit': - specifier: 0.12.1 - version: 0.12.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) + specifier: 0.14.0 + version: 0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) '@internationalized/date': specifier: 3.6.0 version: 3.6.0 @@ -852,25 +876,25 @@ importers: version: link:../utils '@sveltejs/adapter-auto': specifier: 3.3.1 - version: 3.3.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1))) + version: 3.3.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))) '@sveltejs/kit': - specifier: 2.9.0 - version: 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) + specifier: 2.11.1 + version: 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': - specifier: 5.0.1 - version: 5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) + specifier: 5.0.2 + version: 5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@tailwindcss/aspect-ratio': specifier: 0.4.2 - version: 0.4.2(tailwindcss@3.4.15) + version: 0.4.2(tailwindcss@3.4.16) '@tailwindcss/container-queries': specifier: 0.1.1 - version: 0.1.1(tailwindcss@3.4.15) + version: 0.1.1(tailwindcss@3.4.16) '@tailwindcss/forms': specifier: 0.5.9 - version: 0.5.9(tailwindcss@3.4.15) + version: 0.5.9(tailwindcss@3.4.16) '@tailwindcss/typography': specifier: 0.5.15 - version: 0.5.15(tailwindcss@3.4.15) + version: 0.5.15(tailwindcss@3.4.16) '@tanstack/table-core': specifier: 8.20.5 version: 8.20.5 @@ -878,8 +902,8 @@ importers: specifier: 5.0.4 version: 5.0.4 '@types/node': - specifier: 22.10.1 - version: 22.10.1 + specifier: 22.10.2 + version: 22.10.2 '@vitest/coverage-v8': specifier: 2.1.8 version: 2.1.8(vitest@2.1.8) @@ -888,25 +912,25 @@ importers: version: 10.4.20(postcss@8.4.49) bits-ui: specifier: 1.0.0-next.51 - version: 1.0.0-next.51(svelte@5.4.0) + version: 1.0.0-next.51(svelte@5.13.0) cssnano: specifier: 7.0.6 version: 7.0.6(postcss@8.4.49) embla-carousel-svelte: specifier: 8.5.1 - version: 8.5.1(svelte@5.4.0) + version: 8.5.1(svelte@5.13.0) formsnap: - specifier: 2.0.0-next.1 - version: 2.0.0-next.1(svelte@5.4.0)(sveltekit-superforms@2.21.0(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.4.0)(typescript@5.7.2)) + specifier: 2.0.0 + version: 2.0.0(svelte@5.13.0)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2)) lucide-svelte: - specifier: 0.462.0 - version: 0.462.0(svelte@5.4.0) + specifier: 0.468.0 + version: 0.468.0(svelte@5.13.0) mode-watcher: specifier: 0.5.0 - version: 0.5.0(svelte@5.4.0) + version: 0.5.0(svelte@5.13.0) paneforge: specifier: 1.0.0-next.1 - version: 1.0.0-next.1(svelte@5.4.0) + version: 1.0.0-next.1(svelte@5.13.0) postcss-import: specifier: 16.1.0 version: 16.1.0(postcss@8.4.49) @@ -914,35 +938,35 @@ importers: specifier: 6.0.1 version: 6.0.1(jiti@1.21.6)(postcss@8.4.49)(yaml@2.6.1) svelte: - specifier: 5.4.0 - version: 5.4.0 + specifier: 5.13.0 + version: 5.13.0 svelte-check: - specifier: 4.1.0 - version: 4.1.0(picomatch@4.0.2)(svelte@5.4.0)(typescript@5.7.2) + specifier: 4.1.1 + version: 4.1.1(picomatch@4.0.2)(svelte@5.13.0)(typescript@5.7.2) svelte-sonner: specifier: 0.3.28 - version: 0.3.28(svelte@5.4.0) + version: 0.3.28(svelte@5.13.0) sveltekit-superforms: - specifier: 2.21.0 - version: 2.21.0(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.4.0)(typescript@5.7.2) + specifier: 2.21.1 + version: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2) tailwindcss: - specifier: 3.4.15 - version: 3.4.15 + specifier: 3.4.16 + version: 3.4.16 typescript: specifier: 5.7.2 version: 5.7.2 vaul-svelte: specifier: 1.0.0-next.2 - version: 1.0.0-next.2(svelte@5.4.0) + version: 1.0.0-next.2(svelte@5.13.0) vite: - specifier: 6.0.2 - version: 6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1) + specifier: 6.0.3 + version: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) vitest: specifier: 2.1.8 - version: 2.1.8(@types/node@22.10.1)(@vitest/ui@2.1.8)(jsdom@25.0.1) + version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1) zod: - specifier: 3.23.8 - version: 3.23.8 + specifier: 3.24.1 + version: 3.24.1 packages/utils: devDependencies: @@ -956,31 +980,31 @@ importers: specifier: 2.1.8 version: 2.1.8(vitest@2.1.8) zod: - specifier: 3.23.8 - version: 3.23.8 + specifier: 3.24.1 + version: 3.24.1 zod-validation-error: specifier: 3.4.0 - version: 3.4.0(zod@3.23.8) + version: 3.4.0(zod@3.24.1) packages: '@adobe/css-tools@4.4.1': resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} - '@ai-sdk/azure@1.0.7': - resolution: {integrity: sha512-nLOilokE63tM+tLZrPSWBbPxjeXmPk+vwGkQG26zPb/iKF5nOIc7d5FVtlUUfFUH//FU4fy7V+BDiGzgFAOMlw==} + '@ai-sdk/azure@1.0.10': + resolution: {integrity: sha512-drbmzYS0iPRU/I3xnzphxNsYvSMjYhoq8gK34zShjeJGpPbewZPsXbPrncX6gdrkD4JR021yCahPc9E6RpXr5Q==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 - '@ai-sdk/openai@1.0.5': - resolution: {integrity: sha512-JDCPBJQx9o3LgboBPaA55v+9EZ7Vm/ozy0+J5DIr2jJF8WETjeCnigdxixyzEy/Od4wX871jOTSuGffwNIi0kA==} + '@ai-sdk/openai@1.0.8': + resolution: {integrity: sha512-wcTHM9qgRWGYVO3WxPSTN/RwnZ9R5/17xyo61iUCCSCZaAuJyh6fKddO0/oamwDp3BG7g+4wbfAyuTo32H+fHw==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 - '@ai-sdk/provider-utils@2.0.2': - resolution: {integrity: sha512-IAvhKhdlXqiSmvx/D4uNlFYCl8dWT+M9K+IuEcSgnE2Aj27GWu8sDIpAf4r4Voc+wOUkOECVKQhFo8g9pozdjA==} + '@ai-sdk/provider-utils@2.0.4': + resolution: {integrity: sha512-GMhcQCZbwM6RoZCri0MWeEWXRt/T+uCxsmHEsTwNvEH3GDjNzchfX25C8ftry2MeEOOn6KfqCLSKomcgK6RoOg==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -992,12 +1016,12 @@ packages: resolution: {integrity: sha512-9j95uaPRxwYkzQdkl4XO/MmWWW5c5vcVSXtqvALpD9SMB9fzH46dO3UN4VbOJR2J3Z84CZAqgZu5tNlkptT9qQ==} engines: {node: '>=18'} - '@ai-sdk/provider@1.0.1': - resolution: {integrity: sha512-mV+3iNDkzUsZ0pR2jG0sVzU6xtQY5DtSCBy3JFycLp6PwjyLw/iodfL3MwdmMCRJWgs3dadcHejRnMvF9nGTBg==} + '@ai-sdk/provider@1.0.2': + resolution: {integrity: sha512-YYtP6xWQyaAf5LiWLJ+ycGTOeBLWrED7LUrvc+SQIWhGaneylqbaGsyQL7VouQUeQ4JZ1qKYZuhmi3W56HADPA==} engines: {node: '>=18'} - '@ai-sdk/react@1.0.3': - resolution: {integrity: sha512-Mak7qIRlbgtP4I7EFoNKRIQTlABJHhgwrN8SV2WKKdmsfWK2RwcubQWz1hp88cQ0bpF6KxxjSY1UUnS/S9oR5g==} + '@ai-sdk/react@1.0.6': + resolution: {integrity: sha512-8Hkserq0Ge6AEi7N4hlv2FkfglAGbkoAXEZ8YSp255c3PbnZz6+/5fppw+aROmZMOfNwallSRuy1i/iPa2rBpQ==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc @@ -1008,8 +1032,8 @@ packages: zod: optional: true - '@ai-sdk/svelte@1.0.3': - resolution: {integrity: sha512-8a2XCvQhp8aDdBpRJYsEI1ME7+xCKLs6B4AIMV1gC1nYqSvO9iAvlTiGaHZRvZm2t91KXecAQHdydX63bzn4AQ==} + '@ai-sdk/svelte@1.0.6': + resolution: {integrity: sha512-vH25XKUDNte/xIu7VP9e2HxDIJ4MLu0L57pNrNOOCW/Aq8HkIQ6vh58IcUvSj9HveTibIEUcdufi/RJqZ26Ctw==} engines: {node: '>=18'} peerDependencies: svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -1017,8 +1041,8 @@ packages: svelte: optional: true - '@ai-sdk/ui-utils@1.0.2': - resolution: {integrity: sha512-hHrUdeThGHu/rsGZBWQ9PjrAU9Htxgbo9MFyR5B/aWoNbBeXn1HLMY1+uMEnXL5pRPlmyVRjgIavWg7UgeNDOw==} + '@ai-sdk/ui-utils@1.0.5': + resolution: {integrity: sha512-DGJSbDf+vJyWmFNexSPUsS1AAy7gtsmFmoSyNbNbJjwl9hRIf2dknfA1V0ahx6pg3NNklNYFm53L8Nphjovfvg==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -1037,11 +1061,11 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@ark/schema@0.25.0': - resolution: {integrity: sha512-1Air2M9Je8C/4+YNhJ1QPkoFbERX3PhulDVNW1RmpOpyUjUSM5lcuuyq357jp3a7+M3a5RV2PNdI1XZ/ah8l8Q==} + '@ark/schema@0.26.0': + resolution: {integrity: sha512-b6hk1+M0U4jgZK7ZOGsWKSXgjhfPAqqSCczViM/gQ0Hu0awKLx9SpZYsFhl0j67j3hwlY2+mVZQPKy6GlYDCbQ==} - '@ark/util@0.25.0': - resolution: {integrity: sha512-yo2Me+tYnmr6E0E3maZzu643/rL07oR25yBHkH24gllssqYcd6EPCvZE23GEKgbk0iac9J73GlJ9pkgZj43Q2g==} + '@ark/util@0.26.0': + resolution: {integrity: sha512-6FSqj6xl3jQ9bD9EU25ThMVcsvaeq6c3gecONgPQ+wDYOUEqBBIAkpjA+LEZMiY0AxVhSF3UF6BlVFspXmef2Q==} '@astrojs/check@0.5.10': resolution: {integrity: sha512-vliHXM9cu/viGeKiksUM4mXfO816ohWtawTl2ADPgTsd4nUMjFiyAl7xFZhF34yy4hq4qf7jvK1F2PlR3b5I5w==} @@ -1058,9 +1082,6 @@ packages: '@astrojs/compiler@2.10.3': resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} - '@astrojs/internal-helpers@0.4.1': - resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} - '@astrojs/internal-helpers@0.4.2': resolution: {integrity: sha512-EdDWkC3JJVcpGpqJAU/5hSk2LKXyG3mNGkzGoAuyK+xoPHbaVdSuIWoN1QTnmK3N/gGfaaAfM8gO2KDCAW7S3w==} @@ -1076,64 +1097,64 @@ packages: prettier-plugin-astro: optional: true - '@astrojs/markdown-remark@5.3.0': - resolution: {integrity: sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==} + '@astrojs/markdown-remark@6.0.1': + resolution: {integrity: sha512-CTSYijj25NfxgZi15TU3CwPwgyD1/7yA3FcdcNmB9p94nydupiUbrIiq3IqeTp2m5kCVzxbPZeC7fTwEOaNyGw==} - '@astrojs/mdx@3.1.9': - resolution: {integrity: sha512-3jPD4Bff6lIA20RQoonnZkRtZ9T3i0HFm6fcDF7BMsKIZ+xBP2KXzQWiuGu62lrVCmU612N+SQVGl5e0fI+zWg==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + '@astrojs/mdx@4.0.2': + resolution: {integrity: sha512-uBoXNSSAUqhf2dVtJWFbSapwNkcnCzbISW98EcybFXvNgYt9g8yPJ7+lYnf+sH5pv0c/JEW8HlBvPSi81AVRlw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} peerDependencies: - astro: ^4.8.0 + astro: ^5.0.0 - '@astrojs/node@8.3.4': - resolution: {integrity: sha512-xzQs39goN7xh9np9rypGmbgZj3AmmjNxEMj9ZWz5aBERlqqFF3n8A/w/uaJeZ/bkHS60l1BXVS0tgsQt9MFqBA==} + '@astrojs/node@9.0.0': + resolution: {integrity: sha512-3h/5kFZvpuo+chYAjj75YhtRUxfquxEJrpZRRC7TdiMGp2WhLp2us4VXm2mjezJp/zHKotW2L3qgp0P2ujQ0xw==} peerDependencies: - astro: ^4.2.0 + astro: ^5.0.0 '@astrojs/partytown@2.1.2': resolution: {integrity: sha512-1a9T5lqxtnrw0qLPo1KwliUvaaUzPNPtWucD8VxdwT7zqcpODFk1RzGgAgqVo+YhutFrTu/qclbtnOfXBuskjw==} - '@astrojs/prism@3.1.0': - resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + '@astrojs/prism@3.2.0': + resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} '@astrojs/sitemap@3.2.1': resolution: {integrity: sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==} - '@astrojs/starlight-tailwind@2.0.3': - resolution: {integrity: sha512-ZwbdXS/9rxYlo3tKZoTZoBPUnaaqek02b341dHwOkmMT0lIR2w+8k0mRUGxnRaYtPdMcaL+nYFd8RUa8sjdyRg==} + '@astrojs/starlight-tailwind@3.0.0': + resolution: {integrity: sha512-oYHG9RY+VaOSeAhheVZfm9HDA892qvcQA82VT86POYmg1OsgBuWwdf1ZbofV8iq/z5kO06ajcSdzhPE8lhEx8g==} peerDependencies: - '@astrojs/starlight': '>=0.9.0' - '@astrojs/tailwind': ^5.0.0 + '@astrojs/starlight': '>=0.30.0' + '@astrojs/tailwind': ^5.1.3 tailwindcss: ^3.3.3 - '@astrojs/starlight@0.29.2': - resolution: {integrity: sha512-xv9AhWkP3fxCB6EF6MlT4yEbxzye3aMSbuVbFEGbQh8G/w1MPhdNCnQakIHpmIwwyxwG9cW3mQdAZum4oOO39w==} + '@astrojs/starlight@0.30.1': + resolution: {integrity: sha512-NHElruXD71rfPp0A1VPrpVv93VqhyLqJ7+fPc+PHluLsBsh3/Y9H0GPApjpJtxOOFvDNy0gNYvV2ZLjhc22WOg==} peerDependencies: - astro: ^4.14.0 + astro: ^5.0.0 - '@astrojs/svelte@6.0.2': - resolution: {integrity: sha512-Jn60LLH+AbjtLIOQuL0SUI0fxMwpT89VraoGkEwF33ZgCT59H8fMQOj9eNf632P/SHRbKpD+Q+PJjODn5OcKoQ==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + '@astrojs/svelte@7.0.1': + resolution: {integrity: sha512-T7cDiqnDUnBdsjnmUM1g4We/waCpYVMjcn6KRFkyuoUOANaC1wNT9/Z2/DONgybwAvvd7w8Pog34Ri0Fqm8oSw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} peerDependencies: - astro: ^4.0.0 + astro: ^5.0.0 svelte: ^5.1.16 typescript: ^5.3.3 - '@astrojs/tailwind@5.1.2': - resolution: {integrity: sha512-IvOF0W/dtHElcXvhrPR35nHmhyV3cfz1EzPitMGtU7sYy9Hci3BNK1To6FWmVuuNKPxza1IgCGetSynJZL7fOg==} + '@astrojs/tailwind@5.1.3': + resolution: {integrity: sha512-XF7WhXRhqEHGvADqc0kDtF7Yv/g4wAWTaj91jBBTBaYnc4+MQLH94duFfFa4NlTkRG40VQd012eF3MhO3Kk+bg==} peerDependencies: - astro: ^3.0.0 || ^4.0.0 || ^5.0.0-beta.0 + astro: ^3.0.0 || ^4.0.0 || ^5.0.0 tailwindcss: ^3.0.24 - '@astrojs/telemetry@3.1.0': - resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + '@astrojs/telemetry@3.2.0': + resolution: {integrity: sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} - '@astrojs/vercel@7.8.2': - resolution: {integrity: sha512-U2JsfN0LzFMX5CPrcb+5bAAyqyYURP6Dk/mUIXX87r5x4baQy+juU+ntvf926YA0tR7u6jPRXHymE2axQ/l3NQ==} + '@astrojs/vercel@8.0.1': + resolution: {integrity: sha512-0TgXOlT8HpZNyLpbFuw2tAvo5Azdz/PlRg8/Oak7Skj3uivhSePR9ftt0uq93ofgzHtF7Gzs9BKcH+BsAwff9Q==} peerDependencies: - astro: ^4.2.0 + astro: ^5.0.0 '@astrojs/yaml2ts@0.2.2': resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} @@ -1142,40 +1163,14 @@ packages: resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.2': - resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.26.0': - resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.26.2': - resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-annotate-as-pure@7.25.9': - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.25.9': - resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + '@babel/generator@7.26.3': + resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} engines: {node: '>=6.9.0'} '@babel/helper-module-imports@7.25.9': resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.25.9': - resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.9': resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} @@ -1184,31 +1179,11 @@ packages: resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.26.0': - resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.26.2': - resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + '@babel/parser@7.26.3': + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.25.9': - resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/runtime@7.26.0': resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} @@ -1217,12 +1192,12 @@ packages: resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.9': - resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + '@babel/traverse@7.26.4': + resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.0': - resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + '@babel/types@7.26.3': + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -1391,8 +1366,8 @@ packages: '@cspell/dict-bash@4.1.8': resolution: {integrity: sha512-I2CM2pTNthQwW069lKcrVxchJGMVQBzru2ygsHCwgidXRnJL/NTjAPOFTxN58Jc1bf7THWghfEDyKX/oyfc0yg==} - '@cspell/dict-companies@3.1.7': - resolution: {integrity: sha512-ncVs/efuAkP1/tLDhWbXukBjgZ5xOUfe03neHMWsE8zvXXc5+Lw6TX5jaJXZLOoES/f4j4AhRE20jsPCF5pm+A==} + '@cspell/dict-companies@3.1.8': + resolution: {integrity: sha512-4DVPBwEPWa97g3bgg80i3orGeOGnOiJ7tj3c7n6y7FmqkEgyXcnpxOq0n0HWzwRrwrJp9KIJbtMzSAEynIwyNw==} '@cspell/dict-cpp@6.0.2': resolution: {integrity: sha512-yw5eejWvY4bAnc6LUA44m4WsFwlmgPt2uMSnO7QViGMBDuoeopMma4z9XYvs4lSjTi8fIJs/A1YDfM9AVzb8eg==} @@ -1433,8 +1408,8 @@ packages: '@cspell/dict-en_us@4.3.28': resolution: {integrity: sha512-BN1PME7cOl7DXRQJ92pEd1f0Xk5sqjcDfThDGkKcsgwbSOY7KnTc/czBW6Pr3WXIchIm6cT12KEfjNqx7U7Rrw==} - '@cspell/dict-filetypes@3.0.8': - resolution: {integrity: sha512-D3N8sm/iptzfVwsib/jvpX+K/++rM8SRpLDFUaM4jxm8EyGmSIYRbKZvdIv5BkAWmMlTWoRqlLn7Yb1b11jKJg==} + '@cspell/dict-filetypes@3.0.9': + resolution: {integrity: sha512-U7ycC1cE32A5aEgwzp/iE0TVabonUFnVt+Ygbf6NsIWqEuFWZgZChC7gfztA4T1fpuj602nFdp7eOnTWKORsnQ==} '@cspell/dict-flutter@1.0.3': resolution: {integrity: sha512-52C9aUEU22ptpgYh6gQyIdA4MP6NPwzbEqndfgPh3Sra191/kgs7CVqXiO1qbtZa9gnYHUoVApkoxRE7mrXHfg==} @@ -1448,8 +1423,8 @@ packages: '@cspell/dict-fullstack@3.2.3': resolution: {integrity: sha512-62PbndIyQPH11mAv0PyiyT0vbwD0AXEocPpHlCHzfb5v9SspzCCbzQ/LIBiFmyRa+q5LMW35CnSVu6OXdT+LKg==} - '@cspell/dict-gaming-terms@1.0.8': - resolution: {integrity: sha512-7OL0zTl93WFWhhtpXFrtm9uZXItC3ncAs8d0iQDMMFVNU1rBr6raBNxJskxE5wx2Ant12fgI66ZGVagXfN+yfA==} + '@cspell/dict-gaming-terms@1.0.9': + resolution: {integrity: sha512-AVIrZt3YiUnxsUzzGYTZ1XqgtkgwGEO0LWIlEf+SiDUEVLtv4CYmmyXFQ+WXDN0pyJ0wOwDazWrP0Cu7avYQmQ==} '@cspell/dict-git@3.0.3': resolution: {integrity: sha512-LSxB+psZ0qoj83GkyjeEH/ZViyVsGEF/A6BAo8Nqc0w0HjD2qX/QR4sfA6JHUgQ3Yi/ccxdK7xNIo67L2ScW5A==} @@ -1504,8 +1479,8 @@ packages: '@cspell/dict-node@5.0.5': resolution: {integrity: sha512-7NbCS2E8ZZRZwlLrh2sA0vAk9n1kcTUiRp/Nia8YvKaItGXLfxYqD2rMQ3HpB1kEutal6hQLVic3N2Yi1X7AaA==} - '@cspell/dict-npm@5.1.14': - resolution: {integrity: sha512-7VV/rrRlxOwy5j0bpw6/Uci+nx/rwSgx45FJdeKq++nHsBx/nEXMFNODknm4Mi6i7t7uOVHExpifrR6w6xTWww==} + '@cspell/dict-npm@5.1.17': + resolution: {integrity: sha512-RBx4yml+GbjgqmV2R9A8rO+uqjb8hV9arZXxVzW04TNdgGT/VjZnu6/3/QDzEp3DxnbSxknAbIii8BzpF/o5EQ==} '@cspell/dict-php@4.0.13': resolution: {integrity: sha512-P6sREMZkhElzz/HhXAjahnICYIqB/HSGp1EhZh+Y6IhvC15AzgtDP8B8VYCIsQof6rPF1SQrFwunxOv8H1e2eg==} @@ -1516,8 +1491,8 @@ packages: '@cspell/dict-public-licenses@2.0.11': resolution: {integrity: sha512-rR5KjRUSnVKdfs5G+gJ4oIvQvm8+NJ6cHWY2N+GE69/FSGWDOPHxulCzeGnQU/c6WWZMSimG9o49i9r//lUQyA==} - '@cspell/dict-python@4.2.12': - resolution: {integrity: sha512-U25eOFu+RE0aEcF2AsxZmq3Lic7y9zspJ9SzjrC0mfJz+yr3YmSCw4E0blMD3mZoNcf7H/vMshuKIY5AY36U+Q==} + '@cspell/dict-python@4.2.13': + resolution: {integrity: sha512-mZIcmo9qif8LkJ6N/lqTZawcOk2kVTcuWIUOSbMcjyomO0XZ7iWz15TfONyr03Ea/l7o5ULV+MZ4vx76bAUb7w==} '@cspell/dict-r@2.0.4': resolution: {integrity: sha512-cBpRsE/U0d9BRhiNRMLMH1PpWgw+N+1A2jumgt1if9nBGmQw4MUpg2u9I0xlFVhstTIdzXiLXMxP45cABuiUeQ==} @@ -1531,8 +1506,8 @@ packages: '@cspell/dict-scala@5.0.6': resolution: {integrity: sha512-tl0YWAfjUVb4LyyE4JIMVE8DlLzb1ecHRmIWc4eT6nkyDqQgHKzdHsnusxFEFMVLIQomgSg0Zz6hJ5S1E4W4ww==} - '@cspell/dict-software-terms@4.1.17': - resolution: {integrity: sha512-QORIk1R5DV8oOQ+oAlUWE7UomaJwUucqu2srrc2+PmkoI6R1fJwwg2uHCPBWlIb4PGDNEdXLv9BAD13H+0wytQ==} + '@cspell/dict-software-terms@4.1.19': + resolution: {integrity: sha512-6yQa3A8PGa2fJ7bnLI21nBnOa89Rjckdgq8kwvqvZgrAptV/KLfcXbGgFriICbu3GJqTVcnMMh1fLtz+pdwIEg==} '@cspell/dict-sql@2.1.8': resolution: {integrity: sha512-dJRE4JV1qmXTbbGm6WIcg1knmR6K5RXnQxF4XHs5HA3LAjc/zf77F95i5LC+guOGppVF6Hdl66S2UyxT+SAF3A==} @@ -1611,8 +1586,8 @@ packages: '@emotion/babel-plugin@11.13.5': resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} - '@emotion/cache@11.13.5': - resolution: {integrity: sha512-Z3xbtJ+UcK76eWkagZ1onvn/wAVb1GOMuR15s30Fm2wrMgC7jzpnO2JZXr4eujTTqoQFUrZIw/rT0c6Zzjca1g==} + '@emotion/cache@11.14.0': + resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} '@emotion/css@11.13.5': resolution: {integrity: sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==} @@ -1962,8 +1937,8 @@ packages: resolution: {integrity: sha512-3xGptCurm23e7nuPQkdrE5rEs1FeTPHhAUsBuwwqG4/YeZLwJOoYZv+fmsppUEfo5y9lzUwNQrNqLS/q7HMc7g==} hasBin: true - '@graphql-tools/executor@1.3.5': - resolution: {integrity: sha512-jwbvC9mYr64NBQAV1zpnX1T+3ak+SnmW6z8pS9JBZgbUxQSaL/quxP7ejDTyf5wkAUJ6zt1p0UCIbQ6H9jSKGA==} + '@graphql-tools/executor@1.3.9': + resolution: {integrity: sha512-BpBWW6WMgIQeLQIFHJ9HHPaCX9mzEn4sv2qP0mb4acW4z45HB4znRFf3vxq83jMOOhWjrvY0vE2UjMVYnsvvSQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1973,14 +1948,14 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/merge@9.0.11': - resolution: {integrity: sha512-AJL0XTozn31HoZN8tULzEkbDXyETA5vAFu4Q65kxJDu027p+auaNFYj/y51HP4BhMR4wykoteWyO7/VxKfdpiw==} + '@graphql-tools/merge@9.0.14': + resolution: {integrity: sha512-MO7VXnm3ShpdG51hs4hYsLyu+8o/tSLjNYQmLmR4rkHoFi3kQCDu2r8B4IVwd+Ve39cechj0NyCmMsg+mRvwDQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/schema@10.0.10': - resolution: {integrity: sha512-TSdDvwgk1Fq3URDuZBMCPXlWLpRpxwaQ+0KqvycVwoHozYnBRZ2Ql9HVgDKnebkGQKmIk2enSeku+ERKxxSG0g==} + '@graphql-tools/schema@10.0.13': + resolution: {integrity: sha512-1gvTTuSKej9bR5O2SP9dCKSHaQkVmg9fWU0Aia34HMsAZl2bzosUfXjwBu3ze8MWqb+gRVjdhukDpGA5ZC+5nA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1990,8 +1965,8 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/utils@10.6.1': - resolution: {integrity: sha512-XHl0/DWkMf/8Dmw1F3RRoMPt6ZwU4J707YWcbPjS+49WZNoTVz6f+prQ4GuwZT8RqTPtrRawnGU93AV73ZLTfQ==} + '@graphql-tools/utils@10.6.4': + resolution: {integrity: sha512-itCgjwVxbO+3uI/K73G9heedG8KelNFzgn368rUhPjTrkJX6NyLQwT5EMq/A8tvazMXyJYdtnN5nD+tT4DUpbQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -2145,11 +2120,6 @@ packages: '@inlang/language-tag@1.5.1': resolution: {integrity: sha512-+NlYDxDvN5h/TKUmkuQv+Ct1flxaVRousCbek7oFEk3/afZPVLNTJhm+cX2xiOg3tmi2KKrBLfy/V9oUDHj6GQ==} - '@inlang/message-lint-rule@1.4.5': - resolution: {integrity: sha512-pyLSUhcoOYaFlYrk8d/OSpev/IaxAv/LBhKIa/ZEaycwFOBtuxDnFXEwQf9cWuPMeiPVsU83X8rgEEfOzWwupw==} - peerDependencies: - '@sinclair/typebox': ^0.31.17 - '@inlang/message-lint-rule@1.4.7': resolution: {integrity: sha512-FCiFe/H25fqhsIb/YTb0K7eDJqEYzdr6ectF0xG4zARiS7nXz0FHxk2niJrIO8kFkB4mx6tszsgQ0xqD5cHQag==} peerDependencies: @@ -2165,58 +2135,27 @@ packages: peerDependencies: '@sinclair/typebox': ^0.31.17 - '@inlang/module@1.2.9': - resolution: {integrity: sha512-+nGyReKCcqtzhkryEguN8ftL2gvr8vukGBKWzGx0hq3ul0i3JNVwlzFohU+TKpRyUE36DzffngVQX3khH0Gu8g==} - peerDependencies: - '@sinclair/typebox': ^0.31.17 - - '@inlang/paraglide-js-adapter-sveltekit@0.6.7': - resolution: {integrity: sha512-3QXyqVC1kl+SijVflUfTOnK/Fh6A4W1b4JIjLQATaKlcgeCE7wffx5TB/cCDKbhw5m1fJmNm3FFt+O0RdGU+/w==} - peerDependencies: - '@sveltejs/kit': ^2.4.3 - svelte: ^5.0.0 || ^5.0.0-next.1 || ^4.0.0 || ^3.0.0 - - '@inlang/paraglide-js-adapter-unplugin@1.4.29': - resolution: {integrity: sha512-CDhQ69M9Ej8wfY/8P2rdNzwq6ux69A4nlFJqPcWffEX21xMaWGlt8JNspjMjc158KpAYyBGB8bFgTZ5K6o1fwg==} - - '@inlang/paraglide-js-adapter-vite@1.2.40': - resolution: {integrity: sha512-2+mAYI4hDMTr7AAei5CNzjqpjzOvsnlGrVvHrohtYs+Jn+tayokDaO7iL5o9k9SYrlXBZ7tUshAw88UQ1+f82Q==} - '@inlang/paraglide-js@1.11.3': resolution: {integrity: sha512-WVNraTylfZty0kt5EQNh8yx0WUJbtYEmc8YoNRRSUWB0rqeCh8a9xIQnmzZxBMf7IL7es+Ppiqx15py7mukJRw==} hasBin: true - '@inlang/paraglide-js@1.7.0': - resolution: {integrity: sha512-FkyOqMAPd8iks66xZpIqzepzlnMPT/t7sHmZkwN9QzjFu6RUjdSbHSP6dZPdmD1puobhtDQcbbub6NA/OmpuzA==} - hasBin: true - - '@inlang/paraglide-sveltekit@0.12.1': - resolution: {integrity: sha512-UaNgdaa2NWRwwcqo1HZA+mmu5EZFTZ5i65dJJUC6jyqze/L7ozbIG73UHjXf57WONtLjbsEA7WlxcwMVWzpMvw==} + '@inlang/paraglide-sveltekit@0.14.0': + resolution: {integrity: sha512-5MCIIrAIy5+JqZ3MtKNSQOXp1JCmZODcBu3aoqMeNi3owhAtB3C9j++fb31oiR6xL/j+25oMZy9f3bHeyPkT+g==} hasBin: true peerDependencies: '@sveltejs/kit': ^2.4.3 - '@inlang/paraglide-unplugin@1.8.8': - resolution: {integrity: sha512-2mQzzRwJY36Z9wsnielmec0uMhUOgTje/xMy9pG7h+voO2rrX89MQbEKBHkRzkb0yq090oILDFq3rUXRCgW07g==} + '@inlang/paraglide-unplugin@1.9.0': + resolution: {integrity: sha512-X/wlLMW4Q7xw1hlIf0+heuLUDSS6fNlrvpye6Ey8lRb4TynHR8NSO5jC7NiHhu+T2+D0KXmZK4JEuJ0dpoSM+g==} - '@inlang/paraglide-vite@1.2.77': - resolution: {integrity: sha512-rn2hUcgYnQOhHc4qNerMc7AUqBN4WTINhm8MwP5L0f/EIJLsQ7jDLMrZRiBOkFuMBj7p53oHElhwk+juBqkCAw==} + '@inlang/paraglide-vite@1.3.0': + resolution: {integrity: sha512-SXKUWEWaBai66XEnmeA0vBGSoGz6Yz5+3BkzuHgfXnkt8IFba2OlVqrzFliFON4bAcxN/7hk0BPDHG+U55Og3g==} '@inlang/plugin@2.4.14': resolution: {integrity: sha512-HFI1t1tKs6jXqwKVl59vvt7kvMgg2Po7xA3IFijfJTZCt0tTI8txqeXCUV9jhUop29Hqj6a5zQd32BYv33Dulw==} peerDependencies: '@sinclair/typebox': ^0.31.17 - '@inlang/plugin@2.4.9': - resolution: {integrity: sha512-zWYUUlHsHvjAnwz7ep2eIBE+3PNQ6QKDSuF4HezJaBnJGC2fkijuPhuNqPfn+1tH8rxHQbfuNeWqwfco0dsf+A==} - peerDependencies: - '@sinclair/typebox': ^0.31.17 - - '@inlang/project-settings@2.4.0': - resolution: {integrity: sha512-hzrO07YiZM6rf6HwgdYofQa+rfcy13MV2u0pEPyfthnz/wB3Il4JOUKw0fIhQMj5Hz8097LWVi1mniJ6xWGyqA==} - peerDependencies: - '@sinclair/typebox': ^0.31.17 - '@inlang/project-settings@2.4.2': resolution: {integrity: sha512-Okus2JdwTzNebZHkXCrUH/zIWwqu7kWm/ZQaM6a31oRIEA2JdQJtyNGM8E/KrwGfEuq18U+WV03+tR3tkwsGvA==} peerDependencies: @@ -2225,10 +2164,6 @@ packages: '@inlang/result@1.1.0': resolution: {integrity: sha512-zLGroi9EUiHuOjUOaglUVTFO7EWdo2OARMJLBO1Q5Ga/xJmSQb6XS1lhqEXBFAjgFarfEMX5YEJWWALogYV3wA==} - '@inlang/sdk@0.33.0': - resolution: {integrity: sha512-bwSGay4kg9RmqxqBVQuSxCl8ZFqOKDvvvxpb7oAQoMVbDL+dX0J5pc8Yh7AMzY9TYWXwt7yT2umeZtHz9UvfZw==} - engines: {node: '>=18.0.0'} - '@inlang/sdk@0.36.3': resolution: {integrity: sha512-wjsavc44H24v74tdEQ13FqZZcr43T106oEfHJnBLzEP55Zz2JJWABLund+DEdosZx+9E8mJBEW5JlVnlBwP3Zw==} engines: {node: '>=18.0.0'} @@ -2243,6 +2178,10 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + '@isaacs/ttlcache@1.4.1': resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} engines: {node: '>=12'} @@ -2251,8 +2190,8 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': @@ -2279,15 +2218,9 @@ packages: resolution: {integrity: sha512-r9m0eQyjy3Z2sdeXA8wRGl2tgKtZ9puPuZ3vm9Cv3WMMWVmbKVzUJvF+4UucsHzT9xECFbO9lcQu7lIb774PPQ==} engines: {node: ^16.14 || >=18} - '@lix-js/client@1.2.1': - resolution: {integrity: sha512-9EjzAWX2GAUk1LPdG8JZoAjQUYVSENQ7GesDMdvvkbE86cwpOfIf79aRcVCDF0zuBk5ferikGLSv5IJD/+i6Ig==} - '@lix-js/client@2.2.1': resolution: {integrity: sha512-6DTJdRN2L2a1A8OxW1Wqh3ZOORqq8+YlCALMF5UMoxhfHE4Fcq9FZztMkAV+KwhrDSsp0USWvD9myG0XX+v6QQ==} - '@lix-js/fs@1.0.0': - resolution: {integrity: sha512-B3gnR0B7mOiYePnxh+XNU1OpVvvRYcLJ3MrdqkFVKiXz1fbKKCEMA53Vwhu3ehAMFFDB1Mo9+GVjiY2ssbA/ZQ==} - '@lix-js/fs@2.2.0': resolution: {integrity: sha512-B9X3FjD8WmdG7tbA44JuniSO0KdKBWnjfxl8zpgrDCkavrp/GP7U0xxBkc0WgeeoHjQ/pkqq9VqtWB2kS9jIUg==} @@ -2325,8 +2258,9 @@ packages: '@mapbox/mapbox-gl-supported@2.0.1': resolution: {integrity: sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ==} - '@mapbox/node-pre-gyp@1.0.11': - resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + '@mapbox/node-pre-gyp@2.0.0-rc.0': + resolution: {integrity: sha512-nhSMNprz3WmeRvd8iUs5JqkKr0Ncx46JtPxM3AhXes84XpSJfmIwKeWXRpsr53S7kqPkQfPhzrMFUxSNb23qSA==} + engines: {node: '>=18'} hasBin: true '@mapbox/point-geometry@0.1.0': @@ -2345,8 +2279,8 @@ packages: resolution: {integrity: sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==} engines: {node: '>=6.0.0'} - '@markuplint/astro-parser@4.6.13': - resolution: {integrity: sha512-FryR8rAa0qXr/HQKKhqTDyTEolXolQdb6lI1NaWvt3tmL+Q8gf4b05NadsranC7o6YqJXy/OuJFJ1Vzv4fXaDw==} + '@markuplint/astro-parser@4.6.14': + resolution: {integrity: sha512-XAkDm/caUYrNe7LUJ/Ebl7Tw2YVaFn6XkiVaFPR0hDSAOgLffCxuPKyhosu9WpMCJarE9gUI3t8mur3vMPf3dg==} '@markuplint/cli-utils@4.4.10': resolution: {integrity: sha512-IWI9o+u78AkKXlGsRSEEg/n8hvfOhtJlupoe8pzObFtY8apYCs0srlNdNZfI+kuh8BVD0b1SrruAcKdZavefaw==} @@ -2354,14 +2288,14 @@ packages: '@markuplint/config-presets@4.5.10': resolution: {integrity: sha512-/cSnR1lDwyzdflpO7Mz0WL6XE4t+ha+kNCeG+h+RxjxX5wPg9Hlb/HFp+JokK+12w5F8la9CqdCxnrekZ6s9mQ==} - '@markuplint/file-resolver@4.9.8': - resolution: {integrity: sha512-HwXOt1zGWnhiPhze7pXf8x9lvg0Y3F9IB9QZWwv4TGrTSAZ7tNl25MjPs7PprOlHYJhrc0FUz8S+fX0mLZMnbQ==} + '@markuplint/file-resolver@4.9.9': + resolution: {integrity: sha512-WHyHjxk5W5hhe3JW/I4CZEnRHd2QVer1p3Ex73RmcYB6CSG7DVLdj2zm7MtZV36U1AljRHiTNNhXdW0duzVC2g==} - '@markuplint/html-parser@4.6.13': - resolution: {integrity: sha512-H6Wv8Msb4uwzD46Efa1yKibFnE9C3bhCIfYmVCslecqHyZOlxCQoT/eQd0BqCp3pBDcqKKZGSfMgzBcggOxW9w==} + '@markuplint/html-parser@4.6.14': + resolution: {integrity: sha512-Vt4vxTq88usW3BAkJHMd6SI8LEiJjX5a38vJajbqxJAnMYsBGJ0YmFMF/S1JgSv2wf0gFMQcVZ3yuJy8DTR1BQ==} - '@markuplint/html-spec@4.11.0': - resolution: {integrity: sha512-jmj00E81wI51CHo5cYV/PgLM2CoySAa5Fd9uU2TEVnQhaUMzykHaWuRpjPkyvfwEiKz3Z3uqWPjoHMx2Yu2i/Q==} + '@markuplint/html-spec@4.11.1': + resolution: {integrity: sha512-QMFxJIa7yf5KIGN8ux1ALnJmsGofqQjdFJwv7lxx4x1kLooUbb1nSc1Ub+vSUqMhLYYNJStAOwwcNHQi41Smag==} '@markuplint/i18n@4.6.0': resolution: {integrity: sha512-A/Nq6/u4DnFtT6YUTujSyiur7tJ7xR3uAtcQGD+RN41Y77CPLaPQ5wnZuNWr/+0VflpP/G4ldxp06jaqv+YpoQ==} @@ -2369,32 +2303,32 @@ packages: '@markuplint/ml-ast@4.4.9': resolution: {integrity: sha512-PPojBxU0qL0ivbv7SIqOekMHKC4Cbdwm+vJunkiHQKjI3Dxb50bkuk8uF4X5j7uouwnk2VDCHE9GpOXtFdMfow==} - '@markuplint/ml-config@4.8.5': - resolution: {integrity: sha512-ZUxF7ijYKT1B45y6DcB0SJaC+Q2QUlVG2iI2BncM0jPIlvUJGjOTQbJ0ThWHPiKHqrsrcv7wBob8oeBnHyfIbg==} + '@markuplint/ml-config@4.8.6': + resolution: {integrity: sha512-/9Z1HlWnPcABsrXBpR2ERkcgMmPPnP1hNmzLBldECROO1hNG9AAWPuxrVCb90y7zlqgKTE9K7wALSf1IzTkP0g==} - '@markuplint/ml-core@4.10.5': - resolution: {integrity: sha512-o6zBhBKJjnZG63U08iusWfMS/jwy/7o6w7Hq3m/uZYZt7Vf0uD7atf8g1PmeNENI87cLyRhN1ErGkUV6oxOetQ==} + '@markuplint/ml-core@4.11.0': + resolution: {integrity: sha512-C6J0oE7CAPWerac/f4o9BafyiXiP+W+WTAlvyepNqU2Z3F9h1RMiLYOkloC13NKr5GnxDGGrsrzZdu+meTyjZA==} - '@markuplint/ml-spec@4.9.0': - resolution: {integrity: sha512-aCVhXRcFvgFUOwVpumNj6NqeP9q0sifAJZnIXsIzAFJRMiZFcLDNQjfr+8nAbvb3JllfvcB1PAeC6wZqIAIdMw==} + '@markuplint/ml-spec@4.9.1': + resolution: {integrity: sha512-wg5fG+sLueW6qF1i7JYlw66AeafbpH4vv+N59HaS7iZ0mAL7WU9mexU2tMJDpq04EHzhiHiyvHN4Zo7V3Ni/Tg==} - '@markuplint/parser-utils@4.8.1': - resolution: {integrity: sha512-cVXjNGboxbSR/DjsmxjOkAF6GgAqY7seBCJ8zntTLkUZ9GxHl8wnNQOYEyyh9giP0vCgntm2VomEu/1g2pXxZg==} + '@markuplint/parser-utils@4.8.2': + resolution: {integrity: sha512-lCgbNILB26/Btokb5Na8ml1xnDOYfcoH+TTAjDpaEHZ47w7QUJe9D5PM2tjPLF8rEIdnMbeg3PdduXY9WJ90Wg==} - '@markuplint/rules@4.10.6': - resolution: {integrity: sha512-H04rFInh93g8ENJ15ie6CxZUEkcNiM2MjUn0iWRA1pdZVRKuzkBHc9mwY3sanSdgXVZEu5YlvXpwQ0FK+BE7vQ==} + '@markuplint/rules@4.10.7': + resolution: {integrity: sha512-Xnyv6g6vqHbSRITOG4k6EwZ6oUfbY2XZzgv1pvS0FTyn1mUGzeJtG9miNNpPCh5ZzCAv21u8qcdXS2GfbZqaGA==} - '@markuplint/selector@4.6.13': - resolution: {integrity: sha512-a9ZBeN+E0sEnpOT1hKMEbQjEmdtYn5Xff6896qDdY55wMwKS6bmMPXEetTNTGMhtpUNkFSMBPJuwEUP+1Hl9MQ==} + '@markuplint/selector@4.6.14': + resolution: {integrity: sha512-bs5rfMINk0yDrXF/3qiYLh4UxjigNCmXhDl1wO9tUZejl/bpPIiXLP49e5vl7a1POP03EGX0hcyvwS6WNZZ84w==} '@markuplint/shared@4.4.10': resolution: {integrity: sha512-hKpzBibNa5wItnMmOLAT1w39F1r+r35juPVGyd25y7xczxsbWgyl1l1xE2lA+OpAotzYDBkDTqpkErlLUqlL7A==} - '@markuplint/svelte-parser@4.7.3': - resolution: {integrity: sha512-qe6hBVKnsXO8pfwlhEFWDHsuT8MJEfA8tl1g80jg3oZAR58U1QCZFnBAgooDvWtNZvD5s+oK8nQ88ZEM4P1rqg==} + '@markuplint/svelte-parser@4.7.4': + resolution: {integrity: sha512-Sj2pqrRayC1XYvMsldjQ0aSzcX5SXnOWJLNKVlCfI+vDZk7NF8kv9vhqsZcLqmcwuGaPtNeB9zi3mPLy3t4eGQ==} - '@markuplint/types@4.7.0': - resolution: {integrity: sha512-FIrEsX/+/iPN/yq4j4+qO36X5o5EN9vIZwDv/WDFVHiq96IoKysWXqGa0m3lp4iIboc3MlmFh4iyq/KNuM1+jQ==} + '@markuplint/types@4.7.1': + resolution: {integrity: sha512-TuyzNlFln5XM1N/07HErgbOBPdy3U7Wro3mxT46ixG2T8LCZQGIVJ34spHEOe/FdqvWDvd82J4ja+GQnpvXZoA==} '@mdx-js/mdx@3.1.0': resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} @@ -2490,9 +2424,6 @@ packages: resolution: {integrity: sha512-4tuKnCRecJ6CG6gr0XcEXdZtkTDbfbnD5oaHBmLERTjTMZNi2CbfEHZxPU41xXLDG4DfKf+sonu00zvKI9NSbw==} engines: {node: '>= 18'} - '@octokit/openapi-types@19.1.0': - resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==} - '@octokit/openapi-types@20.0.0': resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} @@ -2537,9 +2468,6 @@ packages: resolution: {integrity: sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==} engines: {node: '>= 18'} - '@octokit/types@12.4.0': - resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==} - '@octokit/types@12.6.0': resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} @@ -2600,8 +2528,8 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@playwright/test@1.49.0': - resolution: {integrity: sha512-DMulbwQURa8rNIQrf94+jPJQ4FmOVdpE5ZppRNvWVjvhC+6sOeo28r8MgIpQRYouXRtt/FCCXU7zn20jnHR4Qw==} + '@playwright/test@1.49.1': + resolution: {integrity: sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==} engines: {node: '>=18'} hasBin: true @@ -2663,110 +2591,115 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.28.0': - resolution: {integrity: sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==} + '@rollup/rollup-android-arm-eabi@4.28.1': + resolution: {integrity: sha512-2aZp8AES04KI2dy3Ss6/MDjXbwBzj+i0GqKtWXgw2/Ma6E4jJvujryO6gJAghIRVz7Vwr9Gtl/8na3nDUKpraQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.28.0': - resolution: {integrity: sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==} + '@rollup/rollup-android-arm64@4.28.1': + resolution: {integrity: sha512-EbkK285O+1YMrg57xVA+Dp0tDBRB93/BZKph9XhMjezf6F4TpYjaUSuPt5J0fZXlSag0LmZAsTmdGGqPp4pQFA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.28.0': - resolution: {integrity: sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==} + '@rollup/rollup-darwin-arm64@4.28.1': + resolution: {integrity: sha512-prduvrMKU6NzMq6nxzQw445zXgaDBbMQvmKSJaxpaZ5R1QDM8w+eGxo6Y/jhT/cLoCvnZI42oEqf9KQNYz1fqQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.28.0': - resolution: {integrity: sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==} + '@rollup/rollup-darwin-x64@4.28.1': + resolution: {integrity: sha512-WsvbOunsUk0wccO/TV4o7IKgloJ942hVFK1CLatwv6TJspcCZb9umQkPdvB7FihmdxgaKR5JyxDjWpCOp4uZlQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.28.0': - resolution: {integrity: sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==} + '@rollup/rollup-freebsd-arm64@4.28.1': + resolution: {integrity: sha512-HTDPdY1caUcU4qK23FeeGxCdJF64cKkqajU0iBnTVxS8F7H/7BewvYoG+va1KPSL63kQ1PGNyiwKOfReavzvNA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.28.0': - resolution: {integrity: sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==} + '@rollup/rollup-freebsd-x64@4.28.1': + resolution: {integrity: sha512-m/uYasxkUevcFTeRSM9TeLyPe2QDuqtjkeoTpP9SW0XxUWfcYrGDMkO/m2tTw+4NMAF9P2fU3Mw4ahNvo7QmsQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.28.0': - resolution: {integrity: sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==} + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': + resolution: {integrity: sha512-QAg11ZIt6mcmzpNE6JZBpKfJaKkqTm1A9+y9O+frdZJEuhQxiugM05gnCWiANHj4RmbgeVJpTdmKRmH/a+0QbA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.28.0': - resolution: {integrity: sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==} + '@rollup/rollup-linux-arm-musleabihf@4.28.1': + resolution: {integrity: sha512-dRP9PEBfolq1dmMcFqbEPSd9VlRuVWEGSmbxVEfiq2cs2jlZAl0YNxFzAQS2OrQmsLBLAATDMb3Z6MFv5vOcXg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.28.0': - resolution: {integrity: sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==} + '@rollup/rollup-linux-arm64-gnu@4.28.1': + resolution: {integrity: sha512-uGr8khxO+CKT4XU8ZUH1TTEUtlktK6Kgtv0+6bIFSeiSlnGJHG1tSFSjm41uQ9sAO/5ULx9mWOz70jYLyv1QkA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.28.0': - resolution: {integrity: sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==} + '@rollup/rollup-linux-arm64-musl@4.28.1': + resolution: {integrity: sha512-QF54q8MYGAqMLrX2t7tNpi01nvq5RI59UBNx+3+37zoKX5KViPo/gk2QLhsuqok05sSCRluj0D00LzCwBikb0A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': - resolution: {integrity: sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==} + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': + resolution: {integrity: sha512-vPul4uodvWvLhRco2w0GcyZcdyBfpfDRgNKU+p35AWEbJ/HPs1tOUrkSueVbBS0RQHAf/A+nNtDpvw95PeVKOA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': + resolution: {integrity: sha512-pTnTdBuC2+pt1Rmm2SV7JWRqzhYpEILML4PKODqLz+C7Ou2apEV52h19CR7es+u04KlqplggmN9sqZlekg3R1A==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.28.0': - resolution: {integrity: sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==} + '@rollup/rollup-linux-riscv64-gnu@4.28.1': + resolution: {integrity: sha512-vWXy1Nfg7TPBSuAncfInmAI/WZDd5vOklyLJDdIRKABcZWojNDY0NJwruY2AcnCLnRJKSaBgf/GiJfauu8cQZA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.28.0': - resolution: {integrity: sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==} + '@rollup/rollup-linux-s390x-gnu@4.28.1': + resolution: {integrity: sha512-/yqC2Y53oZjb0yz8PVuGOQQNOTwxcizudunl/tFs1aLvObTclTwZ0JhXF2XcPT/zuaymemCDSuuUPXJJyqeDOg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.28.0': - resolution: {integrity: sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==} + '@rollup/rollup-linux-x64-gnu@4.28.1': + resolution: {integrity: sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.28.0': - resolution: {integrity: sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==} + '@rollup/rollup-linux-x64-musl@4.28.1': + resolution: {integrity: sha512-xQTDVzSGiMlSshpJCtudbWyRfLaNiVPXt1WgdWTwWz9n0U12cI2ZVtWe/Jgwyv/6wjL7b66uu61Vg0POWVfz4g==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.28.0': - resolution: {integrity: sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==} + '@rollup/rollup-win32-arm64-msvc@4.28.1': + resolution: {integrity: sha512-wSXmDRVupJstFP7elGMgv+2HqXelQhuNf+IS4V+nUpNVi/GUiBgDmfwD0UGN3pcAnWsgKG3I52wMOBnk1VHr/A==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.28.0': - resolution: {integrity: sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==} + '@rollup/rollup-win32-ia32-msvc@4.28.1': + resolution: {integrity: sha512-ZkyTJ/9vkgrE/Rk9vhMXhf8l9D+eAhbAVbsGsXKy2ohmJaWg0LPQLnIxRdRp/bKyr8tXuPlXhIoGlEB5XpJnGA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.28.0': - resolution: {integrity: sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==} + '@rollup/rollup-win32-x64-msvc@4.28.1': + resolution: {integrity: sha512-ZvK2jBafvttJjoIdKm/Q/Bh7IJ1Ose9IBOwpOXcOvW3ikGTQGmKDgxTC6oCAzW6PynbkKP8+um1du81XJHZ0JA==} cpu: [x64] os: [win32] - '@shikijs/core@1.24.0': - resolution: {integrity: sha512-6pvdH0KoahMzr6689yh0QJ3rCgF4j1XsXRHNEeEN6M4xJTfQ6QPWrmHzIddotg+xPJUPEPzYzYCKzpYyhTI6Gw==} + '@shikijs/core@1.24.2': + resolution: {integrity: sha512-BpbNUSKIwbKrRRA+BQj0BEWSw+8kOPKDJevWeSE/xIqGX7K0xrCZQ9kK0nnEQyrzsUoka1l81ZtJ2mGaCA32HQ==} - '@shikijs/engine-javascript@1.24.0': - resolution: {integrity: sha512-ZA6sCeSsF3Mnlxxr+4wGEJ9Tto4RHmfIS7ox8KIAbH0MTVUkw3roHPHZN+LlJMOHJJOVupe6tvuAzRpN8qK1vA==} + '@shikijs/engine-javascript@1.24.2': + resolution: {integrity: sha512-EqsmYBJdLEwEiO4H+oExz34a5GhhnVp+jH9Q/XjPjmBPc6TE/x4/gD0X3i0EbkKKNqXYHHJTJUpOLRQNkEzS9Q==} - '@shikijs/engine-oniguruma@1.24.0': - resolution: {integrity: sha512-Eua0qNOL73Y82lGA4GF5P+G2+VXX9XnuUxkiUuwcxQPH4wom+tE39kZpBFXfUuwNYxHSkrSxpB1p4kyRW0moSg==} + '@shikijs/engine-oniguruma@1.24.2': + resolution: {integrity: sha512-ZN6k//aDNWRJs1uKB12pturKHh7GejKugowOFGAuG7TxDRLod1Bd5JhpOikOiFqPmKjKEPtEA6mRCf7q3ulDyQ==} - '@shikijs/types@1.24.0': - resolution: {integrity: sha512-aptbEuq1Pk88DMlCe+FzXNnBZ17LCiLIGWAeCWhoFDzia5Q5Krx3DgnULLiouSdd6+LUM39XwXGppqYE0Ghtug==} + '@shikijs/types@1.24.2': + resolution: {integrity: sha512-bdeWZiDtajGLG9BudI0AHet0b6e7FbR0EsE4jpGaI0YwHm/XJunI9+3uZnzFtX65gsyJ6ngCIWUfA4NWRPnBkQ==} - '@shikijs/vscode-textmate@9.3.0': - resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + '@shikijs/vscode-textmate@9.3.1': + resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} '@sideway/address@4.1.5': resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} @@ -2786,8 +2719,8 @@ packages: '@sinclair/typebox@0.31.28': resolution: {integrity: sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ==} - '@sinclair/typebox@0.34.9': - resolution: {integrity: sha512-KTuEZ4UHIp8rNgbLrsQwmGo4cCVj/AHPG3DsI1VvfzudG8dzpZNCV4qm4NWfYY02ReB5INVyuq6xGrl3Ks8vAQ==} + '@sinclair/typebox@0.34.11': + resolution: {integrity: sha512-zE9pWGVSG82z+sFO+oUmqmqRVm8Wg5sVhmljYi1fDhLOSphBBy939QmC/qXcKFWqTiRJ6keyG4y75bIoTPRBAw==} '@skeletonlabs/skeleton@2.10.3': resolution: {integrity: sha512-O1RecF68zEVvZl3GgRS4emqWMUIQLHvTOFoqGOw/2OXCPE06IxUQrHQf2hnxCPxtGZNXY2YX8UNV38l+eH8GNQ==} @@ -2802,8 +2735,8 @@ packages: '@svelte-plugins/datepicker@1.0.9': resolution: {integrity: sha512-HagVB8jLUwNFbwfAcJBNURN1QMQ+qAQQjLJPH97GMqI6auo7jIxOMiSIEWpx7SxTDewHJAlH1izQy3cwBVV8oQ==} - '@svelte-put/shortcut@3.1.1': - resolution: {integrity: sha512-2L5EYTZXiaKvbEelVkg5znxqvfZGZai3m97+cAiUBhLZwXnGtviTDpHxOoZBsqz41szlfRMcamW/8o0+fbW3ZQ==} + '@svelte-put/shortcut@3.1.2': + resolution: {integrity: sha512-9P0Rh9LFya1ee54m4njHCdPiQ4hv64tRsQM7MoNybenjbUUaMWP2txdXPykFqkrXQ1Oa6bmJVXlkz0bRng8ylg==} peerDependencies: svelte: ^3.55.0 || ^4.0.0 || ^5.0.0 @@ -2812,13 +2745,13 @@ packages: peerDependencies: '@sveltejs/kit': ^2.0.0 - '@sveltejs/adapter-node@5.2.9': - resolution: {integrity: sha512-51euNrx0AcaTu8//wDfVh7xmqQSVgU52rfinE/MwvGkJa4nHPJMHmzv6+OIpmxg7gZaF6+5NVlxnieCzxLD59g==} + '@sveltejs/adapter-node@5.2.10': + resolution: {integrity: sha512-U0SCdULhHbSYCDgvvrHRtKUykl9GZkM/b3NyeIUtaxM39upQFd5059pWmXgTNaNTU1HMdj4xx0xvNAvQcIzmXQ==} peerDependencies: '@sveltejs/kit': ^2.4.0 - '@sveltejs/adapter-vercel@5.5.0': - resolution: {integrity: sha512-r0IWvJ+qdaFaftKiFkoVqPhHvUZ29eQObBPkU4CtXQDSQPmilXchgD7fcswHlHEvkoUNx1dhFimdMPIY6vGK0g==} + '@sveltejs/adapter-vercel@5.5.2': + resolution: {integrity: sha512-6NpumKJ3m9Y6mkSFw4Z8YnaJZc42OWLkSFCk5hD6pLrS4f+b9JVBaXpKB/xkxf1Kf7JpzZtNZKbAaoRrTtJ+Hw==} peerDependencies: '@sveltejs/kit': ^2.4.0 @@ -2828,23 +2761,14 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: '>= 5.0.0' - '@sveltejs/enhanced-img@0.4.1': - resolution: {integrity: sha512-Z0xwQWM7tfdlNYuaFsAsbjEosEZb961yP7hlvZBLlh3+Rv4tI3BboD6bUkmInj+cC66p/5rybgvEtxX5LILSuw==} + '@sveltejs/enhanced-img@0.4.4': + resolution: {integrity: sha512-BlBTGfbLUgHa+zSVrsGLOd+noCKWfipoOjoxE26bAAX97v7zh5eiCAp1KEdpkluL05Tl3+nR14gQdPsATyZqoA==} peerDependencies: svelte: ^5.0.0 vite: '>= 5.0.0' - '@sveltejs/kit@2.8.5': - resolution: {integrity: sha512-5ry1jPd4r9knsphDK2eTYUFPhFZMqF0PHFfa8MdMQCqWaKwLSXdFMU/Vevih1I7C1/VNB5MvTuFl1kXu5vx8UA==} - engines: {node: '>=18.13'} - hasBin: true - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.3 - - '@sveltejs/kit@2.9.0': - resolution: {integrity: sha512-W3E7ed3ChB6kPqRs2H7tcHp+Z7oiTFC6m+lLyAQQuyXeqw6LdNuuwEUla+5VM0OGgqQD+cYD6+7Xq80vVm17Vg==} + '@sveltejs/kit@2.11.1': + resolution: {integrity: sha512-dAiHDEd+AOm20eYdMPV1a2eKBOc0s/7XsSs7PCoNv2kKS7BAoVRC9uzR+FQmxLtp8xuEo9z8CtrMQoszkThltQ==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -2860,14 +2784,6 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 - '@sveltejs/vite-plugin-svelte-inspector@3.0.1': - resolution: {integrity: sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^4.0.0-next.0||^4.0.0 - svelte: ^5.0.0-next.96 || ^5.0.0 - vite: ^5.0.0 - '@sveltejs/vite-plugin-svelte-inspector@4.0.1': resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22} @@ -2883,15 +2799,8 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 - '@sveltejs/vite-plugin-svelte@4.0.2': - resolution: {integrity: sha512-Y9r/fWy539XlAC7+5wfNJ4zH6TygUYoQ0Eegzp0zDDqhJ54+92gOyOX1l4MO1cJSx0O+Gp13YePT5XEa3+kX0w==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22} - peerDependencies: - svelte: ^5.0.0-next.96 || ^5.0.0 - vite: ^5.0.0 - - '@sveltejs/vite-plugin-svelte@5.0.1': - resolution: {integrity: sha512-D5l5+STmywGoLST07T9mrqqFFU+xgv5fqyTWM+VbxTvQ6jujNn4h3lQNCvlwVYs4Erov8i0K5Rwr3LQtmBYmBw==} + '@sveltejs/vite-plugin-svelte@5.0.2': + resolution: {integrity: sha512-GElAxQMlznx1pRdodtkmiyBZcjlaJntJ8APa2hBhnbUAJqKAFGdmwjRPJhh+2DMxwARRLBzQIs/iZ5EbR4X/og==} engines: {node: ^18.0.0 || ^20.0.0 || >=22} peerDependencies: svelte: ^5.0.0 @@ -3026,18 +2935,6 @@ packages: '@types/aws-lambda@8.10.146': resolution: {integrity: sha512-3BaDXYTh0e6UCJYL/jwV/3+GRslSc08toAiZSmleYtkAUyV5rtvdPYxrG/88uqvTuT6sb27WE9OS90ZNTIuQ0g==} - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/braces@3.0.4': resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} @@ -3176,8 +3073,8 @@ packages: '@types/fs-extra@9.0.13': resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - '@types/geojson@7946.0.14': - resolution: {integrity: sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==} + '@types/geojson@7946.0.15': + resolution: {integrity: sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==} '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -3185,6 +3082,9 @@ packages: '@types/js-cookie@3.0.6': resolution: {integrity: sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==} + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -3224,8 +3124,8 @@ packages: '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@types/node@22.10.1': - resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} + '@types/node@22.10.2': + resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -3294,44 +3194,44 @@ packages: '@types/json-schema': optional: true - '@typescript-eslint/scope-manager@8.17.0': - resolution: {integrity: sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==} + '@typescript-eslint/scope-manager@8.18.0': + resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.17.0': - resolution: {integrity: sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==} + '@typescript-eslint/types@8.18.0': + resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.17.0': - resolution: {integrity: sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==} + '@typescript-eslint/typescript-estree@8.18.0': + resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.17.0': - resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} + '@typescript-eslint/visitor-keys@8.18.0': + resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@ungap/structured-clone@1.2.1': + resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} + '@unovis/dagre-layout@0.8.8-2': resolution: {integrity: sha512-ZfDvfcYtzzhZhgKZty8XDi+zQIotfRqfNVF5M3dFQ9d9C5MTaRdbeBnPUkNrmlLJGgQ42HMOE2ajZLfm2VlRhg==} '@unovis/graphlibrary@2.2.0-2': resolution: {integrity: sha512-HeEzpd/vDyWiIJt0rnh+2ICXUIuF2N0+Z9OJJiKg0DB+eFUcD+bk+9QPhYHwkFwfxdjDA9fHi1DZ/O/bbV58Nw==} - '@unovis/svelte@1.5.0-beta.3': - resolution: {integrity: sha512-IpQBvGFFALbJ6kqHL9LafbLS7NeZwFLXgAzMKvT2sHI9Z1zUUp7Blh/zTAyhklY6GwGTh2orebg5g1CdjQ5uEQ==} + '@unovis/svelte@1.5.0': + resolution: {integrity: sha512-R6yw+TUr/MKSk8omyV4hAI7oNU81nqd93H844M7CAgVEw/sp8lL2a18J/GdPpQPdHzM7UOYexsD8IJIcO9ctNA==} peerDependencies: - '@unovis/ts': 1.5.0-beta.3 - svelte: ^3.48.0 || ^4.0.0 || ^5.0.0 + '@unovis/ts': 1.5.0 + svelte: '^3.48.0 || ^4.0.0 ' - '@unovis/ts@1.5.0-beta.3': - resolution: {integrity: sha512-WoPWUS1hrePS1vw2PjBY5eKrI4q8ovne2hFSeTRCI3By9MlKh81TvAm3kDrBmIEDtmItUDGBB9Sytks7dHnHbg==} + '@unovis/ts@1.5.0': + resolution: {integrity: sha512-dMRlhBKwazkGxg65xXl4KHvmqX0+2C5qJsUqTFjcg/59G9RCjej9uFF4qsk0x3zY/FnAvK4AjKQYygQfBWzd+w==} '@vercel/analytics@1.4.1': resolution: {integrity: sha512-ekpL4ReX2TH3LnrRZTUKjHHNpNy9S1I7QmS+g/RQXoSUQ8ienzosuX7T9djZ/s8zPhBx1mpHP/Rw5875N+zQIQ==} @@ -3359,8 +3259,8 @@ packages: vue-router: optional: true - '@vercel/edge@1.1.2': - resolution: {integrity: sha512-wt5SnhsMahWX8U9ZZhFUQoiXhMn/CUxA5xeMdZX1cwyOL1ZbDR3rNI8HRT9RSU73nDxeF6jlnqJyp/0Jy0VM2A==} + '@vercel/edge@1.1.4': + resolution: {integrity: sha512-mCe+KKmYphgWaO6NSxzkxskv4eZOuuRDqBQX/LhOizj5o1+4u/fwjN+WZDpAyVH8WU8+7EueijoT6wbTKlauOA==} '@vercel/flags@2.6.3': resolution: {integrity: sha512-knLDYS8MCc/zx4FF6KRzHQzAKdo8VQ3V0PEBI5WvRlFIhcqhcEomxHoK41/xMnNEQvUzETACHw610/i/pVwYSA==} @@ -3379,8 +3279,8 @@ packages: react-dom: optional: true - '@vercel/nft@0.27.7': - resolution: {integrity: sha512-FG6H5YkP4bdw9Ll1qhmbxuE8KwW2E/g8fJpM183fWQLeVDGqzeywMIeJ9h2txdWZ03psgWMn6QymTxaDLmdwUg==} + '@vercel/nft@0.27.9': + resolution: {integrity: sha512-pTs7OchHQmSYJPR0puVQCWw/NqzuvAtnAhBurz21lq4Y4KqWoMpYKqmikkETG5r1bHNCM/hQMZ5JiRr9mhOkyg==} engines: {node: '>=16'} hasBin: true @@ -3407,8 +3307,8 @@ packages: vue-router: optional: true - '@vercel/toolbar@0.1.27': - resolution: {integrity: sha512-AxPeZKFFIMr9OGy7ZcgSsKWX7VhZQvO6xpI3iv6j3ALI0CTVFjnu0HCBWLHjRH6YD59W5X+83uCXkKWWol+S3Q==} + '@vercel/toolbar@0.1.28': + resolution: {integrity: sha512-/cOX1xVJV1hESg+JNzM/4wA4XcSkNnqhr+hK/BcsS6hbPswFWk7UdQlk2APMlX9w6hvHM1jMs3h9++RLsqnAMw==} peerDependencies: next: '>=11.0.0' react: '>=17' @@ -3477,25 +3377,25 @@ packages: '@vitest/utils@2.1.8': resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==} - '@volar/kit@2.4.10': - resolution: {integrity: sha512-ul+rLeO9RlFDgkY/FhPWMnpFqAsjvjkKz8VZeOY5YCJMwTblmmSBlNJtFNxSBx9t/k1q80nEthLyxiJ50ZbIAg==} + '@volar/kit@2.4.11': + resolution: {integrity: sha512-ups5RKbMzMCr6RKafcCqDRnJhJDNWqo2vfekwOAj6psZ15v5TlcQFQAyokQJ3wZxVkzxrQM+TqTRDENfQEXpmA==} peerDependencies: typescript: '*' - '@volar/language-core@2.4.10': - resolution: {integrity: sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==} + '@volar/language-core@2.4.11': + resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==} - '@volar/language-server@2.4.10': - resolution: {integrity: sha512-odQsgrJh8hOXfxkSj/BSnpjThb2/KDhbxZnG/XAEx6E3QGDQv4hAOz9GWuKoNs0tkjgwphQGIwDMT1JYaTgRJw==} + '@volar/language-server@2.4.11': + resolution: {integrity: sha512-W9P8glH1M8LGREJ7yHRCANI5vOvTrRO15EMLdmh5WNF9sZYSEbQxiHKckZhvGIkbeR1WAlTl3ORTrJXUghjk7g==} - '@volar/language-service@2.4.10': - resolution: {integrity: sha512-VxUiWS11rnRzakkqw5x1LPhsz+RBfD0CrrFarLGW2/voliYXEdCuSOM3r8JyNRvMvP4uwhD38ccAdTcULQEAIQ==} + '@volar/language-service@2.4.11': + resolution: {integrity: sha512-KIb6g8gjUkS2LzAJ9bJCLIjfsJjeRtmXlu7b2pDFGD3fNqdbC53cCAKzgWDs64xtQVKYBU13DLWbtSNFtGuMLQ==} - '@volar/source-map@2.4.10': - resolution: {integrity: sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==} + '@volar/source-map@2.4.11': + resolution: {integrity: sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==} - '@volar/typescript@2.4.10': - resolution: {integrity: sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==} + '@volar/typescript@2.4.11': + resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==} '@vscode/emmet-helper@2.11.0': resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} @@ -3523,28 +3423,29 @@ packages: resolution: {integrity: sha512-tcZAhrpx6oVlkEsRngeTEEE7I5/QdLjeEz4IlekabGaESP7+Dkm/6a9KcF1KdCBB7mO9PXtBkwCuTCt8+UPg8Q==} engines: {node: '>=18.0.0'} - '@whatwg-node/node-fetch@0.7.4': - resolution: {integrity: sha512-rvUtU/xKKl/av5EIwyqfw7w0R+hx+tQrlhpIyFr27MwJRlUb+xcYv97kOmp7FE/WmQ8s+Tb6bcD6W8o/s2pGWw==} + '@whatwg-node/node-fetch@0.7.5': + resolution: {integrity: sha512-t7kGrt2fdfNvzy1LCAE9/OnIyMtizgFhgJmk7iLJwQsLmR7S86F8Q4aDRPbCfo7pISJP6Fx/tPdfFNjHS23WTA==} engines: {node: '>=18.0.0'} - '@whatwg-node/server@0.9.60': - resolution: {integrity: sha512-JH3eK3aGnBwTT2qQwFrmx6RPXxsjrk99kDWOM98H1aayFMV70nsHIltmyuKRnPmf/avuVRe53bkiu2wsc5Eykw==} + '@whatwg-node/server@0.9.63': + resolution: {integrity: sha512-rHBN2murCcuuhQru/AQjA13lA9SzQAH9k8ENy4iZrAmY+C0yFYPud3HiFgPUgzR1B2KYUpIYKwC1UAUlkzASOQ==} engines: {node: '>=18.0.0'} '@wolfy1339/lru-cache@11.0.2-patch.1': resolution: {integrity: sha512-BgYZfL2ADCXKOw2wJtkM3slhHotawWkgIRRxq4wEybnZQPjvAp71SPX35xepMykTw8gXlzWcWPTY31hlbnRsDA==} engines: {node: 18 >=18.20 || 20 || >=22} - '@xyflow/svelte@0.1.24': - resolution: {integrity: sha512-2r2z3LMC4muswdL/aDJhBSJeFIRjAJYR9hIRR9Se2uWD+H6isM9uIaa/Su+YEceG3UShqEW4o6lRH1xI6ssalg==} + '@xyflow/svelte@0.1.25': + resolution: {integrity: sha512-oavfqFGsXrSBSWDAPFEtMdM38Z3SU8pcC/rFwul9p8RbWhIc7B95JdcCc3NRZ2UbeOhNhltYRiWju9fOnFWXWA==} peerDependencies: svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 - '@xyflow/system@0.0.46': - resolution: {integrity: sha512-bmFXvboVdiydIFZmDCjrbBCYgB0d5pYdkcZPWbAxGmhMRUZ+kW3CksYgYxWabrw51rwpWitLEadvLrivG0mVfA==} + '@xyflow/system@0.0.47': + resolution: {integrity: sha512-aUXJPIvsCFxGX70ccRG8LPsR+A8ExYXfh/noYNpqn8udKerrLdSHxMG2VsvUrQ1PGex10fOpbJwFU4A+I/Xv8w==} - abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} acorn-import-attributes@1.9.5: resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} @@ -3566,20 +3467,16 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ai@4.0.10: - resolution: {integrity: sha512-40GaEGLbp7if1F50zp3Kr03vcqyGS8svyJWpbkgec7G5Ik2rEtnbDWiUoOJuAVqgP5/iy4NgZQfvX3jRmOyQrw==} + ai@4.0.18: + resolution: {integrity: sha512-BTWzalLNE1LQphEka5xzJXDs5v4xXy1Uzr7dAVk+C/CnO3WNpuMBgrCymwUv0VrWaWc8xMQuh+OqsT7P7JyekQ==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc @@ -3631,14 +3528,6 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - - are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -3655,8 +3544,8 @@ packages: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} - arktype@2.0.0-rc.25: - resolution: {integrity: sha512-ck1kRLda55Pv6L3vIIjRb6A22LqUcjitxPGS3OscOKwFcxNReaj+ItJJiysebBbbUy+ESouXTJ+vvck33spGDQ==} + arktype@2.0.0-rc.26: + resolution: {integrity: sha512-OdV40SQNY0CFJH+anT0N7Go9Tl+av+hxzMGPccv47sPHdekZuEPd61MfNmwn1J5H2SIrycdwGPD8jYBZSkhKjQ==} array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} @@ -3692,9 +3581,9 @@ packages: astro-seo@0.8.4: resolution: {integrity: sha512-Ou1vzQSXAxa0K8rtNtXNvSpYqOGEgMhh0immMxJeXmbVZac3UKCNWAoXWyOQDFYsZvBugCRSg0N1phBqPMVgCw==} - astro@4.16.16: - resolution: {integrity: sha512-H1CttrV6+JFrDBQx0Mcbq5i5AeLhCbztB786+9wEu3svWL/QPNeCGqF0dgNORAYmP+rODGCPu/y9qKSh87iLuA==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + astro@5.0.5: + resolution: {integrity: sha512-xfptdmurDsQcj/Anc7mU+eKlcyV7ppJIlmaSwhX3ZWwK5N/0rGKVmUqnuILgR6MB0XVJiIfublNzDGoyj4Q6BQ==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true astrojs-compiler-sync@1.0.1: @@ -3719,8 +3608,8 @@ packages: peerDependencies: postcss: ^8.1.0 - axios@1.7.8: - resolution: {integrity: sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==} + axios@1.7.9: + resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -3770,6 +3659,12 @@ packages: peerDependencies: svelte: ^5.0.0-next.1 + bits-ui@1.0.0-next.71: + resolution: {integrity: sha512-ncZ42GwVpa1Ldw41opdLqP/HSkhNGNBnmfvWduYGZ0cVzDnkPwsUWvdikTsFI31ZoAMcfcUVFSVgLGCcBatUXQ==} + engines: {node: '>=18', pnpm: '>=8.7.0'} + peerDependencies: + svelte: ^5.0.0-next.1 + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -3790,8 +3685,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + browserslist@4.24.3: + resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -3836,8 +3731,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001686: - resolution: {integrity: sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==} + caniuse-lite@1.0.30001688: + resolution: {integrity: sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -3889,9 +3784,9 @@ packages: resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} engines: {node: '>= 14.16.0'} - chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} chrome-ai@1.11.1: resolution: {integrity: sha512-d2JNIjdE5HtKSbUZf17BBeDLts/8S+MGOBPSDB0vUXW/B/7ZVMJWq5ivvMmSJt82gszvuw/T1RR/eq42GYXlOQ==} @@ -3937,10 +3832,6 @@ packages: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} @@ -3972,10 +3863,6 @@ packages: color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} @@ -4036,15 +3923,9 @@ packages: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} - console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} @@ -4360,16 +4241,17 @@ packages: dayjs@1.11.13: resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -4417,9 +4299,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -4466,9 +4345,6 @@ packages: diff-match-patch@1.0.5: resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} - diff3@0.0.4: - resolution: {integrity: sha512-f1rQ7jXDn/3i37hdwRk9ohqcvLRH3+gEIgmA6qEM280WUOh7cOr3GXV8Jm5sPwUs46Nzl48SE8YNLGJoaLuodg==} - diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -4537,11 +4413,11 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@3.11.2: - resolution: {integrity: sha512-iBdej2wiVtPijAn04uQQVZK3xtHIdiwLQHvW1KonEuDaHWKjaxbIVwz8TabfP6dWTZlm4jNR8DXUwhq56JWF+Q==} + effect@3.11.7: + resolution: {integrity: sha512-laj+TCxWGn0eOv6jNmS9vavMO01Z4vvRr7v5airaOUfE7Zr5PrHiECpiI5HRvOewxa1im/4EcOvRodOZ1S2Y7Q==} - electron-to-chromium@1.5.68: - resolution: {integrity: sha512-FgMdJlma0OzUYlbrtZ4AeXjKxKPk6KT8WOP8BjcqxWtlg8qyJQjRzPJzUtUn5GBg1oQ26hFs7HOOHJMYiJRnvQ==} + electron-to-chromium@1.5.73: + resolution: {integrity: sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==} elkjs@0.8.2: resolution: {integrity: sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==} @@ -4778,10 +4654,6 @@ packages: ext@1.7.0: resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -4792,8 +4664,8 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} - fast-check@3.23.1: - resolution: {integrity: sha512-u/MudsoQEgBUZgR5N1v87vEgybeVYus9VnDVaIkxkkGP2jt54naghQ3PCQHJiogS8U/GavZCUPFfx3Xkp+NaHw==} + fast-check@3.23.2: + resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==} engines: {node: '>=8.0.0'} fast-decode-uri-component@1.0.1: @@ -4913,8 +4785,8 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.1 sveltekit-superforms: ^2.3.0 - formsnap@2.0.0-next.1: - resolution: {integrity: sha512-ha8r9eMmsGEGMY+ljV3FEyTtB72E7dt95y9HHUbCcaDnjbz3Q6n00BHLz7dfBZ9rqyaMeIO200EmP1IcYMExeg==} + formsnap@2.0.0: + resolution: {integrity: sha512-W61elddvdzeBEs10nNvwxQnx/FctJFHBXPk9uluNQAckHo1nuSUvSQGIjtLjTKIbQdQnwEOoxqWrk9tuv0U7hA==} engines: {node: '>=18', pnpm: '>=8.7.0'} peerDependencies: svelte: ^5.0.0 @@ -4939,10 +4811,6 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} - fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} - fs-monkey@1.0.6: resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} @@ -4962,19 +4830,10 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - gensequence@7.0.0: resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} engines: {node: '>=18'} - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - geojson-vt@3.2.1: resolution: {integrity: sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==} @@ -5071,6 +4930,10 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} @@ -5104,10 +4967,6 @@ packages: resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - guess-json-indent@2.0.0: resolution: {integrity: sha512-3Tm6R43KhtZWEVSHZnFmYMV9+gf3Vu0HXNNYtPVk2s7o8eGwYlJPHrjLtYw/7HBc10YxV+bfzKMuOf24z5qFng==} engines: {node: '>=16.17.0'} @@ -5120,9 +4979,6 @@ packages: resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} engines: {node: '>=8'} - has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - has-yarn@3.0.0: resolution: {integrity: sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -5170,8 +5026,8 @@ packages: hast-util-to-estree@3.1.0: resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} - hast-util-to-html@9.0.3: - resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + hast-util-to-html@9.0.4: + resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} hast-util-to-jsx-runtime@2.3.2: resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==} @@ -5232,12 +5088,8 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - - https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} human-id@1.0.2: @@ -5352,8 +5204,8 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + is-core-module@2.16.0: + resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==} engines: {node: '>= 0.4'} is-decimal@2.0.1: @@ -5364,10 +5216,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -5396,10 +5244,6 @@ packages: engines: {node: '>=14.16'} hasBin: true - is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} @@ -5439,14 +5283,6 @@ packages: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - is-unicode-supported@2.1.0: - resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} - engines: {node: '>=18'} - is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} @@ -5525,8 +5361,8 @@ packages: canvas: optional: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} hasBin: true @@ -5610,8 +5446,8 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - ky@1.7.2: - resolution: {integrity: sha512-OzIvbHKKDpi60TnF9t7UUVAF1B4mcqc02z5PIvrm08Wyb+yOcz63GRvEuVxNT18a9E1SrNouhB4W2NNLeD7Ykg==} + ky@1.7.3: + resolution: {integrity: sha512-Sz49ZWR/BjNOq+2UK1k9ONZUVq8eyuCj30Zgc8VrRNtFlTBZduzuvehUd5kjQF6/Fms3Ir3EYqzJryw9tRvsSw==} engines: {node: '>=18'} lcid@3.1.1: @@ -5628,10 +5464,6 @@ packages: libphonenumber-js@1.11.16: resolution: {integrity: sha512-Noyazmt0yOvnG0OeRY45Cd1ur8G7Z0HWVkuCuKe+yysGNxPQwBAODBQQ40j0AIagi9ZWurfmmZWNlpg4h4W+XQ==} - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -5639,8 +5471,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@15.2.10: - resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==} + lint-staged@15.2.11: + resolution: {integrity: sha512-Ev6ivCTYRTGs9ychvpVw35m/bcNDuBN+mnTeObCL5h+boS5WzBEC6LHI4I9F/++sZm1m+J2LEiy0gxL/R9TBqQ==} engines: {node: '>=18.12.0'} hasBin: true @@ -5712,10 +5544,6 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} - engines: {node: '>=18'} - log-update@6.1.0: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} @@ -5740,14 +5568,11 @@ packages: resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} engines: {node: 20 || >=22} - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-queue@0.1.0: resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} - lucide-svelte@0.462.0: - resolution: {integrity: sha512-BTY44UyXEhlakuPMS4w7NayKhDYARzmhEv3E2YchTiNZ/aySS0F2ktPscTlXRgSZ9xwqoozhnhO1oKhm/nnmqg==} + lucide-svelte@0.468.0: + resolution: {integrity: sha512-n0ecAFtCY5LEeL+PJ1Xj4n3c2gzj8tMpak0KMGnvoSJEjCsCnRB0mekBtJZAo7beyynW9Qj5Um1KfMBAeTNplw==} peerDependencies: svelte: ^3 || ^4 || ^5.0.0-next.42 @@ -5755,16 +5580,12 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.14: - resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} + magic-string@0.30.15: + resolution: {integrity: sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -5779,8 +5600,8 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - markuplint@4.11.3: - resolution: {integrity: sha512-VjTtafM2iD/R8YMqjwonAMEgyjCEOhGZ8twyQEEQZFCteXt7CHZdZ7HMeLf9Ahqp7g76VNgAu155Oih6yBCmPA==} + markuplint@4.11.4: + resolution: {integrity: sha512-YTK5o82LBiopEA38hzlQwsJe9dq6TUlA7ga8jpr29h2ifkz+JdFKrL9l+5HZA+KrcQoF9WI6wELFU+soGrWjxw==} hasBin: true mdast-util-definitions@6.0.0: @@ -5992,11 +5813,6 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -6035,28 +5851,20 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} - - minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + minizlib@3.0.1: + resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} + engines: {node: '>= 18'} mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} engines: {node: '>=10'} hasBin: true @@ -6073,9 +5881,6 @@ packages: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -6157,12 +5962,12 @@ packages: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} + nopt@8.0.0: + resolution: {integrity: sha512-1L/fTJ4UmV/lUxT2Uf006pfZKTvAgCF+chz+0OgBHO8u2Z67pE7AaAUUj7CJy0lXqHmymUvGFt6NE9R3HER0yw==} + engines: {node: ^18.17.0 || >=20.5.0} hasBin: true normalize-path@3.0.0: @@ -6185,10 +5990,6 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} - deprecated: This package is no longer supported. - npx-import@1.1.4: resolution: {integrity: sha512-3ShymTWOgqGyNlh5lMJAejLuIv3W1K3fbI5Ewc6YErZU3Sp0PqsNs8UIU1O8z5+KVl/Du5ag56Gza9vdorGEoA==} @@ -6210,8 +6011,8 @@ packages: resolution: {integrity: sha512-MG5qmrTL5y8KYwFgE1A4JWmgfQBaIETE/lOlfwNYx1QOtCQHGVxkRJmdUJltFc1HVn73d61TlMhMyNTOtMl+ng==} engines: {node: '>= 18'} - ollama-ai-provider@1.0.0: - resolution: {integrity: sha512-72FhNSjS/yav+w1jGX7K/VX0Psv9C0TA1aXk6K2sEloz542AJCYqHIUu8Jt0TWhoB98L9pBZwV8Vr89eBavyzg==} + ollama-ai-provider@1.1.0: + resolution: {integrity: sha512-kpNLX2I0qVZfyML/d+o3UZrJxUokWeLrrQeuAQOuYPKmZcN9bpU7PD7SuxsH86krWvXqM0SJygTPa0OwEK71OQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -6247,10 +6048,6 @@ packages: peerDependencies: zod: ^3.23.8 - ora@8.1.1: - resolution: {integrity: sha512-YWielGi1XzG1UTvOaCFaNgEnuhZVMSHYkW/FQ7UX8O26PtlpdM84c0f7wLPlkvx2RfiQmnzd61d/MGxmpQeJPw==} - engines: {node: '>=18'} - os-locale@6.0.2: resolution: {integrity: sha512-qIb8bzRqaN/vVqEYZ7lTAg6PonskO7xOmM7OClD28F6eFa4s5XGe4bGpHUHMoCHbNNuR0pDYFeSLiW5bnjWXIA==} engines: {node: '>=12.20'} @@ -6309,8 +6106,8 @@ packages: resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} engines: {node: '>=18'} - package-manager-detector@0.2.6: - resolution: {integrity: sha512-9vPH3qooBlYRJdmdYP00nvjZOulm40r5dhtal8st18ctf+6S1k7pi5yIHLvI4w5D70x0Y+xdVD9qITH0QO/A8A==} + package-manager-detector@0.2.7: + resolution: {integrity: sha512-g4+387DXDKlZzHkP+9FLt8yKj8+/3tOkPv7DVTJGGRm00RkEWgqbFstX1mXJ4M0VDYhUqsTOiISqNOJnhAu3PQ==} pagefind@1.2.0: resolution: {integrity: sha512-sFVv5/x73qCp9KlLHv8/uWDv7rG1tsWcG9MuXc5YTrXIrb8c1Gshm9oc5rMLXNZILXUWai8WczqaK4jjroEzng==} @@ -6337,8 +6134,8 @@ packages: resolution: {integrity: sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==} engines: {node: '>=8'} - parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} parse-github-url@1.0.3: resolution: {integrity: sha512-tfalY5/4SqGaV/GIGzWyHnFjlpTPTNpENR9Ea2lLldSJ8EWXMsvacWucqY3m3I4YPtas15IxTLQVQ5NSYXPrww==} @@ -6459,13 +6256,13 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - playwright-core@1.49.0: - resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} + playwright-core@1.49.1: + resolution: {integrity: sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==} engines: {node: '>=18'} hasBin: true - playwright@1.49.0: - resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} + playwright@1.49.1: + resolution: {integrity: sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==} engines: {node: '>=18'} hasBin: true @@ -6704,12 +6501,8 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} - posthog-node@3.1.3: - resolution: {integrity: sha512-UaOOoWEUYTcaaDe1w0fgHW/sXvFr3RO0l7yI7RUDzkZNZCfwXNO9r3pc14d1EtNppF/SHBrV5hNiZZATpf/vUw==} - engines: {node: '>=15.0.0'} - - posthog-node@4.3.1: - resolution: {integrity: sha512-By9SEGZxBLC7GVyVb+HlJlpxM/xI4iLUgwtsBS8f4bZ0wqYKiNHoYcFEwMJnTM9xQcQZztr6dqLmsJ7jCv0vxA==} + posthog-node@4.3.2: + resolution: {integrity: sha512-vy8Mt9IEfniUgqQ1rOCQ31CBO1VNqDGd3ZtHlWR9/YfU6RiuK+9pUXPb4h6HTGzQmjL8NFnjd8K8NMXSX8S6MQ==} engines: {node: '>=15.0.0'} potpack@1.0.2: @@ -6791,10 +6584,6 @@ packages: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -6923,8 +6712,8 @@ packages: resolve-protobuf-schema@2.1.0: resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolve@1.22.9: + resolution: {integrity: sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==} hasBin: true restore-cursor@5.1.0: @@ -6950,9 +6739,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true robust-predicates@3.0.2: @@ -6963,8 +6751,8 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.28.0: - resolution: {integrity: sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==} + rollup@4.28.1: + resolution: {integrity: sha512-61fXYl/qNVinKmGSTHAZ6Yy8I3YIJC/r2m9feHo6SwVAVcLT5MPwOUFe7EuURA/4m0NR8lXG4BBXuo/IZEsjMg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -6979,8 +6767,8 @@ packages: peerDependencies: svelte: ^5.0.0-next.1 - runed@0.16.1: - resolution: {integrity: sha512-k9ylt7sfEQiqOo2FmuilkLSk92pDzMSeVHFb8aPJGFPQPG9ErUxhfcHQwnmUhT03F8oQeO6bKB/TDoPKhdXbTA==} + runed@0.18.0: + resolution: {integrity: sha512-siuvOl9Qa1A/gDHE3HuxG1fQQMkh6aOMqKDdGvcRbl53aiz3JbxTrf6DcA/lai8SAR1EMwOs8xX6Vk2PGHXOgA==} peerDependencies: svelte: ^5.0.0-next.1 @@ -7012,39 +6800,24 @@ packages: peerDependencies: typescript: '>=4.1.0' - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - secure-json-parse@2.7.0: resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} sembear@0.7.0: resolution: {integrity: sha512-XyLTEich2D02FODCkfdto3mB9DetWPLuTzr4tvoofe9SvyM27h4nQSbV3+iVcYQz94AFyKtqBv5pcZbj3k2hdA==} - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true - send@0.19.1: - resolution: {integrity: sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==} - engines: {node: '>= 0.8.0'} - - seroval@0.5.1: - resolution: {integrity: sha512-ZfhQVB59hmIauJG5Ydynupy8KHyr5imGNtdDhbZG68Ufh1Ynkv9KOYOAABf71oVbQxJ8VkWnMHAjEHE7fWkH5g==} - engines: {node: '>=10'} + send@1.1.0: + resolution: {integrity: sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==} + engines: {node: '>= 18'} server-destroy@1.0.1: resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-cookie-parser@2.7.1: resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} @@ -7067,8 +6840,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.24.0: - resolution: {integrity: sha512-qIneep7QRwxRd5oiHb8jaRzH15V/S8F3saCXOdjwRLgozZJr5x2yeBhQtqkO3FSzQDwYEFAYuifg4oHjpDghrg==} + shiki@1.24.2: + resolution: {integrity: sha512-TR1fi6mkRrzW+SKT5G6uKuc32Dj2EEa7Kj0k8kGqiBINb+C1TiflVOiT9ta6GqOJtC4fraxO5SLUaKBcSY38Fg==} siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -7099,6 +6872,10 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -7110,9 +6887,6 @@ packages: solid-js@1.6.12: resolution: {integrity: sha512-JFqRobfG3q5r1l4RYVOAukk6+FWtHpXGIjgh/GEsHKweN/kK+iHOtzUALE6+P5t/jIcSNeGiVitX8gmJg+cYvQ==} - solid-js@1.7.11: - resolution: {integrity: sha512-JkuvsHt8jqy7USsy9xJtT18aF9r2pFO+GB8JQ2XGTvtF49rGTObB46iebD25sE3qVNvIbwglXOXdALnJq9IHtQ==} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -7160,10 +6934,6 @@ packages: std-env@3.8.0: resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} - stdin-discarder@0.2.2: - resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} - engines: {node: '>=18'} - stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} @@ -7190,9 +6960,6 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} @@ -7204,10 +6971,6 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -7277,8 +7040,8 @@ packages: svelte-adapter-bun@0.5.2: resolution: {integrity: sha512-xEtFgaal6UgrCwwkSIcapO9kopoFNUYCYqyKCikdqxX9bz2TDYnrWQZ7qBnkunMxi1HOIERUCvTcebYGiarZLA==} - svelte-check@4.1.0: - resolution: {integrity: sha512-AflEZYqI578KuDZcpcorPSf597LStxlkN7XqXi38u09zlHODVKd7c+7OuubGzbhgGRUqNTdQCZ+Ga96iRXEf2g==} + svelte-check@4.1.1: + resolution: {integrity: sha512-NfaX+6Qtc8W/CyVGS/F7/XdiSSyXz+WGYA9ZWV3z8tso14V2vzjfXviKaTFEzB7g8TqfgO2FOzP6XT4ApSTUTw==} engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: @@ -7330,6 +7093,12 @@ packages: peerDependencies: svelte: ^5.0.0-next.126 + svelte-toolbelt@0.5.0: + resolution: {integrity: sha512-t3tenZcnfQoIeRuQf/jBU7bvTeT3TGkcEE+1EUr5orp0lR7NEpprflpuie3x9Dn0W9nOKqs3HwKGJeeN5Ok1sQ==} + engines: {node: '>=18', pnpm: '>=8.7.0'} + peerDependencies: + svelte: ^5.0.0-next.126 + svelte2tsx@0.7.30: resolution: {integrity: sha512-sHXK/vw/sVJmFuPSq6zeKrtuZKvo0jJyEi8ybN0dfrqSYVvHu8zFbO0zQKAL8y/fYackYojH41EJGe6v8rd5fw==} peerDependencies: @@ -7340,12 +7109,12 @@ packages: resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} - svelte@5.2.2: - resolution: {integrity: sha512-eHIJRcvA6iuXdRGMESTmBtWTQCcCiol4gyH9DA60ybS35W1x27cvtbndNvWDqX72blyf+AYeQ4gzZ0XGg3L8sw==} + svelte@5.13.0: + resolution: {integrity: sha512-ZG4VmBNze/j2KxT2GEeUm8Jr3RLYQ3P5Y9/flUDCgaAxgzx4ZRTdiyh+PCr7qRlOr5M8uidIqr+3DwUFVrdL+A==} engines: {node: '>=18'} - svelte@5.4.0: - resolution: {integrity: sha512-2I/mjD8cXDpKfdfUK+T6yo/OzugMXIm8lhyJUFM5F/gICMYnkl3C/+4cOSpia8TqpDsi6Qfm5+fdmBNMNmaf2g==} + svelte@5.5.3: + resolution: {integrity: sha512-0j7XTSg5iXcLNCFcEsIZPtHO7SQeE0KgMcyF1K4K7HkjdKVPumz7dnxeXq5lGJRHfVAMZKqpEJ46rPKPKRJ57Q==} engines: {node: '>=18'} sveltekit-flash-message@2.4.4: @@ -7365,8 +7134,8 @@ packages: '@sveltejs/kit': ^1.0.0 || ^2.0.0 svelte: ^3.55.0 || ^4.0.0 || ^5.0.0 - sveltekit-superforms@2.21.0: - resolution: {integrity: sha512-HCctd/r6h4z7hcWmqD/aOvC0Y7KxIsDYUtHCuYGdP6H2Tg9f5fqf8xHZ7+gu4NHQGcv9L32+xtcsRz0h94MNXg==} + sveltekit-superforms@2.21.1: + resolution: {integrity: sha512-/20Lv0/Jqtd7JEuRRzSnwMD4ztMYjLJ8B7eO+v1onKR383VhGT9oitwselz1ic+YbjrpQRze2kcypfuYkm1NJQ==} peerDependencies: '@sveltejs/kit': 1.x || 2.x svelte: 3.x || 4.x || >=5.0.0-next.51 @@ -7382,8 +7151,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - swapy@0.4.2: - resolution: {integrity: sha512-vxs9OjXCfaQRXUxUBZb7KAWSAJeWlOYsG8N6lJBseEaQZ3XfxW6uIvJo/ebyxQ3mdFxNHEWhxPSbfrfCvevh6Q==} + swapy@1.0.2: + resolution: {integrity: sha512-UqLiHva+7HHzDUzVe1+cqrkivHcUx8/KJOqVT+eyZGS/SCOX/lPbOMroJ6KzxN6rj4PYxx9BWSUX/ZQhL0n8ig==} swr@2.2.5: resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==} @@ -7417,14 +7186,14 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders' - tailwindcss@3.4.15: - resolution: {integrity: sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==} + tailwindcss@3.4.16: + resolution: {integrity: sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==} engines: {node: '>=14.0.0'} hasBin: true - tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} + tar@7.4.3: + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + engines: {node: '>=18'} term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} @@ -7490,11 +7259,11 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.65: - resolution: {integrity: sha512-Uq5t0N0Oj4nQSbU8wFN1YYENvMthvwU13MQrMJRspYCGLSAZjAfoBOJki5IQpnBM/WFskxxC/gIOTwaedmHaSg==} + tldts-core@6.1.68: + resolution: {integrity: sha512-85TdlS/DLW/gVdf2oyyzqp3ocS30WxjaL4la85EArl9cHUR/nizifKAJPziWewSZjDZS71U517/i6ciUeqtB5Q==} - tldts@6.1.65: - resolution: {integrity: sha512-xU9gLTfAGsADQ2PcWee6Hg8RFAv0DnjMGVJmDnUmI8a9+nYmapMQix4afwrdaCtT+AqP4MaxEzu7cCrYmBPbzQ==} + tldts@6.1.68: + resolution: {integrity: sha512-JKF17jROiYkjJPT73hUTEiTp2OBCf+kAlB+1novk8i6Q6dWjHsgEjw9VLiipV4KTJavazXhY1QUXyQFSem2T7w==} hasBin: true tmp@0.0.33: @@ -7636,14 +7405,14 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@4.27.0: - resolution: {integrity: sha512-3IMSWgP7C5KSQqmo1wjhKrwsvXAtF33jO3QY+Uy++ia7hqvgSK6iXbbg5PbDBc1P2ZbNEDgejOrN4YooXvhwCw==} - engines: {node: '>=16'} - type-fest@4.30.0: resolution: {integrity: sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==} engines: {node: '>=16'} + type-fest@4.30.1: + resolution: {integrity: sha512-ojFL7eDMX2NF0xMbDwPZJ8sb7ckqtlAi1GsmgsFXvErT9kFTk1r0DuQKvrCh73M6D4nngeHJmvogF9OluXs7Hw==} + engines: {node: '>=16'} + type@2.7.3: resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} @@ -7663,6 +7432,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + ultrahtml@1.5.3: + resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} + undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} @@ -7720,9 +7492,6 @@ packages: resolution: {integrity: sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==} engines: {node: '>=14.0.0'} - unplugin@1.5.1: - resolution: {integrity: sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew==} - update-browserslist-db@1.1.1: resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true @@ -7732,10 +7501,10 @@ packages: urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} - use-sync-external-store@1.2.2: - resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} + use-sync-external-store@1.4.0: + resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -7777,6 +7546,12 @@ packages: peerDependencies: svelte: ^5.0.0 + vaul-svelte@1.0.0-next.3: + resolution: {integrity: sha512-bqlCc28z1I6f23Sjv5W6UlNJdAPeX8tZbYZ3+ycOn/4hTvv2fo/5Le4bAX26RyFkpT6n5FXXCZN1/uNs8biyrQ==} + engines: {node: '>=18', pnpm: '>=8.7.0'} + peerDependencies: + svelte: ^5.0.0 + vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} @@ -7830,8 +7605,8 @@ packages: terser: optional: true - vite@6.0.2: - resolution: {integrity: sha512-XdQ+VsY2tJpBsKGs0wf3U/+azx8BBpYRHFAyKm5VeEZNOJZRB63q7Sc8Iup3k0TrN3KO6QgyzFf+opSbfY1y0g==} + vite@6.0.3: + resolution: {integrity: sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -8031,9 +7806,6 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} - web-vitals@3.5.2: - resolution: {integrity: sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==} - webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -8044,10 +7816,6 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} - webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} @@ -8059,8 +7827,8 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + whatwg-url@14.1.0: + resolution: {integrity: sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==} engines: {node: '>=18'} whatwg-url@5.0.0: @@ -8091,9 +7859,6 @@ packages: engines: {node: '>=8'} hasBin: true - wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - widest-line@5.0.0: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} @@ -8146,11 +7911,9 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} yaml-language-server@1.15.0: resolution: {integrity: sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==} @@ -8164,11 +7927,6 @@ packages: resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} engines: {node: '>= 14'} - yaml@2.5.1: - resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} - engines: {node: '>= 14'} - hasBin: true - yaml@2.6.1: resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} engines: {node: '>= 14'} @@ -8190,16 +7948,24 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} + yocto-spinner@0.1.2: + resolution: {integrity: sha512-VfmLIh/ZSZOJnVRQZc/dvpPP90lWL4G0bmxQMP0+U/2vKBA8GSpcBuWv17y7F+CZItRuO97HN1wdbb4p10uhOg==} + engines: {node: '>=18.19'} + + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + yup@1.5.0: resolution: {integrity: sha512-NJfBIHnp1QbqZwxcgl6irnDMIsb/7d1prNhFx02f1kp8h+orpi4xs3w90szNpOh68a/iHPdMsYvhZWoDmUvXBQ==} zimmerframe@1.1.2: resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} - zod-to-json-schema@3.23.5: - resolution: {integrity: sha512-5wlSS0bXfF/BrL4jPAbz9da5hDlDptdEppYfe+x4eIJ7jioqKG9uUxOwPzqof09u/XeVdrgFu29lZi+8XNDJtA==} + zod-to-json-schema@3.24.1: + resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} peerDependencies: - zod: ^3.23.3 + zod: ^3.24.1 zod-to-ts@1.2.0: resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} @@ -8213,8 +7979,8 @@ packages: peerDependencies: zod: ^3.18.0 - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -8223,63 +7989,73 @@ snapshots: '@adobe/css-tools@4.4.1': {} - '@ai-sdk/azure@1.0.7(zod@3.23.8)': + '@ai-sdk/azure@1.0.10(zod@3.24.1)': dependencies: - '@ai-sdk/openai': 1.0.5(zod@3.23.8) - '@ai-sdk/provider': 1.0.1 - '@ai-sdk/provider-utils': 2.0.2(zod@3.23.8) - zod: 3.23.8 + '@ai-sdk/openai': 1.0.8(zod@3.24.1) + '@ai-sdk/provider': 1.0.2 + '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) + zod: 3.24.1 - '@ai-sdk/openai@1.0.5(zod@3.23.8)': + '@ai-sdk/openai@1.0.8(zod@3.24.1)': dependencies: - '@ai-sdk/provider': 1.0.1 - '@ai-sdk/provider-utils': 2.0.2(zod@3.23.8) - zod: 3.23.8 + '@ai-sdk/provider': 1.0.2 + '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) + zod: 3.24.1 - '@ai-sdk/provider-utils@2.0.2(zod@3.23.8)': + '@ai-sdk/provider-utils@2.0.4(zod@3.24.1)': dependencies: - '@ai-sdk/provider': 1.0.1 + '@ai-sdk/provider': 1.0.2 eventsource-parser: 3.0.0 nanoid: 3.3.8 secure-json-parse: 2.7.0 optionalDependencies: - zod: 3.23.8 + zod: 3.24.1 '@ai-sdk/provider@0.0.21': dependencies: json-schema: 0.4.0 - '@ai-sdk/provider@1.0.1': + '@ai-sdk/provider@1.0.2': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@1.0.3(react@18.3.1)(zod@3.23.8)': + '@ai-sdk/react@1.0.6(react@18.3.1)(zod@3.24.1)': dependencies: - '@ai-sdk/provider-utils': 2.0.2(zod@3.23.8) - '@ai-sdk/ui-utils': 1.0.2(zod@3.23.8) + '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) + '@ai-sdk/ui-utils': 1.0.5(zod@3.24.1) swr: 2.2.5(react@18.3.1) throttleit: 2.1.0 optionalDependencies: react: 18.3.1 - zod: 3.23.8 + zod: 3.24.1 - '@ai-sdk/svelte@1.0.3(svelte@4.2.19)(zod@3.23.8)': + '@ai-sdk/svelte@1.0.6(svelte@4.2.19)(zod@3.24.1)': dependencies: - '@ai-sdk/provider-utils': 2.0.2(zod@3.23.8) - '@ai-sdk/ui-utils': 1.0.2(zod@3.23.8) + '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) + '@ai-sdk/ui-utils': 1.0.5(zod@3.24.1) sswr: 2.1.0(svelte@4.2.19) optionalDependencies: svelte: 4.2.19 transitivePeerDependencies: - zod - '@ai-sdk/ui-utils@1.0.2(zod@3.23.8)': + '@ai-sdk/svelte@1.0.6(svelte@5.13.0)(zod@3.24.1)': + dependencies: + '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) + '@ai-sdk/ui-utils': 1.0.5(zod@3.24.1) + sswr: 2.1.0(svelte@5.13.0) + optionalDependencies: + svelte: 5.13.0 + transitivePeerDependencies: + - zod + + '@ai-sdk/ui-utils@1.0.5(zod@3.24.1)': dependencies: - '@ai-sdk/provider': 1.0.1 - '@ai-sdk/provider-utils': 2.0.2(zod@3.23.8) - zod-to-json-schema: 3.23.5(zod@3.23.8) + '@ai-sdk/provider': 1.0.2 + '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) + zod-to-json-schema: 3.24.1(zod@3.24.1) optionalDependencies: - zod: 3.23.8 + zod: 3.24.1 '@aibrow/dom-types@1.2.1': {} @@ -8287,15 +8063,15 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@ark/schema@0.25.0': + '@ark/schema@0.26.0': dependencies: - '@ark/util': 0.25.0 + '@ark/util': 0.26.0 optional: true - '@ark/util@0.25.0': + '@ark/util@0.26.0': optional: true '@astrojs/check@0.5.10(typescript@5.7.2)': @@ -8323,8 +8099,6 @@ snapshots: '@astrojs/compiler@2.10.3': {} - '@astrojs/internal-helpers@0.4.1': {} - '@astrojs/internal-helpers@0.4.2': {} '@astrojs/language-server@2.15.4(typescript@5.7.2)': @@ -8332,31 +8106,32 @@ snapshots: '@astrojs/compiler': 2.10.3 '@astrojs/yaml2ts': 0.2.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@volar/kit': 2.4.10(typescript@5.7.2) - '@volar/language-core': 2.4.10 - '@volar/language-server': 2.4.10 - '@volar/language-service': 2.4.10 + '@volar/kit': 2.4.11(typescript@5.7.2) + '@volar/language-core': 2.4.11 + '@volar/language-server': 2.4.11 + '@volar/language-service': 2.4.11 fast-glob: 3.3.2 muggle-string: 0.4.1 - volar-service-css: 0.0.62(@volar/language-service@2.4.10) - volar-service-emmet: 0.0.62(@volar/language-service@2.4.10) - volar-service-html: 0.0.62(@volar/language-service@2.4.10) - volar-service-prettier: 0.0.62(@volar/language-service@2.4.10) - volar-service-typescript: 0.0.62(@volar/language-service@2.4.10) - volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.10) - volar-service-yaml: 0.0.62(@volar/language-service@2.4.10) + volar-service-css: 0.0.62(@volar/language-service@2.4.11) + volar-service-emmet: 0.0.62(@volar/language-service@2.4.11) + volar-service-html: 0.0.62(@volar/language-service@2.4.11) + volar-service-prettier: 0.0.62(@volar/language-service@2.4.11) + volar-service-typescript: 0.0.62(@volar/language-service@2.4.11) + volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.11) + volar-service-yaml: 0.0.62(@volar/language-service@2.4.11) vscode-html-languageservice: 5.3.1 vscode-uri: 3.0.8 transitivePeerDependencies: - typescript - '@astrojs/markdown-remark@5.3.0': + '@astrojs/markdown-remark@6.0.1': dependencies: - '@astrojs/prism': 3.1.0 + '@astrojs/prism': 3.2.0 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 import-meta-resolve: 4.1.0 + js-yaml: 4.1.0 mdast-util-definitions: 6.0.0 rehype-raw: 7.0.0 rehype-stringify: 10.0.1 @@ -8364,7 +8139,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.1 remark-smartypants: 3.0.2 - shiki: 1.24.0 + shiki: 1.24.2 unified: 11.0.5 unist-util-remove-position: 5.0.0 unist-util-visit: 5.0.0 @@ -8373,16 +8148,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@3.1.9(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))': + '@astrojs/mdx@4.0.2(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))': dependencies: - '@astrojs/markdown-remark': 5.3.0 + '@astrojs/markdown-remark': 6.0.1 '@mdx-js/mdx': 3.1.0(acorn@8.14.0) acorn: 8.14.0 - astro: 4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2) + astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) es-module-lexer: 1.5.4 estree-util-visit: 2.0.0 - gray-matter: 4.0.3 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 kleur: 4.1.5 rehype-raw: 7.0.0 remark-gfm: 4.0.0 @@ -8393,10 +8167,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@8.3.4(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))': + '@astrojs/node@9.0.0(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))': dependencies: - astro: 4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2) - send: 0.19.1 + astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + send: 1.1.0 server-destroy: 1.0.1 transitivePeerDependencies: - supports-color @@ -8406,7 +8180,7 @@ snapshots: '@builder.io/partytown': 0.10.2 mrmime: 2.0.0 - '@astrojs/prism@3.1.0': + '@astrojs/prism@3.2.0': dependencies: prismjs: 1.29.0 @@ -8414,23 +8188,24 @@ snapshots: dependencies: sitemap: 8.0.0 stream-replace-string: 2.0.0 - zod: 3.23.8 + zod: 3.24.1 - '@astrojs/starlight-tailwind@2.0.3(@astrojs/starlight@0.29.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)))(@astrojs/tailwind@5.1.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(tailwindcss@3.4.15))(tailwindcss@3.4.15)': + '@astrojs/starlight-tailwind@3.0.0(@astrojs/starlight@0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)))(@astrojs/tailwind@5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16))(tailwindcss@3.4.16)': dependencies: - '@astrojs/starlight': 0.29.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)) - '@astrojs/tailwind': 5.1.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(tailwindcss@3.4.15) - tailwindcss: 3.4.15 + '@astrojs/starlight': 0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) + '@astrojs/tailwind': 5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16) + tailwindcss: 3.4.16 - '@astrojs/starlight@0.29.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))': + '@astrojs/starlight@0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))': dependencies: - '@astrojs/mdx': 3.1.9(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)) + '@astrojs/mdx': 4.0.2(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/sitemap': 3.2.1 '@pagefind/default-ui': 1.2.0 '@types/hast': 3.0.4 + '@types/js-yaml': 4.0.9 '@types/mdast': 4.0.4 - astro: 4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2) - astro-expressive-code: 0.38.3(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)) + astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + astro-expressive-code: 0.38.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.3 @@ -8451,16 +8226,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/svelte@6.0.2(@types/node@22.10.1)(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(svelte@5.4.0)(typescript@5.7.2)': + '@astrojs/svelte@7.0.1(@types/node@22.10.2)(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(jiti@1.21.6)(svelte@5.13.0)(typescript@5.7.2)(yaml@2.6.1)': dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)) - astro: 4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2) - svelte: 5.4.0 - svelte2tsx: 0.7.30(svelte@5.4.0)(typescript@5.7.2) + '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + svelte: 5.13.0 + svelte2tsx: 0.7.30(svelte@5.13.0)(typescript@5.7.2) typescript: 5.7.2 - vite: 5.4.11(@types/node@22.10.1) + vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) transitivePeerDependencies: - '@types/node' + - jiti - less - lightningcss - sass @@ -8469,21 +8245,23 @@ snapshots: - sugarss - supports-color - terser + - tsx + - yaml - '@astrojs/tailwind@5.1.2(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(tailwindcss@3.4.15)': + '@astrojs/tailwind@5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16)': dependencies: - astro: 4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2) + astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) autoprefixer: 10.4.20(postcss@8.4.49) postcss: 8.4.49 postcss-load-config: 4.0.2(postcss@8.4.49) - tailwindcss: 3.4.15 + tailwindcss: 3.4.16 transitivePeerDependencies: - ts-node - '@astrojs/telemetry@3.1.0': + '@astrojs/telemetry@3.2.0': dependencies: ci-info: 4.1.0 - debug: 4.3.7 + debug: 4.4.0 dlv: 1.1.3 dset: 3.1.4 is-docker: 3.0.0 @@ -8492,38 +8270,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@7.8.2(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(react@18.3.1)(rollup@4.28.0)(svelte@5.4.0)': - dependencies: - '@astrojs/internal-helpers': 0.4.2 - '@vercel/analytics': 1.4.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(react@18.3.1)(svelte@5.4.0) - '@vercel/edge': 1.1.2 - '@vercel/nft': 0.27.7(rollup@4.28.0) - astro: 4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2) - esbuild: 0.21.5 - fast-glob: 3.3.2 - web-vitals: 3.5.2 - transitivePeerDependencies: - - '@remix-run/react' - - '@sveltejs/kit' - - encoding - - next - - react - - rollup - - supports-color - - svelte - - vue - - vue-router - - '@astrojs/vercel@7.8.2(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2))(react@18.3.1)(rollup@4.28.0)(svelte@5.4.0)': + '@astrojs/vercel@8.0.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.13.0)': dependencies: '@astrojs/internal-helpers': 0.4.2 - '@vercel/analytics': 1.4.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(react@18.3.1)(svelte@5.4.0) - '@vercel/edge': 1.1.2 - '@vercel/nft': 0.27.7(rollup@4.28.0) - astro: 4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2) - esbuild: 0.21.5 + '@vercel/analytics': 1.4.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(react@18.3.1)(svelte@5.13.0) + '@vercel/edge': 1.1.4 + '@vercel/nft': 0.27.9(rollup@4.28.1) + astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + esbuild: 0.24.0 fast-glob: 3.3.2 - web-vitals: 3.5.2 transitivePeerDependencies: - '@remix-run/react' - '@sveltejs/kit' @@ -8546,96 +8301,28 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.2': {} + '@babel/generator@7.26.3': + dependencies: + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 - '@babel/core@7.26.0': + '@babel/helper-module-imports@7.25.9': dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.2 - '@babel/template': 7.25.9 - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - convert-source-map: 2.0.0 - debug: 4.3.7 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.26.2': - dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 - - '@babel/helper-annotate-as-pure@7.25.9': - dependencies: - '@babel/types': 7.26.0 - - '@babel/helper-compilation-targets@7.25.9': - dependencies: - '@babel/compat-data': 7.26.2 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.2 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-module-imports@7.25.9': - dependencies: - '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.25.9 + '@babel/traverse': 7.26.4 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.25.9': {} - '@babel/helper-string-parser@7.25.9': {} '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-option@7.25.9': {} - - '@babel/helpers@7.26.0': + '@babel/parser@7.26.3': dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.0 - - '@babel/parser@7.26.2': - dependencies: - '@babel/types': 7.26.0 - - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.0 - transitivePeerDependencies: - - supports-color + '@babel/types': 7.26.3 '@babel/runtime@7.26.0': dependencies: @@ -8644,22 +8331,22 @@ snapshots: '@babel/template@7.25.9': dependencies: '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 - '@babel/traverse@7.25.9': + '@babel/traverse@7.26.4': dependencies: '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/parser': 7.26.2 + '@babel/generator': 7.26.3 + '@babel/parser': 7.26.3 '@babel/template': 7.25.9 - '@babel/types': 7.26.0 - debug: 4.3.7 + '@babel/types': 7.26.3 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.26.0': + '@babel/types@7.26.3': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 @@ -8764,7 +8451,7 @@ snapshots: fs-extra: 7.0.1 mri: 1.2.0 p-limit: 2.3.0 - package-manager-detector: 0.2.6 + package-manager-detector: 0.2.7 picocolors: 1.1.1 resolve-from: 5.0.0 semver: 7.6.3 @@ -8877,7 +8564,7 @@ snapshots: '@cspell/dict-al': 1.0.3 '@cspell/dict-aws': 4.0.7 '@cspell/dict-bash': 4.1.8 - '@cspell/dict-companies': 3.1.7 + '@cspell/dict-companies': 3.1.8 '@cspell/dict-cpp': 6.0.2 '@cspell/dict-cryptocurrencies': 5.0.3 '@cspell/dict-csharp': 4.0.5 @@ -8890,12 +8577,12 @@ snapshots: '@cspell/dict-en-common-misspellings': 2.0.7 '@cspell/dict-en-gb': 1.1.33 '@cspell/dict-en_us': 4.3.28 - '@cspell/dict-filetypes': 3.0.8 + '@cspell/dict-filetypes': 3.0.9 '@cspell/dict-flutter': 1.0.3 '@cspell/dict-fonts': 4.0.3 '@cspell/dict-fsharp': 1.0.4 '@cspell/dict-fullstack': 3.2.3 - '@cspell/dict-gaming-terms': 1.0.8 + '@cspell/dict-gaming-terms': 1.0.9 '@cspell/dict-git': 3.0.3 '@cspell/dict-golang': 6.0.17 '@cspell/dict-google': 1.0.4 @@ -8912,16 +8599,16 @@ snapshots: '@cspell/dict-markdown': 2.0.7(@cspell/dict-css@4.0.16)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.10)(@cspell/dict-typescript@3.1.11) '@cspell/dict-monkeyc': 1.0.9 '@cspell/dict-node': 5.0.5 - '@cspell/dict-npm': 5.1.14 + '@cspell/dict-npm': 5.1.17 '@cspell/dict-php': 4.0.13 '@cspell/dict-powershell': 5.0.13 '@cspell/dict-public-licenses': 2.0.11 - '@cspell/dict-python': 4.2.12 + '@cspell/dict-python': 4.2.13 '@cspell/dict-r': 2.0.4 '@cspell/dict-ruby': 5.0.7 '@cspell/dict-rust': 4.0.10 '@cspell/dict-scala': 5.0.6 - '@cspell/dict-software-terms': 4.1.17 + '@cspell/dict-software-terms': 4.1.19 '@cspell/dict-sql': 2.1.8 '@cspell/dict-svelte': 1.0.5 '@cspell/dict-swift': 2.0.4 @@ -8951,7 +8638,7 @@ snapshots: '@cspell/dict-bash@4.1.8': {} - '@cspell/dict-companies@3.1.7': {} + '@cspell/dict-companies@3.1.8': {} '@cspell/dict-cpp@6.0.2': {} @@ -8979,7 +8666,7 @@ snapshots: '@cspell/dict-en_us@4.3.28': {} - '@cspell/dict-filetypes@3.0.8': {} + '@cspell/dict-filetypes@3.0.9': {} '@cspell/dict-flutter@1.0.3': {} @@ -8989,7 +8676,7 @@ snapshots: '@cspell/dict-fullstack@3.2.3': {} - '@cspell/dict-gaming-terms@1.0.8': {} + '@cspell/dict-gaming-terms@1.0.9': {} '@cspell/dict-git@3.0.3': {} @@ -9028,7 +8715,7 @@ snapshots: '@cspell/dict-node@5.0.5': {} - '@cspell/dict-npm@5.1.14': {} + '@cspell/dict-npm@5.1.17': {} '@cspell/dict-php@4.0.13': {} @@ -9036,7 +8723,7 @@ snapshots: '@cspell/dict-public-licenses@2.0.11': {} - '@cspell/dict-python@4.2.12': + '@cspell/dict-python@4.2.13': dependencies: '@cspell/dict-data-science': 2.0.5 @@ -9048,7 +8735,7 @@ snapshots: '@cspell/dict-scala@5.0.6': {} - '@cspell/dict-software-terms@4.1.17': {} + '@cspell/dict-software-terms@4.1.19': {} '@cspell/dict-sql@2.1.8': {} @@ -9088,10 +8775,10 @@ snapshots: dotenv-expand: 10.0.0 find-up: 5.0.0 - '@effect/schema@0.75.5(effect@3.11.2)': + '@effect/schema@0.75.5(effect@3.11.7)': dependencies: - effect: 3.11.2 - fast-check: 3.23.1 + effect: 3.11.7 + fast-check: 3.23.2 optional: true '@emmetio/abbreviation@2.3.3': @@ -9138,7 +8825,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@emotion/cache@11.13.5': + '@emotion/cache@11.14.0': dependencies: '@emotion/memoize': 0.9.0 '@emotion/sheet': 1.4.0 @@ -9149,7 +8836,7 @@ snapshots: '@emotion/css@11.13.5': dependencies: '@emotion/babel-plugin': 11.13.5 - '@emotion/cache': 11.13.5 + '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 '@emotion/sheet': 1.4.0 '@emotion/utils': 1.4.2 @@ -9333,7 +9020,7 @@ snapshots: dependencies: '@ctrl/tinycolor': 4.1.0 hast-util-select: 6.0.3 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 hast-util-to-text: 4.0.2 hastscript: 9.0.0 postcss: 8.4.49 @@ -9348,7 +9035,7 @@ snapshots: '@expressive-code/plugin-shiki@0.38.3': dependencies: '@expressive-code/core': 0.38.3 - shiki: 1.24.0 + shiki: 1.24.2 '@expressive-code/plugin-text-markers@0.38.3': dependencies: @@ -9378,11 +9065,12 @@ snapshots: esbuild-runner: 2.2.2(esbuild@0.24.0) optional: true - '@graphql-tools/executor@1.3.5(graphql@15.9.0)': + '@graphql-tools/executor@1.3.9(graphql@15.9.0)': dependencies: - '@graphql-tools/utils': 10.6.1(graphql@15.9.0) + '@graphql-tools/utils': 10.6.4(graphql@15.9.0) '@graphql-typed-document-node/core': 3.2.0(graphql@15.9.0) '@repeaterjs/repeater': 3.0.6 + '@whatwg-node/disposablestack': 0.0.5 graphql: 15.9.0 tslib: 2.8.1 value-or-promise: 1.0.12 @@ -9393,16 +9081,16 @@ snapshots: graphql: 15.9.0 tslib: 2.8.1 - '@graphql-tools/merge@9.0.11(graphql@15.9.0)': + '@graphql-tools/merge@9.0.14(graphql@15.9.0)': dependencies: - '@graphql-tools/utils': 10.6.1(graphql@15.9.0) + '@graphql-tools/utils': 10.6.4(graphql@15.9.0) graphql: 15.9.0 tslib: 2.8.1 - '@graphql-tools/schema@10.0.10(graphql@15.9.0)': + '@graphql-tools/schema@10.0.13(graphql@15.9.0)': dependencies: - '@graphql-tools/merge': 9.0.11(graphql@15.9.0) - '@graphql-tools/utils': 10.6.1(graphql@15.9.0) + '@graphql-tools/merge': 9.0.14(graphql@15.9.0) + '@graphql-tools/utils': 10.6.4(graphql@15.9.0) graphql: 15.9.0 tslib: 2.8.1 value-or-promise: 1.0.12 @@ -9415,7 +9103,7 @@ snapshots: tslib: 2.8.1 value-or-promise: 1.0.12 - '@graphql-tools/utils@10.6.1(graphql@15.9.0)': + '@graphql-tools/utils@10.6.4(graphql@15.9.0)': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@15.9.0) cross-inspect: 1.0.1 @@ -9552,15 +9240,6 @@ snapshots: dependencies: '@sinclair/typebox': 0.31.28 - '@inlang/message-lint-rule@1.4.5(@sinclair/typebox@0.31.28)': - dependencies: - '@inlang/json-types': 1.1.0(@sinclair/typebox@0.31.28) - '@inlang/language-tag': 1.5.1 - '@inlang/message': 2.1.0(@sinclair/typebox@0.31.28) - '@inlang/project-settings': 2.4.0(@sinclair/typebox@0.31.28) - '@inlang/translatable': 1.3.1 - '@sinclair/typebox': 0.31.28 - '@inlang/message-lint-rule@1.4.7(@sinclair/typebox@0.31.28)': dependencies: '@inlang/json-types': 1.1.0(@sinclair/typebox@0.31.28) @@ -9581,45 +9260,6 @@ snapshots: '@inlang/plugin': 2.4.14(@sinclair/typebox@0.31.28) '@sinclair/typebox': 0.31.28 - '@inlang/module@1.2.9(@sinclair/typebox@0.31.28)': - dependencies: - '@inlang/message-lint-rule': 1.4.5(@sinclair/typebox@0.31.28) - '@inlang/plugin': 2.4.9(@sinclair/typebox@0.31.28) - '@sinclair/typebox': 0.31.28 - - '@inlang/paraglide-js-adapter-sveltekit@0.6.7(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(babel-plugin-macros@3.1.0)(svelte@4.2.19)': - dependencies: - '@inlang/paraglide-js': 1.7.0(babel-plugin-macros@3.1.0) - '@inlang/paraglide-js-adapter-vite': 1.2.40(babel-plugin-macros@3.1.0) - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) - dedent: 1.5.1(babel-plugin-macros@3.1.0) - devalue: 4.3.3 - magic-string: 0.30.14 - svelte: 4.2.19 - transitivePeerDependencies: - - babel-plugin-macros - - debug - - supports-color - - '@inlang/paraglide-js-adapter-unplugin@1.4.29(babel-plugin-macros@3.1.0)': - dependencies: - '@inlang/paraglide-js': 1.7.0(babel-plugin-macros@3.1.0) - '@inlang/sdk': 0.33.0(babel-plugin-macros@3.1.0) - '@lix-js/client': 1.2.1 - unplugin: 1.5.1 - transitivePeerDependencies: - - babel-plugin-macros - - debug - - supports-color - - '@inlang/paraglide-js-adapter-vite@1.2.40(babel-plugin-macros@3.1.0)': - dependencies: - '@inlang/paraglide-js-adapter-unplugin': 1.4.29(babel-plugin-macros@3.1.0) - transitivePeerDependencies: - - babel-plugin-macros - - debug - - supports-color - '@inlang/paraglide-js@1.11.3(babel-plugin-macros@3.1.0)': dependencies: '@inlang/detect-json-formatting': 1.0.0 @@ -9627,40 +9267,44 @@ snapshots: consola: 3.2.3 dedent: 1.5.1(babel-plugin-macros@3.1.0) json5: 2.2.3 - posthog-node: 4.3.1 + posthog-node: 4.3.2 transitivePeerDependencies: - babel-plugin-macros - debug - '@inlang/paraglide-js@1.7.0(babel-plugin-macros@3.1.0)': + '@inlang/paraglide-sveltekit@0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0)': dependencies: - '@inlang/detect-json-formatting': 1.0.0 - commander: 11.1.0 - consola: 3.2.3 + '@inlang/paraglide-js': 1.11.3(babel-plugin-macros@3.1.0) + '@inlang/paraglide-vite': 1.3.0(babel-plugin-macros@3.1.0) + '@lix-js/client': 2.2.1 + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + commander: 12.1.0 dedent: 1.5.1(babel-plugin-macros@3.1.0) - json5: 2.2.3 - posthog-node: 3.1.3 + devalue: 4.3.3 + magic-string: 0.30.15 + svelte: 5.13.0 transitivePeerDependencies: - babel-plugin-macros - debug + - supports-color - '@inlang/paraglide-sveltekit@0.12.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0)': + '@inlang/paraglide-sveltekit@0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0)': dependencies: '@inlang/paraglide-js': 1.11.3(babel-plugin-macros@3.1.0) - '@inlang/paraglide-vite': 1.2.77(babel-plugin-macros@3.1.0) + '@inlang/paraglide-vite': 1.3.0(babel-plugin-macros@3.1.0) '@lix-js/client': 2.2.1 - '@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) commander: 12.1.0 dedent: 1.5.1(babel-plugin-macros@3.1.0) devalue: 4.3.3 - magic-string: 0.30.14 - svelte: 5.4.0 + magic-string: 0.30.15 + svelte: 5.13.0 transitivePeerDependencies: - babel-plugin-macros - debug - supports-color - '@inlang/paraglide-unplugin@1.8.8(babel-plugin-macros@3.1.0)': + '@inlang/paraglide-unplugin@1.9.0(babel-plugin-macros@3.1.0)': dependencies: '@inlang/paraglide-js': 1.11.3(babel-plugin-macros@3.1.0) '@inlang/sdk': 0.36.3(babel-plugin-macros@3.1.0) @@ -9671,9 +9315,9 @@ snapshots: - debug - supports-color - '@inlang/paraglide-vite@1.2.77(babel-plugin-macros@3.1.0)': + '@inlang/paraglide-vite@1.3.0(babel-plugin-macros@3.1.0)': dependencies: - '@inlang/paraglide-unplugin': 1.8.8(babel-plugin-macros@3.1.0) + '@inlang/paraglide-unplugin': 1.9.0(babel-plugin-macros@3.1.0) transitivePeerDependencies: - babel-plugin-macros - debug @@ -9689,22 +9333,6 @@ snapshots: '@lix-js/fs': 2.2.0 '@sinclair/typebox': 0.31.28 - '@inlang/plugin@2.4.9(@sinclair/typebox@0.31.28)': - dependencies: - '@inlang/json-types': 1.1.0(@sinclair/typebox@0.31.28) - '@inlang/language-tag': 1.5.1 - '@inlang/message': 2.1.0(@sinclair/typebox@0.31.28) - '@inlang/project-settings': 2.4.0(@sinclair/typebox@0.31.28) - '@inlang/translatable': 1.3.1 - '@lix-js/fs': 1.0.0 - '@sinclair/typebox': 0.31.28 - - '@inlang/project-settings@2.4.0(@sinclair/typebox@0.31.28)': - dependencies: - '@inlang/json-types': 1.1.0(@sinclair/typebox@0.31.28) - '@inlang/language-tag': 1.5.1 - '@sinclair/typebox': 0.31.28 - '@inlang/project-settings@2.4.2(@sinclair/typebox@0.31.28)': dependencies: '@inlang/json-types': 1.1.0(@sinclair/typebox@0.31.28) @@ -9713,30 +9341,6 @@ snapshots: '@inlang/result@1.1.0': {} - '@inlang/sdk@0.33.0(babel-plugin-macros@3.1.0)': - dependencies: - '@inlang/json-types': 1.1.0(@sinclair/typebox@0.31.28) - '@inlang/language-tag': 1.5.1 - '@inlang/message': 2.1.0(@sinclair/typebox@0.31.28) - '@inlang/message-lint-rule': 1.4.5(@sinclair/typebox@0.31.28) - '@inlang/module': 1.2.9(@sinclair/typebox@0.31.28) - '@inlang/plugin': 2.4.9(@sinclair/typebox@0.31.28) - '@inlang/project-settings': 2.4.0(@sinclair/typebox@0.31.28) - '@inlang/result': 1.1.0 - '@inlang/translatable': 1.3.1 - '@lix-js/client': 1.2.1 - '@lix-js/fs': 1.0.0 - '@sinclair/typebox': 0.31.28 - debug: 4.3.7 - dedent: 1.5.1(babel-plugin-macros@3.1.0) - deepmerge-ts: 5.1.0 - murmurhash3js: 3.0.1 - solid-js: 1.6.12 - throttle-debounce: 5.0.2 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - '@inlang/sdk@0.36.3(babel-plugin-macros@3.1.0)': dependencies: '@inlang/json-types': 1.1.0(@sinclair/typebox@0.31.28) @@ -9751,7 +9355,7 @@ snapshots: '@lix-js/client': 2.2.1 '@lix-js/fs': 2.2.0 '@sinclair/typebox': 0.31.28 - debug: 4.3.7 + debug: 4.4.0 dedent: 1.5.1(babel-plugin-macros@3.1.0) deepmerge-ts: 5.1.0 murmurhash3js: 3.0.1 @@ -9778,11 +9382,15 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + '@isaacs/ttlcache@1.4.1': {} '@istanbuljs/schema@0.1.3': {} - '@jridgewell/gen-mapping@0.3.5': + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 @@ -9807,21 +9415,6 @@ snapshots: dependencies: esm-env: 1.2.1 - '@lix-js/client@1.2.1': - dependencies: - '@lix-js/fs': 1.0.0 - '@octokit/types': 12.4.0 - async-lock: 1.4.1 - clean-git-ref: 2.0.1 - crc-32: 1.2.2 - diff3: 0.0.4 - ignore: 5.3.2 - octokit: 3.1.2 - pako: 1.0.11 - pify: 5.0.0 - sha.js: 2.4.11 - solid-js: 1.7.11 - '@lix-js/client@2.2.1': dependencies: '@lix-js/fs': 2.2.0 @@ -9834,8 +9427,6 @@ snapshots: pify: 5.0.0 sha.js: 2.4.11 - '@lix-js/fs@1.0.0': {} - '@lix-js/fs@2.2.0': dependencies: typescript: 5.2.2 @@ -9894,17 +9485,15 @@ snapshots: '@mapbox/mapbox-gl-supported@2.0.1': {} - '@mapbox/node-pre-gyp@1.0.11': + '@mapbox/node-pre-gyp@2.0.0-rc.0': dependencies: + consola: 3.2.3 detect-libc: 2.0.3 - https-proxy-agent: 5.0.1 - make-dir: 3.1.0 + https-proxy-agent: 7.0.6 node-fetch: 2.7.0 - nopt: 5.0.0 - npmlog: 5.0.1 - rimraf: 3.0.2 + nopt: 8.0.0 semver: 7.6.3 - tar: 6.2.1 + tar: 7.4.3 transitivePeerDependencies: - encoding - supports-color @@ -9921,10 +9510,10 @@ snapshots: '@mapbox/whoots-js@3.1.0': {} - '@markuplint/astro-parser@4.6.13(typescript@5.7.2)': + '@markuplint/astro-parser@4.6.14(typescript@5.7.2)': dependencies: '@markuplint/ml-ast': 4.4.9 - '@markuplint/parser-utils': 4.8.1 + '@markuplint/parser-utils': 4.8.2 astro-eslint-parser: 1.1.0(typescript@5.7.2) transitivePeerDependencies: - supports-color @@ -9941,15 +9530,15 @@ snapshots: '@markuplint/config-presets@4.5.10': {} - '@markuplint/file-resolver@4.9.8(typescript@5.7.2)': + '@markuplint/file-resolver@4.9.9(typescript@5.7.2)': dependencies: - '@markuplint/html-parser': 4.6.13 + '@markuplint/html-parser': 4.6.14 '@markuplint/ml-ast': 4.4.9 - '@markuplint/ml-config': 4.8.5 - '@markuplint/ml-core': 4.10.5 - '@markuplint/ml-spec': 4.9.0 - '@markuplint/parser-utils': 4.8.1 - '@markuplint/selector': 4.6.13 + '@markuplint/ml-config': 4.8.6 + '@markuplint/ml-core': 4.11.0 + '@markuplint/ml-spec': 4.9.1 + '@markuplint/parser-utils': 4.8.2 + '@markuplint/selector': 4.6.14 '@markuplint/shared': 4.4.10 cosmiconfig: 9.0.0(typescript@5.7.2) debug: 4.3.7 @@ -9962,18 +9551,18 @@ snapshots: - supports-color - typescript - '@markuplint/html-parser@4.6.13': + '@markuplint/html-parser@4.6.14': dependencies: '@markuplint/ml-ast': 4.4.9 - '@markuplint/parser-utils': 4.8.1 + '@markuplint/parser-utils': 4.8.2 parse5: 7.2.1 - type-fest: 4.27.0 + type-fest: 4.30.0 transitivePeerDependencies: - supports-color - '@markuplint/html-spec@4.11.0': + '@markuplint/html-spec@4.11.1': dependencies: - '@markuplint/ml-spec': 4.9.0 + '@markuplint/ml-spec': 4.9.1 transitivePeerDependencies: - supports-color @@ -9981,85 +9570,85 @@ snapshots: '@markuplint/ml-ast@4.4.9': {} - '@markuplint/ml-config@4.8.5': + '@markuplint/ml-config@4.8.6': dependencies: '@markuplint/ml-ast': 4.4.9 - '@markuplint/selector': 4.6.13 + '@markuplint/selector': 4.6.14 '@markuplint/shared': 4.4.10 '@types/mustache': 4.2.5 deepmerge: 4.3.1 is-plain-object: 5.0.0 mustache: 4.2.0 - type-fest: 4.27.0 + type-fest: 4.30.0 transitivePeerDependencies: - supports-color - '@markuplint/ml-core@4.10.5': + '@markuplint/ml-core@4.11.0': dependencies: '@markuplint/config-presets': 4.5.10 - '@markuplint/html-parser': 4.6.13 - '@markuplint/html-spec': 4.11.0 + '@markuplint/html-parser': 4.6.14 + '@markuplint/html-spec': 4.11.1 '@markuplint/i18n': 4.6.0 '@markuplint/ml-ast': 4.4.9 - '@markuplint/ml-config': 4.8.5 - '@markuplint/ml-spec': 4.9.0 - '@markuplint/parser-utils': 4.8.1 - '@markuplint/selector': 4.6.13 + '@markuplint/ml-config': 4.8.6 + '@markuplint/ml-spec': 4.9.1 + '@markuplint/parser-utils': 4.8.2 + '@markuplint/selector': 4.6.14 '@markuplint/shared': 4.4.10 '@types/debug': 4.1.12 debug: 4.3.7 is-plain-object: 5.0.0 - type-fest: 4.27.0 + type-fest: 4.30.0 transitivePeerDependencies: - supports-color - '@markuplint/ml-spec@4.9.0': + '@markuplint/ml-spec@4.9.1': dependencies: '@markuplint/ml-ast': 4.4.9 - '@markuplint/types': 4.7.0 + '@markuplint/types': 4.7.1 dom-accessibility-api: 0.7.0 is-plain-object: 5.0.0 - type-fest: 4.27.0 + type-fest: 4.30.0 transitivePeerDependencies: - supports-color - '@markuplint/parser-utils@4.8.1': + '@markuplint/parser-utils@4.8.2': dependencies: '@markuplint/ml-ast': 4.4.9 - '@markuplint/ml-spec': 4.9.0 - '@markuplint/types': 4.7.0 + '@markuplint/ml-spec': 4.9.1 + '@markuplint/types': 4.7.1 '@types/uuid': 10.0.0 debug: 4.3.7 espree: 10.3.0 - type-fest: 4.27.0 + type-fest: 4.30.0 uuid: 11.0.3 transitivePeerDependencies: - supports-color - '@markuplint/rules@4.10.6': + '@markuplint/rules@4.10.7': dependencies: - '@markuplint/html-spec': 4.11.0 - '@markuplint/ml-core': 4.10.5 - '@markuplint/ml-spec': 4.9.0 - '@markuplint/selector': 4.6.13 + '@markuplint/html-spec': 4.11.1 + '@markuplint/ml-core': 4.11.0 + '@markuplint/ml-spec': 4.9.1 + '@markuplint/selector': 4.6.14 '@markuplint/shared': 4.4.10 - '@markuplint/types': 4.7.0 + '@markuplint/types': 4.7.1 '@types/debug': 4.1.12 '@ungap/structured-clone': 1.2.0 ansi-colors: 4.1.3 chrono-node: 2.7.7 debug: 4.3.7 - type-fest: 4.27.0 + type-fest: 4.30.0 transitivePeerDependencies: - supports-color - '@markuplint/selector@4.6.13': + '@markuplint/selector@4.6.14': dependencies: - '@markuplint/ml-spec': 4.9.0 + '@markuplint/ml-spec': 4.9.1 '@types/debug': 4.1.12 debug: 4.3.7 postcss-selector-parser: 7.0.0 - type-fest: 4.27.0 + type-fest: 4.30.0 transitivePeerDependencies: - supports-color @@ -10067,16 +9656,16 @@ snapshots: dependencies: html-entities: 2.5.2 - '@markuplint/svelte-parser@4.7.3': + '@markuplint/svelte-parser@4.7.4': dependencies: - '@markuplint/html-parser': 4.6.13 + '@markuplint/html-parser': 4.6.14 '@markuplint/ml-ast': 4.4.9 - '@markuplint/parser-utils': 4.8.1 - svelte: 5.2.2 + '@markuplint/parser-utils': 4.8.2 + svelte: 5.5.3 transitivePeerDependencies: - supports-color - '@markuplint/types@4.7.0': + '@markuplint/types@4.7.1': dependencies: '@markuplint/shared': 4.4.10 '@types/css-tree': 2.3.9 @@ -10086,7 +9675,7 @@ snapshots: css-tree: 3.0.1 debug: 4.3.7 leven: 4.0.0 - type-fest: 4.27.0 + type-fest: 4.30.0 whatwg-mimetype: 4.0.0 transitivePeerDependencies: - supports-color @@ -10283,8 +9872,6 @@ snapshots: '@octokit/types': 13.6.2 btoa-lite: 1.0.0 - '@octokit/openapi-types@19.1.0': {} - '@octokit/openapi-types@20.0.0': {} '@octokit/openapi-types@22.2.0': {} @@ -10329,10 +9916,6 @@ snapshots: '@octokit/types': 13.6.2 universal-user-agent: 6.0.1 - '@octokit/types@12.4.0': - dependencies: - '@octokit/openapi-types': 19.1.0 - '@octokit/types@12.6.0': dependencies: '@octokit/openapi-types': 20.0.0 @@ -10378,9 +9961,9 @@ snapshots: '@pkgr/core@0.1.1': {} - '@playwright/test@1.49.0': + '@playwright/test@1.49.1': dependencies: - playwright: 1.49.0 + playwright: 1.49.1 '@pnpm/config.env-replace@1.1.0': {} @@ -10401,122 +9984,125 @@ snapshots: '@repeaterjs/repeater@3.0.6': {} - '@rollup/plugin-commonjs@28.0.1(rollup@4.28.0)': + '@rollup/plugin-commonjs@28.0.1(rollup@4.28.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + '@rollup/pluginutils': 5.1.3(rollup@4.28.1) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.2(picomatch@4.0.2) is-reference: 1.2.1 - magic-string: 0.30.14 + magic-string: 0.30.15 picomatch: 4.0.2 optionalDependencies: - rollup: 4.28.0 + rollup: 4.28.1 - '@rollup/plugin-json@6.1.0(rollup@4.28.0)': + '@rollup/plugin-json@6.1.0(rollup@4.28.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + '@rollup/pluginutils': 5.1.3(rollup@4.28.1) optionalDependencies: - rollup: 4.28.0 + rollup: 4.28.1 - '@rollup/plugin-node-resolve@15.3.0(rollup@4.28.0)': + '@rollup/plugin-node-resolve@15.3.0(rollup@4.28.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + '@rollup/pluginutils': 5.1.3(rollup@4.28.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.9 optionalDependencies: - rollup: 4.28.0 + rollup: 4.28.1 - '@rollup/pluginutils@5.1.3(rollup@4.28.0)': + '@rollup/pluginutils@5.1.3(rollup@4.28.1)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.28.0 + rollup: 4.28.1 + + '@rollup/rollup-android-arm-eabi@4.28.1': + optional: true - '@rollup/rollup-android-arm-eabi@4.28.0': + '@rollup/rollup-android-arm64@4.28.1': optional: true - '@rollup/rollup-android-arm64@4.28.0': + '@rollup/rollup-darwin-arm64@4.28.1': optional: true - '@rollup/rollup-darwin-arm64@4.28.0': + '@rollup/rollup-darwin-x64@4.28.1': optional: true - '@rollup/rollup-darwin-x64@4.28.0': + '@rollup/rollup-freebsd-arm64@4.28.1': optional: true - '@rollup/rollup-freebsd-arm64@4.28.0': + '@rollup/rollup-freebsd-x64@4.28.1': optional: true - '@rollup/rollup-freebsd-x64@4.28.0': + '@rollup/rollup-linux-arm-gnueabihf@4.28.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.28.0': + '@rollup/rollup-linux-arm-musleabihf@4.28.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.28.0': + '@rollup/rollup-linux-arm64-gnu@4.28.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.28.0': + '@rollup/rollup-linux-arm64-musl@4.28.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.28.0': + '@rollup/rollup-linux-loongarch64-gnu@4.28.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.28.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.28.0': + '@rollup/rollup-linux-riscv64-gnu@4.28.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.28.0': + '@rollup/rollup-linux-s390x-gnu@4.28.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.28.0': + '@rollup/rollup-linux-x64-gnu@4.28.1': optional: true - '@rollup/rollup-linux-x64-musl@4.28.0': + '@rollup/rollup-linux-x64-musl@4.28.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.28.0': + '@rollup/rollup-win32-arm64-msvc@4.28.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.28.0': + '@rollup/rollup-win32-ia32-msvc@4.28.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.28.0': + '@rollup/rollup-win32-x64-msvc@4.28.1': optional: true - '@shikijs/core@1.24.0': + '@shikijs/core@1.24.2': dependencies: - '@shikijs/engine-javascript': 1.24.0 - '@shikijs/engine-oniguruma': 1.24.0 - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/engine-javascript': 1.24.2 + '@shikijs/engine-oniguruma': 1.24.2 + '@shikijs/types': 1.24.2 + '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 - '@shikijs/engine-javascript@1.24.0': + '@shikijs/engine-javascript@1.24.2': dependencies: - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/types': 1.24.2 + '@shikijs/vscode-textmate': 9.3.1 oniguruma-to-es: 0.7.0 - '@shikijs/engine-oniguruma@1.24.0': + '@shikijs/engine-oniguruma@1.24.2': dependencies: - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/types': 1.24.2 + '@shikijs/vscode-textmate': 9.3.1 - '@shikijs/types@1.24.0': + '@shikijs/types@1.24.2': dependencies: - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@9.3.0': {} + '@shikijs/vscode-textmate@9.3.1': {} '@sideway/address@4.1.5': dependencies: @@ -10537,7 +10123,7 @@ snapshots: '@sinclair/typebox@0.31.28': {} - '@sinclair/typebox@0.34.9': + '@sinclair/typebox@0.34.11': optional: true '@skeletonlabs/skeleton@2.10.3(svelte@4.2.19)': @@ -10545,285 +10131,180 @@ snapshots: esm-env: 1.0.0 svelte: 4.2.19 - '@skeletonlabs/tw-plugin@0.4.0(tailwindcss@3.4.15)': + '@skeletonlabs/tw-plugin@0.4.0(tailwindcss@3.4.16)': dependencies: - tailwindcss: 3.4.15 + tailwindcss: 3.4.16 '@svelte-plugins/datepicker@1.0.9': {} - '@svelte-put/shortcut@3.1.1(svelte@4.2.19)': + '@svelte-put/shortcut@3.1.2(svelte@4.2.19)': dependencies: svelte: 4.2.19 - '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))': + '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))': dependencies: - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) import-meta-resolve: 4.1.0 - '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))': + '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))': dependencies: - '@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) import-meta-resolve: 4.1.0 - '@sveltejs/adapter-node@5.2.9(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))': + '@sveltejs/adapter-node@5.2.10(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))': dependencies: - '@rollup/plugin-commonjs': 28.0.1(rollup@4.28.0) - '@rollup/plugin-json': 6.1.0(rollup@4.28.0) - '@rollup/plugin-node-resolve': 15.3.0(rollup@4.28.0) - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) - rollup: 4.28.0 + '@rollup/plugin-commonjs': 28.0.1(rollup@4.28.1) + '@rollup/plugin-json': 6.1.0(rollup@4.28.1) + '@rollup/plugin-node-resolve': 15.3.0(rollup@4.28.1) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + rollup: 4.28.1 - '@sveltejs/adapter-vercel@5.5.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(rollup@4.28.0)': + '@sveltejs/adapter-node@5.2.10(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))': dependencies: - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) - '@vercel/nft': 0.27.7(rollup@4.28.0) + '@rollup/plugin-commonjs': 28.0.1(rollup@4.28.1) + '@rollup/plugin-json': 6.1.0(rollup@4.28.1) + '@rollup/plugin-node-resolve': 15.3.0(rollup@4.28.1) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + rollup: 4.28.1 + + '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(rollup@4.28.1)': + dependencies: + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@vercel/nft': 0.27.9(rollup@4.28.1) esbuild: 0.24.0 transitivePeerDependencies: - encoding - rollup - supports-color - '@sveltejs/enhanced-img@0.3.10(rollup@4.28.0)(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))': + '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(rollup@4.28.1)': dependencies: - magic-string: 0.30.14 + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + '@vercel/nft': 0.27.9(rollup@4.28.1) + esbuild: 0.24.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + + '@sveltejs/enhanced-img@0.3.10(rollup@4.28.1)(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))': + dependencies: + magic-string: 0.30.15 svelte: 4.2.19 svelte-parse-markup: 0.1.5(svelte@4.2.19) - vite: 5.4.11(@types/node@22.10.1) - vite-imagetools: 7.0.5(rollup@4.28.0) + vite: 5.4.11(@types/node@22.10.2) + vite-imagetools: 7.0.5(rollup@4.28.1) transitivePeerDependencies: - rollup - '@sveltejs/enhanced-img@0.4.1(rollup@4.28.0)(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1))': + '@sveltejs/enhanced-img@0.4.4(rollup@4.28.1)(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': dependencies: - magic-string: 0.30.14 - svelte: 5.4.0 - svelte-parse-markup: 0.1.5(svelte@5.4.0) - vite: 6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1) - vite-imagetools: 7.0.5(rollup@4.28.0) + magic-string: 0.30.15 + sharp: 0.33.5 + svelte: 5.13.0 + svelte-parse-markup: 0.1.5(svelte@5.13.0) + vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) + vite-imagetools: 7.0.5(rollup@4.28.1) zimmerframe: 1.1.2 transitivePeerDependencies: - rollup - '@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))': + '@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 esm-env: 1.2.1 import-meta-resolve: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.14 + magic-string: 0.30.15 mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.7.1 sirv: 3.0.0 svelte: 4.2.19 tiny-glob: 0.2.9 - vite: 5.4.11(@types/node@22.10.1) + vite: 5.4.11(@types/node@22.10.2) - '@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))': + '@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@5.13.0)(vite@5.4.11(@types/node@22.10.2))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 esm-env: 1.2.1 import-meta-resolve: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.14 + magic-string: 0.30.15 mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.7.1 sirv: 3.0.0 - svelte: 4.2.19 + svelte: 5.13.0 tiny-glob: 0.2.9 - vite: 5.4.11(@types/node@22.10.1) + vite: 5.4.11(@types/node@22.10.2) - '@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1))': + '@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 esm-env: 1.2.1 import-meta-resolve: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.14 + magic-string: 0.30.15 mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.7.1 sirv: 3.0.0 - svelte: 5.4.0 + svelte: 5.13.0 tiny-glob: 0.2.9 - vite: 5.4.11(@types/node@22.10.1) + vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) - '@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))': dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)) - '@types/cookie': 0.6.0 - cookie: 0.6.0 - devalue: 5.1.1 - esm-env: 1.2.1 - import-meta-resolve: 4.1.0 - kleur: 4.1.5 - magic-string: 0.30.14 - mrmime: 2.0.0 - sade: 1.8.1 - set-cookie-parser: 2.7.1 - sirv: 3.0.0 - svelte: 5.4.0 - tiny-glob: 0.2.9 - vite: 5.4.11(@types/node@22.10.1) - optional: true - - '@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1))': - dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.1(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)) - '@types/cookie': 0.6.0 - cookie: 0.6.0 - devalue: 5.1.1 - esm-env: 1.2.1 - import-meta-resolve: 4.1.0 - kleur: 4.1.5 - magic-string: 0.30.14 - mrmime: 2.0.0 - sade: 1.8.1 - set-cookie-parser: 2.7.1 - sirv: 3.0.0 - svelte: 5.4.0 - tiny-glob: 0.2.9 - vite: 5.4.11(@types/node@22.10.1) - optional: true - - '@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1))': - dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) - '@types/cookie': 0.6.0 - cookie: 0.6.0 - devalue: 5.1.1 - esm-env: 1.2.1 - import-meta-resolve: 4.1.0 - kleur: 4.1.5 - magic-string: 0.30.14 - mrmime: 2.0.0 - sade: 1.8.1 - set-cookie-parser: 2.7.1 - sirv: 3.0.0 - svelte: 5.4.0 - tiny-glob: 0.2.9 - vite: 6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1) - - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))': - dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) - debug: 4.3.7 - svelte: 4.2.19 - vite: 5.4.11(@types/node@22.10.1) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1))': - dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)) - debug: 4.3.7 - svelte: 5.4.0 - vite: 5.4.11(@types/node@22.10.1) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))': - dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) - debug: 4.3.7 + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + debug: 4.4.0 svelte: 4.2.19 - vite: 5.4.11(@types/node@22.10.1) + vite: 5.4.11(@types/node@22.10.2) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.1(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)) - debug: 4.3.7 - svelte: 5.4.0 - vite: 5.4.11(@types/node@22.10.1) - transitivePeerDependencies: - - supports-color - optional: true - - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1))': - dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) - debug: 4.3.7 - svelte: 5.4.0 - vite: 6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1) + '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + debug: 4.4.0 + svelte: 5.13.0 + vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))': + '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) - debug: 4.3.7 + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.14 + magic-string: 0.30.15 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.4.11(@types/node@22.10.1) - vitefu: 0.2.5(vite@5.4.11(@types/node@22.10.1)) + vite: 5.4.11(@types/node@22.10.2) + vitefu: 0.2.5(vite@5.4.11(@types/node@22.10.2)) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1))': + '@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)) - debug: 4.3.7 + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.14 - svelte: 5.4.0 - vite: 5.4.11(@types/node@22.10.1) - vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.1)) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) - debug: 4.3.7 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.14 - svelte: 4.2.19 - vite: 5.4.11(@types/node@22.10.1) - vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.1)) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1))': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)) - debug: 4.3.7 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.14 - svelte: 5.4.0 - vite: 5.4.11(@types/node@22.10.1) - vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.1)) - transitivePeerDependencies: - - supports-color - optional: true - - '@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1))': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) - debug: 4.3.7 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.14 - svelte: 5.4.0 - vite: 6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1) - vitefu: 1.0.4(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) + magic-string: 0.30.15 + svelte: 5.13.0 + vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) + vitefu: 1.0.4(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) transitivePeerDependencies: - supports-color @@ -10831,30 +10312,30 @@ snapshots: dependencies: tslib: 2.8.1 - '@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.15)': + '@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.16)': dependencies: - tailwindcss: 3.4.15 + tailwindcss: 3.4.16 - '@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.15)': + '@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.16)': dependencies: - tailwindcss: 3.4.15 + tailwindcss: 3.4.16 - '@tailwindcss/forms@0.5.9(tailwindcss@3.4.15)': + '@tailwindcss/forms@0.5.9(tailwindcss@3.4.16)': dependencies: mini-svg-data-uri: 1.4.4 - tailwindcss: 3.4.15 + tailwindcss: 3.4.16 - '@tailwindcss/line-clamp@0.4.4(tailwindcss@3.4.15)': + '@tailwindcss/line-clamp@0.4.4(tailwindcss@3.4.16)': dependencies: - tailwindcss: 3.4.15 + tailwindcss: 3.4.16 - '@tailwindcss/typography@0.5.15(tailwindcss@3.4.15)': + '@tailwindcss/typography@0.5.15(tailwindcss@3.4.16)': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.15 + tailwindcss: 3.4.16 '@tanstack/table-core@8.20.5': {} @@ -10879,13 +10360,13 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/svelte@5.2.6(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))(vitest@2.1.8)': + '@testing-library/svelte@5.2.6(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))(vitest@2.1.8)': dependencies: '@testing-library/dom': 10.4.0 svelte: 4.2.19 optionalDependencies: - vite: 5.4.11(@types/node@22.10.1) - vitest: 2.1.8(@types/node@22.10.1)(@vitest/ui@2.1.8)(jsdom@25.0.1) + vite: 5.4.11(@types/node@22.10.2) + vitest: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1) '@tinyhttp/accepts@1.3.0': dependencies: @@ -10965,27 +10446,6 @@ snapshots: '@types/aws-lambda@8.10.146': {} - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 - - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.26.0 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 - - '@types/babel__traverse@7.20.6': - dependencies: - '@babel/types': 7.26.0 - '@types/braces@3.0.4': {} '@types/btoa-lite@1.0.2': {} @@ -11013,7 +10473,7 @@ snapshots: '@types/d3-contour@3.0.6': dependencies: '@types/d3-array': 3.2.1 - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/d3-delaunay@6.0.4': {} @@ -11037,7 +10497,7 @@ snapshots: '@types/d3-geo@3.1.0': dependencies: - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/d3-hierarchy@3.1.7': {} @@ -11141,9 +10601,9 @@ snapshots: '@types/fs-extra@9.0.13': dependencies: - '@types/node': 22.10.1 + '@types/node': 22.10.2 - '@types/geojson@7946.0.14': {} + '@types/geojson@7946.0.15': {} '@types/hast@3.0.4': dependencies: @@ -11151,22 +10611,24 @@ snapshots: '@types/js-cookie@3.0.6': {} + '@types/js-yaml@4.0.9': {} + '@types/json-schema@7.0.15': optional: true '@types/jsonwebtoken@9.0.7': dependencies: - '@types/node': 22.10.1 + '@types/node': 22.10.2 '@types/leaflet@1.7.6': dependencies: - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/mapbox__point-geometry@0.1.4': {} '@types/mapbox__vector-tile@1.3.4': dependencies: - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/mapbox__point-geometry': 0.1.4 '@types/pbf': 3.0.5 @@ -11192,7 +10654,7 @@ snapshots: '@types/node@17.0.45': {} - '@types/node@22.10.1': + '@types/node@22.10.2': dependencies: undici-types: 6.20.0 @@ -11204,11 +10666,11 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 22.10.1 + '@types/node': 17.0.45 '@types/supercluster@5.0.3': dependencies: - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/three@0.135.0': {} @@ -11216,26 +10678,26 @@ snapshots: '@types/topojson-client@3.1.5': dependencies: - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/topojson-specification': 1.0.5 '@types/topojson-server@3.0.4': dependencies: - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/topojson-specification': 1.0.5 '@types/topojson-simplify@3.0.3': dependencies: - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/topojson-specification': 1.0.5 '@types/topojson-specification@1.0.5': dependencies: - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/topojson@3.2.6': dependencies: - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/topojson-client': 3.1.5 '@types/topojson-server': 3.0.4 '@types/topojson-simplify': 3.0.3 @@ -11266,35 +10728,36 @@ snapshots: '@types/json-schema': 7.0.15 optional: true - '@typescript-eslint/scope-manager@8.17.0': + '@typescript-eslint/scope-manager@8.18.0': dependencies: - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/visitor-keys': 8.17.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 - '@typescript-eslint/types@8.17.0': {} + '@typescript-eslint/types@8.18.0': {} - '@typescript-eslint/typescript-estree@8.17.0(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.18.0(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/visitor-keys': 8.17.0 - debug: 4.3.7 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 + debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.17.0': + '@typescript-eslint/visitor-keys@8.18.0': dependencies: - '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/types': 8.18.0 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.2.0': {} + '@ungap/structured-clone@1.2.1': {} + '@unovis/dagre-layout@0.8.8-2': dependencies: '@unovis/graphlibrary': 2.2.0-2 @@ -11304,12 +10767,12 @@ snapshots: dependencies: lodash-es: 4.17.21 - '@unovis/svelte@1.5.0-beta.3(@unovis/ts@1.5.0-beta.3)(svelte@4.2.19)': + '@unovis/svelte@1.5.0(@unovis/ts@1.5.0)(svelte@4.2.19)': dependencies: - '@unovis/ts': 1.5.0-beta.3 + '@unovis/ts': 1.5.0 svelte: 4.2.19 - '@unovis/ts@1.5.0-beta.3': + '@unovis/ts@1.5.0': dependencies: '@emotion/css': 11.13.5 '@juggle/resize-observer': 3.4.0 @@ -11317,7 +10780,7 @@ snapshots: '@types/d3-collection': 1.0.13 '@types/d3-sankey': 0.11.2 '@types/dagre': 0.7.52 - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/leaflet': 1.7.6 '@types/supercluster': 5.0.3 '@types/three': 0.135.0 @@ -11346,37 +10809,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@vercel/analytics@1.4.1(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(react@18.3.1)(svelte@4.2.19)': + '@vercel/analytics@1.4.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19)': optionalDependencies: - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) react: 18.3.1 svelte: 4.2.19 - '@vercel/analytics@1.4.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(react@18.3.1)(svelte@5.4.0)': - optionalDependencies: - '@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@4.0.2(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)) - react: 18.3.1 - svelte: 5.4.0 - - '@vercel/analytics@1.4.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(react@18.3.1)(svelte@5.4.0)': + '@vercel/analytics@1.4.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(react@18.3.1)(svelte@5.13.0)': optionalDependencies: - '@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) react: 18.3.1 - svelte: 5.4.0 + svelte: 5.13.0 - '@vercel/edge@1.1.2': {} + '@vercel/edge@1.1.4': {} - '@vercel/flags@2.6.3(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(react@18.3.1)': + '@vercel/flags@2.6.3(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)': dependencies: jose: 5.2.1 optionalDependencies: - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) react: 18.3.1 - '@vercel/nft@0.27.7(rollup@4.28.0)': + '@vercel/nft@0.27.9(rollup@4.28.1)': dependencies: - '@mapbox/node-pre-gyp': 1.0.11 - '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + '@mapbox/node-pre-gyp': 2.0.0-rc.0 + '@rollup/pluginutils': 5.1.3(rollup@4.28.1) acorn: 8.14.0 acorn-import-attributes: 1.9.5(acorn@8.14.0) async-sema: 3.1.1 @@ -11384,31 +10841,32 @@ snapshots: estree-walker: 2.0.2 glob: 7.2.3 graceful-fs: 4.2.11 - micromatch: 4.0.8 node-gyp-build: 4.8.4 + picomatch: 4.0.2 resolve-from: 5.0.0 transitivePeerDependencies: - encoding - rollup - supports-color - '@vercel/speed-insights@1.1.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(react@18.3.1)(svelte@4.2.19)': + '@vercel/speed-insights@1.1.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19)': optionalDependencies: - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) react: 18.3.1 svelte: 4.2.19 - '@vercel/toolbar@0.1.27(react@18.3.1)(vite@5.4.11(@types/node@22.10.1))': + '@vercel/toolbar@0.1.28(react@18.3.1)(vite@5.4.11(@types/node@22.10.2))': dependencies: '@tinyhttp/app': 1.3.0 chokidar: 3.6.0 execa: 5.1.1 find-up: 5.0.0 get-port: 5.1.1 + globby: 13.2.2 strip-ansi: 6.0.1 optionalDependencies: react: 18.3.1 - vite: 5.4.11(@types/node@22.10.1) + vite: 5.4.11(@types/node@22.10.2) '@vincjo/datatables@1.14.10(svelte@4.2.19)': dependencies: @@ -11433,17 +10891,17 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.7 + debug: 4.4.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.14 + magic-string: 0.30.15 magicast: 0.3.5 std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.8(@types/node@22.10.1)(@vitest/ui@2.1.8)(jsdom@25.0.1) + vitest: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1) transitivePeerDependencies: - supports-color @@ -11454,13 +10912,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.1))': + '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.2))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 - magic-string: 0.30.14 + magic-string: 0.30.15 optionalDependencies: - vite: 5.4.11(@types/node@22.10.1) + vite: 5.4.11(@types/node@22.10.2) '@vitest/pretty-format@2.1.8': dependencies: @@ -11474,7 +10932,7 @@ snapshots: '@vitest/snapshot@2.1.8': dependencies: '@vitest/pretty-format': 2.1.8 - magic-string: 0.30.14 + magic-string: 0.30.15 pathe: 1.1.2 '@vitest/spy@2.1.8': @@ -11490,7 +10948,7 @@ snapshots: sirv: 3.0.0 tinyglobby: 0.2.10 tinyrainbow: 1.2.0 - vitest: 2.1.8(@types/node@22.10.1)(@vitest/ui@2.1.8)(jsdom@25.0.1) + vitest: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1) optional: true '@vitest/utils@2.1.8': @@ -11499,24 +10957,24 @@ snapshots: loupe: 3.1.2 tinyrainbow: 1.2.0 - '@volar/kit@2.4.10(typescript@5.7.2)': + '@volar/kit@2.4.11(typescript@5.7.2)': dependencies: - '@volar/language-service': 2.4.10 - '@volar/typescript': 2.4.10 + '@volar/language-service': 2.4.11 + '@volar/typescript': 2.4.11 typesafe-path: 0.2.2 typescript: 5.7.2 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/language-core@2.4.10': + '@volar/language-core@2.4.11': dependencies: - '@volar/source-map': 2.4.10 + '@volar/source-map': 2.4.11 - '@volar/language-server@2.4.10': + '@volar/language-server@2.4.11': dependencies: - '@volar/language-core': 2.4.10 - '@volar/language-service': 2.4.10 - '@volar/typescript': 2.4.10 + '@volar/language-core': 2.4.11 + '@volar/language-service': 2.4.11 + '@volar/typescript': 2.4.11 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 @@ -11524,18 +10982,18 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/language-service@2.4.10': + '@volar/language-service@2.4.11': dependencies: - '@volar/language-core': 2.4.10 + '@volar/language-core': 2.4.11 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - '@volar/source-map@2.4.10': {} + '@volar/source-map@2.4.11': {} - '@volar/typescript@2.4.10': + '@volar/typescript@2.4.11': dependencies: - '@volar/language-core': 2.4.10 + '@volar/language-core': 2.4.11 path-browserify: 1.0.1 vscode-uri: 3.0.8 @@ -11559,7 +11017,7 @@ snapshots: '@whatwg-node/fetch@0.10.1': dependencies: - '@whatwg-node/node-fetch': 0.7.4 + '@whatwg-node/node-fetch': 0.7.5 urlpattern-polyfill: 10.0.0 '@whatwg-node/fetch@0.9.23': @@ -11574,7 +11032,7 @@ snapshots: fast-querystring: 1.1.2 tslib: 2.8.1 - '@whatwg-node/node-fetch@0.7.4': + '@whatwg-node/node-fetch@0.7.5': dependencies: '@kamilkisiela/fast-url-parser': 1.1.4 '@whatwg-node/disposablestack': 0.0.5 @@ -11582,7 +11040,7 @@ snapshots: fast-querystring: 1.1.2 tslib: 2.8.1 - '@whatwg-node/server@0.9.60': + '@whatwg-node/server@0.9.63': dependencies: '@whatwg-node/disposablestack': 0.0.5 '@whatwg-node/fetch': 0.10.1 @@ -11590,14 +11048,14 @@ snapshots: '@wolfy1339/lru-cache@11.0.2-patch.1': {} - '@xyflow/svelte@0.1.24(svelte@4.2.19)': + '@xyflow/svelte@0.1.25(svelte@4.2.19)': dependencies: - '@svelte-put/shortcut': 3.1.1(svelte@4.2.19) - '@xyflow/system': 0.0.46 + '@svelte-put/shortcut': 3.1.2(svelte@4.2.19) + '@xyflow/system': 0.0.47 classcat: 5.0.5 svelte: 4.2.19 - '@xyflow/system@0.0.46': + '@xyflow/system@0.0.47': dependencies: '@types/d3-drag': 3.0.7 '@types/d3-selection': 3.0.11 @@ -11607,7 +11065,7 @@ snapshots: d3-selection: 3.0.0 d3-zoom: 3.0.0 - abbrev@1.1.1: {} + abbrev@2.0.0: {} acorn-import-attributes@1.9.5(acorn@8.14.0): dependencies: @@ -11623,35 +11081,25 @@ snapshots: acorn@8.14.0: {} - agent-base@6.0.2: - dependencies: - debug: 4.3.7 - transitivePeerDependencies: - - supports-color - - agent-base@7.1.1: - dependencies: - debug: 4.3.7 - transitivePeerDependencies: - - supports-color + agent-base@7.1.3: {} aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - ai@4.0.10(react@18.3.1)(zod@3.23.8): + ai@4.0.18(react@18.3.1)(zod@3.24.1): dependencies: - '@ai-sdk/provider': 1.0.1 - '@ai-sdk/provider-utils': 2.0.2(zod@3.23.8) - '@ai-sdk/react': 1.0.3(react@18.3.1)(zod@3.23.8) - '@ai-sdk/ui-utils': 1.0.2(zod@3.23.8) + '@ai-sdk/provider': 1.0.2 + '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) + '@ai-sdk/react': 1.0.6(react@18.3.1)(zod@3.24.1) + '@ai-sdk/ui-utils': 1.0.5(zod@3.24.1) '@opentelemetry/api': 1.9.0 jsondiffpatch: 0.6.0 - zod-to-json-schema: 3.23.5(zod@3.23.8) + zod-to-json-schema: 3.24.1(zod@3.24.1) optionalDependencies: react: 18.3.1 - zod: 3.23.8 + zod: 3.24.1 ajv@8.17.1: dependencies: @@ -11689,13 +11137,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - aproba@2.0.0: {} - - are-we-there-yet@2.0.0: - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.2 - arg@5.0.2: {} argparse@1.0.10: @@ -11710,10 +11151,10 @@ snapshots: aria-query@5.3.2: {} - arktype@2.0.0-rc.25: + arktype@2.0.0-rc.26: dependencies: - '@ark/schema': 0.25.0 - '@ark/util': 0.25.0 + '@ark/schema': 0.26.0 + '@ark/util': 0.26.0 optional: true array-iterate@2.0.1: {} @@ -11733,11 +11174,11 @@ snapshots: astro-eslint-parser@1.1.0(typescript@5.7.2): dependencies: '@astrojs/compiler': 2.10.3 - '@typescript-eslint/scope-manager': 8.17.0 - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) astrojs-compiler-sync: 1.0.1(@astrojs/compiler@2.10.3) - debug: 4.3.7 + debug: 4.4.0 entities: 4.5.0 eslint-scope: 8.2.0 eslint-visitor-keys: 4.2.0 @@ -11749,9 +11190,9 @@ snapshots: - supports-color - typescript - astro-expressive-code@0.38.3(astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2)): + astro-expressive-code@0.38.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)): dependencies: - astro: 4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2) + astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) rehype-expressive-code: 0.38.3 astro-seo@0.8.4(typescript@5.7.2): @@ -11762,18 +11203,14 @@ snapshots: - prettier-plugin-astro - typescript - astro@4.16.16(@types/node@22.10.1)(rollup@4.28.0)(typescript@5.7.2): + astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1): dependencies: '@astrojs/compiler': 2.10.3 - '@astrojs/internal-helpers': 0.4.1 - '@astrojs/markdown-remark': 5.3.0 - '@astrojs/telemetry': 3.1.0 - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.0 + '@astrojs/internal-helpers': 0.4.2 + '@astrojs/markdown-remark': 6.0.1 + '@astrojs/telemetry': 3.2.0 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.1.3(rollup@4.28.0) - '@types/babel__core': 7.20.5 + '@rollup/pluginutils': 5.1.3(rollup@4.28.1) '@types/cookie': 0.6.0 acorn: 8.14.0 aria-query: 5.3.2 @@ -11784,7 +11221,7 @@ snapshots: common-ancestor-path: 1.0.1 cookie: 0.7.2 cssesc: 3.0.0 - debug: 4.3.7 + debug: 4.4.0 deterministic-object-hash: 2.0.2 devalue: 5.1.1 diff: 5.2.0 @@ -11796,40 +11233,41 @@ snapshots: fast-glob: 3.3.2 flattie: 1.1.1 github-slugger: 2.0.0 - gray-matter: 4.0.3 html-escaper: 3.0.3 http-cache-semantics: 4.1.1 js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.14 + magic-string: 0.30.15 magicast: 0.3.5 micromatch: 4.0.8 mrmime: 2.0.0 neotraverse: 0.6.18 - ora: 8.1.1 p-limit: 6.1.0 p-queue: 8.0.1 preferred-pm: 4.0.0 prompts: 2.4.2 rehype: 13.0.2 semver: 7.6.3 - shiki: 1.24.0 + shiki: 1.24.2 tinyexec: 0.3.1 tsconfck: 3.1.4(typescript@5.7.2) + ultrahtml: 1.5.3 unist-util-visit: 5.0.0 vfile: 6.0.3 - vite: 5.4.11(@types/node@22.10.1) - vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.1)) + vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) + vitefu: 1.0.4(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) which-pm: 3.0.0 xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 - zod: 3.23.8 - zod-to-json-schema: 3.23.5(zod@3.23.8) - zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.23.8) + yocto-spinner: 0.1.2 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + zod-to-ts: 1.2.0(typescript@5.7.2)(zod@3.24.1) optionalDependencies: sharp: 0.33.5 transitivePeerDependencies: - '@types/node' + - jiti - less - lightningcss - rollup @@ -11839,7 +11277,9 @@ snapshots: - sugarss - supports-color - terser + - tsx - typescript + - yaml astrojs-compiler-sync@1.0.1(@astrojs/compiler@2.10.3): dependencies: @@ -11854,15 +11294,15 @@ snapshots: autoprefixer@10.4.20(postcss@8.4.49): dependencies: - browserslist: 4.24.2 - caniuse-lite: 1.0.30001686 + browserslist: 4.24.3 + caniuse-lite: 1.0.30001688 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 postcss: 8.4.49 postcss-value-parser: 4.2.0 - axios@1.7.8: + axios@1.7.9: dependencies: follow-redirects: 1.15.9 form-data: 4.0.1 @@ -11876,7 +11316,7 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 cosmiconfig: 7.1.0 - resolve: 1.22.8 + resolve: 1.22.9 bail@2.0.2: {} @@ -11911,15 +11351,25 @@ snapshots: nanoid: 5.0.9 svelte: 4.2.19 - bits-ui@1.0.0-next.51(svelte@5.4.0): + bits-ui@1.0.0-next.51(svelte@5.13.0): + dependencies: + '@floating-ui/core': 1.6.8 + '@floating-ui/dom': 1.6.12 + '@internationalized/date': 3.6.0 + esm-env: 1.2.1 + runed: 0.15.4(svelte@5.13.0) + svelte: 5.13.0 + svelte-toolbelt: 0.4.6(svelte@5.13.0) + + bits-ui@1.0.0-next.71(svelte@5.13.0): dependencies: '@floating-ui/core': 1.6.8 '@floating-ui/dom': 1.6.12 '@internationalized/date': 3.6.0 esm-env: 1.2.1 - runed: 0.15.4(svelte@5.4.0) - svelte: 5.4.0 - svelte-toolbelt: 0.4.6(svelte@5.4.0) + runed: 0.15.4(svelte@5.13.0) + svelte: 5.13.0 + svelte-toolbelt: 0.4.6(svelte@5.13.0) boolbase@1.0.0: {} @@ -11932,7 +11382,7 @@ snapshots: chalk: 5.3.0 cli-boxes: 3.0.0 string-width: 7.2.0 - type-fest: 4.30.0 + type-fest: 4.30.1 widest-line: 5.0.0 wrap-ansi: 9.0.0 @@ -11949,12 +11399,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.2: + browserslist@4.24.3: dependencies: - caniuse-lite: 1.0.30001686 - electron-to-chromium: 1.5.68 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) + caniuse-lite: 1.0.30001688 + electron-to-chromium: 1.5.73 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.3) btoa-lite@1.0.0: {} @@ -11986,12 +11436,12 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.24.2 - caniuse-lite: 1.0.30001686 + browserslist: 4.24.3 + caniuse-lite: 1.0.30001688 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001686: {} + caniuse-lite@1.0.30001688: {} ccount@2.0.1: {} @@ -12047,14 +11497,14 @@ snapshots: dependencies: readdirp: 4.0.2 - chownr@2.0.0: {} + chownr@3.0.0: {} chrome-ai@1.11.1: dependencies: '@ai-sdk/provider': 0.0.21 '@mediapipe/tasks-genai': 0.10.14 '@mediapipe/tasks-text': 0.10.14 - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -12098,8 +11548,6 @@ snapshots: dependencies: restore-cursor: 5.1.0 - cli-spinners@2.9.2: {} - cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 @@ -12136,8 +11584,6 @@ snapshots: color-name: 1.1.4 simple-swizzle: 0.2.2 - color-support@1.1.3: {} - color@4.2.3: dependencies: color-convert: 2.0.1 @@ -12186,12 +11632,8 @@ snapshots: consola@3.2.3: {} - console-control-strings@1.1.0: {} - convert-source-map@1.9.0: {} - convert-source-map@2.0.0: {} - cookie@0.6.0: {} cookie@0.7.2: {} @@ -12355,7 +11797,7 @@ snapshots: cssnano-preset-default@7.0.6(postcss@8.4.49): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 css-declaration-sorter: 7.2.0(postcss@8.4.49) cssnano-utils: 5.0.0(postcss@8.4.49) postcss: 8.4.49 @@ -12594,7 +12036,7 @@ snapshots: data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.1.0 dataloader@1.4.0: {} @@ -12602,11 +12044,11 @@ snapshots: dayjs@1.11.13: {} - debug@2.6.9: + debug@4.3.7: dependencies: - ms: 2.0.0 + ms: 2.1.3 - debug@4.3.7: + debug@4.4.0: dependencies: ms: 2.1.3 @@ -12636,8 +12078,6 @@ snapshots: delayed-stream@1.0.0: {} - delegates@1.0.0: {} - depd@2.0.0: {} deprecation@2.3.1: {} @@ -12670,8 +12110,6 @@ snapshots: diff-match-patch@1.0.5: {} - diff3@0.0.4: {} - diff@5.2.0: {} dir-glob@3.0.1: @@ -12726,12 +12164,12 @@ snapshots: ee-first@1.1.1: {} - effect@3.11.2: + effect@3.11.7: dependencies: - fast-check: 3.23.1 + fast-check: 3.23.2 optional: true - electron-to-chromium@1.5.68: {} + electron-to-chromium@1.5.73: {} elkjs@0.8.2: {} @@ -12739,11 +12177,11 @@ snapshots: dependencies: embla-carousel: 8.5.1 - embla-carousel-svelte@8.5.1(svelte@5.4.0): + embla-carousel-svelte@8.5.1(svelte@5.13.0): dependencies: embla-carousel: 8.5.1 embla-carousel-reactive-utils: 8.5.1(embla-carousel@8.5.1) - svelte: 5.4.0 + svelte: 5.13.0 embla-carousel@8.5.1: {} @@ -13036,10 +12474,6 @@ snapshots: dependencies: type: 2.7.3 - extend-shallow@2.0.1: - dependencies: - is-extendable: 0.1.1 - extend@3.0.2: {} extendable-error@0.1.7: {} @@ -13050,7 +12484,7 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 - fast-check@3.23.1: + fast-check@3.23.2: dependencies: pure-rand: 6.1.0 optional: true @@ -13160,23 +12594,17 @@ snapshots: dependencies: fetch-blob: 3.2.0 - formsnap@1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)): + formsnap@1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)): dependencies: nanoid: 5.0.9 svelte: 4.2.19 - sveltekit-superforms: 2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + sveltekit-superforms: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) - formsnap@1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)): + formsnap@2.0.0(svelte@5.13.0)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2)): dependencies: - nanoid: 5.0.9 - svelte: 4.2.19 - sveltekit-superforms: 2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) - - formsnap@2.0.0-next.1(svelte@5.4.0)(sveltekit-superforms@2.21.0(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.4.0)(typescript@5.7.2)): - dependencies: - svelte: 5.4.0 - svelte-toolbelt: 0.4.6(svelte@5.4.0) - sveltekit-superforms: 2.21.0(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.4.0)(typescript@5.7.2) + svelte: 5.13.0 + svelte-toolbelt: 0.5.0(svelte@5.13.0) + sveltekit-superforms: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2) fraction.js@4.3.7: {} @@ -13200,10 +12628,6 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 - fs-minipass@2.1.0: - dependencies: - minipass: 3.3.6 - fs-monkey@1.0.6: {} fs.realpath@1.0.0: {} @@ -13216,22 +12640,8 @@ snapshots: function-bind@1.1.2: {} - gauge@3.0.2: - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - gensequence@7.0.0: {} - gensync@1.0.0-beta.2: {} - geojson-vt@3.2.1: {} geojson@0.5.0: {} @@ -13338,6 +12748,14 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + globby@13.2.2: + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 4.0.0 + globrex@0.1.2: {} graceful-fs@4.2.10: {} @@ -13351,13 +12769,13 @@ snapshots: graphql-yoga@4.0.5(graphql@15.9.0): dependencies: '@envelop/core': 4.0.3 - '@graphql-tools/executor': 1.3.5(graphql@15.9.0) - '@graphql-tools/schema': 10.0.10(graphql@15.9.0) - '@graphql-tools/utils': 10.6.1(graphql@15.9.0) + '@graphql-tools/executor': 1.3.9(graphql@15.9.0) + '@graphql-tools/schema': 10.0.13(graphql@15.9.0) + '@graphql-tools/utils': 10.6.4(graphql@15.9.0) '@graphql-yoga/logger': 1.0.0 '@graphql-yoga/subscription': 4.0.0 '@whatwg-node/fetch': 0.9.23 - '@whatwg-node/server': 0.9.60 + '@whatwg-node/server': 0.9.63 dset: 3.1.4 graphql: 15.9.0 lru-cache: 10.4.3 @@ -13369,21 +12787,12 @@ snapshots: graphql@16.9.0: {} - gray-matter@4.0.3: - dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 - guess-json-indent@2.0.0: {} has-flag@4.0.0: {} has-own-prop@2.0.0: {} - has-unicode@2.0.1: {} - has-yarn@3.0.0: {} hasown@2.0.2: @@ -13461,7 +12870,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.2.1 hast-util-from-parse5: 8.0.2 hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 @@ -13512,7 +12921,7 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-html@9.0.3: + hast-util-to-html@9.0.4: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 @@ -13583,18 +12992,18 @@ snapshots: dependencies: parse-passwd: 1.0.0 - houdini-svelte@2.0.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/node@22.10.1): + houdini-svelte@2.0.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/node@22.10.2): dependencies: '@kitql/helpers': 0.8.10 - '@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@5.4.0)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@5.13.0)(vite@5.4.11(@types/node@22.10.2)) ast-types: 0.16.1 estree-walker: 3.0.3 graphql: 15.9.0 houdini: 1.3.1 recast: 0.23.9 rollup: 3.29.5 - svelte: 5.4.0 - vite: 5.4.11(@types/node@22.10.1) + svelte: 5.13.0 + vite: 5.4.11(@types/node@22.10.2) transitivePeerDependencies: - '@sveltejs/vite-plugin-svelte' - '@types/node' @@ -13608,16 +13017,16 @@ snapshots: houdini@1.3.1: dependencies: - '@babel/parser': 7.26.2 + '@babel/parser': 7.26.3 '@clack/prompts': 0.6.3 - '@graphql-tools/merge': 9.0.11(graphql@15.9.0) + '@graphql-tools/merge': 9.0.14(graphql@15.9.0) '@graphql-tools/schema': 9.0.19(graphql@15.9.0) '@kitql/helpers': 0.8.10 '@types/estree': 1.0.6 '@types/fs-extra': 9.0.13 '@types/micromatch': 4.0.9 - '@ungap/structured-clone': 1.2.0 - '@whatwg-node/server': 0.9.60 + '@ungap/structured-clone': 1.2.1 + '@whatwg-node/server': 0.9.63 ast-types: 0.16.1 commander: 9.5.0 deepmerge: 4.3.1 @@ -13660,22 +13069,15 @@ snapshots: http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color - https-proxy-agent@5.0.1: + https-proxy-agent@7.0.6: dependencies: - agent-base: 6.0.2 - debug: 4.3.7 - transitivePeerDependencies: - - supports-color - - https-proxy-agent@7.0.5: - dependencies: - agent-base: 7.1.1 - debug: 4.3.7 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -13758,7 +13160,7 @@ snapshots: dependencies: binary-extensions: 2.3.0 - is-core-module@2.15.1: + is-core-module@2.16.0: dependencies: hasown: 2.0.2 @@ -13766,8 +13168,6 @@ snapshots: is-docker@3.0.0: {} - is-extendable@0.1.1: {} - is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -13788,8 +13188,6 @@ snapshots: dependencies: is-docker: 3.0.0 - is-interactive@2.0.0: {} - is-module@1.0.0: {} is-number@7.0.0: {} @@ -13818,10 +13216,6 @@ snapshots: dependencies: better-path-resolve: 1.0.0 - is-unicode-supported@1.3.0: {} - - is-unicode-supported@2.1.0: {} - is-windows@1.0.2: {} is-wsl@3.1.0: @@ -13848,7 +13242,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.7 + debug: 4.4.0 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -13906,7 +13300,7 @@ snapshots: form-data: 4.0.1 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.16 parse5: 7.2.1 @@ -13918,7 +13312,7 @@ snapshots: webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.1.0 ws: 8.18.0 xml-name-validator: 5.0.0 transitivePeerDependencies: @@ -13926,7 +13320,7 @@ snapshots: - supports-color - utf-8-validate - jsesc@3.0.2: {} + jsesc@3.1.0: {} json-buffer@3.0.1: {} @@ -14015,7 +13409,7 @@ snapshots: kleur@4.1.5: {} - ky@1.7.2: {} + ky@1.7.3: {} lcid@3.1.1: dependencies: @@ -14028,24 +13422,22 @@ snapshots: libphonenumber-js@1.11.16: optional: true - lilconfig@2.1.0: {} - lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} - lint-staged@15.2.10: + lint-staged@15.2.11: dependencies: chalk: 5.3.0 commander: 12.1.0 - debug: 4.3.7 + debug: 4.4.0 execa: 8.0.1 lilconfig: 3.1.3 listr2: 8.2.5 micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.5.1 + yaml: 2.6.1 transitivePeerDependencies: - supports-color @@ -14107,11 +13499,6 @@ snapshots: lodash@4.17.21: {} - log-symbols@6.0.0: - dependencies: - chalk: 5.3.0 - is-unicode-supported: 1.3.0 - log-update@6.1.0: dependencies: ansi-escapes: 7.0.0 @@ -14136,38 +13523,30 @@ snapshots: lru-cache@11.0.2: {} - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - lru-queue@0.1.0: dependencies: es5-ext: 0.10.64 - lucide-svelte@0.462.0(svelte@4.2.19): + lucide-svelte@0.468.0(svelte@4.2.19): dependencies: svelte: 4.2.19 - lucide-svelte@0.462.0(svelte@5.4.0): + lucide-svelte@0.468.0(svelte@5.13.0): dependencies: - svelte: 5.4.0 + svelte: 5.13.0 lz-string@1.5.0: {} - magic-string@0.30.14: + magic-string@0.30.15: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 magicast@0.3.5: dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 source-map-js: 1.2.1 - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - make-dir@4.0.0: dependencies: semver: 7.6.3 @@ -14182,7 +13561,7 @@ snapshots: '@mapbox/unitbezier': 0.0.1 '@mapbox/vector-tile': 1.3.1 '@mapbox/whoots-js': 3.1.0 - '@types/geojson': 7946.0.14 + '@types/geojson': 7946.0.15 '@types/mapbox__point-geometry': 0.1.4 '@types/mapbox__vector-tile': 1.3.4 '@types/pbf': 3.0.5 @@ -14203,18 +13582,18 @@ snapshots: markdown-table@3.0.4: {} - markuplint@4.11.3(typescript@5.7.2): + markuplint@4.11.4(typescript@5.7.2): dependencies: '@markuplint/cli-utils': 4.4.10 - '@markuplint/file-resolver': 4.9.8(typescript@5.7.2) - '@markuplint/html-parser': 4.6.13 - '@markuplint/html-spec': 4.11.0 + '@markuplint/file-resolver': 4.9.9(typescript@5.7.2) + '@markuplint/html-parser': 4.6.14 + '@markuplint/html-spec': 4.11.1 '@markuplint/i18n': 4.6.0 '@markuplint/ml-ast': 4.4.9 - '@markuplint/ml-config': 4.8.5 - '@markuplint/ml-core': 4.10.5 - '@markuplint/ml-spec': 4.9.0 - '@markuplint/rules': 4.10.6 + '@markuplint/ml-config': 4.8.6 + '@markuplint/ml-core': 4.11.0 + '@markuplint/ml-spec': 4.9.1 + '@markuplint/rules': 4.10.7 '@markuplint/shared': 4.4.10 '@types/debug': 4.1.12 chokidar: 4.0.1 @@ -14224,7 +13603,7 @@ snapshots: os-locale: 6.0.2 strict-event-emitter: 0.5.1 strip-ansi: 7.1.0 - type-fest: 4.27.0 + type-fest: 4.30.0 transitivePeerDependencies: - supports-color - typescript @@ -14242,7 +13621,7 @@ snapshots: devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.1 + parse-entities: 4.0.2 stringify-entities: 4.0.4 unist-util-visit-parents: 6.0.1 transitivePeerDependencies: @@ -14350,7 +13729,7 @@ snapshots: devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.1 + parse-entities: 4.0.2 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 @@ -14387,7 +13766,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.2.1 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -14467,7 +13846,7 @@ snapshots: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 - parse-entities: 4.0.1 + parse-entities: 4.0.2 micromark-extension-gfm-autolink-literal@2.1.0: dependencies: @@ -14697,7 +14076,7 @@ snapshots: micromark@4.0.1: dependencies: '@types/debug': 4.1.12 - debug: 4.3.7 + debug: 4.4.0 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.2 @@ -14729,8 +14108,6 @@ snapshots: dependencies: mime-db: 1.52.0 - mime@1.6.0: {} - mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} @@ -14759,35 +14136,27 @@ snapshots: minimist@1.2.8: {} - minipass@3.3.6: - dependencies: - yallist: 4.0.0 - - minipass@5.0.0: {} - minipass@7.1.2: {} - minizlib@2.1.2: + minizlib@3.0.1: dependencies: - minipass: 3.3.6 - yallist: 4.0.0 + minipass: 7.1.2 + rimraf: 5.0.10 mkdirp@0.5.6: dependencies: minimist: 1.2.8 - mkdirp@1.0.4: {} + mkdirp@3.0.1: {} - mode-watcher@0.5.0(svelte@5.4.0): + mode-watcher@0.5.0(svelte@5.13.0): dependencies: - svelte: 5.4.0 + svelte: 5.13.0 mri@1.2.0: {} mrmime@2.0.0: {} - ms@2.0.0: {} - ms@2.1.3: {} muggle-string@0.4.1: {} @@ -14814,7 +14183,7 @@ snapshots: neverthrow@8.1.1: optionalDependencies: - '@rollup/rollup-linux-x64-gnu': 4.28.0 + '@rollup/rollup-linux-x64-gnu': 4.28.1 next-tick@1.1.0: {} @@ -14845,11 +14214,11 @@ snapshots: node-gyp-build@4.8.4: {} - node-releases@2.0.18: {} + node-releases@2.0.19: {} - nopt@5.0.0: + nopt@8.0.0: dependencies: - abbrev: 1.1.1 + abbrev: 2.0.0 normalize-path@3.0.0: {} @@ -14866,13 +14235,6 @@ snapshots: dependencies: path-key: 4.0.0 - npmlog@5.0.1: - dependencies: - are-we-there-yet: 2.0.0 - console-control-strings: 1.1.0 - gauge: 3.0.2 - set-blocking: 2.0.0 - npx-import@1.1.4: dependencies: execa: 6.1.0 @@ -14903,13 +14265,13 @@ snapshots: '@octokit/request-error': 5.1.0 '@octokit/types': 12.6.0 - ollama-ai-provider@1.0.0(zod@3.23.8): + ollama-ai-provider@1.1.0(zod@3.24.1): dependencies: - '@ai-sdk/provider': 1.0.1 - '@ai-sdk/provider-utils': 2.0.2(zod@3.23.8) + '@ai-sdk/provider': 1.0.2 + '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) partial-json: 0.1.7 optionalDependencies: - zod: 3.23.8 + zod: 3.24.1 on-finished@2.4.1: dependencies: @@ -14937,21 +14299,9 @@ snapshots: regex: 5.0.2 regex-recursion: 4.3.0 - openai-zod-to-json-schema@1.0.3(zod@3.23.8): + openai-zod-to-json-schema@1.0.3(zod@3.24.1): dependencies: - zod: 3.23.8 - - ora@8.1.1: - dependencies: - chalk: 5.3.0 - cli-cursor: 5.0.0 - cli-spinners: 2.9.2 - is-interactive: 2.0.0 - is-unicode-supported: 2.1.0 - log-symbols: 6.0.0 - stdin-discarder: 0.2.2 - string-width: 7.2.0 - strip-ansi: 7.1.0 + zod: 3.24.1 os-locale@6.0.2: dependencies: @@ -15000,12 +14350,12 @@ snapshots: package-json@10.0.1: dependencies: - ky: 1.7.2 + ky: 1.7.3 registry-auth-token: 5.0.3 registry-url: 6.0.1 semver: 7.6.3 - package-manager-detector@0.2.6: {} + package-manager-detector@0.2.7: {} pagefind@1.2.0: optionalDependencies: @@ -15022,10 +14372,10 @@ snapshots: nanoid: 5.0.9 svelte: 4.2.19 - paneforge@1.0.0-next.1(svelte@5.4.0): + paneforge@1.0.0-next.1(svelte@5.13.0): dependencies: - svelte: 5.4.0 - svelte-toolbelt: 0.4.6(svelte@5.4.0) + svelte: 5.13.0 + svelte-toolbelt: 0.4.6(svelte@5.13.0) parent-module@1.0.1: dependencies: @@ -15035,10 +14385,9 @@ snapshots: dependencies: callsites: 3.1.0 - parse-entities@4.0.1: + parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 - character-entities: 2.0.2 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 decode-named-character-reference: 1.0.2 @@ -15145,11 +14494,11 @@ snapshots: dependencies: find-up: 4.1.0 - playwright-core@1.49.0: {} + playwright-core@1.49.1: {} - playwright@1.49.0: + playwright@1.49.1: dependencies: - playwright-core: 1.49.0 + playwright-core: 1.49.1 optionalDependencies: fsevents: 2.3.2 @@ -15161,7 +14510,7 @@ snapshots: postcss-colormin@7.0.2(postcss@8.4.49): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.49 @@ -15169,7 +14518,7 @@ snapshots: postcss-convert-values@7.0.4(postcss@8.4.49): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 postcss: 8.4.49 postcss-value-parser: 4.2.0 @@ -15195,14 +14544,14 @@ snapshots: postcss: 8.4.49 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.9 postcss-import@16.1.0(postcss@8.4.49): dependencies: postcss: 8.4.49 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.9 postcss-js@4.0.1(postcss@8.4.49): dependencies: @@ -15232,7 +14581,7 @@ snapshots: postcss-merge-rules@7.0.4(postcss@8.4.49): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 caniuse-api: 3.0.0 cssnano-utils: 5.0.0(postcss@8.4.49) postcss: 8.4.49 @@ -15252,7 +14601,7 @@ snapshots: postcss-minify-params@7.0.2(postcss@8.4.49): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 cssnano-utils: 5.0.0(postcss@8.4.49) postcss: 8.4.49 postcss-value-parser: 4.2.0 @@ -15299,7 +14648,7 @@ snapshots: postcss-normalize-unicode@7.0.2(postcss@8.4.49): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 postcss: 8.4.49 postcss-value-parser: 4.2.0 @@ -15321,7 +14670,7 @@ snapshots: postcss-reduce-initial@7.0.2(postcss@8.4.49): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 caniuse-api: 3.0.0 postcss: 8.4.49 @@ -15364,16 +14713,9 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - posthog-node@3.1.3: - dependencies: - axios: 1.7.8 - rusha: 0.8.14 - transitivePeerDependencies: - - debug - - posthog-node@4.3.1: + posthog-node@4.3.2: dependencies: - axios: 1.7.8 + axios: 1.7.9 rusha: 0.8.14 transitivePeerDependencies: - debug @@ -15450,12 +14792,6 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -15559,7 +14895,7 @@ snapshots: rehype-stringify@10.0.1: dependencies: '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 unified: 11.0.5 rehype@13.0.2: @@ -15649,9 +14985,9 @@ snapshots: dependencies: protocol-buffers-schema: 3.6.0 - resolve@1.22.8: + resolve@1.22.9: dependencies: - is-core-module: 2.15.1 + is-core-module: 2.16.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -15689,9 +15025,9 @@ snapshots: rfdc@1.4.1: {} - rimraf@3.0.2: + rimraf@5.0.10: dependencies: - glob: 7.2.3 + glob: 10.4.5 robust-predicates@3.0.2: {} @@ -15699,28 +15035,29 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.28.0: + rollup@4.28.1: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.28.0 - '@rollup/rollup-android-arm64': 4.28.0 - '@rollup/rollup-darwin-arm64': 4.28.0 - '@rollup/rollup-darwin-x64': 4.28.0 - '@rollup/rollup-freebsd-arm64': 4.28.0 - '@rollup/rollup-freebsd-x64': 4.28.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.28.0 - '@rollup/rollup-linux-arm-musleabihf': 4.28.0 - '@rollup/rollup-linux-arm64-gnu': 4.28.0 - '@rollup/rollup-linux-arm64-musl': 4.28.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.28.0 - '@rollup/rollup-linux-riscv64-gnu': 4.28.0 - '@rollup/rollup-linux-s390x-gnu': 4.28.0 - '@rollup/rollup-linux-x64-gnu': 4.28.0 - '@rollup/rollup-linux-x64-musl': 4.28.0 - '@rollup/rollup-win32-arm64-msvc': 4.28.0 - '@rollup/rollup-win32-ia32-msvc': 4.28.0 - '@rollup/rollup-win32-x64-msvc': 4.28.0 + '@rollup/rollup-android-arm-eabi': 4.28.1 + '@rollup/rollup-android-arm64': 4.28.1 + '@rollup/rollup-darwin-arm64': 4.28.1 + '@rollup/rollup-darwin-x64': 4.28.1 + '@rollup/rollup-freebsd-arm64': 4.28.1 + '@rollup/rollup-freebsd-x64': 4.28.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.28.1 + '@rollup/rollup-linux-arm-musleabihf': 4.28.1 + '@rollup/rollup-linux-arm64-gnu': 4.28.1 + '@rollup/rollup-linux-arm64-musl': 4.28.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.28.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.28.1 + '@rollup/rollup-linux-riscv64-gnu': 4.28.1 + '@rollup/rollup-linux-s390x-gnu': 4.28.1 + '@rollup/rollup-linux-x64-gnu': 4.28.1 + '@rollup/rollup-linux-x64-musl': 4.28.1 + '@rollup/rollup-win32-arm64-msvc': 4.28.1 + '@rollup/rollup-win32-ia32-msvc': 4.28.1 + '@rollup/rollup-win32-x64-msvc': 4.28.1 fsevents: 2.3.3 rrweb-cssom@0.7.1: {} @@ -15729,15 +15066,15 @@ snapshots: dependencies: queue-microtask: 1.2.3 - runed@0.15.4(svelte@5.4.0): + runed@0.15.4(svelte@5.13.0): dependencies: esm-env: 1.2.1 - svelte: 5.4.0 + svelte: 5.13.0 - runed@0.16.1(svelte@5.4.0): + runed@0.18.0(svelte@5.13.0): dependencies: esm-env: 1.2.1 - svelte: 5.4.0 + svelte: 5.13.0 rusha@0.8.14: {} @@ -15761,32 +15098,24 @@ snapshots: dependencies: typescript: 5.7.2 - section-matter@1.0.0: - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 - secure-json-parse@2.7.0: {} sembear@0.7.0: dependencies: semver: 7.6.3 - semver@6.3.1: {} - semver@7.6.3: {} - send@0.19.1: + send@1.1.0: dependencies: - debug: 2.6.9 - depd: 2.0.0 + debug: 4.4.0 destroy: 1.2.0 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 fresh: 0.5.2 http-errors: 2.0.0 - mime: 1.6.0 + mime-types: 2.1.35 ms: 2.1.3 on-finished: 2.4.1 range-parser: 1.2.1 @@ -15794,12 +15123,8 @@ snapshots: transitivePeerDependencies: - supports-color - seroval@0.5.1: {} - server-destroy@1.0.1: {} - set-blocking@2.0.0: {} - set-cookie-parser@2.7.1: {} setprototypeof@1.2.0: {} @@ -15841,13 +15166,13 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.24.0: + shiki@1.24.2: dependencies: - '@shikijs/core': 1.24.0 - '@shikijs/engine-javascript': 1.24.0 - '@shikijs/engine-oniguruma': 1.24.0 - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/core': 1.24.2 + '@shikijs/engine-javascript': 1.24.2 + '@shikijs/engine-oniguruma': 1.24.2 + '@shikijs/types': 1.24.2 + '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 siginfo@2.0.0: {} @@ -15877,6 +15202,8 @@ snapshots: slash@3.0.0: {} + slash@4.0.0: {} + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 @@ -15891,11 +15218,6 @@ snapshots: dependencies: csstype: 3.1.3 - solid-js@1.7.11: - dependencies: - csstype: 3.1.3 - seroval: 0.5.1 - source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -15928,14 +15250,17 @@ snapshots: svelte: 4.2.19 swrev: 4.0.0 + sswr@2.1.0(svelte@5.13.0): + dependencies: + svelte: 5.13.0 + swrev: 4.0.0 + stackback@0.0.2: {} statuses@2.0.1: {} std-env@3.8.0: {} - stdin-discarder@0.2.2: {} - stream-replace-string@2.0.0: {} streamsearch@1.1.0: {} @@ -15962,10 +15287,6 @@ snapshots: get-east-asian-width: 1.3.0 strip-ansi: 7.1.0 - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 @@ -15979,8 +15300,6 @@ snapshots: dependencies: ansi-regex: 6.1.0 - strip-bom-string@1.0.0: {} - strip-bom@3.0.0: {} strip-bom@4.0.0: {} @@ -16009,7 +15328,7 @@ snapshots: stylehacks@7.0.4(postcss@8.4.49): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 postcss: 8.4.49 postcss-selector-parser: 6.1.2 @@ -16017,7 +15336,7 @@ snapshots: sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 @@ -16042,7 +15361,7 @@ snapshots: dependencies: tiny-glob: 0.2.9 - svelte-check@4.1.0(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.7.2): + svelte-check@4.1.1(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.7.2): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.1 @@ -16054,14 +15373,14 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-check@4.1.0(picomatch@4.0.2)(svelte@5.4.0)(typescript@5.7.2): + svelte-check@4.1.1(picomatch@4.0.2)(svelte@5.13.0)(typescript@5.7.2): dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 4.0.1 fdir: 6.4.2(picomatch@4.0.2) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.4.0 + svelte: 5.13.0 typescript: 5.7.2 transitivePeerDependencies: - picomatch @@ -16086,41 +15405,47 @@ snapshots: dependencies: svelte: 4.2.19 - svelte-parse-markup@0.1.5(svelte@5.4.0): + svelte-parse-markup@0.1.5(svelte@5.13.0): dependencies: - svelte: 5.4.0 + svelte: 5.13.0 svelte-persisted-store@0.12.0(svelte@4.2.19): dependencies: svelte: 4.2.19 - svelte-persisted-store@0.12.0(svelte@5.4.0): + svelte-persisted-store@0.12.0(svelte@5.13.0): dependencies: - svelte: 5.4.0 + svelte: 5.13.0 - svelte-radix@2.0.1(svelte@5.4.0): + svelte-radix@2.0.1(svelte@5.13.0): dependencies: - svelte: 5.4.0 + svelte: 5.13.0 svelte-select@5.8.3: dependencies: svelte-floating-ui: 1.5.8 - svelte-sonner@0.3.28(svelte@5.4.0): + svelte-sonner@0.3.28(svelte@5.13.0): dependencies: - svelte: 5.4.0 + svelte: 5.13.0 - svelte-toolbelt@0.4.6(svelte@5.4.0): + svelte-toolbelt@0.4.6(svelte@5.13.0): dependencies: clsx: 2.1.1 style-to-object: 1.0.8 - svelte: 5.4.0 + svelte: 5.13.0 - svelte2tsx@0.7.30(svelte@5.4.0)(typescript@5.7.2): + svelte-toolbelt@0.5.0(svelte@5.13.0): + dependencies: + clsx: 2.1.1 + style-to-object: 1.0.8 + svelte: 5.13.0 + + svelte2tsx@0.7.30(svelte@5.13.0)(typescript@5.7.2): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 5.4.0 + svelte: 5.13.0 typescript: 5.7.2 svelte@4.2.19: @@ -16137,10 +15462,10 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.14 + magic-string: 0.30.15 periscopic: 3.1.0 - svelte@5.2.2: + svelte@5.13.0: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -16153,10 +15478,10 @@ snapshots: esrap: 1.2.3 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.14 + magic-string: 0.30.15 zimmerframe: 1.1.2 - svelte@5.4.0: + svelte@5.5.3: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -16169,118 +15494,89 @@ snapshots: esrap: 1.2.3 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.14 + magic-string: 0.30.15 zimmerframe: 1.1.2 - sveltekit-flash-message@2.4.4(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19): + sveltekit-flash-message@2.4.4(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19): dependencies: - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) svelte: 4.2.19 - sveltekit-rate-limiter@0.6.1(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1))): + sveltekit-rate-limiter@0.6.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))): dependencies: '@isaacs/ttlcache': 1.4.1 - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) - sveltekit-search-params@3.0.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)): + sveltekit-search-params@3.0.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)): dependencies: - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) svelte: 4.2.19 transitivePeerDependencies: - supports-color - vite - sveltekit-superforms@2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2): - dependencies: - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) - devalue: 5.1.1 - just-clone: 6.2.0 - memoize-weak: 1.0.2 - svelte: 4.2.19 - ts-deepmerge: 7.0.2 - optionalDependencies: - '@effect/schema': 0.75.5(effect@3.11.2) - '@exodus/schemasafe': 1.3.0 - '@gcornut/valibot-json-schema': 0.31.0 - '@sinclair/typebox': 0.34.9 - '@typeschema/class-validator': 0.3.0(@types/json-schema@7.0.15)(class-validator@0.14.1) - '@vinejs/vine': 2.1.0 - arktype: 2.0.0-rc.25 - class-validator: 0.14.1 - effect: 3.11.2 - joi: 17.13.3 - json-schema-to-ts: 3.1.1 - superstruct: 2.0.2 - valibot: 1.0.0-beta.9(typescript@5.7.2) - yup: 1.5.0 - zod: 3.23.8 - zod-to-json-schema: 3.23.5(zod@3.23.8) - transitivePeerDependencies: - - '@types/json-schema' - - typescript - - sveltekit-superforms@2.21.0(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2): + sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2): dependencies: - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@5.0.1(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) devalue: 5.1.1 just-clone: 6.2.0 memoize-weak: 1.0.2 svelte: 4.2.19 ts-deepmerge: 7.0.2 optionalDependencies: - '@effect/schema': 0.75.5(effect@3.11.2) + '@effect/schema': 0.75.5(effect@3.11.7) '@exodus/schemasafe': 1.3.0 '@gcornut/valibot-json-schema': 0.31.0 - '@sinclair/typebox': 0.34.9 + '@sinclair/typebox': 0.34.11 '@typeschema/class-validator': 0.3.0(@types/json-schema@7.0.15)(class-validator@0.14.1) '@vinejs/vine': 2.1.0 - arktype: 2.0.0-rc.25 + arktype: 2.0.0-rc.26 class-validator: 0.14.1 - effect: 3.11.2 + effect: 3.11.7 joi: 17.13.3 json-schema-to-ts: 3.1.1 superstruct: 2.0.2 valibot: 1.0.0-beta.9(typescript@5.7.2) yup: 1.5.0 - zod: 3.23.8 - zod-to-json-schema: 3.23.5(zod@3.23.8) + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) transitivePeerDependencies: - '@types/json-schema' - typescript - sveltekit-superforms@2.21.0(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.4.0)(typescript@5.7.2): + sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2): dependencies: - '@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.4.0)(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) devalue: 5.1.1 just-clone: 6.2.0 memoize-weak: 1.0.2 - svelte: 5.4.0 + svelte: 5.13.0 ts-deepmerge: 7.0.2 optionalDependencies: - '@effect/schema': 0.75.5(effect@3.11.2) + '@effect/schema': 0.75.5(effect@3.11.7) '@exodus/schemasafe': 1.3.0 '@gcornut/valibot-json-schema': 0.31.0 - '@sinclair/typebox': 0.34.9 + '@sinclair/typebox': 0.34.11 '@typeschema/class-validator': 0.3.0(@types/json-schema@7.0.15)(class-validator@0.14.1) '@vinejs/vine': 2.1.0 - arktype: 2.0.0-rc.25 + arktype: 2.0.0-rc.26 class-validator: 0.14.1 - effect: 3.11.2 + effect: 3.11.7 joi: 17.13.3 json-schema-to-ts: 3.1.1 superstruct: 2.0.2 valibot: 1.0.0-beta.9(typescript@5.7.2) yup: 1.5.0 - zod: 3.23.8 - zod-to-json-schema: 3.23.5(zod@3.23.8) + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) transitivePeerDependencies: - '@types/json-schema' - typescript - sveltekit-view-transition@0.5.3(@sveltejs/kit@2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19): + sveltekit-view-transition@0.5.3(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19): dependencies: - '@sveltejs/kit': 2.8.5(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.1)) + '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) svelte: 4.2.19 svgo@3.3.2: @@ -16293,13 +15589,13 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 - swapy@0.4.2: {} + swapy@1.0.2: {} swr@2.2.5(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 - use-sync-external-store: 1.2.2(react@18.3.1) + use-sync-external-store: 1.4.0(react@18.3.1) swrev@4.0.0: {} @@ -16314,16 +15610,16 @@ snapshots: tailwind-merge@2.5.5: {} - tailwind-variants@0.3.0(tailwindcss@3.4.15): + tailwind-variants@0.3.0(tailwindcss@3.4.16): dependencies: tailwind-merge: 2.5.5 - tailwindcss: 3.4.15 + tailwindcss: 3.4.16 - tailwindcss-animate@1.0.7(tailwindcss@3.4.15): + tailwindcss-animate@1.0.7(tailwindcss@3.4.16): dependencies: - tailwindcss: 3.4.15 + tailwindcss: 3.4.16 - tailwindcss@3.4.15: + tailwindcss@3.4.16: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -16334,7 +15630,7 @@ snapshots: glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.21.6 - lilconfig: 2.1.0 + lilconfig: 3.1.3 micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 @@ -16345,19 +15641,19 @@ snapshots: postcss-load-config: 4.0.2(postcss@8.4.49) postcss-nested: 6.2.0(postcss@8.4.49) postcss-selector-parser: 6.1.2 - resolve: 1.22.8 + resolve: 1.22.9 sucrase: 3.35.0 transitivePeerDependencies: - ts-node - tar@6.2.1: + tar@7.4.3: dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 5.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.0.1 + mkdirp: 3.0.1 + yallist: 5.0.0 term-size@2.2.1: {} @@ -16413,11 +15709,11 @@ snapshots: tinyspy@3.0.2: {} - tldts-core@6.1.65: {} + tldts-core@6.1.68: {} - tldts@6.1.65: + tldts@6.1.68: dependencies: - tldts-core: 6.1.65 + tldts-core: 6.1.68 tmp@0.0.33: dependencies: @@ -16444,7 +15740,7 @@ snapshots: tough-cookie@5.0.0: dependencies: - tldts: 6.1.65 + tldts: 6.1.68 tr46@0.0.3: {} @@ -16488,13 +15784,13 @@ snapshots: cac: 6.7.14 chokidar: 4.0.1 consola: 3.2.3 - debug: 4.3.7 + debug: 4.4.0 esbuild: 0.24.0 joycon: 3.1.1 picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.49)(yaml@2.6.1) resolve-from: 5.0.0 - rollup: 4.28.0 + rollup: 4.28.1 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.1 @@ -16539,10 +15835,10 @@ snapshots: type-fest@2.19.0: optional: true - type-fest@4.27.0: {} - type-fest@4.30.0: {} + type-fest@4.30.1: {} + type@2.7.3: {} typesafe-path@0.2.2: {} @@ -16555,6 +15851,8 @@ snapshots: typescript@5.7.2: {} + ultrahtml@1.5.3: {} + undici-types@6.20.0: {} unfetch@4.2.0: {} @@ -16631,22 +15929,15 @@ snapshots: acorn: 8.14.0 webpack-virtual-modules: 0.6.2 - unplugin@1.5.1: - dependencies: - acorn: 8.14.0 - chokidar: 3.6.0 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.6.2 - - update-browserslist-db@1.1.1(browserslist@4.24.2): + update-browserslist-db@1.1.1(browserslist@4.24.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 escalade: 3.2.0 picocolors: 1.1.1 urlpattern-polyfill@10.0.0: {} - use-sync-external-store@1.2.2(react@18.3.1): + use-sync-external-store@1.4.0(react@18.3.1): dependencies: react: 18.3.1 @@ -16673,11 +15964,17 @@ snapshots: value-or-promise@1.0.12: {} - vaul-svelte@1.0.0-next.2(svelte@5.4.0): + vaul-svelte@1.0.0-next.2(svelte@5.13.0): dependencies: - bits-ui: 1.0.0-next.51(svelte@5.4.0) - svelte: 5.4.0 - svelte-toolbelt: 0.4.6(svelte@5.4.0) + bits-ui: 1.0.0-next.51(svelte@5.13.0) + svelte: 5.13.0 + svelte-toolbelt: 0.4.6(svelte@5.13.0) + + vaul-svelte@1.0.0-next.3(svelte@5.13.0): + dependencies: + bits-ui: 1.0.0-next.71(svelte@5.13.0) + svelte: 5.13.0 + svelte-toolbelt: 0.4.6(svelte@5.13.0) vfile-location@5.0.3: dependencies: @@ -16694,21 +15991,21 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-imagetools@7.0.5(rollup@4.28.0): + vite-imagetools@7.0.5(rollup@4.28.1): dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + '@rollup/pluginutils': 5.1.3(rollup@4.28.1) imagetools-core: 7.0.2 sharp: 0.33.5 transitivePeerDependencies: - rollup - vite-node@2.1.8(@types/node@22.10.1): + vite-node@2.1.8(@types/node@22.10.2): dependencies: cac: 6.7.14 - debug: 4.3.7 + debug: 4.4.0 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.11(@types/node@22.10.1) + vite: 5.4.11(@types/node@22.10.2) transitivePeerDependencies: - '@types/node' - less @@ -16725,62 +16022,58 @@ snapshots: '@kitql/helpers': 0.8.10 micromatch: 4.0.8 - vite@5.4.11(@types/node@22.10.1): + vite@5.4.11(@types/node@22.10.2): dependencies: esbuild: 0.21.5 postcss: 8.4.49 - rollup: 4.28.0 + rollup: 4.28.1 optionalDependencies: - '@types/node': 22.10.1 + '@types/node': 22.10.2 fsevents: 2.3.3 - vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1): + vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1): dependencies: esbuild: 0.24.0 postcss: 8.4.49 - rollup: 4.28.0 + rollup: 4.28.1 optionalDependencies: - '@types/node': 22.10.1 + '@types/node': 22.10.2 fsevents: 2.3.3 jiti: 1.21.6 yaml: 2.6.1 - vitefu@0.2.5(vite@5.4.11(@types/node@22.10.1)): + vitefu@0.2.5(vite@5.4.11(@types/node@22.10.2)): optionalDependencies: - vite: 5.4.11(@types/node@22.10.1) + vite: 5.4.11(@types/node@22.10.2) - vitefu@1.0.4(vite@5.4.11(@types/node@22.10.1)): + vitefu@1.0.4(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)): optionalDependencies: - vite: 5.4.11(@types/node@22.10.1) + vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) - vitefu@1.0.4(vite@6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1)): - optionalDependencies: - vite: 6.0.2(@types/node@22.10.1)(jiti@1.21.6)(yaml@2.6.1) - - vitest@2.1.8(@types/node@22.10.1)(@vitest/ui@2.1.8)(jsdom@25.0.1): + vitest@2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@25.0.1): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.1)) + '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.2)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 '@vitest/spy': 2.1.8 '@vitest/utils': 2.1.8 chai: 5.1.2 - debug: 4.3.7 + debug: 4.4.0 expect-type: 1.1.0 - magic-string: 0.30.14 + magic-string: 0.30.15 pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 tinyexec: 0.3.1 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.11(@types/node@22.10.1) - vite-node: 2.1.8(@types/node@22.10.1) + vite: 5.4.11(@types/node@22.10.2) + vite-node: 2.1.8(@types/node@22.10.2) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.1 + '@types/node': 22.10.2 '@vitest/ui': 2.1.8(vitest@2.1.8) jsdom: 25.0.1 transitivePeerDependencies: @@ -16794,44 +16087,44 @@ snapshots: - supports-color - terser - volar-service-css@0.0.62(@volar/language-service@2.4.10): + volar-service-css@0.0.62(@volar/language-service@2.4.11): dependencies: vscode-css-languageservice: 6.3.2 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - volar-service-emmet@0.0.62(@volar/language-service@2.4.10): + volar-service-emmet@0.0.62(@volar/language-service@2.4.11): dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.11.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - volar-service-html@0.0.62(@volar/language-service@2.4.10): + volar-service-html@0.0.62(@volar/language-service@2.4.11): dependencies: vscode-html-languageservice: 5.3.1 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - volar-service-prettier@0.0.62(@volar/language-service@2.4.10): + volar-service-prettier@0.0.62(@volar/language-service@2.4.11): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.10): + volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.11): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - volar-service-typescript@0.0.62(@volar/language-service@2.4.10): + volar-service-typescript@0.0.62(@volar/language-service@2.4.11): dependencies: path-browserify: 1.0.1 semver: 7.6.3 @@ -16840,14 +16133,14 @@ snapshots: vscode-nls: 5.2.0 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 - volar-service-yaml@0.0.62(@volar/language-service@2.4.10): + volar-service-yaml@0.0.62(@volar/language-service@2.4.11): dependencies: vscode-uri: 3.0.8 yaml-language-server: 1.15.0 optionalDependencies: - '@volar/language-service': 2.4.10 + '@volar/language-service': 2.4.11 vscode-css-languageservice@6.3.2: dependencies: @@ -16917,16 +16210,12 @@ snapshots: web-streams-polyfill@3.3.3: {} - web-vitals@3.5.2: {} - webidl-conversions@3.0.1: {} webidl-conversions@4.0.2: {} webidl-conversions@7.0.0: {} - webpack-sources@3.2.3: {} - webpack-virtual-modules@0.6.2: {} whatwg-encoding@3.1.1: @@ -16935,7 +16224,7 @@ snapshots: whatwg-mimetype@4.0.0: {} - whatwg-url@14.0.0: + whatwg-url@14.1.0: dependencies: tr46: 5.0.0 webidl-conversions: 7.0.0 @@ -16970,10 +16259,6 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 - wide-align@1.1.5: - dependencies: - string-width: 4.2.3 - widest-line@5.0.0: dependencies: string-width: 7.2.0 @@ -17012,9 +16297,7 @@ snapshots: y18n@5.0.8: {} - yallist@3.1.1: {} - - yallist@4.0.0: {} + yallist@5.0.0: {} yaml-language-server@1.15.0: dependencies: @@ -17035,8 +16318,6 @@ snapshots: yaml@2.2.2: {} - yaml@2.5.1: {} - yaml@2.6.1: {} yargs-parser@21.1.1: {} @@ -17055,6 +16336,12 @@ snapshots: yocto-queue@1.1.1: {} + yocto-spinner@0.1.2: + dependencies: + yoctocolors: 2.1.1 + + yoctocolors@2.1.1: {} + yup@1.5.0: dependencies: property-expr: 2.0.6 @@ -17065,19 +16352,19 @@ snapshots: zimmerframe@1.1.2: {} - zod-to-json-schema@3.23.5(zod@3.23.8): + zod-to-json-schema@3.24.1(zod@3.24.1): dependencies: - zod: 3.23.8 + zod: 3.24.1 - zod-to-ts@1.2.0(typescript@5.7.2)(zod@3.23.8): + zod-to-ts@1.2.0(typescript@5.7.2)(zod@3.24.1): dependencies: typescript: 5.7.2 - zod: 3.23.8 + zod: 3.24.1 - zod-validation-error@3.4.0(zod@3.23.8): + zod-validation-error@3.4.0(zod@3.24.1): dependencies: - zod: 3.23.8 + zod: 3.24.1 - zod@3.23.8: {} + zod@3.24.1: {} zwitch@2.0.4: {} From ffcb6233e07c6ee748a69a83f76454463ee63e69 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Sat, 14 Dec 2024 14:16:30 -0800 Subject: [PATCH 03/77] fix(nhost): updated seeds --- docs/hasura.md | 11 +++++-- nhost/nhost.toml | 14 ++++++++- nhost/overlays/local.json | 5 ++++ nhost/seeds/default/011_rules.sql | 12 ++++---- nhost/seeds/default/012_policies.sql | 12 ++++---- nhost/tests/auth.http | 43 ++++++++++++++++++++++++---- 6 files changed, 76 insertions(+), 21 deletions(-) diff --git a/docs/hasura.md b/docs/hasura.md index f4bda6df4..86ffa6378 100644 --- a/docs/hasura.md +++ b/docs/hasura.md @@ -40,12 +40,17 @@ hasura console # Create a new seed by exporting data from tables already present in the database: # use `--insecure-skip-tls-verify` if needed -hasura seed create organizations --database-name default --from-table organizations --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret hasura seed create users --database-name default --from-table auth.users --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret -hasura seed create devices --database-name default --from-table devices --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret +hasura seed create user_roles --database-name default --from-table auth.user_roles --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret +hasura seed create organizations --database-name default --from-table public.organizations --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret +hasura seed create user_org_roles --database-name default --from-table public.user_org_roles --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret +hasura seed create groups --database-name default --from-table public.groups --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret +hasura seed create user_groups --database-name default --from-table public.user_groups --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret hasura seed create rules --database-name default --from-table rules --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret -hasura seed create pools --database-name default --from-table pools --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret hasura seed create policies --database-name default --from-table policies --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret +hasura seed create devices --database-name default --from-table devices --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret +hasura seed create pools --database-name default --from-table pools --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret + # Export data from multiple tables: # hasura seed create policies_organization --database-name default --from-table policies --from-table organization diff --git a/nhost/nhost.toml b/nhost/nhost.toml index 3e331c4c2..ca126f444 100644 --- a/nhost/nhost.toml +++ b/nhost/nhost.toml @@ -30,6 +30,10 @@ level = 'warn' [hasura.events] httpPoolSize = 100 +[hasura.rateLimit] +limit = 100 +interval = '1m' + [graphql] [graphql.security] forbidAminSecret = false @@ -39,6 +43,10 @@ maxDepthQueries = 4 [functions.node] version = 20 +[functions.rateLimit] +limit = 100 +interval = '15m' + [auth] version = '0.36.1' @@ -118,8 +126,8 @@ enabled = false enabled = false [auth.method.oauth.azuread] -enabled = true tenant = '{{ secrets.AUTH_PROVIDER_AZUREAD_TENANT }}' +enabled = true clientId = '{{ secrets.AUTH_PROVIDER_AZUREAD_CLIENT_ID }}' clientSecret = '{{ secrets.AUTH_PROVIDER_AZUREAD_CLIENT_SECRET }}' @@ -236,6 +244,10 @@ method = 'PLAIN' [storage] version = '0.6.1' +[storage.rateLimit] +limit = 100 +interval = '15m' + # [storage.antivirus] # server = 'tcp://run-clamav:3310' diff --git a/nhost/overlays/local.json b/nhost/overlays/local.json index a051a290a..bb680fc30 100644 --- a/nhost/overlays/local.json +++ b/nhost/overlays/local.json @@ -27,6 +27,11 @@ "path": "/auth/version", "value": "0.36.1-sumo" }, + { + "op": "replace", + "path": "/auth/rateLimit/signups/limit", + "value": 100 + }, { "op": "add", "path": "/auth/method/webauthn/relyingParty/origins/1", diff --git a/nhost/seeds/default/011_rules.sql b/nhost/seeds/default/011_rules.sql index c938475dd..f20f61557 100644 --- a/nhost/seeds/default/011_rules.sql +++ b/nhost/seeds/default/011_rules.sql @@ -1,7 +1,7 @@ SET check_function_bodies = false; -INSERT INTO public.rules (id, display_name, description, tags, metadata, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight, created_at, created_by, updated_at, updated_by, org_id) VALUES ('8e65cf49-ccd3-4d75-85be-0f4256646bdb', 'block youtube', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', true, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 600, '2023-05-30 04:55:22.03475+00', 'sumo@demo.com', '2023-05-30 04:55:22.03475+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); -INSERT INTO public.rules (id, display_name, description, tags, metadata, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight, created_at, created_by, updated_at, updated_by, org_id) VALUES ('e79ec959-26a5-4ac1-9920-36eab3e01841', 'block youtube 159', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', true, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 670, '2023-05-30 05:04:48.705066+00', 'sumo@demo.com', '2023-05-30 06:21:34.515711+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); -INSERT INTO public.rules (id, display_name, description, tags, metadata, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight, created_at, created_by, updated_at, updated_by, org_id) VALUES ('f7f97727-8f96-4427-9a4e-b53e831e1ebf', 'block youtube 170', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', true, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 670, '2023-05-30 06:50:58.969585+00', 'sumo@demo.com', '2023-05-30 06:50:58.969585+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); -INSERT INTO public.rules (id, display_name, description, tags, metadata, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight, created_at, created_by, updated_at, updated_by, org_id) VALUES ('edf5cd6a-9ca7-4f7b-9836-ecc656e630a0', 'block youtube 67', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', false, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 670, '2023-05-30 06:51:34.115969+00', 'sumo@demo.com', '2023-05-30 06:52:07.86214+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); -INSERT INTO public.rules (id, display_name, description, tags, metadata, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight, created_at, created_by, updated_at, updated_by, org_id) VALUES ('ff9cf187-6c4b-4fd5-aa6d-25c40980453e', 'block youtube 187', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', true, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 670, '2023-05-30 05:00:24.89965+00', 'sumo@demo.com', '2023-05-30 06:54:15.969211+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); -INSERT INTO public.rules (id, display_name, description, tags, metadata, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight, created_at, created_by, updated_at, updated_by, org_id) VALUES ('9cf25f46-f317-405a-a0a5-0e3209276dfe', 'block youtube 95', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', false, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 670, '2023-05-30 06:54:21.151096+00', 'sumo@demo.com', '2023-05-30 06:54:37.609328+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); +INSERT INTO public.rules (id, display_name, description, tags, metadata, created_by, updated_by, created_at, updated_at, org_id, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight) VALUES ('8e65cf49-ccd3-4d75-85be-0f4256646bdb', 'block youtube', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '2023-05-30 04:55:22.03475+00', '2023-05-30 04:55:22.03475+00', '8dfd9a31-de01-47be-92a7-ba1c720c6270', true, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 600); +INSERT INTO public.rules (id, display_name, description, tags, metadata, created_by, updated_by, created_at, updated_at, org_id, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight) VALUES ('e79ec959-26a5-4ac1-9920-36eab3e01841', 'block youtube 159', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '2023-05-30 05:04:48.705066+00', '2023-05-30 06:21:34.515711+00', '8dfd9a31-de01-47be-92a7-ba1c720c6270', true, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 670); +INSERT INTO public.rules (id, display_name, description, tags, metadata, created_by, updated_by, created_at, updated_at, org_id, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight) VALUES ('f7f97727-8f96-4427-9a4e-b53e831e1ebf', 'block youtube 170', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '2023-05-30 06:50:58.969585+00', '2023-05-30 06:50:58.969585+00', '8dfd9a31-de01-47be-92a7-ba1c720c6270', true, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 670); +INSERT INTO public.rules (id, display_name, description, tags, metadata, created_by, updated_by, created_at, updated_at, org_id, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight) VALUES ('edf5cd6a-9ca7-4f7b-9836-ecc656e630a0', 'block youtube 67', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', '2023-05-30 06:51:34.115969+00', '2023-05-30 06:52:07.86214+00', 'd5dbb6b6-5e43-4dca-b855-be9b65b6695b', false, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 670); +INSERT INTO public.rules (id, display_name, description, tags, metadata, created_by, updated_by, created_at, updated_at, org_id, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight) VALUES ('ff9cf187-6c4b-4fd5-aa6d-25c40980453e', 'block youtube 187', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', '2023-05-30 05:00:24.89965+00', '2023-05-30 06:54:15.969211+00', 'd5dbb6b6-5e43-4dca-b855-be9b65b6695b', true, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 670); +INSERT INTO public.rules (id, display_name, description, tags, metadata, created_by, updated_by, created_at, updated_at, org_id, shared, source, source_port, destination, destination_port, protocol, action, direction, app_id, throttle_rate, weight) VALUES ('9cf25f46-f317-405a-a0a5-0e3209276dfe', 'block youtube 95', 'block youtube policy', '{tz,us}', '{"sumo": "demo"}', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', '2023-05-30 06:54:21.151096+00', '2023-05-30 06:54:37.609328+00', 'd5dbb6b6-5e43-4dca-b855-be9b65b6695b', false, '0.0.0.0', '5000', '1.1.1.1', '443', 'Any', 'block', 'egress', 'myapp.exe', '80', 670); diff --git a/nhost/seeds/default/012_policies.sql b/nhost/seeds/default/012_policies.sql index 58cfc5e28..fe392a6d4 100644 --- a/nhost/seeds/default/012_policies.sql +++ b/nhost/seeds/default/012_policies.sql @@ -1,7 +1,7 @@ SET check_function_bodies = false; -INSERT INTO public.policies (id, active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type, rule_id, created_at, created_by, updated_at, updated_by, org_id) VALUES ('d5e518ce-e289-4ef5-945b-3a56cc802ec3', true, '2023-05-21 00:59:07.11014+00', '2024-05-21 00:59:07.11014+00', 500, '076a79f9-ed08-4e28-a4c3-8d4e0aa269a3', 'sumo@demo.com', 'sumo demo', 'user', '8e65cf49-ccd3-4d75-85be-0f4256646bdb', '2023-05-30 04:55:22.03475+00', 'sumo@demo.com', '2023-05-30 04:55:22.03475+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); -INSERT INTO public.policies (id, active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type, rule_id, created_at, created_by, updated_at, updated_by, org_id) VALUES ('cb8d1e6c-06e4-4ff9-ba7d-103dbe4308f7', true, '2023-05-30 05:04:49+00', '2024-05-21 00:59:07.11014+00', 501, '076a79f9-ed08-4e28-a4c3-8d4e0aa269a3', 'sumo@demo.com', 'sumo demo', 'user', 'e79ec959-26a5-4ac1-9920-36eab3e01841', '2023-05-30 05:04:48.705066+00', 'sumo@demo.com', '2023-05-30 06:49:54.449465+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); -INSERT INTO public.policies (id, active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type, rule_id, created_at, created_by, updated_at, updated_by, org_id) VALUES ('cfe0272b-18ee-4f41-b690-97bb9b4ec809', true, '2023-05-30 06:50:59+00', '2024-05-21 00:59:07.11014+00', 500, '076a79f9-ed08-4e28-a4c3-8d4e0aa269a3', 'sumo@demo.com', 'sumo demo', 'user', 'f7f97727-8f96-4427-9a4e-b53e831e1ebf', '2023-05-30 06:50:58.969585+00', 'sumo@demo.com', '2023-05-30 06:51:15.614023+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); -INSERT INTO public.policies (id, active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type, rule_id, created_at, created_by, updated_at, updated_by, org_id) VALUES ('bd0e4001-46ab-45bc-bcd1-3cffda5f14a0', true, '2023-05-30 06:51:35+00', '2024-05-21 00:59:07.11014+00', 500, '7f3b9e08-65e2-4ae4-a7df-0d7ff9a34378', 'manager@chinthagunta.com', 'manager at chinthagunta', 'user', 'edf5cd6a-9ca7-4f7b-9836-ecc656e630a0', '2023-05-30 06:51:34.115969+00', 'sumo@demo.com', '2023-05-30 06:52:07.86214+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); -INSERT INTO public.policies (id, active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type, rule_id, created_at, created_by, updated_at, updated_by, org_id) VALUES ('a0cadc1c-c4ad-4538-9518-25efd817f4ce', true, '2023-05-21 00:59:07.11014+00', '2024-05-21 00:59:07.11014+00', 501, '8c7bb3ac-e469-4a07-8d30-e607a278abdc', 'user1@chinthagunta.com', 'user1 at chinthagunta', 'user', 'ff9cf187-6c4b-4fd5-aa6d-25c40980453e', '2023-05-30 05:00:24.89965+00', 'sumo@demo.com', '2023-05-30 06:54:15.969211+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); -INSERT INTO public.policies (id, active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type, rule_id, created_at, created_by, updated_at, updated_by, org_id) VALUES ('0ff16490-11d1-49ca-86e3-b65912901ec5', true, '2023-05-30 06:54:22+00', '2024-05-21 00:59:07.11014+00', 500, 'f5c7d469-c5a1-412d-9551-2263091c12ff', 'user2@chinthagunta.com', 'user2 at chinthagunta', 'user', '9cf25f46-f317-405a-a0a5-0e3209276dfe', '2023-05-30 06:54:21.151096+00', 'sumo@demo.com', '2023-05-30 06:54:37.609328+00', 'sumo@demo.com', '8dfd9a31-de01-47be-92a7-ba1c720c6270'); +INSERT INTO public.policies (id, created_by, updated_by, created_at, updated_at, org_id, rule_id,active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type) VALUES ('d5e518ce-e289-4ef5-945b-3a56cc802ec3', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f','2023-05-30 04:55:22.03475+00', '2023-05-30 04:55:22.03475+00', '8dfd9a31-de01-47be-92a7-ba1c720c6270','8e65cf49-ccd3-4d75-85be-0f4256646bdb', true, '2023-05-21 00:59:07.11014+00', '2024-05-21 00:59:07.11014+00',500, '076a79f9-ed08-4e28-a4c3-8d4e0aa269a3', 'david.bowie@species.com','David Bowie', 'user'); +INSERT INTO public.policies (id, created_by, updated_by, created_at, updated_at, org_id, rule_id,active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type) VALUES ('cb8d1e6c-06e4-4ff9-ba7d-103dbe4308f7', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f','2023-05-30 05:04:48.705066+00', '2023-05-30 06:49:54.449465+00', '8dfd9a31-de01-47be-92a7-ba1c720c6270','e79ec959-26a5-4ac1-9920-36eab3e01841', true, '2023-05-30 05:04:49+00', '2024-05-21 00:59:07.11014+00',501, '076a79f9-ed08-4e28-a4c3-8d4e0aa269a3', 'david.bowie@species.com','David Bowie', 'user'); +INSERT INTO public.policies (id, created_by, updated_by, created_at, updated_at, org_id, rule_id,active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type) VALUES ('cfe0272b-18ee-4f41-b690-97bb9b4ec809', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f','2023-05-30 06:50:58.969585+00', '2023-05-30 06:51:15.614023+00', '8dfd9a31-de01-47be-92a7-ba1c720c6270','f7f97727-8f96-4427-9a4e-b53e831e1ebf', true, '2023-05-30 06:50:59+00', '2024-05-21 00:59:07.11014+00',500, '076a79f9-ed08-4e28-a4c3-8d4e0aa269a3', 'david.bowie@species.com','David Bowie', 'user'); +INSERT INTO public.policies (id, created_by, updated_by, created_at, updated_at, org_id, rule_id,active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type) VALUES ('bd0e4001-46ab-45bc-bcd1-3cffda5f14a0', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83','2023-05-30 06:51:34.115969+00', '2023-05-30 06:52:07.86214+00', 'd5dbb6b6-5e43-4dca-b855-be9b65b6695b','edf5cd6a-9ca7-4f7b-9836-ecc656e630a0', true, '2023-05-30 06:51:35+00', '2024-05-21 00:59:07.11014+00',500, '7f3b9e08-65e2-4ae4-a7df-0d7ff9a34378', 'john.smith@chinthagunta.com','John Smith', 'user'); +INSERT INTO public.policies (id, created_by, updated_by, created_at, updated_at, org_id, rule_id,active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type) VALUES ('a0cadc1c-c4ad-4538-9518-25efd817f4ce', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83','2023-05-30 05:00:24.89965+00','2023-05-30 06:54:15.969211+00', 'd5dbb6b6-5e43-4dca-b855-be9b65b6695b','ff9cf187-6c4b-4fd5-aa6d-25c40980453e', true, '2023-05-21 00:59:07.11014+00', '2024-05-21 00:59:07.11014+00',501, '8c7bb3ac-e469-4a07-8d30-e607a278abdc', 'john.smith@chinthagunta.com','John Smith', 'user'); +INSERT INTO public.policies (id, created_by, updated_by, created_at, updated_at, org_id, rule_id,active, valid_from, valid_to, weight, subject_id, subject_secondary_id, subject_display_name, subject_type) VALUES ('0ff16490-11d1-49ca-86e3-b65912901ec5', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83','2023-05-30 06:54:21.151096+00','2023-05-30 06:54:37.609328+00', 'd5dbb6b6-5e43-4dca-b855-be9b65b6695b','9cf25f46-f317-405a-a0a5-0e3209276dfe', true, '2023-05-30 06:54:22+00', '2024-05-21 00:59:07.11014+00',500, 'f5c7d469-c5a1-412d-9551-2263091c12ff', 'john.smith@chinthagunta.com','John Smith', 'user'); diff --git a/nhost/tests/auth.http b/nhost/tests/auth.http index 0c46c6fb1..266d041f8 100644 --- a/nhost/tests/auth.http +++ b/nhost/tests/auth.http @@ -62,15 +62,11 @@ POST {{authEndpoint}}/signup/email-password Content-Type: application/json { - "email": "john.smith@gmail.com", + "email": "john.smith@chinthagunta.com", "password": "Str0ngPassw#ord-94|%", "options": { "displayName": "John Smith", "locale": "en", - "metadata": { - "plan": "free", - "default_org": "chinthagunta" - }, "redirectTo": "https://console.traefik.me:5173/dashboard" } } @@ -79,6 +75,43 @@ Content-Type: application/json @accessToken = {{createUser.response.body.$.session.accessToken}} ### +### Create User2 +# @name createUser2 +POST {{authEndpoint}}/signup/email-password +Content-Type: application/json + +{ + "email": "david.bowie@species.com", + "password": "Str0ngPassw#ord-94|%", + "options": { + "displayName": "David Bowie", + "locale": "en", + "redirectTo": "https://console.traefik.me:5173/dashboard" + } +} + + + +### SignIn1 +# @name signIn +POST {{authEndpoint}}/signin/email-password +Content-Type: application/json + +{ + "email": "john.smith@chinthagunta.com", + "password": "Str0ngPassw#ord-94|%" +} + +### SignIn2 +# @name signIn +POST {{authEndpoint}}/signin/email-password +Content-Type: application/json + +{ + "email": "david.bowie@species.com", + "password": "Str0ngPassw#ord-94|%" +} + ### Create PAT # @name createPAT POST {{authEndpoint}}/pat From 0d6bcf7eb87646f414c39ba8d557d085c6d2f476 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Sun, 15 Dec 2024 12:47:17 -0800 Subject: [PATCH 04/77] fix(console): signup now runs on client-side --- apps/console/src/lib/i18n.ts | 1 + apps/console/src/lib/schema/user.ts | 4 +- apps/console/src/lib/server/hooks/guard.ts | 10 +- apps/console/src/lib/server/hooks/tenant.ts | 2 +- apps/console/src/lib/stores/nhost.ts | 1 + apps/console/src/lib/types/index.ts | 9 +- .../console/src/routes/(app)/profile/+page.ts | 3 + .../src/routes/(auth)/signup/+page.gql | 6 - .../src/routes/(auth)/signup/+page.server.ts | 94 --------- .../src/routes/(auth)/signup/+page.svelte | 111 ++++++----- apps/smart/src/app.d.ts | 6 +- apps/smart/src/lib/ai/nlp/actions.ts | 181 ++++++++++++++++++ apps/smart/src/lib/ai/nlp/types.ts | 60 ++++++ docs/awesome-sveltekit.md | 8 + 14 files changed, 338 insertions(+), 158 deletions(-) delete mode 100644 apps/console/src/routes/(auth)/signup/+page.gql delete mode 100644 apps/console/src/routes/(auth)/signup/+page.server.ts create mode 100644 apps/smart/src/lib/ai/nlp/actions.ts create mode 100644 apps/smart/src/lib/ai/nlp/types.ts diff --git a/apps/console/src/lib/i18n.ts b/apps/console/src/lib/i18n.ts index a42322c9e..cf5ca1246 100644 --- a/apps/console/src/lib/i18n.ts +++ b/apps/console/src/lib/i18n.ts @@ -9,6 +9,7 @@ export const i18n = createI18n(runtime, { exclude: ['/base/not-translated'], textDirection: { en: 'ltr', + es: 'ltr', de: 'ltr', }, }); diff --git a/apps/console/src/lib/schema/user.ts b/apps/console/src/lib/schema/user.ts index 4fe82136c..601b7f71f 100644 --- a/apps/console/src/lib/schema/user.ts +++ b/apps/console/src/lib/schema/user.ts @@ -107,16 +107,16 @@ export const pwlSchema = userSchema */ export const signUpSchema = userSchema .pick({ + locale: true, firstName: true, lastName: true, email: true, password: true, confirmPassword: true, terms: true, - organization: true, }) .extend({ - redirectTo: z.string().default('/'), + redirectTo: z.string().default('/dashboard'), }) .superRefine((data, ctx) => checkConfirmPassword(ctx, data.confirmPassword, data.password)); export type SignUpSchema = typeof signUpSchema; diff --git a/apps/console/src/lib/server/hooks/guard.ts b/apps/console/src/lib/server/hooks/guard.ts index 0d9fbf157..091f2024d 100644 --- a/apps/console/src/lib/server/hooks/guard.ts +++ b/apps/console/src/lib/server/hooks/guard.ts @@ -10,7 +10,7 @@ import { redirect as redirectWithFlash } from 'sveltekit-flash-message/server'; */ const log = new Logger('server:middleware:guard'); // TODO define roles in apps/console/src/lib/links.ts -const managerPaths = ['/organizations', '/users', '/groups', '/delegation']; +const adminPaths = ['/all/organizations']; const publicPaths = [ '/favicon.ico', '/robots.txt', @@ -85,12 +85,12 @@ export const guard = (async ({ event, resolve }) => { // log.debug({ claims }); const roles = nhost.auth.getHasuraClaim('allowed-roles'); const role = nhost.auth.getHasuraClaim('default-role'); - const orgs = nhost.auth.getHasuraClaim('allowed-orgs'); - const org = nhost.auth.getHasuraClaim('default-org'); + const orgs = nhost.auth.getHasuraClaim('org-ids'); + const org = nhost.auth.getHasuraClaim('org-id'); log.debug({ roles, role, orgs, org }); - if (startsWith(pathname, managerPaths)) { - if (role !== 'manager') { + if (startsWith(pathname, adminPaths)) { + if (role !== 'sys:admin') { // if (!roles?.includes('manager')) { const message: App.Superforms.Message = { type: 'warning', message: "You don't have access" } as const; redirectWithFlash(303, i18n.resolveRoute('/dashboard'), message, event); diff --git a/apps/console/src/lib/server/hooks/tenant.ts b/apps/console/src/lib/server/hooks/tenant.ts index 9dacc182f..9deaff153 100644 --- a/apps/console/src/lib/server/hooks/tenant.ts +++ b/apps/console/src/lib/server/hooks/tenant.ts @@ -4,7 +4,7 @@ export const log = new Logger('server:middleware:detect-tenant'); export const tenant = (async ({ event, resolve }) => { const tenant = event.request.headers.get('host')?.split('.')[0]; - event.locals.defaultOrg = tenant; + event.locals.currentOrg = tenant; const result = await resolve(event); return result; }) satisfies Handle; diff --git a/apps/console/src/lib/stores/nhost.ts b/apps/console/src/lib/stores/nhost.ts index 25897e974..ba233a51b 100644 --- a/apps/console/src/lib/stores/nhost.ts +++ b/apps/console/src/lib/stores/nhost.ts @@ -9,6 +9,7 @@ import Cookies from 'js-cookie'; import { getContext, onDestroy, setContext } from 'svelte'; import { type Readable, type Writable, derived, get, readable, readonly, writable } from 'svelte/store'; +// TODO: change to Svelte 5 Class: https://x.com/ankurpsinghal/status/1856719524059283897 const skQuery = new SearchSecurityKeysStore().artifact.raw; export class SvelteKitNhostClient extends NhostClient { #log = new Logger('auth.store.client'); diff --git a/apps/console/src/lib/types/index.ts b/apps/console/src/lib/types/index.ts index 401ef5630..750b6b0f8 100644 --- a/apps/console/src/lib/types/index.ts +++ b/apps/console/src/lib/types/index.ts @@ -35,13 +35,14 @@ interface GQLResult { */ export enum Roles { - Me = 'me', Anonymous = 'anonymous', User = 'user', - Owner = 'org:owner', - Admin = 'org:admin', - Billing = 'org:billing', + Me = 'me', Member = 'org:member', + Billing = 'org:billing', + Admin = 'org:admin', + Owner = 'org:owner', + SysAdmin = 'sys:admin', } export type Link = { diff --git a/apps/console/src/routes/(app)/profile/+page.ts b/apps/console/src/routes/(app)/profile/+page.ts index c935ca9bb..b63255a44 100644 --- a/apps/console/src/routes/(app)/profile/+page.ts +++ b/apps/console/src/routes/(app)/profile/+page.ts @@ -1,11 +1,14 @@ import { load_GetUser } from '$houdini'; import { Logger } from '@spectacular/utils'; import { error } from '@sveltejs/kit'; +// import { getNhostClient } from '$lib/stores/nhost'; import type { PageLoad, GetUserVariables as Variables } from './$houdini'; const log = new Logger('user.profile.browser'); export const _GetUserVariables: Variables = async (event) => { + // const user = nhost.auth.getUser() + // const userId = user?.id; const { session } = await event.parent(); const userId = session?.user.id; if (!userId) { diff --git a/apps/console/src/routes/(auth)/signup/+page.gql b/apps/console/src/routes/(auth)/signup/+page.gql deleted file mode 100644 index 21d14fc57..000000000 --- a/apps/console/src/routes/(auth)/signup/+page.gql +++ /dev/null @@ -1,6 +0,0 @@ -query ListOrganizations @cache(policy: CacheOrNetwork) { - organizations(order_by: [{ displayName: desc_nulls_last }]) { - displayName - description - } -} diff --git a/apps/console/src/routes/(auth)/signup/+page.server.ts b/apps/console/src/routes/(auth)/signup/+page.server.ts deleted file mode 100644 index 36757a992..000000000 --- a/apps/console/src/routes/(auth)/signup/+page.server.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { i18n } from '$lib/i18n'; -import { signUpSchema } from '$lib/schema/user'; -import { limiter } from '$lib/server/limiter/limiter'; -import { setNhostSessionInCookies } from '$lib/server/utils/nhost'; -import { Logger, sleep } from '@spectacular/utils'; -import { error, fail } from '@sveltejs/kit'; -import type { GraphQLError } from 'graphql'; -import { redirect as redirectWithFlash } from 'sveltekit-flash-message/server'; -import { message, setError, setMessage, superValidate } from 'sveltekit-superforms'; -import { zod } from 'sveltekit-superforms/adapters'; - -const log = new Logger('server:auth:signup'); - -export const load = async (event) => { - const { - locals: { nhost }, - } = event; - /** - * Preflight prevents direct posting. If preflight option for the - * cookie limiter is true and this function isn't called before posting, - * request will be limited. - * - * Remember to await, so the cookie will be set before returning! - */ - await limiter.cookieLimiter?.preflight(event); - - const isAuthenticated = nhost.auth.isAuthenticated(); - if (isAuthenticated) redirectWithFlash(302, i18n.resolveRoute('/dashboard')); -}; - -export const actions = { - default: async (event) => { - const { - request, - cookies, - locals: { - paraglide: { lang }, - nhost, - }, - } = event; - - const form = await superValidate(request, zod(signUpSchema)); - - const status = await limiter.check(event); - if (status.limited) { - event.setHeaders({ - 'Retry-After': status.retryAfter.toString(), - }); - return message( - form, - { - type: 'error', - message: `Rate limit has been reached. Please retry after ${status.retryAfter} seconds`, - }, - { status: 429 }, - ); - } - - await sleep(8000); - - if (!form.valid) return fail(400, { form }); - - const { organization, firstName, lastName, email, password, redirectTo } = form.data; - - const { session: sessionBad, error } = await nhost.auth.signUp({ - email, - password, - options: { - displayName: `${firstName} ${lastName}`, - // defaultRole: 'user', - // It's possible to give users a subset of allowed roles during signup. - // allowedRoles: ['me', 'user'], - locale: lang, - metadata: { - plan: 'free', - default_org: organization, - }, - }, - }); - if (error) { - log.error(error); - return setError(form, `Failed creating account: ${error.message}`, { status: 409 }); // 424 ??? - } - const session = nhost.auth.getSession(); - if (session) { - setNhostSessionInCookies(cookies, session); - const message: App.Superforms.Message = { type: 'success', message: 'Signup sucessfull 😎' } as const; - redirectWithFlash(303, i18n.resolveRoute(redirectTo), message, event); - } - - // This line should never reach. - return message(form, { type: 'success', message: 'Signup sucessfull-no 😎' }); - }, -}; diff --git a/apps/console/src/routes/(auth)/signup/+page.svelte b/apps/console/src/routes/(auth)/signup/+page.svelte index cbfdbe077..12a628a52 100644 --- a/apps/console/src/routes/(auth)/signup/+page.svelte +++ b/apps/console/src/routes/(auth)/signup/+page.svelte @@ -2,28 +2,41 @@ import { page } from '$app/stores'; import { env } from '$env/dynamic/public'; import * as m from '$i18n/messages'; +import { goto } from '$app/navigation'; import { handleMessage } from '$lib/components/layout/toast-manager'; -import { signUpSchema } from '$lib/schema/user'; +import { signUpSchema, updateUserDetailsKeys as keys } from '$lib/schema/user'; import { getLoadingState } from '$lib/stores/loading'; import { getToastStore } from '@skeletonlabs/skeleton'; import { DebugShell } from '@spectacular/skeleton/components'; import { Alerts } from '@spectacular/skeleton/components/form'; import { Logger } from '@spectacular/utils'; +import { availableLanguageTags, languageTag } from '$i18n/runtime'; +import { getNhostClient } from '$lib/stores/nhost'; import * as Form from 'formsnap'; import { Loader, MoreHorizontal } from 'lucide-svelte'; -import SuperDebug, { defaults, superForm } from 'sveltekit-superforms'; +import SuperDebug, { defaults, setError, setMessage, superForm } from 'sveltekit-superforms'; import { zod, zodClient } from 'sveltekit-superforms/adapters'; -import type { PageData } from './$houdini'; +import { i18n } from '$lib/i18n'; +import { onMount } from 'svelte'; const log = new Logger('auth:signup:browser'); -export let data: PageData; - // Variables const loadingState = getLoadingState(); const toastStore = getToastStore(); +const nhost = getNhostClient(); + +onMount(async () => { + const isAuthenticated = nhost.auth.isAuthenticated(); + const redirectTo = $formData.redirectTo; + log.debug({ isAuthenticated, redirectTo }); + if (isAuthenticated) { + await goto(i18n.resolveRoute(redirectTo)); + } +}); const form = superForm(defaults(zod(signUpSchema)), { + SPA: true, dataType: 'json', taintedMessage: null, clearOnSubmit: 'errors-and-message', @@ -31,15 +44,38 @@ const form = superForm(defaults(zod(signUpSchema)), { delayMs: 100, timeoutMs: 4000, validators: zodClient(signUpSchema), - onUpdated({ form }) { - if (form.message) { - handleMessage(form.message, toastStore); + async onUpdate({ form, cancel }) { + if (!form.valid) return; + + const { firstName, lastName, email, password, locale, redirectTo } = form.data; + const { session, error } = await nhost.auth.signUp({ + email, + password, + options: { + displayName: `${firstName} ${lastName}`, + locale, + }, + }); + if (error) { + log.error(error); + setError(form, '', error.message); + setMessage(form, { type: 'error', message: 'Account creation failed' }); + return; + } + + if (session) { + loadingState.setFormLoading(false); // workaround + const message = { + message: 'Account Created', + hideDismiss: true, + timeout: 10000, + type: 'success', + } as const; + setMessage(form, message); + handleMessage(message, toastStore); + // await goto(i18n.resolveRoute(redirectTo)) + await goto(i18n.resolveRoute(redirectTo), { invalidateAll: true }); // workaround } - }, - onError({ result }) { - // TODO: - // setError(form, '', result.error.message); - log.error('signup error:', { result }); }, }); @@ -52,7 +88,6 @@ const { delayed, timeout, tainted, - posted, allErrors, capture, restore, @@ -64,12 +99,6 @@ export const snapshot = { capture, restore }; // Functions // Reactivity -$: ({ ListOrganizations } = data); -$: organizations = $ListOrganizations.data?.organizations.map((x) => x.organization) ?? [ - env.PUBLIC_DEFAULT_ORGANIZATION, -]; - -// Used in apps/console/src/lib/components/layout/page-load-spinner.svelte $: loadingState.setFormLoading($delayed); $: valid = $allErrors.length === 0; $formData.redirectTo = $page.url.searchParams.get('redirectTo') ?? $formData.redirectTo; @@ -84,27 +113,6 @@ $formData.redirectTo = $page.url.searchParams.get('redirectTo') ?? $formData.red
-
- - - {m.auth_forms_first_organization_label()} - - - - -
@@ -193,6 +201,24 @@ $formData.redirectTo = $page.url.searchParams.get('redirectTo') ?? $formData.red
+
+ + + Locale + + + + + +
@@ -240,8 +266,7 @@ $formData.redirectTo = $page.url.searchParams.get('redirectTo') ?? $formData.red message: $message, submitting: $submitting, delayed: $delayed, - timeout: $timeout, - posted: $posted, + timeout: $timeout }} />
diff --git a/apps/smart/src/app.d.ts b/apps/smart/src/app.d.ts index efba314b4..6fcb63fe0 100644 --- a/apps/smart/src/app.d.ts +++ b/apps/smart/src/app.d.ts @@ -2,13 +2,13 @@ // for information about these interfaces import type AI from '@aibrow/dom-types'; -import type { AvailableLanguageTag } from "$lib/paraglide/runtime" -import type { ParaglideLocals } from "@inlang/paraglide-sveltekit" +import type { AvailableLanguageTag } from '$lib/paraglide/runtime'; +import type { ParaglideLocals } from '@inlang/paraglide-sveltekit'; declare global { namespace App { interface Locals { - paraglide: ParaglideLocals + paraglide: ParaglideLocals; } // interface Error {} // interface Locals {} diff --git a/apps/smart/src/lib/ai/nlp/actions.ts b/apps/smart/src/lib/ai/nlp/actions.ts new file mode 100644 index 000000000..a45714abc --- /dev/null +++ b/apps/smart/src/lib/ai/nlp/actions.ts @@ -0,0 +1,181 @@ +// TODO: Natural Language PostgreSQL https://github.com/vercel-labs/natural-language-postgres/tree/main + +import type { Config, Result } from './types'; +import { configSchema, explanationsSchema } from './types'; +import { openai } from '@ai-sdk/openai'; +import { generateObject } from 'ai'; +import { z } from 'zod'; + +export const generateQuery = async (input: string) => { + try { + const result = await generateObject({ + model: openai('gpt-4o'), + system: `You are a SQL (postgres) and data visualization expert. Your job is to help the user write a SQL query to retrieve the data they need. The table schema is as follows: + + unicorns ( + id SERIAL PRIMARY KEY, + company VARCHAR(255) NOT NULL UNIQUE, + valuation DECIMAL(10, 2) NOT NULL, + date_joined DATE, + country VARCHAR(255) NOT NULL, + city VARCHAR(255) NOT NULL, + industry VARCHAR(255) NOT NULL, + select_investors TEXT NOT NULL + ); + + Only retrieval queries are allowed. + + For things like industry, company names and other string fields, use the ILIKE operator and convert both the search term and the field to lowercase using LOWER() function. For example: LOWER(industry) ILIKE LOWER('%search_term%'). + + Note: select_investors is a comma-separated list of investors. Trim whitespace to ensure you're grouping properly. Note, some fields may be null or have only one value. + When answering questions about a specific field, ensure you are selecting the identifying column (ie. what is Vercel's valuation would select company and valuation'). + + The industries available are: + - healthcare & life sciences + - consumer & retail + - financial services + - enterprise tech + - insurance + - media & entertainment + - industrials + - health + + If the user asks for a category that is not in the list, infer based on the list above. + + Note: valuation is in billions of dollars so 10b would be 10.0. + Note: if the user asks for a rate, return it as a decimal. For example, 0.1 would be 10%. + + If the user asks for 'over time' data, return by year. + + When searching for UK or USA, write out United Kingdom or United States respectively. + + EVERY QUERY SHOULD RETURN QUANTITATIVE DATA THAT CAN BE PLOTTED ON A CHART! There should always be at least two columns. If the user asks for a single column, return the column and the count of the column. If the user asks for a rate, return the rate as a decimal. For example, 0.1 would be 10%. + `, + prompt: `Generate the query necessary to retrieve the data the user wants: ${input}`, + schema: z.object({ + query: z.string(), + }), + }); + return result.object.query; + } catch (e) { + console.error(e); + throw new Error('Failed to generate query'); + } +}; + +export const runGenerateSQLQuery = async (query: string) => { + // Check if the query is a SELECT statement + if ( + !query.trim().toLowerCase().startsWith('select') || + query.trim().toLowerCase().includes('drop') || + query.trim().toLowerCase().includes('delete') || + query.trim().toLowerCase().includes('insert') || + query.trim().toLowerCase().includes('update') || + query.trim().toLowerCase().includes('alter') || + query.trim().toLowerCase().includes('truncate') || + query.trim().toLowerCase().includes('create') || + query.trim().toLowerCase().includes('grant') || + query.trim().toLowerCase().includes('revoke') + ) { + throw new Error('Only SELECT queries are allowed'); + } + + let data: any; + try { + data = []; // TODO: await sql.query(query); + } catch (e: any) { + if (e.message.includes('relation "unicorns" does not exist')) { + console.log('Table does not exist, creating and seeding it with dummy data now...'); + // throw error + throw Error('Table does not exist'); + // biome-ignore lint/style/noUselessElse: + } else { + throw e; + } + } + + return data.rows as Result[]; +}; + +export const explainQuery = async (input: string, sqlQuery: string) => { + try { + const result = await generateObject({ + model: openai('gpt-4o'), + schema: z.object({ + explanations: explanationsSchema, + }), + system: `You are a SQL (postgres) expert. Your job is to explain to the user write a SQL query you wrote to retrieve the data they asked for. The table schema is as follows: + unicorns ( + id SERIAL PRIMARY KEY, + company VARCHAR(255) NOT NULL UNIQUE, + valuation DECIMAL(10, 2) NOT NULL, + date_joined DATE, + country VARCHAR(255) NOT NULL, + city VARCHAR(255) NOT NULL, + industry VARCHAR(255) NOT NULL, + select_investors TEXT NOT NULL + ); + + When you explain you must take a section of the query, and then explain it. Each "section" should be unique. So in a query like: "SELECT * FROM unicorns limit 20", the sections could be "SELECT *", "FROM UNICORNS", "LIMIT 20". + If a section doesnt have any explanation, include it, but leave the explanation empty. + + `, + prompt: `Explain the SQL query you generated to retrieve the data the user wanted. Assume the user is not an expert in SQL. Break down the query into steps. Be concise. + + User Query: + ${input} + + Generated SQL Query: + ${sqlQuery}`, + }); + return result.object; + } catch (e) { + console.error(e); + throw new Error('Failed to generate query'); + } +}; + +export const generateChartConfig = async (results: Result[], userQuery: string) => { + const system = 'You are a data visualization expert. '; + + try { + const { object: config } = await generateObject({ + model: openai('gpt-4o'), + system, + prompt: `Given the following data from a SQL query result, generate the chart config that best visualises the data and answers the users query. + For multiple groups use multi-lines. + + Here is an example complete config: + export const chartConfig = { + type: "pie", + xKey: "month", + yKeys: ["sales", "profit", "expenses"], + colors: { + sales: "#4CAF50", // Green for sales + profit: "#2196F3", // Blue for profit + expenses: "#F44336" // Red for expenses + }, + legend: true + } + + User Query: + ${userQuery} + + Data: + ${JSON.stringify(results, null, 2)}`, + schema: configSchema, + }); + + const colors: Record = {}; + config.yKeys.forEach((key, index) => { + colors[key] = `hsl(var(--chart-${index + 1}))`; + }); + + const updatedConfig: Config = { ...config, colors }; + return { config: updatedConfig }; + } catch (e) { + // @ts-expect-errore + console.error(e.message); + throw new Error('Failed to generate chart suggestion'); + } +}; diff --git a/apps/smart/src/lib/ai/nlp/types.ts b/apps/smart/src/lib/ai/nlp/types.ts new file mode 100644 index 000000000..a70ced4a7 --- /dev/null +++ b/apps/smart/src/lib/ai/nlp/types.ts @@ -0,0 +1,60 @@ +import { z } from 'zod'; + +export type Unicorn = { + id: number; + company: string; + valuation: number; + date_joined: Date | null; + country: string; + city: string; + industry: string; + select_investors: string; +}; + +export type Result = Record; + +export const explanationSchema = z.object({ + section: z.string(), + explanation: z.string(), +}); +export const explanationsSchema = z.array(explanationSchema); + +export type QueryExplanation = z.infer; + +// Define the schema for chart configuration +export const configSchema = z + .object({ + description: z + .string() + .describe('Describe the chart. What is it showing? What is interesting about the way the data is displayed?'), + takeaway: z.string().describe('What is the main takeaway from the chart?'), + type: z.enum(['bar', 'line', 'area', 'pie']).describe('Type of chart'), + title: z.string(), + xKey: z.string().describe('Key for x-axis or category'), + yKeys: z.array(z.string()).describe('Key(s) for y-axis values this is typically the quantitative column'), + multipleLines: z + .boolean() + .describe('For line charts only: whether the chart is comparing groups of data.') + .optional(), + measurementColumn: z + .string() + .describe('For line charts only: key for quantitative y-axis column to measure against (eg. values, counts etc.)') + .optional(), + lineCategories: z + .array(z.string()) + .describe( + 'For line charts only: Categories used to compare different lines or data series. Each category represents a distinct line in the chart.', + ) + .optional(), + colors: z + .record( + z.string().describe('Any of the yKeys'), + z.string().describe('Color value in CSS format (e.g., hex, rgb, hsl)'), + ) + .describe('Mapping of data keys to color values for chart elements') + .optional(), + legend: z.boolean().describe('Whether to show legend'), + }) + .describe('Chart configuration object'); + +export type Config = z.infer; diff --git a/docs/awesome-sveltekit.md b/docs/awesome-sveltekit.md index 59905bf11..04289ba8f 100644 --- a/docs/awesome-sveltekit.md +++ b/docs/awesome-sveltekit.md @@ -77,6 +77,10 @@ Awesome **SvelteKit** Links - [Konsta UI](https://konstaui.com) Pixel perfect mobile UI components built with Tailwind CSS - [Framework7 Svelte](https://framework7.io/svelte/) Build full featured iOS, Android & Desktop apps +- Desktop/ Native + + - [powersync-tauri](https://github.com/MrLightful/powersync-tauri) - An exhaustive boilerplate project of `Tauri` + `Shadcn UI` + `PowerSync`. + - Security - [lucia](https://lucia-auth.com/) OIDC auth with [SvelteKit](https://lucia-auth.com/guidebook/github-oauth/sveltekit) @@ -105,6 +109,7 @@ Awesome **SvelteKit** Links - [Motion](https://motion.dev/) (preferred) - [lottiefiles](https://lottiefiles.github.io/lottie-docs/) Lottie is a **vector** animation format, used to build marketing pages. See [Examples](https://lottiefiles.com/use-cases/website) - [Magic UI](https://magicui.design/) - **React**, **Typescript**, **Tailwind CSS**, and **Framer Motion**. Perfect companion for **shadcn/ui**. +- [NumberFlow](https://github.com/barvian/number-flow) - An animated number component for React, Vue, and Svelte. ## State Management @@ -167,6 +172,9 @@ Awesome **SvelteKit** Links - [Vercel Toolbar and Feature Flags SvelteKit Starter](https://github.com/vercel/examples/tree/main/toolbar/toolbar-feature-flags-sveltekit), [Demo](https://toolbar-feature-flags-sveltekit.vercel.app/), [Blog](https://vercel.com/blog/flags-as-code-in-next-js) - [JavaFlavors](https://github.com/Critteros/JavaFlavors/tree/main/web) - use `houdini` and `setClientSession()`, drizzle, superforms, shadcn-svelte - [Turborepo Svelte starter](https://github.com/kevingdc/turborepo-sveltekit-shadcn/tree/main) +- [JustShip](https://www.justship.today/) - Skip the boring parts, Ship **svelte 5** apps in days not weeks. Components: Stripe, Auth, tailwind +- [next-forge](https://www.next-forge.com/) - Production-grade `Turborepo` template for` Next.js` apps. Components: + ## Deployment From 2693f859ad2352d4b65e133a7cbfe279929cf404 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Sun, 15 Dec 2024 14:31:58 -0800 Subject: [PATCH 05/77] fix(console): password reset route now runs on client-side --- .../src/routes/(auth)/reset/+page.server.ts | 75 ------------------- .../src/routes/(auth)/reset/+page.svelte | 64 ++++++++++++---- .../src/routes/(auth)/signup/+page.svelte | 20 +++-- 3 files changed, 61 insertions(+), 98 deletions(-) delete mode 100644 apps/console/src/routes/(auth)/reset/+page.server.ts diff --git a/apps/console/src/routes/(auth)/reset/+page.server.ts b/apps/console/src/routes/(auth)/reset/+page.server.ts deleted file mode 100644 index b5edca8cf..000000000 --- a/apps/console/src/routes/(auth)/reset/+page.server.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { i18n } from '$lib/i18n'; -import { resetPasswordSchema } from '$lib/schema/user'; -import { limiter } from '$lib/server/limiter/limiter'; -import { Logger, sleep } from '@spectacular/utils'; -import { fail } from '@sveltejs/kit'; -import { redirect as redirectWithFlash } from 'sveltekit-flash-message/server'; -import { message, setError, superValidate } from 'sveltekit-superforms'; -import { zod } from 'sveltekit-superforms/adapters'; - -const log = new Logger('auth:reset:server'); - -export const load = async (event) => { - const { - locals: { nhost }, - } = event; - /** - * Preflight prevents direct posting. If preflight option for the - * cookie limiter is true and this function isn't called before posting, - * request will be limited. - * - * Remember to await, so the cookie will be set before returning! - */ - await limiter.cookieLimiter?.preflight(event); - - const isAuthenticated = nhost.auth.isAuthenticated(); - if (isAuthenticated) redirectWithFlash(302, i18n.resolveRoute('/dashboard')); -}; - -export const actions = { - default: async (event) => { - log.debug('in reset action'); - const { - request, - cookies, - locals: { - paraglide: { lang }, - nhost, - }, - } = event; - - const form = await superValidate(request, zod(resetPasswordSchema)); - - const { limited, retryAfter } = await limiter.check(event); - if (limited) { - event.setHeaders({ - 'Retry-After': retryAfter.toString(), - }); - return message( - form, - { - type: 'error', - message: `Rate limit has been reached. Please retry after ${retryAfter} seconds`, - }, - { status: 429 }, - ); - } - - const origin = new URL(event.url).origin; - - if (!form.valid) return fail(400, { form }); - const { email } = form.data; - const { error } = await nhost.auth.resetPassword({ - email, - options: { - redirectTo: `${origin}/profile`, - }, - }); - if (error) { - log.error(error); - return setError(form, `Failed to send reset password instructions: ${error.message}`, { status: 409 }); // 424 ??? - } - - return message(form, { type: 'success', message: 'Send reset password instructions to email provided' }); - }, -}; diff --git a/apps/console/src/routes/(auth)/reset/+page.svelte b/apps/console/src/routes/(auth)/reset/+page.svelte index ad5dc3d31..a45830260 100644 --- a/apps/console/src/routes/(auth)/reset/+page.svelte +++ b/apps/console/src/routes/(auth)/reset/+page.svelte @@ -1,42 +1,77 @@ From 129269b8bf797e1ee7c4d85fa7ca75a0bca1df36 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Sun, 15 Dec 2024 20:44:38 -0800 Subject: [PATCH 06/77] fix(console): passwordless and social routes now runs on client-side --- apps/console/src/lib/schema/user.ts | 9 +- .../src/routes/(auth)/reset/+page.svelte | 1 - .../src/routes/(auth)/signin/+page.server.ts | 178 ------------------ .../src/routes/(auth)/signin/+page.svelte | 18 ++ .../signin/components/magic-link.svelte | 138 -------------- .../(auth)/signin/components/password.svelte | 54 ++++-- .../signin/components/passwordless.svelte | 61 +++--- .../(auth)/signin/components/social.svelte | 17 +- 8 files changed, 117 insertions(+), 359 deletions(-) delete mode 100644 apps/console/src/routes/(auth)/signin/components/magic-link.svelte diff --git a/apps/console/src/lib/schema/user.ts b/apps/console/src/lib/schema/user.ts index 601b7f71f..341845d30 100644 --- a/apps/console/src/lib/schema/user.ts +++ b/apps/console/src/lib/schema/user.ts @@ -1,5 +1,4 @@ -import { env } from '$env/dynamic/public'; -import { DEFAULT_ORGANIZATION } from '$lib/constants'; +import { ROUTE_DASHBOARD } from '$lib/constants'; import { Roles } from '$lib/types'; import { z } from 'zod'; @@ -88,7 +87,7 @@ export const pwSchema = userSchema password: true, }) .extend({ - redirectTo: z.string().default('/'), + redirectTo: z.string().default(ROUTE_DASHBOARD), }); /** @@ -99,7 +98,7 @@ export const pwlSchema = userSchema email: true, }) .extend({ - redirectTo: z.string().default('/'), + redirectTo: z.string().default(ROUTE_DASHBOARD), }); /** @@ -116,7 +115,7 @@ export const signUpSchema = userSchema terms: true, }) .extend({ - redirectTo: z.string().default('/dashboard'), + redirectTo: z.string().default(ROUTE_DASHBOARD), }) .superRefine((data, ctx) => checkConfirmPassword(ctx, data.confirmPassword, data.password)); export type SignUpSchema = typeof signUpSchema; diff --git a/apps/console/src/routes/(auth)/reset/+page.svelte b/apps/console/src/routes/(auth)/reset/+page.svelte index a45830260..761b686d8 100644 --- a/apps/console/src/routes/(auth)/reset/+page.svelte +++ b/apps/console/src/routes/(auth)/reset/+page.svelte @@ -15,7 +15,6 @@ import SuperDebug, { defaults, setError, setMessage, superForm } from 'sveltekit import { zod, zodClient } from 'sveltekit-superforms/adapters'; import { i18n } from '$lib/i18n'; import { onMount } from 'svelte'; -import { fail } from '@sveltejs/kit'; import { ROUTE_DASHBOARD, ROUTE_PROFILE } from '$lib/constants'; const log = new Logger('auth:reset:browser'); diff --git a/apps/console/src/routes/(auth)/signin/+page.server.ts b/apps/console/src/routes/(auth)/signin/+page.server.ts index 3763473c3..f48a7bf29 100644 --- a/apps/console/src/routes/(auth)/signin/+page.server.ts +++ b/apps/console/src/routes/(auth)/signin/+page.server.ts @@ -1,188 +1,10 @@ -import { setTimeout } from 'node:timers/promises'; -import { env } from '$env/dynamic/public'; -import { DEFAULT_ORGANIZATION } from '$lib/constants'; import { showMagicLinkLogin, showSocialLogin } from '$lib/flags'; -import { i18n } from '$lib/i18n'; -import { pwSchema, pwlSchema } from '$lib/schema/user'; -import { limiter } from '$lib/server/limiter/limiter'; -import { setNhostSessionInCookies } from '$lib/server/utils/nhost'; -import type { NhostClient, Provider } from '@nhost/nhost-js'; import { Logger } from '@spectacular/utils'; -import { fail } from '@sveltejs/kit'; -import { redirect as redirectWithFlash } from 'sveltekit-flash-message/server'; -import { message, setError, superValidate } from 'sveltekit-superforms'; -import { zod } from 'sveltekit-superforms/adapters'; const log = new Logger('server:auth:signin'); export const load = async (event) => { - const { - locals: { nhost }, - } = event; - /** - * Preflight prevents direct posting. If preflight option for the - * cookie limiter is true and this function isn't called before posting, - * request will be limited. - * - * Remember to await, so the cookie will be set before returning! - */ - await limiter.cookieLimiter?.preflight(event); - - const isAuthenticated = nhost.auth.isAuthenticated(); - if (isAuthenticated) redirectWithFlash(302, i18n.resolveRoute('/dashboard')); const showMagicLink = await showMagicLinkLogin(); const showSocial = await showSocialLogin(); return { flags: { showMagicLink, showSocial } }; // TODO: use flags }; - -export const actions = { - password: async (event) => { - log.debug('in login with password'); - const { - request, - cookies, - url, - locals: { - paraglide: { lang }, - nhost, - }, - } = event; - - const form = await superValidate(request, zod(pwSchema)); - - const status = await limiter.check(event); - if (status.limited) { - event.setHeaders({ - 'Retry-After': status.retryAfter.toString(), - }); - return message( - form, - { - type: 'error', - message: `Rate limit has been reached. Please retry after ${status.retryAfter} seconds`, - }, - { status: 429 }, - ); - } - - await setTimeout(2000); - - if (!form.valid) return fail(400, { form }); - - const { email, password, redirectTo } = form.data; - - const { session: sessionBad, error } = await nhost.auth.signIn({ email, password }); - if (error) { - log.error(error); - return setError(form, `Failed signin: ${error.message}`, { status: 409 }); // 424 ??? - } - const session = nhost.auth.getSession(); - if (session) { - setNhostSessionInCookies(cookies, session); - const message: App.Superforms.Message = { type: 'success', message: 'Signin sucessfull 😎' } as const; - redirectWithFlash(303, i18n.resolveRoute(redirectTo), message, event); // how to reload! - } - - // This line should never reach. - return message(form, { type: 'success', message: 'Signin sucessfull-no 😎' }); - }, - - passwordless: async (event) => { - log.debug('in login with passwordless'); - const { - request, - locals: { - paraglide: { lang }, - nhost, - }, - } = event; - - const form = await superValidate(request, zod(pwlSchema)); - - const status = await limiter.check(event); - if (status.limited) { - event.setHeaders({ - 'Retry-After': status.retryAfter.toString(), - }); - return message( - form, - { - type: 'error', - message: `Rate limit has been reached. Please retry after ${status.retryAfter} seconds`, - }, - { status: 429 }, - ); - } - - if (!form.valid) return fail(400, { form }); - - const { email } = form.data; - - const { error } = await nhost.auth.signIn({ email }); - - if (error) { - log.error(error); - return setError(form, `Failed signin: ${error.message}`, { status: 409 }); // 424 ??? - } - return message(form, { - type: 'success', - message: '😎 Click the link in the email to finish the sign in process', - }); - }, - - google: async ({ - request, - locals: { - paraglide: { lang }, - nhost, - }, - }) => { - // TODO check if already login? session is valid - log.debug('in login with google'); - await login(nhost, new URL(request.url).origin + i18n.resolveRoute('/dashboard'), lang, 'google'); - }, - - github: async ({ - request, - locals: { - paraglide: { lang }, - nhost, - }, - }) => { - log.debug('in login with github'); - await login(nhost, new URL(request.url).origin + i18n.resolveRoute('/dashboard'), lang, 'github'); - }, - - azuread: async ({ - request, - locals: { - paraglide: { lang }, - nhost, - }, - }) => { - log.debug('in login with azuread'); - await login(nhost, new URL(request.url).origin, lang, 'azuread'); - }, -}; - -async function login(nhost: NhostClient, redirectTo: string, lang: string, provider: Provider) { - const { providerUrl } = await nhost.auth.signIn({ - provider, - options: { - redirectTo, - // defaultRole: 'user', - // It's possible to give users a subset of allowed roles during signup. - // allowedRoles: ['me', 'user'], - locale: lang, - metadata: { - plan: 'free', - default_org: env.PUBLIC_DEFAULT_ORGANIZATION ?? DEFAULT_ORGANIZATION, - }, - }, - }); - - log.debug(providerUrl); - if (providerUrl) { - redirectWithFlash(307, providerUrl); - } -} diff --git a/apps/console/src/routes/(auth)/signin/+page.svelte b/apps/console/src/routes/(auth)/signin/+page.svelte index b6234a4da..13979819d 100644 --- a/apps/console/src/routes/(auth)/signin/+page.svelte +++ b/apps/console/src/routes/(auth)/signin/+page.svelte @@ -3,8 +3,26 @@ import Divider from './components/divider.svelte'; import PasswordSigninForm from './components/password.svelte'; import PasswordlessSigninForm from './components/passwordless.svelte'; import SocialSigninForm from './components/social.svelte'; +import { Logger } from '@spectacular/utils'; +import { getNhostClient } from '$lib/stores/nhost'; +import { onMount } from 'svelte'; +import { goto } from '$app/navigation'; +import { i18n } from '$lib/i18n'; +import { ROUTE_DASHBOARD } from '$lib/constants'; + +const log = new Logger('auth:signin:browser'); export let data; + +// Variables +const nhost = getNhostClient(); + +onMount(async () => { + const isAuthenticated = nhost.auth.isAuthenticated(); + if (isAuthenticated) { + await goto(i18n.resolveRoute(ROUTE_DASHBOARD)); + } +}); diff --git a/apps/console/src/routes/(auth)/signin/components/magic-link.svelte b/apps/console/src/routes/(auth)/signin/components/magic-link.svelte deleted file mode 100644 index b98b545ee..000000000 --- a/apps/console/src/routes/(auth)/signin/components/magic-link.svelte +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - -
- - - {m.auth_forms_email_label()} - - - - -
-
- -
- - - - - diff --git a/apps/console/src/routes/(auth)/signin/components/password.svelte b/apps/console/src/routes/(auth)/signin/components/password.svelte index 6fe4d64e7..8963ed8c9 100644 --- a/apps/console/src/routes/(auth)/signin/components/password.svelte +++ b/apps/console/src/routes/(auth)/signin/components/password.svelte @@ -1,40 +1,70 @@ -
+
@@ -128,7 +157,6 @@ $formData.redirectTo = $page.url.searchParams.get('redirectTo') ?? $formData.red submitting: $submitting, delayed: $delayed, timeout: $timeout, - posted: $posted, formData: $formData, errors: $errors, constraints: $constraints, diff --git a/apps/console/src/routes/(auth)/signin/components/passwordless.svelte b/apps/console/src/routes/(auth)/signin/components/passwordless.svelte index fa2368100..5d4052336 100644 --- a/apps/console/src/routes/(auth)/signin/components/passwordless.svelte +++ b/apps/console/src/routes/(auth)/signin/components/passwordless.svelte @@ -1,43 +1,63 @@ @@ -104,8 +124,8 @@ $formData.redirectTo = $page.url.searchParams.get('redirectTo') ?? $formData.red
@@ -135,7 +155,6 @@ $formData.redirectTo = $page.url.searchParams.get('redirectTo') ?? $formData.red submitting: $submitting, delayed: $delayed, timeout: $timeout, - posted: $posted, formData: $formData, errors: $errors, constraints: $constraints, diff --git a/apps/console/src/routes/(auth)/signin/components/social.svelte b/apps/console/src/routes/(auth)/signin/components/social.svelte index ac0264098..2e3cb5f1a 100644 --- a/apps/console/src/routes/(auth)/signin/components/social.svelte +++ b/apps/console/src/routes/(auth)/signin/components/social.svelte @@ -1,16 +1,27 @@
- - - +
From be50edd7b3340206041233108665c4278198d84e Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Sun, 15 Dec 2024 20:51:54 -0800 Subject: [PATCH 07/77] fix(console): passwordless and social routes now runs on client-side --- .../src/routes/(app)/dashboard/+page.svelte | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/apps/console/src/routes/(app)/dashboard/+page.svelte b/apps/console/src/routes/(app)/dashboard/+page.svelte index f5a5587a9..fee57a56b 100644 --- a/apps/console/src/routes/(app)/dashboard/+page.svelte +++ b/apps/console/src/routes/(app)/dashboard/+page.svelte @@ -105,9 +105,8 @@ onDestroy(() => {
-
03
@@ -149,11 +148,14 @@ onDestroy(() => { + From 337577f99a7f570d39b3b83593c37894979bab79 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Mon, 16 Dec 2024 07:29:56 -0800 Subject: [PATCH 08/77] fix: added examples for new hooks features --- apps/console/src/hooks.client.ts | 17 ++++++++++++----- apps/console/src/hooks.server.ts | 16 +++++++++------- apps/console/src/hooks.ts | 10 +++++++++- apps/console/src/lib/types/index.ts | 21 +++++++++++++++++++++ 4 files changed, 51 insertions(+), 13 deletions(-) diff --git a/apps/console/src/hooks.client.ts b/apps/console/src/hooks.client.ts index a7177e201..502dc6d94 100644 --- a/apps/console/src/hooks.client.ts +++ b/apps/console/src/hooks.client.ts @@ -1,11 +1,18 @@ import { dev } from '$app/environment'; import { Logger } from '@spectacular/utils'; -import type { HandleClientError } from '@sveltejs/kit'; +import type { HandleClientError, ClientInit } from '@sveltejs/kit'; -// Setup logger -if (!dev) { - Logger.enableProductionMode(); -} +/** + * Code in `init` method in `hooks.client.ts` will run one-time in browser, when the application starts up, + * making them useful for initializing database clients, logger, Sentry and so on. + */ +export const init: ClientInit = async () => { + console.log('in hooks.client.ts init:'); + // Setup logger + if (!dev) { + Logger.enableProductionMode(); + } +}; const log = new Logger('hooks:client'); diff --git a/apps/console/src/hooks.server.ts b/apps/console/src/hooks.server.ts index 8ee903efb..1a086e775 100644 --- a/apps/console/src/hooks.server.ts +++ b/apps/console/src/hooks.server.ts @@ -5,21 +5,23 @@ import * as flags from '$lib/flags'; import { i18n } from '$lib/i18n'; import { auth, guard, houdini, theme } from '$lib/server/hooks'; import { Logger, sleep } from '@spectacular/utils'; -import type { Handle, HandleFetch, HandleServerError } from '@sveltejs/kit'; +import type { Handle, HandleFetch, HandleServerError, ServerInit } from '@sveltejs/kit'; import { sequence } from '@sveltejs/kit/hooks'; import { createHandle } from '@vercel/flags/sveltekit'; import { GraphQLError } from 'graphql'; import { ZodError } from 'zod'; /** - * Code in hooks.server.ts will run when the application starts up, + * Code in `init` method in `hooks.server.ts` will run one-time on server, when the application starts up, * making them useful for initializing database clients, logger, Sentry and so on. */ - -// Setup logger -if (!dev) { - Logger.enableProductionMode(); -} +export const init: ServerInit = async () => { + console.log('in hooks.server.ts init:'); + // Setup logger + if (!dev) { + Logger.enableProductionMode(); + } +}; const log = new Logger('hooks:server'); diff --git a/apps/console/src/hooks.ts b/apps/console/src/hooks.ts index 81a481174..3d1eeb275 100644 --- a/apps/console/src/hooks.ts +++ b/apps/console/src/hooks.ts @@ -1,5 +1,13 @@ import { i18n } from '$lib/i18n'; // export { dead_links as reroute } from "$lib/middleware/dead-links"; -import type { Reroute } from '@sveltejs/kit'; +import type { Reroute, Transport } from '@sveltejs/kit'; +import { SerializableDate } from '$lib/types'; export const reroute = i18n.reroute() satisfies Reroute; + +export const transport: Transport = { + SerializableDate: { + encode: (value: unknown) => value instanceof SerializableDate && value.raw, + decode: (rawDate: string) => new SerializableDate(rawDate), + }, +}; diff --git a/apps/console/src/lib/types/index.ts b/apps/console/src/lib/types/index.ts index 750b6b0f8..395f0cdb9 100644 --- a/apps/console/src/lib/types/index.ts +++ b/apps/console/src/lib/types/index.ts @@ -9,6 +9,27 @@ export type Project = { href?: string; }; +/** + * SerializableDate used to encode/decode hooks.ts example + */ +export class SerializableDate { + private readonly dateObj: Date; + private readonly rawDate: string; + + constructor(isoString: string) { + this.dateObj = new Date(isoString); + this.rawDate = isoString; + } + + public get raw() { + return this.rawDate; + } + + public get date() { + return this.dateObj; + } +} + /** * Policy */ From 7775cae2ec58804d20d31bf1fc8b1cfd3ecaba05 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Mon, 16 Dec 2024 11:39:03 -0800 Subject: [PATCH 09/77] fix: updated deps --- apps/console/package.json | 6 +- apps/docs/package.json | 4 +- apps/smart/package.json | 8 +- apps/web/package.json | 6 +- package.json | 2 +- packages/role-houdini/package.json | 6 +- packages/skeleton-ui/package.json | 6 +- packages/smart/package.json | 4 +- packages/ui/package.json | 6 +- pnpm-lock.yaml | 938 ++++++++++++++--------------- 10 files changed, 492 insertions(+), 494 deletions(-) diff --git a/apps/console/package.json b/apps/console/package.json index 76cd0794f..59f1cdb99 100644 --- a/apps/console/package.json +++ b/apps/console/package.json @@ -53,7 +53,7 @@ "@sveltejs/adapter-node": "5.2.10", "@sveltejs/adapter-vercel": "5.5.2", "@sveltejs/enhanced-img": "0.3.10", - "@sveltejs/kit": "2.11.1", + "@sveltejs/kit": "2.12.1", "@sveltejs/vite-plugin-svelte": "3.1.2", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/forms": "0.5.9", @@ -78,7 +78,7 @@ "chrome-ai": "1.11.1", "date-fns": "4.1.0", "formsnap": "1.0.1", - "graphql": "16.9.0", + "graphql": "16.10.0", "graphql-ws": "5.16.0", "houdini": "1.3.1", "houdini-svelte": "2.0.1", @@ -99,7 +99,7 @@ "sveltekit-flash-message": "2.4.4", "sveltekit-rate-limiter": "0.6.1", "sveltekit-search-params": "3.0.0", - "sveltekit-superforms": "2.21.1", + "sveltekit-superforms": "2.22.0", "sveltekit-view-transition": "0.5.3", "swapy": "1.0.2", "tailwind-merge": "2.5.5", diff --git a/apps/docs/package.json b/apps/docs/package.json index 996b0683c..d43b49914 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -16,13 +16,13 @@ "dependencies": { "@astrojs/check": "0.9.4", "@astrojs/node": "9.0.0", - "@astrojs/starlight": "0.30.1", + "@astrojs/starlight": "0.30.2", "@astrojs/starlight-tailwind": "3.0.0", "@astrojs/tailwind": "5.1.3", "@astrojs/vercel": "8.0.1", "@fontsource-variable/inter": "5.1.0", "@fontsource/source-code-pro": "5.1.0", - "astro": "5.0.5", + "astro": "5.0.7", "sharp": "0.33.5", "tailwindcss": "3.4.16", "typescript": "5.7.2" diff --git a/apps/smart/package.json b/apps/smart/package.json index ebaf1a688..cd5e70905 100644 --- a/apps/smart/package.json +++ b/apps/smart/package.json @@ -40,7 +40,7 @@ "@sveltejs/adapter-node": "5.2.10", "@sveltejs/adapter-vercel": "5.5.2", "@sveltejs/enhanced-img": "0.4.4", - "@sveltejs/kit": "2.11.1", + "@sveltejs/kit": "2.12.1", "@sveltejs/vite-plugin-svelte": "5.0.2", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/forms": "0.5.9", @@ -55,13 +55,13 @@ "lucide-svelte": "0.468.0", "mode-watcher": "0.5.0", "openai-zod-to-json-schema": "1.0.3", - "runed": "0.18.0", - "svelte": "5.13.0", + "runed": "0.19.0", + "svelte": "5.14.0", "svelte-check": "4.1.1", "svelte-persisted-store": "0.12.0", "svelte-radix": "2.0.1", "svelte-sonner": "0.3.28", - "sveltekit-superforms": "2.21.1", + "sveltekit-superforms": "2.22.0", "tailwind-merge": "2.5.5", "tailwind-variants": "0.3.0", "tailwindcss": "3.4.16", diff --git a/apps/web/package.json b/apps/web/package.json index e5bb325d3..f87acdb5c 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -24,7 +24,7 @@ "@astrojs/node": "9.0.0", "@astrojs/partytown": "2.1.2", "@astrojs/sitemap": "3.2.1", - "@astrojs/starlight": "0.30.1", + "@astrojs/starlight": "0.30.2", "@astrojs/svelte": "7.0.1", "@astrojs/tailwind": "5.1.3", "@astrojs/vercel": "8.0.1", @@ -35,12 +35,12 @@ "@spectacular/utils": "workspace:*", "@tailwindcss/typography": "0.5.15", "@vitest/coverage-v8": "2.1.8", - "astro": "5.0.5", + "astro": "5.0.7", "astro-expressive-code": "0.38.3", "astro-seo": "0.8.4", "lucide-svelte": "0.468.0", "mode-watcher": "0.5.0", - "svelte": "5.13.0", + "svelte": "5.14.0", "tailwind-merge": "2.5.5", "tailwindcss": "3.4.16", "typescript": "5.7.2", diff --git a/package.json b/package.json index 8c502f0ea..a880b1ca3 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@markuplint/svelte-parser": "4.7.4", "@spectacular/biome-config": "workspace:*", "@spectacular/typescript-config": "workspace:*", - "cspell": "8.16.1", + "cspell": "8.17.1", "husky": "9.1.7", "lint-staged": "15.2.11", "markuplint": "4.11.4", diff --git a/packages/role-houdini/package.json b/packages/role-houdini/package.json index c27c79d0c..d272477a2 100644 --- a/packages/role-houdini/package.json +++ b/packages/role-houdini/package.json @@ -6,7 +6,9 @@ "publishConfig": { "access": "public" }, - "files": ["dist/**"], + "files": [ + "dist/**" + ], "main": "./dist/index.js", "module": "./dist/index.js", "types": "./dist/index.d.ts", @@ -41,7 +43,7 @@ "devDependencies": { "@spectacular/biome-config": "workspace:*", "@spectacular/typescript-config": "workspace:*", - "graphql": "16.9.0", + "graphql": "16.10.0", "tsup": "8.3.5", "typescript": "5.7.2" } diff --git a/packages/skeleton-ui/package.json b/packages/skeleton-ui/package.json index ffa7b6818..b8f100c40 100644 --- a/packages/skeleton-ui/package.json +++ b/packages/skeleton-ui/package.json @@ -41,7 +41,7 @@ "@spectacular/biome-config": "workspace:*", "@spectacular/typescript-config": "workspace:*", "@spectacular/utils": "workspace:*", - "@sveltejs/kit": "2.11.1", + "@sveltejs/kit": "2.12.1", "@sveltejs/vite-plugin-svelte": "3.1.2", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/forms": "0.5.9", @@ -57,13 +57,13 @@ "cssnano": "7.0.6", "date-fns": "4.1.0", "formsnap": "1.0.1", - "graphql": "16.9.0", + "graphql": "16.10.0", "lucide-svelte": "0.468.0", "postcss": "8.4.49", "postcss-import": "16.1.0", "postcss-load-config": "6.0.1", "svelte": "4.2.19", - "sveltekit-superforms": "2.21.1", + "sveltekit-superforms": "2.22.0", "tailwind-merge": "2.5.5", "tailwind-variants": "0.3.0", "tailwindcss": "3.4.16", diff --git a/packages/smart/package.json b/packages/smart/package.json index 02bd95bdb..dcea06177 100644 --- a/packages/smart/package.json +++ b/packages/smart/package.json @@ -37,7 +37,7 @@ "@spectacular/typescript-config": "workspace:*", "@spectacular/utils": "workspace:*", "@svelte-plugins/datepicker": "1.0.9", - "@sveltejs/kit": "2.11.1", + "@sveltejs/kit": "2.12.1", "@sveltejs/vite-plugin-svelte": "3.1.2", "@tsconfig/svelte": "5.0.4", "@types/dom-chromium-ai": "0.0.4", @@ -52,7 +52,7 @@ "svelte": "4.2.19", "svelte-check": "4.1.1", "svelte-select": "5.8.3", - "sveltekit-superforms": "2.21.1", + "sveltekit-superforms": "2.22.0", "tailwind-merge": "2.5.5", "tailwind-variants": "0.3.0", "tailwindcss": "3.4.16", diff --git a/packages/ui/package.json b/packages/ui/package.json index dc5dd316f..6015ce030 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -49,7 +49,7 @@ "@spectacular/typescript-config": "workspace:*", "@spectacular/utils": "workspace:*", "@sveltejs/adapter-auto": "3.3.1", - "@sveltejs/kit": "2.11.1", + "@sveltejs/kit": "2.12.1", "@sveltejs/vite-plugin-svelte": "5.0.2", "@tailwindcss/aspect-ratio": "0.4.2", "@tailwindcss/container-queries": "0.1.1", @@ -69,10 +69,10 @@ "paneforge": "1.0.0-next.1", "postcss-import": "16.1.0", "postcss-load-config": "6.0.1", - "svelte": "5.13.0", + "svelte": "5.14.0", "svelte-check": "4.1.1", "svelte-sonner": "0.3.28", - "sveltekit-superforms": "2.21.1", + "sveltekit-superforms": "2.22.0", "tailwindcss": "3.4.16", "typescript": "5.7.2", "vaul-svelte": "1.0.0-next.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7bb366589..26daba43f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,8 +40,8 @@ importers: specifier: workspace:* version: link:packages/typescript-config cspell: - specifier: 8.16.1 - version: 8.16.1 + specifier: 8.17.1 + version: 8.17.1 husky: specifier: 9.1.7 version: 9.1.7 @@ -90,10 +90,10 @@ importers: version: 2.18.1 '@inlang/paraglide-sveltekit': specifier: 0.14.0 - version: 0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) + version: 0.14.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) '@nhost/nhost-js': specifier: 3.2.1 - version: 3.2.1(graphql@16.9.0) + version: 3.2.1(graphql@16.10.0) '@skeletonlabs/skeleton': specifier: 2.10.3 version: 2.10.3(svelte@4.2.19) @@ -123,19 +123,19 @@ importers: version: 1.0.9 '@sveltejs/adapter-auto': specifier: 3.3.1 - version: 3.3.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) + version: 3.3.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) '@sveltejs/adapter-node': specifier: 5.2.10 - version: 5.2.10(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) + version: 5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) '@sveltejs/adapter-vercel': specifier: 5.5.2 - version: 5.5.2(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(rollup@4.28.1) + version: 5.5.2(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(rollup@4.28.1) '@sveltejs/enhanced-img': specifier: 0.3.10 version: 0.3.10(rollup@4.28.1)(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/kit': - specifier: 2.11.1 - version: 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + specifier: 2.12.1 + version: 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/vite-plugin-svelte': specifier: 3.1.2 version: 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) @@ -174,13 +174,13 @@ importers: version: 1.5.0 '@vercel/analytics': specifier: 1.4.1 - version: 1.4.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19) + version: 1.4.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19) '@vercel/flags': specifier: 2.6.3 - version: 2.6.3(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1) + version: 2.6.3(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1) '@vercel/speed-insights': specifier: 1.1.0 - version: 1.1.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19) + version: 1.1.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19) '@vercel/toolbar': specifier: 0.1.28 version: 0.1.28(react@18.3.1)(vite@5.4.11(@types/node@22.10.2)) @@ -207,13 +207,13 @@ importers: version: 4.1.0 formsnap: specifier: 1.0.1 - version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) + version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) graphql: - specifier: 16.9.0 - version: 16.9.0 + specifier: 16.10.0 + version: 16.10.0 graphql-ws: specifier: 5.16.0 - version: 5.16.0(graphql@16.9.0) + version: 5.16.0(graphql@16.10.0) houdini: specifier: 1.3.1 version: 1.3.1 @@ -264,19 +264,19 @@ importers: version: 5.8.3 sveltekit-flash-message: specifier: 2.4.4 - version: 2.4.4(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19) + version: 2.4.4(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19) sveltekit-rate-limiter: specifier: 0.6.1 - version: 0.6.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) + version: 0.6.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) sveltekit-search-params: specifier: 3.0.0 - version: 3.0.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + version: 3.0.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) sveltekit-superforms: - specifier: 2.21.1 - version: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + specifier: 2.22.0 + version: 2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) sveltekit-view-transition: specifier: 0.5.3 - version: 0.5.3(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19) + version: 0.5.3(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19) swapy: specifier: 1.0.2 version: 1.0.2 @@ -318,19 +318,19 @@ importers: version: 0.9.4(typescript@5.7.2) '@astrojs/node': specifier: 9.0.0 - version: 9.0.0(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) + version: 9.0.0(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/starlight': - specifier: 0.30.1 - version: 0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) + specifier: 0.30.2 + version: 0.30.2(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/starlight-tailwind': specifier: 3.0.0 - version: 3.0.0(@astrojs/starlight@0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)))(@astrojs/tailwind@5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16))(tailwindcss@3.4.16) + version: 3.0.0(@astrojs/starlight@0.30.2(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)))(@astrojs/tailwind@5.1.3(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16))(tailwindcss@3.4.16) '@astrojs/tailwind': specifier: 5.1.3 - version: 5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16) + version: 5.1.3(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16) '@astrojs/vercel': specifier: 8.0.1 - version: 8.0.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.13.0) + version: 8.0.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.14.0) '@fontsource-variable/inter': specifier: 5.1.0 version: 5.1.0 @@ -338,8 +338,8 @@ importers: specifier: 5.1.0 version: 5.1.0 astro: - specifier: 5.0.5 - version: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + specifier: 5.0.7 + version: 5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) sharp: specifier: 0.33.5 version: 0.33.5 @@ -364,13 +364,13 @@ importers: version: 1.0.8(zod@3.24.1) '@ai-sdk/svelte': specifier: 1.0.6 - version: 1.0.6(svelte@5.13.0)(zod@3.24.1) + version: 1.0.6(svelte@5.14.0)(zod@3.24.1) '@aibrow/dom-types': specifier: 1.2.1 version: 1.2.1 '@inlang/paraglide-sveltekit': specifier: 0.14.0 - version: 0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) + version: 0.14.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) '@playwright/test': specifier: 1.49.1 version: 1.49.1 @@ -388,22 +388,22 @@ importers: version: link:../../packages/utils '@sveltejs/adapter-auto': specifier: 3.3.1 - version: 3.3.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))) + version: 3.3.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))) '@sveltejs/adapter-node': specifier: 5.2.10 - version: 5.2.10(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))) + version: 5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))) '@sveltejs/adapter-vercel': specifier: 5.5.2 - version: 5.5.2(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(rollup@4.28.1) + version: 5.5.2(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(rollup@4.28.1) '@sveltejs/enhanced-img': specifier: 0.4.4 - version: 0.4.4(rollup@4.28.1)(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + version: 0.4.4(rollup@4.28.1)(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@sveltejs/kit': - specifier: 2.11.1 - version: 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + specifier: 2.12.1 + version: 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: 5.0.2 - version: 5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + version: 5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@tailwindcss/container-queries': specifier: 0.1.1 version: 0.1.1(tailwindcss@3.4.16) @@ -427,43 +427,43 @@ importers: version: 10.4.20(postcss@8.4.49) bits-ui: specifier: 1.0.0-next.71 - version: 1.0.0-next.71(svelte@5.13.0) + version: 1.0.0-next.71(svelte@5.14.0) clsx: specifier: 2.1.1 version: 2.1.1 formsnap: specifier: 2.0.0 - version: 2.0.0(svelte@5.13.0)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2)) + version: 2.0.0(svelte@5.14.0)(sveltekit-superforms@2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.0)(typescript@5.7.2)) lucide-svelte: specifier: 0.468.0 - version: 0.468.0(svelte@5.13.0) + version: 0.468.0(svelte@5.14.0) mode-watcher: specifier: 0.5.0 - version: 0.5.0(svelte@5.13.0) + version: 0.5.0(svelte@5.14.0) openai-zod-to-json-schema: specifier: 1.0.3 version: 1.0.3(zod@3.24.1) runed: - specifier: 0.18.0 - version: 0.18.0(svelte@5.13.0) + specifier: 0.19.0 + version: 0.19.0(svelte@5.14.0) svelte: - specifier: 5.13.0 - version: 5.13.0 + specifier: 5.14.0 + version: 5.14.0 svelte-check: specifier: 4.1.1 - version: 4.1.1(picomatch@4.0.2)(svelte@5.13.0)(typescript@5.7.2) + version: 4.1.1(picomatch@4.0.2)(svelte@5.14.0)(typescript@5.7.2) svelte-persisted-store: specifier: 0.12.0 - version: 0.12.0(svelte@5.13.0) + version: 0.12.0(svelte@5.14.0) svelte-radix: specifier: 2.0.1 - version: 2.0.1(svelte@5.13.0) + version: 2.0.1(svelte@5.14.0) svelte-sonner: specifier: 0.3.28 - version: 0.3.28(svelte@5.13.0) + version: 0.3.28(svelte@5.14.0) sveltekit-superforms: - specifier: 2.21.1 - version: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2) + specifier: 2.22.0 + version: 2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.0)(typescript@5.7.2) tailwind-merge: specifier: 2.5.5 version: 2.5.5 @@ -481,7 +481,7 @@ importers: version: 5.7.2 vaul-svelte: specifier: 1.0.0-next.3 - version: 1.0.0-next.3(svelte@5.13.0) + version: 1.0.0-next.3(svelte@5.14.0) vite: specifier: 6.0.3 version: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) @@ -503,10 +503,10 @@ importers: version: 0.9.4(typescript@5.7.2) '@astrojs/mdx': specifier: 4.0.2 - version: 4.0.2(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) + version: 4.0.2(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/node': specifier: 9.0.0 - version: 9.0.0(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) + version: 9.0.0(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/partytown': specifier: 2.1.2 version: 2.1.2 @@ -514,17 +514,17 @@ importers: specifier: 3.2.1 version: 3.2.1 '@astrojs/starlight': - specifier: 0.30.1 - version: 0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) + specifier: 0.30.2 + version: 0.30.2(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/svelte': specifier: 7.0.1 - version: 7.0.1(@types/node@22.10.2)(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(jiti@1.21.6)(svelte@5.13.0)(typescript@5.7.2)(yaml@2.6.1) + version: 7.0.1(@types/node@22.10.2)(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(jiti@1.21.6)(svelte@5.14.0)(typescript@5.7.2)(yaml@2.6.1) '@astrojs/tailwind': specifier: 5.1.3 - version: 5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16) + version: 5.1.3(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16) '@astrojs/vercel': specifier: 8.0.1 - version: 8.0.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.13.0) + version: 8.0.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.14.0) '@fontsource-variable/inter': specifier: 5.1.0 version: 5.1.0 @@ -547,23 +547,23 @@ importers: specifier: 2.1.8 version: 2.1.8(vitest@2.1.8) astro: - specifier: 5.0.5 - version: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + specifier: 5.0.7 + version: 5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) astro-expressive-code: specifier: 0.38.3 - version: 0.38.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) + version: 0.38.3(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) astro-seo: specifier: 0.8.4 version: 0.8.4(typescript@5.7.2) lucide-svelte: specifier: 0.468.0 - version: 0.468.0(svelte@5.13.0) + version: 0.468.0(svelte@5.14.0) mode-watcher: specifier: 0.5.0 - version: 0.5.0(svelte@5.13.0) + version: 0.5.0(svelte@5.14.0) svelte: - specifier: 5.13.0 - version: 5.13.0 + specifier: 5.14.0 + version: 5.14.0 tailwind-merge: specifier: 2.5.5 version: 2.5.5 @@ -602,8 +602,8 @@ importers: specifier: workspace:* version: link:../typescript-config graphql: - specifier: 16.9.0 - version: 16.9.0 + specifier: 16.10.0 + version: 16.10.0 tsup: specifier: 8.3.5 version: 8.3.5(jiti@1.21.6)(postcss@8.4.49)(typescript@5.7.2)(yaml@2.6.1) @@ -621,7 +621,7 @@ importers: version: 5.1.0 '@inlang/paraglide-sveltekit': specifier: 0.14.0 - version: 0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) + version: 0.14.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) '@skeletonlabs/skeleton': specifier: 2.10.3 version: 2.10.3(svelte@4.2.19) @@ -638,8 +638,8 @@ importers: specifier: workspace:* version: link:../utils '@sveltejs/kit': - specifier: 2.11.1 - version: 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + specifier: 2.12.1 + version: 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/vite-plugin-svelte': specifier: 3.1.2 version: 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) @@ -684,10 +684,10 @@ importers: version: 4.1.0 formsnap: specifier: 1.0.1 - version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) + version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) graphql: - specifier: 16.9.0 - version: 16.9.0 + specifier: 16.10.0 + version: 16.10.0 lucide-svelte: specifier: 0.468.0 version: 0.468.0(svelte@4.2.19) @@ -704,8 +704,8 @@ importers: specifier: 4.2.19 version: 4.2.19 sveltekit-superforms: - specifier: 2.21.1 - version: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + specifier: 2.22.0 + version: 2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) tailwind-merge: specifier: 2.5.5 version: 2.5.5 @@ -744,7 +744,7 @@ importers: version: 1.6.12 '@inlang/paraglide-sveltekit': specifier: 0.14.0 - version: 0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) + version: 0.14.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) '@skeletonlabs/skeleton': specifier: 2.10.3 version: 2.10.3(svelte@4.2.19) @@ -764,8 +764,8 @@ importers: specifier: 1.0.9 version: 1.0.9 '@sveltejs/kit': - specifier: 2.11.1 - version: 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + specifier: 2.12.1 + version: 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/vite-plugin-svelte': specifier: 3.1.2 version: 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) @@ -792,7 +792,7 @@ importers: version: 4.1.0 formsnap: specifier: 1.0.1 - version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) + version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) gjp-4-gpt: specifier: 0.0.8 version: 0.0.8 @@ -809,8 +809,8 @@ importers: specifier: 5.8.3 version: 5.8.3 sveltekit-superforms: - specifier: 2.21.1 - version: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + specifier: 2.22.0 + version: 2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) tailwind-merge: specifier: 2.5.5 version: 2.5.5 @@ -845,10 +845,10 @@ importers: version: 2.1.1 svelte-persisted-store: specifier: 0.12.0 - version: 0.12.0(svelte@5.13.0) + version: 0.12.0(svelte@5.14.0) svelte-radix: specifier: 2.0.1 - version: 2.0.1(svelte@5.13.0) + version: 2.0.1(svelte@5.14.0) tailwind-merge: specifier: 2.5.5 version: 2.5.5 @@ -861,7 +861,7 @@ importers: devDependencies: '@inlang/paraglide-sveltekit': specifier: 0.14.0 - version: 0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) + version: 0.14.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) '@internationalized/date': specifier: 3.6.0 version: 3.6.0 @@ -876,13 +876,13 @@ importers: version: link:../utils '@sveltejs/adapter-auto': specifier: 3.3.1 - version: 3.3.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))) + version: 3.3.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))) '@sveltejs/kit': - specifier: 2.11.1 - version: 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + specifier: 2.12.1 + version: 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': specifier: 5.0.2 - version: 5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + version: 5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@tailwindcss/aspect-ratio': specifier: 0.4.2 version: 0.4.2(tailwindcss@3.4.16) @@ -912,25 +912,25 @@ importers: version: 10.4.20(postcss@8.4.49) bits-ui: specifier: 1.0.0-next.51 - version: 1.0.0-next.51(svelte@5.13.0) + version: 1.0.0-next.51(svelte@5.14.0) cssnano: specifier: 7.0.6 version: 7.0.6(postcss@8.4.49) embla-carousel-svelte: specifier: 8.5.1 - version: 8.5.1(svelte@5.13.0) + version: 8.5.1(svelte@5.14.0) formsnap: specifier: 2.0.0 - version: 2.0.0(svelte@5.13.0)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2)) + version: 2.0.0(svelte@5.14.0)(sveltekit-superforms@2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.0)(typescript@5.7.2)) lucide-svelte: specifier: 0.468.0 - version: 0.468.0(svelte@5.13.0) + version: 0.468.0(svelte@5.14.0) mode-watcher: specifier: 0.5.0 - version: 0.5.0(svelte@5.13.0) + version: 0.5.0(svelte@5.14.0) paneforge: specifier: 1.0.0-next.1 - version: 1.0.0-next.1(svelte@5.13.0) + version: 1.0.0-next.1(svelte@5.14.0) postcss-import: specifier: 16.1.0 version: 16.1.0(postcss@8.4.49) @@ -938,17 +938,17 @@ importers: specifier: 6.0.1 version: 6.0.1(jiti@1.21.6)(postcss@8.4.49)(yaml@2.6.1) svelte: - specifier: 5.13.0 - version: 5.13.0 + specifier: 5.14.0 + version: 5.14.0 svelte-check: specifier: 4.1.1 - version: 4.1.1(picomatch@4.0.2)(svelte@5.13.0)(typescript@5.7.2) + version: 4.1.1(picomatch@4.0.2)(svelte@5.14.0)(typescript@5.7.2) svelte-sonner: specifier: 0.3.28 - version: 0.3.28(svelte@5.13.0) + version: 0.3.28(svelte@5.14.0) sveltekit-superforms: - specifier: 2.21.1 - version: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2) + specifier: 2.22.0 + version: 2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.0)(typescript@5.7.2) tailwindcss: specifier: 3.4.16 version: 3.4.16 @@ -957,7 +957,7 @@ importers: version: 5.7.2 vaul-svelte: specifier: 1.0.0-next.2 - version: 1.0.0-next.2(svelte@5.13.0) + version: 1.0.0-next.2(svelte@5.14.0) vite: specifier: 6.0.3 version: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) @@ -1128,8 +1128,8 @@ packages: '@astrojs/tailwind': ^5.1.3 tailwindcss: ^3.3.3 - '@astrojs/starlight@0.30.1': - resolution: {integrity: sha512-NHElruXD71rfPp0A1VPrpVv93VqhyLqJ7+fPc+PHluLsBsh3/Y9H0GPApjpJtxOOFvDNy0gNYvV2ZLjhc22WOg==} + '@astrojs/starlight@0.30.2': + resolution: {integrity: sha512-KUNnIhiBgX3hV2mUIqwv2R5b7tBFRVr68Wj0wEyN8E2x0MtAos7qRPytWha/WchAtpO1eIt6sqAT0KfTvBZt5g==} peerDependencies: astro: ^5.0.0 @@ -1330,28 +1330,28 @@ packages: bundledDependencies: - is-unicode-supported - '@cspell/cspell-bundled-dicts@8.16.1': - resolution: {integrity: sha512-EkbtoYpmiN9YPfcOoPcMnIrJBZh13mun64jPyyaYhrPPToiU5+CisZ7ZKUBGnqNaatuciMUxwIudhanQJ7Yhnw==} + '@cspell/cspell-bundled-dicts@8.17.1': + resolution: {integrity: sha512-HmkXS5uX4bk/XxsRS4Q+zRvhgRa81ddGiR2/Xfag9MIi5L5UnEJ4g21EpmIlXkMxYrTu2fp69SZFss5NfcFF9Q==} engines: {node: '>=18'} - '@cspell/cspell-json-reporter@8.16.1': - resolution: {integrity: sha512-ue1paJ2OE2BjIBQHXFMHnFqJL5xMrE/TLveOntDSCKJw7edCGP4XJA6Q0ZfUgR/ZAP3SYKNPkajEWbDTMfG+XA==} + '@cspell/cspell-json-reporter@8.17.1': + resolution: {integrity: sha512-EV9Xkh42Xw3aORvDZfxusICX91DDbqQpYdGKBdPGuhgxWOUYYZKpLXsHCmDkhruMPo2m5gDh++/OqjLRPZofKQ==} engines: {node: '>=18'} - '@cspell/cspell-pipe@8.16.1': - resolution: {integrity: sha512-6N+QZ3y65JRgGrQhZHmaBHESR+nC0J8nySGaYKclit8yk3jLZ/ORw9aoSGIj+dMPzImkNEDh+C1B1zdV4X8W6A==} + '@cspell/cspell-pipe@8.17.1': + resolution: {integrity: sha512-uhC99Ox+OH3COSgShv4fpVHiotR70dNvAOSkzRvKVRzV6IGyFnxHjmyVVPEV0dsqzVLxltwYTqFhwI+UOwm45A==} engines: {node: '>=18'} - '@cspell/cspell-resolver@8.16.1': - resolution: {integrity: sha512-CfVI2JFMwh9/n1QuU9niEONbYCX1XGKqmyCcHQUzAapSqGzbAmFrRFnvyKwNL+mmy1bxli9EZV8f5vBco26f9Q==} + '@cspell/cspell-resolver@8.17.1': + resolution: {integrity: sha512-XEK2ymTdQNgsV3ny60VkKzWskbICl4zNXh/DbxsoRXHqIRg43MXFpTNkEJ7j873EqdX7BU4opQQ+5D4stWWuhQ==} engines: {node: '>=18'} - '@cspell/cspell-service-bus@8.16.1': - resolution: {integrity: sha512-URaralJKcdHZH/Lr25L28GJo2Ub07adHPPhOL83BvmPyGkboehmz5arjNrgQFwS+IvGjHLdp5uzEJd0xyeHGdw==} + '@cspell/cspell-service-bus@8.17.1': + resolution: {integrity: sha512-2sFWQtMEWZ4tdz7bw0bAx4NaV1t0ynGfjpuKWdQppsJFKNb+ZPZZ6Ah1dC13AdRRMZaG194kDRFwzNvRaCgWkQ==} engines: {node: '>=18'} - '@cspell/cspell-types@8.16.1': - resolution: {integrity: sha512-B8bHlBaDSMDMEq++H8qO9osKUkzWUrP4CgWQyRqlXZ9EOdnJ469Tp1wghcQ7DezII3aXYrHiVKsUYY9VvjkhIg==} + '@cspell/cspell-types@8.17.1': + resolution: {integrity: sha512-NJbov7Jp57fh8addoxesjb8atg/APQfssCH5Q9uZuHBN06wEJDgs7fhfE48bU+RBViC9gltblsYZzZZQKzHYKg==} engines: {node: '>=18'} '@cspell/dict-ada@4.0.5': @@ -1366,8 +1366,8 @@ packages: '@cspell/dict-bash@4.1.8': resolution: {integrity: sha512-I2CM2pTNthQwW069lKcrVxchJGMVQBzru2ygsHCwgidXRnJL/NTjAPOFTxN58Jc1bf7THWghfEDyKX/oyfc0yg==} - '@cspell/dict-companies@3.1.8': - resolution: {integrity: sha512-4DVPBwEPWa97g3bgg80i3orGeOGnOiJ7tj3c7n6y7FmqkEgyXcnpxOq0n0HWzwRrwrJp9KIJbtMzSAEynIwyNw==} + '@cspell/dict-companies@3.1.9': + resolution: {integrity: sha512-w7XEJ2B6x2jq9ws5XNyYgpYj2MxdZ3jW3PETLxjK7nc8pulCFmaGVgZ0JTnDWfJ3QMOczoagn5f9LM2PZ/CuJg==} '@cspell/dict-cpp@6.0.2': resolution: {integrity: sha512-yw5eejWvY4bAnc6LUA44m4WsFwlmgPt2uMSnO7QViGMBDuoeopMma4z9XYvs4lSjTi8fIJs/A1YDfM9AVzb8eg==} @@ -1479,8 +1479,8 @@ packages: '@cspell/dict-node@5.0.5': resolution: {integrity: sha512-7NbCS2E8ZZRZwlLrh2sA0vAk9n1kcTUiRp/Nia8YvKaItGXLfxYqD2rMQ3HpB1kEutal6hQLVic3N2Yi1X7AaA==} - '@cspell/dict-npm@5.1.17': - resolution: {integrity: sha512-RBx4yml+GbjgqmV2R9A8rO+uqjb8hV9arZXxVzW04TNdgGT/VjZnu6/3/QDzEp3DxnbSxknAbIii8BzpF/o5EQ==} + '@cspell/dict-npm@5.1.18': + resolution: {integrity: sha512-/Nukl+DSxtEWSlb8svWFSpJVctAsM9SP+f5Q1n+qdDcXNKMb1bUCo/d3QZPwyOhuMjDawnsGBUAfp+iq7Mw83Q==} '@cspell/dict-php@4.0.13': resolution: {integrity: sha512-P6sREMZkhElzz/HhXAjahnICYIqB/HSGp1EhZh+Y6IhvC15AzgtDP8B8VYCIsQof6rPF1SQrFwunxOv8H1e2eg==} @@ -1506,8 +1506,8 @@ packages: '@cspell/dict-scala@5.0.6': resolution: {integrity: sha512-tl0YWAfjUVb4LyyE4JIMVE8DlLzb1ecHRmIWc4eT6nkyDqQgHKzdHsnusxFEFMVLIQomgSg0Zz6hJ5S1E4W4ww==} - '@cspell/dict-software-terms@4.1.19': - resolution: {integrity: sha512-6yQa3A8PGa2fJ7bnLI21nBnOa89Rjckdgq8kwvqvZgrAptV/KLfcXbGgFriICbu3GJqTVcnMMh1fLtz+pdwIEg==} + '@cspell/dict-software-terms@4.1.20': + resolution: {integrity: sha512-ma51njqbk9ZKzZF9NpCZpZ+c50EwR5JTJ2LEXlX0tX+ExVbKpthhlDLhT2+mkUh5Zvj+CLf5F9z0qB4+X3re/w==} '@cspell/dict-sql@2.1.8': resolution: {integrity: sha512-dJRE4JV1qmXTbbGm6WIcg1knmR6K5RXnQxF4XHs5HA3LAjc/zf77F95i5LC+guOGppVF6Hdl66S2UyxT+SAF3A==} @@ -1527,20 +1527,20 @@ packages: '@cspell/dict-vue@3.0.3': resolution: {integrity: sha512-akmYbrgAGumqk1xXALtDJcEcOMYBYMnkjpmGzH13Ozhq1mkPF4VgllFQlm1xYde+BUKNnzMgPEzxrL2qZllgYA==} - '@cspell/dynamic-import@8.16.1': - resolution: {integrity: sha512-mEfdeS1kFKpJoDsQ8wW6PxO3+ncYuZCWCASR0trbzZDduzO2RcogMUgzP99obHtYbgXadw94qcQWXB8OYTPSwg==} + '@cspell/dynamic-import@8.17.1': + resolution: {integrity: sha512-XQtr2olYOtqbg49E+8SISd6I5DzfxmsKINDn0ZgaTFeLalnNdF3ewDU4gOEbApIzGffRa1mW9t19MsiVrznSDw==} engines: {node: '>=18.0'} - '@cspell/filetypes@8.16.1': - resolution: {integrity: sha512-zpbNg3n26muR1jdMbylw5YsaVGyS9LU5Lfy20gU7RygAk6kFyx3Yz4C84EihBGQHy2gVEsEeyCCxk+R8RXuPZA==} + '@cspell/filetypes@8.17.1': + resolution: {integrity: sha512-AxYw6j7EPYtDFAFjwybjFpMc9waXQzurfBXmEVfQ5RQRlbylujLZWwR6GnMqofeNg4oGDUpEjcAZFrgdkvMQlA==} engines: {node: '>=18'} - '@cspell/strong-weak-map@8.16.1': - resolution: {integrity: sha512-jJQS05wg2iUkLKnPR8NEq3LqvqHWKnvUDFoPwaJzYw6ol/O4yi/lv+Me9+XCPrgjpnAz+8APhWkhrR/O71R1Bw==} + '@cspell/strong-weak-map@8.17.1': + resolution: {integrity: sha512-8cY3vLAKdt5gQEMM3Gr57BuQ8sun2NjYNh9qTdrctC1S9gNC7XzFghTYAfHSWR4VrOUcMFLO/izMdsc1KFvFOA==} engines: {node: '>=18'} - '@cspell/url@8.16.1': - resolution: {integrity: sha512-kGlr7Wdo4xJpXKal/Gqo3Ll5Is7ptlIlLZOB/hzR6R53Fw4N6SdipTDIeHHqC15p2AXTEG6TSNdhk9dA50LY6w==} + '@cspell/url@8.17.1': + resolution: {integrity: sha512-LMvReIndW1ckvemElfDgTt282fb2C3C/ZXfsm0pJsTV5ZmtdelCHwzmgSBmY5fDr7D66XDp8EurotSE0K6BTvw==} engines: {node: '>=18.0'} '@ctrl/tinycolor@4.1.0': @@ -1554,11 +1554,6 @@ packages: '@dotenv-run/core@1.3.6': resolution: {integrity: sha512-lVfZc2DWu2P2rKyjrLDN9dw0gKHaFmNMdnrb7peoFv+LUmMxvp9QrWTzU585dU1z2Jj93a2Y3X2T890hAj+mcw==} - '@effect/schema@0.75.5': - resolution: {integrity: sha512-TQInulTVCuF+9EIbJpyLP6dvxbQJMphrnRqgexm/Ze39rSjfhJuufF7XvU3SxTgg3HnL7B/kpORTJbHhlE6thw==} - peerDependencies: - effect: ^3.9.2 - '@emmetio/abbreviation@2.3.3': resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} @@ -2555,8 +2550,8 @@ packages: '@repeaterjs/repeater@3.0.6': resolution: {integrity: sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==} - '@rollup/plugin-commonjs@28.0.1': - resolution: {integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==} + '@rollup/plugin-commonjs@28.0.2': + resolution: {integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==} engines: {node: '>=16.0.0 || 14 >= 14.17'} peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 @@ -2573,8 +2568,8 @@ packages: rollup: optional: true - '@rollup/plugin-node-resolve@15.3.0': - resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==} + '@rollup/plugin-node-resolve@15.3.1': + resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 @@ -2582,8 +2577,8 @@ packages: rollup: optional: true - '@rollup/pluginutils@5.1.3': - resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -2767,8 +2762,8 @@ packages: svelte: ^5.0.0 vite: '>= 5.0.0' - '@sveltejs/kit@2.11.1': - resolution: {integrity: sha512-dAiHDEd+AOm20eYdMPV1a2eKBOc0s/7XsSs7PCoNv2kKS7BAoVRC9uzR+FQmxLtp8xuEo9z8CtrMQoszkThltQ==} + '@sveltejs/kit@2.12.1': + resolution: {integrity: sha512-M3rPijGImeOkI0DBJSwjqz+YFX2DyOf6NzWgHVk3mqpT06dlYCpcv5xh1q4rYEqB58yQlk4QA1Y35PUqnUiFKw==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -3194,22 +3189,22 @@ packages: '@types/json-schema': optional: true - '@typescript-eslint/scope-manager@8.18.0': - resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} + '@typescript-eslint/scope-manager@8.18.1': + resolution: {integrity: sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.18.0': - resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} + '@typescript-eslint/types@8.18.1': + resolution: {integrity: sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.18.0': - resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==} + '@typescript-eslint/typescript-estree@8.18.1': + resolution: {integrity: sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.18.0': - resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} + '@typescript-eslint/visitor-keys@8.18.1': + resolution: {integrity: sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': @@ -3581,8 +3576,8 @@ packages: astro-seo@0.8.4: resolution: {integrity: sha512-Ou1vzQSXAxa0K8rtNtXNvSpYqOGEgMhh0immMxJeXmbVZac3UKCNWAoXWyOQDFYsZvBugCRSg0N1phBqPMVgCw==} - astro@5.0.5: - resolution: {integrity: sha512-xfptdmurDsQcj/Anc7mU+eKlcyV7ppJIlmaSwhX3ZWwK5N/0rGKVmUqnuILgR6MB0XVJiIfublNzDGoyj4Q6BQ==} + astro@5.0.7: + resolution: {integrity: sha512-NFBNIgu8SFJXDhcYyAXAn1jHDdv0+WWui6syedDdCaeyUdMnGHposfJODIgks0579Ma7yGhedetfUpZ5OdxJdw==} engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -3731,8 +3726,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001688: - resolution: {integrity: sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==} + caniuse-lite@1.0.30001689: + resolution: {integrity: sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -3784,6 +3779,10 @@ packages: resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} engines: {node: '>= 14.16.0'} + chokidar@4.0.2: + resolution: {integrity: sha512-/b57FK+bblSU+dfewfFe0rT1YjVDfOmeLQwCAuC+vwvgLkXboATqqmy+Ipux6JrF6L5joe5CBnFOw+gLWH6yKg==} + engines: {node: '>= 14.16.0'} + chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -3963,42 +3962,42 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - cspell-config-lib@8.16.1: - resolution: {integrity: sha512-ohbSi9sI14rMdFc2g17ogObGGkd/x6zUVOzCH1nEOefC9yJYYfsvaMHqdhk0rOjvmF95j5OK4dm5oid+DKQcpw==} + cspell-config-lib@8.17.1: + resolution: {integrity: sha512-x1S7QWprgUcwuwiJB1Ng0ZTBC4G50qP9qQyg/aroMkcdMsHfk26E8jUGRPNt4ftHFzS4YMhwtXuJQ9IgRUuNPA==} engines: {node: '>=18'} - cspell-dictionary@8.16.1: - resolution: {integrity: sha512-NL/vwf5SjtkWWaEUh+0dogKdEU4UuepJaNh36FX8W1CFtQXj7yEs45x4K7/Fp+pn/4AT7Qe7WpSSWi9z5GcqKg==} + cspell-dictionary@8.17.1: + resolution: {integrity: sha512-zSl9l3wii+x16yc2NVZl/+CMLeLBAiuEd5YoFkOYPcbTJnfPwdjMNcj71u7wBvNJ+qwbF+kGbutEt15yHW3NBw==} engines: {node: '>=18'} - cspell-gitignore@8.16.1: - resolution: {integrity: sha512-Gg8qvFc8wr1D7TvB+GSfT1jyrUoUmPiG3WdOnQnxOSYKJesOiVvNxLv7YXRFkcUKG1VU6XDUkpb/uzKh3k2rKw==} + cspell-gitignore@8.17.1: + resolution: {integrity: sha512-bk727Zf4FBCjm9Mwvyreyhgjwe+YhPQEW7PldkHiinKd+Irfez4s8GXLQb1EgV0UpvViqaqBqLmngjZdS30BTA==} engines: {node: '>=18'} hasBin: true - cspell-glob@8.16.1: - resolution: {integrity: sha512-EukaXFaUrgrY9G4bB2PguzpkAoOq6ai9acLl6gWD+6DgVEwkLqPmCWjsFJA0MaqVp9QvPsIfCy4KCnx35csG/g==} + cspell-glob@8.17.1: + resolution: {integrity: sha512-cUwM5auSt0RvLX7UkP2GEArJRWc85l51B1voArl+3ZIKeMZwcJpJgN3qvImtF8yRTZwYeYCs1sgsihb179q+mg==} engines: {node: '>=18'} - cspell-grammar@8.16.1: - resolution: {integrity: sha512-7IRYa0O1xfK2HVbhGSpOPPt5HlP2ZHRHtdLU2iOvMSCkh0cSPERu++kdprvcaOf7E7koo0P+bxHSprcYbU/agg==} + cspell-grammar@8.17.1: + resolution: {integrity: sha512-H5tLcBuW7aUj9L0rR+FSbnWPEsWb8lWppHVidtqw9Ll1CUHWOZC9HTB2RdrhJZrsz/8DJbM2yNbok0Xt0VAfdw==} engines: {node: '>=18'} hasBin: true - cspell-io@8.16.1: - resolution: {integrity: sha512-25MOQfy7EhdVeoNUW/+jyb5ArDYSLbaFwVToakHtLGuYk9cW8q8MAHq1W9GzW06wXswT2sQsRvaozmIOTDIOnw==} + cspell-io@8.17.1: + resolution: {integrity: sha512-liIOsblt7oVItifzRAbuxiYrwlgw1VOqKppMxVKtYoAn2VUuuEpjCj6jLWpoTqSszR/38o7ChsHY1LHakhJZmw==} engines: {node: '>=18'} - cspell-lib@8.16.1: - resolution: {integrity: sha512-Gn1vJcyhYe78iB+9dms8rnfgDEfJgYocXapFPTOcZV3EUWKcV4wyCiHdbK3j2ElLXmPuSPg4eZSlxxk8ITD0Aw==} + cspell-lib@8.17.1: + resolution: {integrity: sha512-66n83Q7bK5tnvkDH7869/pBY/65AKmZVfCOAlsbhJn3YMDbNHFCHR0d1oNMlqG+n65Aco89VGwYfXxImZY+/mA==} engines: {node: '>=18'} - cspell-trie-lib@8.16.1: - resolution: {integrity: sha512-T86nszsjQjyZ35dOWk7qN17Hem0cVeXJ4D1v/gIG+Y0Umo7dBW7AwmTvUy8iMFAra29cSdgRH+yk6q1qdpA+ZA==} + cspell-trie-lib@8.17.1: + resolution: {integrity: sha512-13WNa5s75VwOjlGzWprmfNbBFIfXyA7tYYrbV+LugKkznyNZJeJPojHouEudcLq3SYb2Q6tJ7qyWcuT5bR9qPA==} engines: {node: '>=18'} - cspell@8.16.1: - resolution: {integrity: sha512-ILuCjnY3JPY2oO62PodTQD6n3DGTKTwB+IU1tE9EC6EP2Xw6z3Ir+hO2DO6QlRUmZlGrkGMek5U06nNmztt4eA==} + cspell@8.17.1: + resolution: {integrity: sha512-D0lw8XTXrTycNzOn5DkfPJNUT00X53OgvFDm+0SzhBr1r+na8LEh3CnQ6zKYVU0fL0x8vU82vs4jmGjDho9mPg==} engines: {node: '>=18'} hasBin: true @@ -4416,8 +4415,8 @@ packages: effect@3.11.7: resolution: {integrity: sha512-laj+TCxWGn0eOv6jNmS9vavMO01Z4vvRr7v5airaOUfE7Zr5PrHiECpiI5HRvOewxa1im/4EcOvRodOZ1S2Y7Q==} - electron-to-chromium@1.5.73: - resolution: {integrity: sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==} + electron-to-chromium@1.5.74: + resolution: {integrity: sha512-ck3//9RC+6oss/1Bh9tiAVFy5vfSKbRHAFh7Z3/eTRkEqJeWgymloShB17Vg3Z4nmDNp35vAd1BZ6CMW4Wt6Iw==} elkjs@0.8.2: resolution: {integrity: sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==} @@ -4959,12 +4958,12 @@ packages: resolution: {integrity: sha512-GCOQdvm7XxV1S4U4CGrsdlEN37245eC8P9zaYCMr6K1BG0IPGy5lUwmJsEOGyl1GD6HXjOtl2keCP9asRBwNvA==} engines: {node: '>= 10.x'} - graphql@16.8.1: - resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} + graphql@16.10.0: + resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - graphql@16.9.0: - resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + graphql@16.8.1: + resolution: {integrity: sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} guess-json-indent@2.0.0: @@ -5580,8 +5579,8 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.15: - resolution: {integrity: sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -6767,10 +6766,10 @@ packages: peerDependencies: svelte: ^5.0.0-next.1 - runed@0.18.0: - resolution: {integrity: sha512-siuvOl9Qa1A/gDHE3HuxG1fQQMkh6aOMqKDdGvcRbl53aiz3JbxTrf6DcA/lai8SAR1EMwOs8xX6Vk2PGHXOgA==} + runed@0.19.0: + resolution: {integrity: sha512-VxUk/Lbm5WPR/b+NDQ+Itp/anG6bUWXH+JBUNA1M/YG/lsKZ1Gn+WwvBwyE/8aTpAV7ij12aEVxh78utqi/Q4A==} peerDependencies: - svelte: ^5.0.0-next.1 + svelte: ^5.7.0 rusha@0.8.14: resolution: {integrity: sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==} @@ -7109,8 +7108,8 @@ packages: resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} - svelte@5.13.0: - resolution: {integrity: sha512-ZG4VmBNze/j2KxT2GEeUm8Jr3RLYQ3P5Y9/flUDCgaAxgzx4ZRTdiyh+PCr7qRlOr5M8uidIqr+3DwUFVrdL+A==} + svelte@5.14.0: + resolution: {integrity: sha512-xHrS9dd2Ci9GJd2sReNFqJztoe515wB4OzsPw4A8L2M6lddLFkREkWDJnM5DAND30Zyvjwc1icQVzH0F+Sdx5A==} engines: {node: '>=18'} svelte@5.5.3: @@ -7134,8 +7133,8 @@ packages: '@sveltejs/kit': ^1.0.0 || ^2.0.0 svelte: ^3.55.0 || ^4.0.0 || ^5.0.0 - sveltekit-superforms@2.21.1: - resolution: {integrity: sha512-/20Lv0/Jqtd7JEuRRzSnwMD4ztMYjLJ8B7eO+v1onKR383VhGT9oitwselz1ic+YbjrpQRze2kcypfuYkm1NJQ==} + sveltekit-superforms@2.22.0: + resolution: {integrity: sha512-lRwhdKcrpJWdNso3fR1zDsfxtQowunWC9hojxDsweatpaljQsdJ4CDFUzgw1kjtrPHZAFRbC7q6FcIMV5k//VA==} peerDependencies: '@sveltejs/kit': 1.x || 2.x svelte: 3.x || 4.x || >=5.0.0-next.51 @@ -7956,8 +7955,8 @@ packages: resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} engines: {node: '>=18'} - yup@1.5.0: - resolution: {integrity: sha512-NJfBIHnp1QbqZwxcgl6irnDMIsb/7d1prNhFx02f1kp8h+orpi4xs3w90szNpOh68a/iHPdMsYvhZWoDmUvXBQ==} + yup@1.6.0: + resolution: {integrity: sha512-/dny6arMf5CV6ZPAGpXYVw0wR8qcDF15H8zILTQWoRf6jHN1nJNFL1IAlFfUMlO7QGifMVHZle/l8YJdxtWfxg==} zimmerframe@1.1.2: resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} @@ -8039,13 +8038,13 @@ snapshots: transitivePeerDependencies: - zod - '@ai-sdk/svelte@1.0.6(svelte@5.13.0)(zod@3.24.1)': + '@ai-sdk/svelte@1.0.6(svelte@5.14.0)(zod@3.24.1)': dependencies: '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) '@ai-sdk/ui-utils': 1.0.5(zod@3.24.1) - sswr: 2.1.0(svelte@5.13.0) + sswr: 2.1.0(svelte@5.14.0) optionalDependencies: - svelte: 5.13.0 + svelte: 5.14.0 transitivePeerDependencies: - zod @@ -8089,7 +8088,7 @@ snapshots: '@astrojs/check@0.9.4(typescript@5.7.2)': dependencies: '@astrojs/language-server': 2.15.4(typescript@5.7.2) - chokidar: 4.0.1 + chokidar: 4.0.2 kleur: 4.1.5 typescript: 5.7.2 yargs: 17.7.2 @@ -8148,12 +8147,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.0.2(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))': + '@astrojs/mdx@4.0.2(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))': dependencies: '@astrojs/markdown-remark': 6.0.1 '@mdx-js/mdx': 3.1.0(acorn@8.14.0) acorn: 8.14.0 - astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + astro: 5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) es-module-lexer: 1.5.4 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.4 @@ -8167,9 +8166,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@9.0.0(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))': + '@astrojs/node@9.0.0(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))': dependencies: - astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + astro: 5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) send: 1.1.0 server-destroy: 1.0.1 transitivePeerDependencies: @@ -8190,22 +8189,22 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.24.1 - '@astrojs/starlight-tailwind@3.0.0(@astrojs/starlight@0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)))(@astrojs/tailwind@5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16))(tailwindcss@3.4.16)': + '@astrojs/starlight-tailwind@3.0.0(@astrojs/starlight@0.30.2(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)))(@astrojs/tailwind@5.1.3(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16))(tailwindcss@3.4.16)': dependencies: - '@astrojs/starlight': 0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) - '@astrojs/tailwind': 5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16) + '@astrojs/starlight': 0.30.2(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) + '@astrojs/tailwind': 5.1.3(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16) tailwindcss: 3.4.16 - '@astrojs/starlight@0.30.1(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))': + '@astrojs/starlight@0.30.2(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))': dependencies: - '@astrojs/mdx': 4.0.2(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) + '@astrojs/mdx': 4.0.2(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/sitemap': 3.2.1 '@pagefind/default-ui': 1.2.0 '@types/hast': 3.0.4 '@types/js-yaml': 4.0.9 '@types/mdast': 4.0.4 - astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) - astro-expressive-code: 0.38.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) + astro: 5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + astro-expressive-code: 0.38.3(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.3 @@ -8226,12 +8225,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/svelte@7.0.1(@types/node@22.10.2)(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(jiti@1.21.6)(svelte@5.13.0)(typescript@5.7.2)(yaml@2.6.1)': + '@astrojs/svelte@7.0.1(@types/node@22.10.2)(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(jiti@1.21.6)(svelte@5.14.0)(typescript@5.7.2)(yaml@2.6.1)': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) - astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) - svelte: 5.13.0 - svelte2tsx: 0.7.30(svelte@5.13.0)(typescript@5.7.2) + '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + astro: 5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + svelte: 5.14.0 + svelte2tsx: 0.7.30(svelte@5.14.0)(typescript@5.7.2) typescript: 5.7.2 vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) transitivePeerDependencies: @@ -8248,9 +8247,9 @@ snapshots: - tsx - yaml - '@astrojs/tailwind@5.1.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16)': + '@astrojs/tailwind@5.1.3(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.16)': dependencies: - astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + astro: 5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) autoprefixer: 10.4.20(postcss@8.4.49) postcss: 8.4.49 postcss-load-config: 4.0.2(postcss@8.4.49) @@ -8270,13 +8269,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.0.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.13.0)': + '@astrojs/vercel@8.0.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.14.0)': dependencies: '@astrojs/internal-helpers': 0.4.2 - '@vercel/analytics': 1.4.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(react@18.3.1)(svelte@5.13.0) + '@vercel/analytics': 1.4.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(react@18.3.1)(svelte@5.14.0) '@vercel/edge': 1.1.4 '@vercel/nft': 0.27.9(rollup@4.28.1) - astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + astro: 5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) esbuild: 0.24.0 fast-glob: 3.3.2 transitivePeerDependencies: @@ -8558,13 +8557,13 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@cspell/cspell-bundled-dicts@8.16.1': + '@cspell/cspell-bundled-dicts@8.17.1': dependencies: '@cspell/dict-ada': 4.0.5 '@cspell/dict-al': 1.0.3 '@cspell/dict-aws': 4.0.7 '@cspell/dict-bash': 4.1.8 - '@cspell/dict-companies': 3.1.8 + '@cspell/dict-companies': 3.1.9 '@cspell/dict-cpp': 6.0.2 '@cspell/dict-cryptocurrencies': 5.0.3 '@cspell/dict-csharp': 4.0.5 @@ -8599,7 +8598,7 @@ snapshots: '@cspell/dict-markdown': 2.0.7(@cspell/dict-css@4.0.16)(@cspell/dict-html-symbol-entities@4.0.3)(@cspell/dict-html@4.0.10)(@cspell/dict-typescript@3.1.11) '@cspell/dict-monkeyc': 1.0.9 '@cspell/dict-node': 5.0.5 - '@cspell/dict-npm': 5.1.17 + '@cspell/dict-npm': 5.1.18 '@cspell/dict-php': 4.0.13 '@cspell/dict-powershell': 5.0.13 '@cspell/dict-public-licenses': 2.0.11 @@ -8608,7 +8607,7 @@ snapshots: '@cspell/dict-ruby': 5.0.7 '@cspell/dict-rust': 4.0.10 '@cspell/dict-scala': 5.0.6 - '@cspell/dict-software-terms': 4.1.19 + '@cspell/dict-software-terms': 4.1.20 '@cspell/dict-sql': 2.1.8 '@cspell/dict-svelte': 1.0.5 '@cspell/dict-swift': 2.0.4 @@ -8616,19 +8615,19 @@ snapshots: '@cspell/dict-typescript': 3.1.11 '@cspell/dict-vue': 3.0.3 - '@cspell/cspell-json-reporter@8.16.1': + '@cspell/cspell-json-reporter@8.17.1': dependencies: - '@cspell/cspell-types': 8.16.1 + '@cspell/cspell-types': 8.17.1 - '@cspell/cspell-pipe@8.16.1': {} + '@cspell/cspell-pipe@8.17.1': {} - '@cspell/cspell-resolver@8.16.1': + '@cspell/cspell-resolver@8.17.1': dependencies: global-directory: 4.0.1 - '@cspell/cspell-service-bus@8.16.1': {} + '@cspell/cspell-service-bus@8.17.1': {} - '@cspell/cspell-types@8.16.1': {} + '@cspell/cspell-types@8.17.1': {} '@cspell/dict-ada@4.0.5': {} @@ -8638,7 +8637,7 @@ snapshots: '@cspell/dict-bash@4.1.8': {} - '@cspell/dict-companies@3.1.8': {} + '@cspell/dict-companies@3.1.9': {} '@cspell/dict-cpp@6.0.2': {} @@ -8715,7 +8714,7 @@ snapshots: '@cspell/dict-node@5.0.5': {} - '@cspell/dict-npm@5.1.17': {} + '@cspell/dict-npm@5.1.18': {} '@cspell/dict-php@4.0.13': {} @@ -8735,7 +8734,7 @@ snapshots: '@cspell/dict-scala@5.0.6': {} - '@cspell/dict-software-terms@4.1.19': {} + '@cspell/dict-software-terms@4.1.20': {} '@cspell/dict-sql@2.1.8': {} @@ -8749,15 +8748,16 @@ snapshots: '@cspell/dict-vue@3.0.3': {} - '@cspell/dynamic-import@8.16.1': + '@cspell/dynamic-import@8.17.1': dependencies: + '@cspell/url': 8.17.1 import-meta-resolve: 4.1.0 - '@cspell/filetypes@8.16.1': {} + '@cspell/filetypes@8.17.1': {} - '@cspell/strong-weak-map@8.16.1': {} + '@cspell/strong-weak-map@8.17.1': {} - '@cspell/url@8.16.1': {} + '@cspell/url@8.17.1': {} '@ctrl/tinycolor@4.1.0': {} @@ -8775,12 +8775,6 @@ snapshots: dotenv-expand: 10.0.0 find-up: 5.0.0 - '@effect/schema@0.75.5(effect@3.11.7)': - dependencies: - effect: 3.11.7 - fast-check: 3.23.2 - optional: true - '@emmetio/abbreviation@2.3.3': dependencies: '@emmetio/scanner': 1.0.4 @@ -9121,9 +9115,9 @@ snapshots: dependencies: graphql: 15.9.0 - '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': + '@graphql-typed-document-node/core@3.2.0(graphql@16.10.0)': dependencies: - graphql: 16.9.0 + graphql: 16.10.0 '@graphql-yoga/logger@1.0.0': dependencies: @@ -9272,33 +9266,33 @@ snapshots: - babel-plugin-macros - debug - '@inlang/paraglide-sveltekit@0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0)': + '@inlang/paraglide-sveltekit@0.14.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0)': dependencies: '@inlang/paraglide-js': 1.11.3(babel-plugin-macros@3.1.0) '@inlang/paraglide-vite': 1.3.0(babel-plugin-macros@3.1.0) '@lix-js/client': 2.2.1 - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) commander: 12.1.0 dedent: 1.5.1(babel-plugin-macros@3.1.0) devalue: 4.3.3 - magic-string: 0.30.15 - svelte: 5.13.0 + magic-string: 0.30.17 + svelte: 5.14.0 transitivePeerDependencies: - babel-plugin-macros - debug - supports-color - '@inlang/paraglide-sveltekit@0.14.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0)': + '@inlang/paraglide-sveltekit@0.14.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(babel-plugin-macros@3.1.0)': dependencies: '@inlang/paraglide-js': 1.11.3(babel-plugin-macros@3.1.0) '@inlang/paraglide-vite': 1.3.0(babel-plugin-macros@3.1.0) '@lix-js/client': 2.2.1 - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) commander: 12.1.0 dedent: 1.5.1(babel-plugin-macros@3.1.0) devalue: 4.3.3 - magic-string: 0.30.15 - svelte: 5.13.0 + magic-string: 0.30.17 + svelte: 5.14.0 transitivePeerDependencies: - babel-plugin-macros - debug @@ -9724,11 +9718,11 @@ snapshots: nanoid: 5.0.9 svelte: 4.2.19 - '@nhost/graphql-js@0.3.0(graphql@16.9.0)': + '@nhost/graphql-js@0.3.0(graphql@16.10.0)': dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) base-64: 1.0.0 - graphql: 16.9.0 + graphql: 16.10.0 isomorphic-unfetch: 3.1.0 jwt-decode: 4.0.0 transitivePeerDependencies: @@ -9753,12 +9747,12 @@ snapshots: transitivePeerDependencies: - encoding - '@nhost/nhost-js@3.2.1(graphql@16.9.0)': + '@nhost/nhost-js@3.2.1(graphql@16.10.0)': dependencies: - '@nhost/graphql-js': 0.3.0(graphql@16.9.0) + '@nhost/graphql-js': 0.3.0(graphql@16.10.0) '@nhost/hasura-auth-js': 2.8.0 '@nhost/hasura-storage-js': 2.5.1 - graphql: 16.9.0 + graphql: 16.10.0 isomorphic-unfetch: 3.1.0 transitivePeerDependencies: - encoding @@ -9984,27 +9978,27 @@ snapshots: '@repeaterjs/repeater@3.0.6': {} - '@rollup/plugin-commonjs@28.0.1(rollup@4.28.1)': + '@rollup/plugin-commonjs@28.0.2(rollup@4.28.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.28.1) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.2(picomatch@4.0.2) is-reference: 1.2.1 - magic-string: 0.30.15 + magic-string: 0.30.17 picomatch: 4.0.2 optionalDependencies: rollup: 4.28.1 '@rollup/plugin-json@6.1.0(rollup@4.28.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.28.1) optionalDependencies: rollup: 4.28.1 - '@rollup/plugin-node-resolve@15.3.0(rollup@4.28.1)': + '@rollup/plugin-node-resolve@15.3.1(rollup@4.28.1)': dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.28.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 @@ -10012,7 +10006,7 @@ snapshots: optionalDependencies: rollup: 4.28.1 - '@rollup/pluginutils@5.1.3(rollup@4.28.1)': + '@rollup/pluginutils@5.1.4(rollup@4.28.1)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 @@ -10141,35 +10135,35 @@ snapshots: dependencies: svelte: 4.2.19 - '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))': + '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))': dependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) import-meta-resolve: 4.1.0 - '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))': + '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))': dependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) import-meta-resolve: 4.1.0 - '@sveltejs/adapter-node@5.2.10(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))': + '@sveltejs/adapter-node@5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))': dependencies: - '@rollup/plugin-commonjs': 28.0.1(rollup@4.28.1) + '@rollup/plugin-commonjs': 28.0.2(rollup@4.28.1) '@rollup/plugin-json': 6.1.0(rollup@4.28.1) - '@rollup/plugin-node-resolve': 15.3.0(rollup@4.28.1) - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@rollup/plugin-node-resolve': 15.3.1(rollup@4.28.1) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) rollup: 4.28.1 - '@sveltejs/adapter-node@5.2.10(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))': + '@sveltejs/adapter-node@5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))': dependencies: - '@rollup/plugin-commonjs': 28.0.1(rollup@4.28.1) + '@rollup/plugin-commonjs': 28.0.2(rollup@4.28.1) '@rollup/plugin-json': 6.1.0(rollup@4.28.1) - '@rollup/plugin-node-resolve': 15.3.0(rollup@4.28.1) - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + '@rollup/plugin-node-resolve': 15.3.1(rollup@4.28.1) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) rollup: 4.28.1 - '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(rollup@4.28.1)': + '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(rollup@4.28.1)': dependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@vercel/nft': 0.27.9(rollup@4.28.1) esbuild: 0.24.0 transitivePeerDependencies: @@ -10177,9 +10171,9 @@ snapshots: - rollup - supports-color - '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(rollup@4.28.1)': + '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(rollup@4.28.1)': dependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@vercel/nft': 0.27.9(rollup@4.28.1) esbuild: 0.24.0 transitivePeerDependencies: @@ -10189,7 +10183,7 @@ snapshots: '@sveltejs/enhanced-img@0.3.10(rollup@4.28.1)(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))': dependencies: - magic-string: 0.30.15 + magic-string: 0.30.17 svelte: 4.2.19 svelte-parse-markup: 0.1.5(svelte@4.2.19) vite: 5.4.11(@types/node@22.10.2) @@ -10197,19 +10191,19 @@ snapshots: transitivePeerDependencies: - rollup - '@sveltejs/enhanced-img@0.4.4(rollup@4.28.1)(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': + '@sveltejs/enhanced-img@0.4.4(rollup@4.28.1)(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': dependencies: - magic-string: 0.30.15 + magic-string: 0.30.17 sharp: 0.33.5 - svelte: 5.13.0 - svelte-parse-markup: 0.1.5(svelte@5.13.0) + svelte: 5.14.0 + svelte-parse-markup: 0.1.5(svelte@5.14.0) vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) vite-imagetools: 7.0.5(rollup@4.28.1) zimmerframe: 1.1.2 transitivePeerDependencies: - rollup - '@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))': + '@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))': dependencies: '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@types/cookie': 0.6.0 @@ -10218,7 +10212,7 @@ snapshots: esm-env: 1.2.1 import-meta-resolve: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.15 + magic-string: 0.30.17 mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.7.1 @@ -10227,7 +10221,7 @@ snapshots: tiny-glob: 0.2.9 vite: 5.4.11(@types/node@22.10.2) - '@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@5.13.0)(vite@5.4.11(@types/node@22.10.2))': + '@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@5.14.0)(vite@5.4.11(@types/node@22.10.2))': dependencies: '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@types/cookie': 0.6.0 @@ -10236,30 +10230,30 @@ snapshots: esm-env: 1.2.1 import-meta-resolve: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.15 + magic-string: 0.30.17 mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.7.1 sirv: 3.0.0 - svelte: 5.13.0 + svelte: 5.14.0 tiny-glob: 0.2.9 vite: 5.4.11(@types/node@22.10.2) - '@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': + '@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 esm-env: 1.2.1 import-meta-resolve: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.15 + magic-string: 0.30.17 mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.7.1 sirv: 3.0.0 - svelte: 5.13.0 + svelte: 5.14.0 tiny-glob: 0.2.9 vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) @@ -10272,11 +10266,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) debug: 4.4.0 - svelte: 5.13.0 + svelte: 5.14.0 vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) transitivePeerDependencies: - supports-color @@ -10287,7 +10281,7 @@ snapshots: debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.15 + magic-string: 0.30.17 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) vite: 5.4.11(@types/node@22.10.2) @@ -10295,14 +10289,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.15 - svelte: 5.13.0 + magic-string: 0.30.17 + svelte: 5.14.0 vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1) vitefu: 1.0.4(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) transitivePeerDependencies: @@ -10728,17 +10722,17 @@ snapshots: '@types/json-schema': 7.0.15 optional: true - '@typescript-eslint/scope-manager@8.18.0': + '@typescript-eslint/scope-manager@8.18.1': dependencies: - '@typescript-eslint/types': 8.18.0 - '@typescript-eslint/visitor-keys': 8.18.0 + '@typescript-eslint/types': 8.18.1 + '@typescript-eslint/visitor-keys': 8.18.1 - '@typescript-eslint/types@8.18.0': {} + '@typescript-eslint/types@8.18.1': {} - '@typescript-eslint/typescript-estree@8.18.0(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.18.1(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.18.0 - '@typescript-eslint/visitor-keys': 8.18.0 + '@typescript-eslint/types': 8.18.1 + '@typescript-eslint/visitor-keys': 8.18.1 debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -10749,9 +10743,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.18.0': + '@typescript-eslint/visitor-keys@8.18.1': dependencies: - '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/types': 8.18.1 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.2.0': {} @@ -10809,31 +10803,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@vercel/analytics@1.4.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19)': + '@vercel/analytics@1.4.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19)': optionalDependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) react: 18.3.1 svelte: 4.2.19 - '@vercel/analytics@1.4.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(react@18.3.1)(svelte@5.13.0)': + '@vercel/analytics@1.4.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(react@18.3.1)(svelte@5.14.0)': optionalDependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) react: 18.3.1 - svelte: 5.13.0 + svelte: 5.14.0 '@vercel/edge@1.1.4': {} - '@vercel/flags@2.6.3(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)': + '@vercel/flags@2.6.3(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)': dependencies: jose: 5.2.1 optionalDependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) react: 18.3.1 '@vercel/nft@0.27.9(rollup@4.28.1)': dependencies: '@mapbox/node-pre-gyp': 2.0.0-rc.0 - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.28.1) acorn: 8.14.0 acorn-import-attributes: 1.9.5(acorn@8.14.0) async-sema: 3.1.1 @@ -10849,9 +10843,9 @@ snapshots: - rollup - supports-color - '@vercel/speed-insights@1.1.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19)': + '@vercel/speed-insights@1.1.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19)': optionalDependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) react: 18.3.1 svelte: 4.2.19 @@ -10896,7 +10890,7 @@ snapshots: istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.15 + magic-string: 0.30.17 magicast: 0.3.5 std-env: 3.8.0 test-exclude: 7.0.1 @@ -10916,7 +10910,7 @@ snapshots: dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 - magic-string: 0.30.15 + magic-string: 0.30.17 optionalDependencies: vite: 5.4.11(@types/node@22.10.2) @@ -10932,7 +10926,7 @@ snapshots: '@vitest/snapshot@2.1.8': dependencies: '@vitest/pretty-format': 2.1.8 - magic-string: 0.30.15 + magic-string: 0.30.17 pathe: 1.1.2 '@vitest/spy@2.1.8': @@ -11174,9 +11168,9 @@ snapshots: astro-eslint-parser@1.1.0(typescript@5.7.2): dependencies: '@astrojs/compiler': 2.10.3 - '@typescript-eslint/scope-manager': 8.18.0 - '@typescript-eslint/types': 8.18.0 - '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.1 + '@typescript-eslint/types': 8.18.1 + '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.7.2) astrojs-compiler-sync: 1.0.1(@astrojs/compiler@2.10.3) debug: 4.4.0 entities: 4.5.0 @@ -11190,9 +11184,9 @@ snapshots: - supports-color - typescript - astro-expressive-code@0.38.3(astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)): + astro-expressive-code@0.38.3(astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)): dependencies: - astro: 5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) + astro: 5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) rehype-expressive-code: 0.38.3 astro-seo@0.8.4(typescript@5.7.2): @@ -11203,14 +11197,14 @@ snapshots: - prettier-plugin-astro - typescript - astro@5.0.5(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1): + astro@5.0.7(@types/node@22.10.2)(jiti@1.21.6)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1): dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/internal-helpers': 0.4.2 '@astrojs/markdown-remark': 6.0.1 '@astrojs/telemetry': 3.2.0 '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.28.1) '@types/cookie': 0.6.0 acorn: 8.14.0 aria-query: 5.3.2 @@ -11237,7 +11231,7 @@ snapshots: http-cache-semantics: 4.1.1 js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.15 + magic-string: 0.30.17 magicast: 0.3.5 micromatch: 4.0.8 mrmime: 2.0.0 @@ -11295,7 +11289,7 @@ snapshots: autoprefixer@10.4.20(postcss@8.4.49): dependencies: browserslist: 4.24.3 - caniuse-lite: 1.0.30001688 + caniuse-lite: 1.0.30001689 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -11351,25 +11345,25 @@ snapshots: nanoid: 5.0.9 svelte: 4.2.19 - bits-ui@1.0.0-next.51(svelte@5.13.0): + bits-ui@1.0.0-next.51(svelte@5.14.0): dependencies: '@floating-ui/core': 1.6.8 '@floating-ui/dom': 1.6.12 '@internationalized/date': 3.6.0 esm-env: 1.2.1 - runed: 0.15.4(svelte@5.13.0) - svelte: 5.13.0 - svelte-toolbelt: 0.4.6(svelte@5.13.0) + runed: 0.15.4(svelte@5.14.0) + svelte: 5.14.0 + svelte-toolbelt: 0.4.6(svelte@5.14.0) - bits-ui@1.0.0-next.71(svelte@5.13.0): + bits-ui@1.0.0-next.71(svelte@5.14.0): dependencies: '@floating-ui/core': 1.6.8 '@floating-ui/dom': 1.6.12 '@internationalized/date': 3.6.0 esm-env: 1.2.1 - runed: 0.15.4(svelte@5.13.0) - svelte: 5.13.0 - svelte-toolbelt: 0.4.6(svelte@5.13.0) + runed: 0.15.4(svelte@5.14.0) + svelte: 5.14.0 + svelte-toolbelt: 0.4.6(svelte@5.14.0) boolbase@1.0.0: {} @@ -11401,8 +11395,8 @@ snapshots: browserslist@4.24.3: dependencies: - caniuse-lite: 1.0.30001688 - electron-to-chromium: 1.5.73 + caniuse-lite: 1.0.30001689 + electron-to-chromium: 1.5.74 node-releases: 2.0.19 update-browserslist-db: 1.1.1(browserslist@4.24.3) @@ -11437,11 +11431,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.24.3 - caniuse-lite: 1.0.30001688 + caniuse-lite: 1.0.30001689 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001688: {} + caniuse-lite@1.0.30001689: {} ccount@2.0.1: {} @@ -11497,6 +11491,10 @@ snapshots: dependencies: readdirp: 4.0.2 + chokidar@4.0.2: + dependencies: + readdirp: 4.0.2 + chownr@3.0.0: {} chrome-ai@1.11.1: @@ -11669,59 +11667,59 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - cspell-config-lib@8.16.1: + cspell-config-lib@8.17.1: dependencies: - '@cspell/cspell-types': 8.16.1 + '@cspell/cspell-types': 8.17.1 comment-json: 4.2.5 yaml: 2.6.1 - cspell-dictionary@8.16.1: + cspell-dictionary@8.17.1: dependencies: - '@cspell/cspell-pipe': 8.16.1 - '@cspell/cspell-types': 8.16.1 - cspell-trie-lib: 8.16.1 + '@cspell/cspell-pipe': 8.17.1 + '@cspell/cspell-types': 8.17.1 + cspell-trie-lib: 8.17.1 fast-equals: 5.0.1 - cspell-gitignore@8.16.1: + cspell-gitignore@8.17.1: dependencies: - '@cspell/url': 8.16.1 - cspell-glob: 8.16.1 - cspell-io: 8.16.1 + '@cspell/url': 8.17.1 + cspell-glob: 8.17.1 + cspell-io: 8.17.1 find-up-simple: 1.0.0 - cspell-glob@8.16.1: + cspell-glob@8.17.1: dependencies: - '@cspell/url': 8.16.1 + '@cspell/url': 8.17.1 micromatch: 4.0.8 - cspell-grammar@8.16.1: + cspell-grammar@8.17.1: dependencies: - '@cspell/cspell-pipe': 8.16.1 - '@cspell/cspell-types': 8.16.1 + '@cspell/cspell-pipe': 8.17.1 + '@cspell/cspell-types': 8.17.1 - cspell-io@8.16.1: + cspell-io@8.17.1: dependencies: - '@cspell/cspell-service-bus': 8.16.1 - '@cspell/url': 8.16.1 + '@cspell/cspell-service-bus': 8.17.1 + '@cspell/url': 8.17.1 - cspell-lib@8.16.1: + cspell-lib@8.17.1: dependencies: - '@cspell/cspell-bundled-dicts': 8.16.1 - '@cspell/cspell-pipe': 8.16.1 - '@cspell/cspell-resolver': 8.16.1 - '@cspell/cspell-types': 8.16.1 - '@cspell/dynamic-import': 8.16.1 - '@cspell/filetypes': 8.16.1 - '@cspell/strong-weak-map': 8.16.1 - '@cspell/url': 8.16.1 + '@cspell/cspell-bundled-dicts': 8.17.1 + '@cspell/cspell-pipe': 8.17.1 + '@cspell/cspell-resolver': 8.17.1 + '@cspell/cspell-types': 8.17.1 + '@cspell/dynamic-import': 8.17.1 + '@cspell/filetypes': 8.17.1 + '@cspell/strong-weak-map': 8.17.1 + '@cspell/url': 8.17.1 clear-module: 4.1.2 comment-json: 4.2.5 - cspell-config-lib: 8.16.1 - cspell-dictionary: 8.16.1 - cspell-glob: 8.16.1 - cspell-grammar: 8.16.1 - cspell-io: 8.16.1 - cspell-trie-lib: 8.16.1 + cspell-config-lib: 8.17.1 + cspell-dictionary: 8.17.1 + cspell-glob: 8.17.1 + cspell-grammar: 8.17.1 + cspell-io: 8.17.1 + cspell-trie-lib: 8.17.1 env-paths: 3.0.0 fast-equals: 5.0.1 gensequence: 7.0.0 @@ -11731,27 +11729,27 @@ snapshots: vscode-uri: 3.0.8 xdg-basedir: 5.1.0 - cspell-trie-lib@8.16.1: + cspell-trie-lib@8.17.1: dependencies: - '@cspell/cspell-pipe': 8.16.1 - '@cspell/cspell-types': 8.16.1 + '@cspell/cspell-pipe': 8.17.1 + '@cspell/cspell-types': 8.17.1 gensequence: 7.0.0 - cspell@8.16.1: + cspell@8.17.1: dependencies: - '@cspell/cspell-json-reporter': 8.16.1 - '@cspell/cspell-pipe': 8.16.1 - '@cspell/cspell-types': 8.16.1 - '@cspell/dynamic-import': 8.16.1 - '@cspell/url': 8.16.1 + '@cspell/cspell-json-reporter': 8.17.1 + '@cspell/cspell-pipe': 8.17.1 + '@cspell/cspell-types': 8.17.1 + '@cspell/dynamic-import': 8.17.1 + '@cspell/url': 8.17.1 chalk: 5.3.0 chalk-template: 1.1.0 commander: 12.1.0 - cspell-dictionary: 8.16.1 - cspell-gitignore: 8.16.1 - cspell-glob: 8.16.1 - cspell-io: 8.16.1 - cspell-lib: 8.16.1 + cspell-dictionary: 8.17.1 + cspell-gitignore: 8.17.1 + cspell-glob: 8.17.1 + cspell-io: 8.17.1 + cspell-lib: 8.17.1 fast-json-stable-stringify: 2.1.0 file-entry-cache: 9.1.0 get-stdin: 9.0.0 @@ -12169,7 +12167,7 @@ snapshots: fast-check: 3.23.2 optional: true - electron-to-chromium@1.5.73: {} + electron-to-chromium@1.5.74: {} elkjs@0.8.2: {} @@ -12177,11 +12175,11 @@ snapshots: dependencies: embla-carousel: 8.5.1 - embla-carousel-svelte@8.5.1(svelte@5.13.0): + embla-carousel-svelte@8.5.1(svelte@5.14.0): dependencies: embla-carousel: 8.5.1 embla-carousel-reactive-utils: 8.5.1(embla-carousel@8.5.1) - svelte: 5.13.0 + svelte: 5.14.0 embla-carousel@8.5.1: {} @@ -12594,17 +12592,17 @@ snapshots: dependencies: fetch-blob: 3.2.0 - formsnap@1.0.1(svelte@4.2.19)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)): + formsnap@1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)): dependencies: nanoid: 5.0.9 svelte: 4.2.19 - sveltekit-superforms: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + sveltekit-superforms: 2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) - formsnap@2.0.0(svelte@5.13.0)(sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2)): + formsnap@2.0.0(svelte@5.14.0)(sveltekit-superforms@2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.0)(typescript@5.7.2)): dependencies: - svelte: 5.13.0 - svelte-toolbelt: 0.5.0(svelte@5.13.0) - sveltekit-superforms: 2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2) + svelte: 5.14.0 + svelte-toolbelt: 0.5.0(svelte@5.14.0) + sveltekit-superforms: 2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.0)(typescript@5.7.2) fraction.js@4.3.7: {} @@ -12762,9 +12760,9 @@ snapshots: graceful-fs@4.2.11: {} - graphql-ws@5.16.0(graphql@16.9.0): + graphql-ws@5.16.0(graphql@16.10.0): dependencies: - graphql: 16.9.0 + graphql: 16.10.0 graphql-yoga@4.0.5(graphql@15.9.0): dependencies: @@ -12783,9 +12781,9 @@ snapshots: graphql@15.9.0: {} - graphql@16.8.1: {} + graphql@16.10.0: {} - graphql@16.9.0: {} + graphql@16.8.1: {} guess-json-indent@2.0.0: {} @@ -12995,14 +12993,14 @@ snapshots: houdini-svelte@2.0.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/node@22.10.2): dependencies: '@kitql/helpers': 0.8.10 - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@5.13.0)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@5.14.0)(vite@5.4.11(@types/node@22.10.2)) ast-types: 0.16.1 estree-walker: 3.0.3 graphql: 15.9.0 houdini: 1.3.1 recast: 0.23.9 rollup: 3.29.5 - svelte: 5.13.0 + svelte: 5.14.0 vite: 5.4.11(@types/node@22.10.2) transitivePeerDependencies: - '@sveltejs/vite-plugin-svelte' @@ -13531,13 +13529,13 @@ snapshots: dependencies: svelte: 4.2.19 - lucide-svelte@0.468.0(svelte@5.13.0): + lucide-svelte@0.468.0(svelte@5.14.0): dependencies: - svelte: 5.13.0 + svelte: 5.14.0 lz-string@1.5.0: {} - magic-string@0.30.15: + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -14149,9 +14147,9 @@ snapshots: mkdirp@3.0.1: {} - mode-watcher@0.5.0(svelte@5.13.0): + mode-watcher@0.5.0(svelte@5.14.0): dependencies: - svelte: 5.13.0 + svelte: 5.14.0 mri@1.2.0: {} @@ -14372,10 +14370,10 @@ snapshots: nanoid: 5.0.9 svelte: 4.2.19 - paneforge@1.0.0-next.1(svelte@5.13.0): + paneforge@1.0.0-next.1(svelte@5.14.0): dependencies: - svelte: 5.13.0 - svelte-toolbelt: 0.4.6(svelte@5.13.0) + svelte: 5.14.0 + svelte-toolbelt: 0.4.6(svelte@5.14.0) parent-module@1.0.1: dependencies: @@ -15066,15 +15064,15 @@ snapshots: dependencies: queue-microtask: 1.2.3 - runed@0.15.4(svelte@5.13.0): + runed@0.15.4(svelte@5.14.0): dependencies: esm-env: 1.2.1 - svelte: 5.13.0 + svelte: 5.14.0 - runed@0.18.0(svelte@5.13.0): + runed@0.19.0(svelte@5.14.0): dependencies: esm-env: 1.2.1 - svelte: 5.13.0 + svelte: 5.14.0 rusha@0.8.14: {} @@ -15250,9 +15248,9 @@ snapshots: svelte: 4.2.19 swrev: 4.0.0 - sswr@2.1.0(svelte@5.13.0): + sswr@2.1.0(svelte@5.14.0): dependencies: - svelte: 5.13.0 + svelte: 5.14.0 swrev: 4.0.0 stackback@0.0.2: {} @@ -15364,7 +15362,7 @@ snapshots: svelte-check@4.1.1(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.7.2): dependencies: '@jridgewell/trace-mapping': 0.3.25 - chokidar: 4.0.1 + chokidar: 4.0.2 fdir: 6.4.2(picomatch@4.0.2) picocolors: 1.1.1 sade: 1.8.1 @@ -15373,14 +15371,14 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-check@4.1.1(picomatch@4.0.2)(svelte@5.13.0)(typescript@5.7.2): + svelte-check@4.1.1(picomatch@4.0.2)(svelte@5.14.0)(typescript@5.7.2): dependencies: '@jridgewell/trace-mapping': 0.3.25 - chokidar: 4.0.1 + chokidar: 4.0.2 fdir: 6.4.2(picomatch@4.0.2) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.13.0 + svelte: 5.14.0 typescript: 5.7.2 transitivePeerDependencies: - picomatch @@ -15405,47 +15403,47 @@ snapshots: dependencies: svelte: 4.2.19 - svelte-parse-markup@0.1.5(svelte@5.13.0): + svelte-parse-markup@0.1.5(svelte@5.14.0): dependencies: - svelte: 5.13.0 + svelte: 5.14.0 svelte-persisted-store@0.12.0(svelte@4.2.19): dependencies: svelte: 4.2.19 - svelte-persisted-store@0.12.0(svelte@5.13.0): + svelte-persisted-store@0.12.0(svelte@5.14.0): dependencies: - svelte: 5.13.0 + svelte: 5.14.0 - svelte-radix@2.0.1(svelte@5.13.0): + svelte-radix@2.0.1(svelte@5.14.0): dependencies: - svelte: 5.13.0 + svelte: 5.14.0 svelte-select@5.8.3: dependencies: svelte-floating-ui: 1.5.8 - svelte-sonner@0.3.28(svelte@5.13.0): + svelte-sonner@0.3.28(svelte@5.14.0): dependencies: - svelte: 5.13.0 + svelte: 5.14.0 - svelte-toolbelt@0.4.6(svelte@5.13.0): + svelte-toolbelt@0.4.6(svelte@5.14.0): dependencies: clsx: 2.1.1 style-to-object: 1.0.8 - svelte: 5.13.0 + svelte: 5.14.0 - svelte-toolbelt@0.5.0(svelte@5.13.0): + svelte-toolbelt@0.5.0(svelte@5.14.0): dependencies: clsx: 2.1.1 style-to-object: 1.0.8 - svelte: 5.13.0 + svelte: 5.14.0 - svelte2tsx@0.7.30(svelte@5.13.0)(typescript@5.7.2): + svelte2tsx@0.7.30(svelte@5.14.0)(typescript@5.7.2): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 5.13.0 + svelte: 5.14.0 typescript: 5.7.2 svelte@4.2.19: @@ -15462,10 +15460,10 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.15 + magic-string: 0.30.17 periscopic: 3.1.0 - svelte@5.13.0: + svelte@5.14.0: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -15478,7 +15476,7 @@ snapshots: esrap: 1.2.3 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.15 + magic-string: 0.30.17 zimmerframe: 1.1.2 svelte@5.5.3: @@ -15494,38 +15492,37 @@ snapshots: esrap: 1.2.3 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.15 + magic-string: 0.30.17 zimmerframe: 1.1.2 - sveltekit-flash-message@2.4.4(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19): + sveltekit-flash-message@2.4.4(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19): dependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) svelte: 4.2.19 - sveltekit-rate-limiter@0.6.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))): + sveltekit-rate-limiter@0.6.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))): dependencies: '@isaacs/ttlcache': 1.4.1 - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) - sveltekit-search-params@3.0.0(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)): + sveltekit-search-params@3.0.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)): dependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) svelte: 4.2.19 transitivePeerDependencies: - supports-color - vite - sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2): + sveltekit-superforms@2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2): dependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) devalue: 5.1.1 just-clone: 6.2.0 memoize-weak: 1.0.2 svelte: 4.2.19 ts-deepmerge: 7.0.2 optionalDependencies: - '@effect/schema': 0.75.5(effect@3.11.7) '@exodus/schemasafe': 1.3.0 '@gcornut/valibot-json-schema': 0.31.0 '@sinclair/typebox': 0.34.11 @@ -15538,23 +15535,22 @@ snapshots: json-schema-to-ts: 3.1.1 superstruct: 2.0.2 valibot: 1.0.0-beta.9(typescript@5.7.2) - yup: 1.5.0 + yup: 1.6.0 zod: 3.24.1 zod-to-json-schema: 3.24.1(zod@3.24.1) transitivePeerDependencies: - '@types/json-schema' - typescript - sveltekit-superforms@2.21.1(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.13.0)(typescript@5.7.2): + sveltekit-superforms@2.22.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.0)(typescript@5.7.2): dependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.13.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.14.0)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.6)(yaml@2.6.1)) devalue: 5.1.1 just-clone: 6.2.0 memoize-weak: 1.0.2 - svelte: 5.13.0 + svelte: 5.14.0 ts-deepmerge: 7.0.2 optionalDependencies: - '@effect/schema': 0.75.5(effect@3.11.7) '@exodus/schemasafe': 1.3.0 '@gcornut/valibot-json-schema': 0.31.0 '@sinclair/typebox': 0.34.11 @@ -15567,16 +15563,16 @@ snapshots: json-schema-to-ts: 3.1.1 superstruct: 2.0.2 valibot: 1.0.0-beta.9(typescript@5.7.2) - yup: 1.5.0 + yup: 1.6.0 zod: 3.24.1 zod-to-json-schema: 3.24.1(zod@3.24.1) transitivePeerDependencies: - '@types/json-schema' - typescript - sveltekit-view-transition@0.5.3(@sveltejs/kit@2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19): + sveltekit-view-transition@0.5.3(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19): dependencies: - '@sveltejs/kit': 2.11.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) svelte: 4.2.19 svgo@3.3.2: @@ -15782,7 +15778,7 @@ snapshots: dependencies: bundle-require: 5.0.0(esbuild@0.24.0) cac: 6.7.14 - chokidar: 4.0.1 + chokidar: 4.0.2 consola: 3.2.3 debug: 4.4.0 esbuild: 0.24.0 @@ -15964,17 +15960,17 @@ snapshots: value-or-promise@1.0.12: {} - vaul-svelte@1.0.0-next.2(svelte@5.13.0): + vaul-svelte@1.0.0-next.2(svelte@5.14.0): dependencies: - bits-ui: 1.0.0-next.51(svelte@5.13.0) - svelte: 5.13.0 - svelte-toolbelt: 0.4.6(svelte@5.13.0) + bits-ui: 1.0.0-next.51(svelte@5.14.0) + svelte: 5.14.0 + svelte-toolbelt: 0.4.6(svelte@5.14.0) - vaul-svelte@1.0.0-next.3(svelte@5.13.0): + vaul-svelte@1.0.0-next.3(svelte@5.14.0): dependencies: - bits-ui: 1.0.0-next.71(svelte@5.13.0) - svelte: 5.13.0 - svelte-toolbelt: 0.4.6(svelte@5.13.0) + bits-ui: 1.0.0-next.71(svelte@5.14.0) + svelte: 5.14.0 + svelte-toolbelt: 0.4.6(svelte@5.14.0) vfile-location@5.0.3: dependencies: @@ -15993,7 +15989,7 @@ snapshots: vite-imagetools@7.0.5(rollup@4.28.1): dependencies: - '@rollup/pluginutils': 5.1.3(rollup@4.28.1) + '@rollup/pluginutils': 5.1.4(rollup@4.28.1) imagetools-core: 7.0.2 sharp: 0.33.5 transitivePeerDependencies: @@ -16062,7 +16058,7 @@ snapshots: chai: 5.1.2 debug: 4.4.0 expect-type: 1.1.0 - magic-string: 0.30.15 + magic-string: 0.30.17 pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 @@ -16342,7 +16338,7 @@ snapshots: yoctocolors@2.1.1: {} - yup@1.5.0: + yup@1.6.0: dependencies: property-expr: 2.0.6 tiny-case: 1.0.3 From 6d1feb478edeee43c39a05a30be4685bf1545f3f Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Mon, 16 Dec 2024 18:41:46 -0800 Subject: [PATCH 10/77] fix: mount GraphQLErrors component only if there is error --- apps/console/src/lib/graphql/client.ts | 1 + .../(app)/policies/components/search-policies-form.svelte | 4 +++- apps/console/src/routes/(app)/policies/create/+page.svelte | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/console/src/lib/graphql/client.ts b/apps/console/src/lib/graphql/client.ts index 884ee7190..33b769885 100644 --- a/apps/console/src/lib/graphql/client.ts +++ b/apps/console/src/lib/graphql/client.ts @@ -36,6 +36,7 @@ const subClient: ClientPlugin = subscription(({ session }) => ); // Export the Houdini client +// Ref: https://github.com/hanshoi/sveltekit-nhost-houdini-example/blob/master/src/client.ts export default new HoudiniClient({ url, fetchParams({ session, metadata }) { diff --git a/apps/console/src/routes/(app)/policies/components/search-policies-form.svelte b/apps/console/src/routes/(app)/policies/components/search-policies-form.svelte index bcc1634d4..157041b9b 100644 --- a/apps/console/src/routes/(app)/policies/components/search-policies-form.svelte +++ b/apps/console/src/routes/(app)/policies/components/search-policies-form.svelte @@ -121,7 +121,9 @@ $: loadingState.setFormLoading($delayed); - +{#if gqlErrors} + +{/if} - + {#if gqlErrors} + + {/if}
From 982edba441953d68b3de1e8d2646ad3f920e9530 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Mon, 16 Dec 2024 19:11:08 -0800 Subject: [PATCH 11/77] fix(console): removed signout endpoint, auth cookie no more set on server side --- .../src/lib/components/layout/avatar.svelte | 32 ++++++++++++---- apps/console/src/lib/constants.ts | 2 + apps/console/src/lib/server/hooks/auth.ts | 37 ++++--------------- apps/console/src/lib/server/hooks/houdini.ts | 7 +--- apps/console/src/lib/server/utils/nhost.ts | 23 +----------- .../src/routes/(auth)/signout/+page.server.ts | 26 ------------- apps/console/src/routes/+layout.svelte | 19 ---------- 7 files changed, 38 insertions(+), 108 deletions(-) delete mode 100644 apps/console/src/routes/(auth)/signout/+page.server.ts diff --git a/apps/console/src/lib/components/layout/avatar.svelte b/apps/console/src/lib/components/layout/avatar.svelte index 77de7d0c3..592ffea39 100644 --- a/apps/console/src/lib/components/layout/avatar.svelte +++ b/apps/console/src/lib/components/layout/avatar.svelte @@ -1,14 +1,34 @@ @@ -46,12 +66,10 @@ export let online = true;
  • - - -
  • + diff --git a/apps/console/src/lib/constants.ts b/apps/console/src/lib/constants.ts index 72c64a321..86ad6ee27 100644 --- a/apps/console/src/lib/constants.ts +++ b/apps/console/src/lib/constants.ts @@ -6,6 +6,8 @@ export const ROUTE_HOME = '/'; export const ROUTE_AUTH = '/auth'; export const ROUTE_PROFILE = '/profile'; export const ROUTE_DASHBOARD = '/dashboard'; +export const ROUTE_SIGNIN = '/signin'; +export const ROUTE_SIGNUP = '/signup'; // API Routes export const API_AUTH = '/api/auth.json'; diff --git a/apps/console/src/lib/server/hooks/auth.ts b/apps/console/src/lib/server/hooks/auth.ts index fabbb4df9..6c0332857 100644 --- a/apps/console/src/lib/server/hooks/auth.ts +++ b/apps/console/src/lib/server/hooks/auth.ts @@ -1,6 +1,6 @@ import { NHOST_SESSION_KEY } from '$lib/constants'; import { i18n } from '$lib/i18n'; -import { getServerNhost, setNhostSessionInCookies } from '$lib/server/utils/nhost'; +import { getServerNhost } from '$lib/server/utils/nhost'; import type { NhostSession } from '@nhost/nhost-js'; import { Logger } from '@spectacular/utils'; import type { Handle } from '@sveltejs/kit'; @@ -23,38 +23,15 @@ export const auth = (async ({ event, resolve }) => { const sessionCookieValue = cookies.get(NHOST_SESSION_KEY); const initialSession = sessionCookieValue ? (JSON.parse(atob(sessionCookieValue)) as NhostSession) : undefined; - const nhost = await getServerNhost(initialSession, cookies); - - const session = nhost.auth.getSession(); - - const refreshToken = url.searchParams.get('refreshToken') || undefined; + const nhost = await getServerNhost(initialSession); + // check if session is still valid const currentTime = Math.floor(Date.now() / 1000); const tokenExpirationTime = nhost.auth.getDecodedAccessToken()?.exp; - const accessTokenExpired = session && tokenExpirationTime && currentTime > tokenExpirationTime; - log.debug({ accessTokenExpired, refreshToken }); - - if (accessTokenExpired || refreshToken) { - log.debug('in accessTokenExpired || refreshToken'); - // FIXME: https://github.com/nhost/nhost/issues/2028 - const { session: newSession, error } = await nhost.auth.refreshSession(refreshToken); - if (error) { - // delete session cookie when the refreshToken has expired - event.cookies.delete(NHOST_SESSION_KEY, { path: '/' }); - // TODO: should we throw error and display error to user? - log.error('auth error:', error); - redirect(303, i18n.resolveRoute('/signin?redirectTo=/dashboard')); - } - - if (newSession) { - setNhostSessionInCookies(event.cookies, newSession); - } - - if (refreshToken) { - event.url.searchParams.delete('refreshToken'); - // TODO: comment this block to proceed to next handler - redirect(303, event.url.pathname); - } + const accessTokenExpired = tokenExpirationTime && currentTime > tokenExpirationTime; + if (accessTokenExpired) { + log.debug('session expired:', { accessTokenExpired }); + redirect(303, i18n.resolveRoute(`/signin?redirectTo=${event.url.pathname}`)); } // HINT: set `nhost` into `locals` after `NhostSession` is initialized from diff --git a/apps/console/src/lib/server/hooks/houdini.ts b/apps/console/src/lib/server/hooks/houdini.ts index b5d37650c..46403da11 100644 --- a/apps/console/src/lib/server/hooks/houdini.ts +++ b/apps/console/src/lib/server/hooks/houdini.ts @@ -11,12 +11,9 @@ export const houdini = (async ({ event, resolve }) => { const { locals } = event; const accessToken = locals.nhost.auth.getAccessToken(); - const session = locals.nhost.auth.getSession(); - log.debug('setting accessToken:', accessToken); - if (session && accessToken) - // FIXME: remove session check after https://github.com/nhost/nhost/issues/2028 - setSession(event, { accessToken }); + if (accessToken) setSession(event, { accessToken }); + const response = await resolve(event); return response; }) satisfies Handle; diff --git a/apps/console/src/lib/server/utils/nhost.ts b/apps/console/src/lib/server/utils/nhost.ts index ac0d04d29..bd9080c46 100644 --- a/apps/console/src/lib/server/utils/nhost.ts +++ b/apps/console/src/lib/server/utils/nhost.ts @@ -11,11 +11,11 @@ const log = new Logger('nhost.server.client'); const isBrowser = typeof window !== 'undefined'; /** - * Creates an Nhost client that runs on the server-side. + * Creates nHost client that runs on the server-side. * @param initialSession * @returns */ -export async function getServerNhost(initialSession: NhostSession | undefined, cookies: Cookies) { +export async function getServerNhost(initialSession: NhostSession | undefined) { const nhost = new NhostClient({ // subdomain: env.NHOST_SUBDOMAIN ?? 'local', // region: env.NHOST_REGION, @@ -39,22 +39,3 @@ export async function getServerNhost(initialSession: NhostSession | undefined, c return nhost; } - -/** - * Use this function to set nhost session into cookie - from SignIn/SignUp/auth-miggleware - * @param {Cookies} cookies - svelte cookies - * @param {NhostSession} session - The session to set in the cookie - */ -export function setNhostSessionInCookies(cookies: Cookies, session: NhostSession) { - // Expire the cookie 60 seconds before the token expires - // const expires = new Date(); - // expires.setSeconds(expires.getSeconds() + session.accessTokenExpiresIn - 60); - // FIXME: *** btoa don't support unicode and throw error: DOMException [InvalidCharacterError]: Invalid character *** - cookies.set(NHOST_SESSION_KEY, btoa(JSON.stringify(session)), { - path: '/', - sameSite: 'strict', - // make it as session cookie and let the browser refresh and update cookie - httpOnly: false, - // expires, - }); -} diff --git a/apps/console/src/routes/(auth)/signout/+page.server.ts b/apps/console/src/routes/(auth)/signout/+page.server.ts deleted file mode 100644 index 81b4a6439..000000000 --- a/apps/console/src/routes/(auth)/signout/+page.server.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { NHOST_SESSION_KEY } from '$lib/constants'; -import { i18n } from '$lib/i18n'; -import { Logger } from '@spectacular/utils'; -import { redirect as redirectWithFlash } from 'sveltekit-flash-message/server'; -import type { Actions } from './$types'; - -const log = new Logger('server:auth:signout'); - -export const actions = { - default: async (event) => { - const { - cookies, - locals: { - paraglide: { lang }, - nhost, - }, - } = event; - log.debug('signout', lang); - - await nhost.auth.signOut(); - cookies.delete(NHOST_SESSION_KEY, { path: '/' }); - const message: App.Superforms.Message = { type: 'success', message: 'Signout sucessfull 😎' } as const; - redirectWithFlash(303, i18n.resolveRoute('/'), message, event); - // redirectWithFlash(303, i18n.resolveRoute('/signin'), message, event); - }, -} satisfies Actions; diff --git a/apps/console/src/routes/+layout.svelte b/apps/console/src/routes/+layout.svelte index cecea0f25..d2adf3dad 100644 --- a/apps/console/src/routes/+layout.svelte +++ b/apps/console/src/routes/+layout.svelte @@ -96,25 +96,6 @@ function scrollHandler(event: ComponentEvents['scroll']) { $: slotSidebarLeft = matchNoSidebarPaths($page.url.pathname) ? 'w-0' : 'bg-surface-50-900-token lg:w-auto'; $: allyPageSmoothScroll = !$prefersReducedMotionStore ? 'scroll-smooth' : ''; -// update nhost session -// HINT: https://blog.flotes.app/posts/performant-reactivity -$: ({ session } = data); -$: if (browser) { - if (session) { - log.debug('trigger SESSION_UPDATE', { session }); - nhost.auth.client.interpreter?.send('SESSION_UPDATE', { - data: { session }, - }); - } else { - log.debug('session empty, trigger SIGNOUT'); - // nhost.auth.client.interpreter?.send('SIGNOUT'); - (async () => { - const { error } = await nhost.auth.signOut(); - if (error) log.error({ error }); - })(); - } -} - // if(browser) { // cookieStore.onchange = (event: CookieChangeEvent) => { // console.log("cookie changed", {event}); From 222332c3db3dc503f46547ddb6a7677f09f92f91 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Tue, 17 Dec 2024 18:23:22 -0800 Subject: [PATCH 12/77] fix(console): workaround for fickle hudini session/accessToken managment on client-side --- apps/console/src/lib/graphql/client.ts | 10 ++++++++-- apps/console/src/lib/server/hooks/auth.ts | 4 +++- apps/console/src/lib/stores/nhost.ts | 6 ++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/apps/console/src/lib/graphql/client.ts b/apps/console/src/lib/graphql/client.ts index 33b769885..e13f3657d 100644 --- a/apps/console/src/lib/graphql/client.ts +++ b/apps/console/src/lib/graphql/client.ts @@ -7,6 +7,7 @@ import { GRAPHQL_URL } from '$lib/constants'; import { Logger, hasErrorMessage, hasErrorTypes, isErrorType } from '@spectacular/utils'; import { error, redirect } from '@sveltejs/kit'; import { createClient as createWSClient } from 'graphql-ws'; +import { at } from '$lib/stores/nhost'; const url = env.PUBLIC_NHOST_GRAPHQL_URL ?? GRAPHQL_URL; const log = new Logger(browser ? 'houdini.browser.client' : 'houdini.server.client'); @@ -52,8 +53,13 @@ export default new HoudiniClient({ const useRole = metadata?.useRole; const adminSecret = metadata?.adminSecret; - if (browser && getClientSession()?.accessToken) { - accessToken = getClientSession().accessToken; + // FIXME: after setClientSession() AT changes back to stale server-side AT in few sec + // if (browser && getClientSession()?.accessToken) { + // accessToken = getClientSession().accessToken; + // } + // WORKAROUND: remove next block + if (browser && at) { + accessToken = at; } return { diff --git a/apps/console/src/lib/server/hooks/auth.ts b/apps/console/src/lib/server/hooks/auth.ts index 6c0332857..ac5ca56b6 100644 --- a/apps/console/src/lib/server/hooks/auth.ts +++ b/apps/console/src/lib/server/hooks/auth.ts @@ -30,7 +30,9 @@ export const auth = (async ({ event, resolve }) => { const tokenExpirationTime = nhost.auth.getDecodedAccessToken()?.exp; const accessTokenExpired = tokenExpirationTime && currentTime > tokenExpirationTime; if (accessTokenExpired) { - log.debug('session expired:', { accessTokenExpired }); + log.debug('session expired:', { accessTokenExpired, path: event.url.pathname }); + // HINT: delete session cookie when accessTokenExpired and redirect to signin page. + event.cookies.delete(NHOST_SESSION_KEY, { path: '/' }); redirect(303, i18n.resolveRoute(`/signin?redirectTo=${event.url.pathname}`)); } diff --git a/apps/console/src/lib/stores/nhost.ts b/apps/console/src/lib/stores/nhost.ts index ba233a51b..3dd38a128 100644 --- a/apps/console/src/lib/stores/nhost.ts +++ b/apps/console/src/lib/stores/nhost.ts @@ -9,6 +9,9 @@ import Cookies from 'js-cookie'; import { getContext, onDestroy, setContext } from 'svelte'; import { type Readable, type Writable, derived, get, readable, readonly, writable } from 'svelte/store'; +// WORKAROUND: remove next line +export let at: string | undefined; + // TODO: change to Svelte 5 Class: https://x.com/ankurpsinghal/status/1856719524059283897 const skQuery = new SearchSecurityKeysStore().artifact.raw; export class SvelteKitNhostClient extends NhostClient { @@ -69,6 +72,9 @@ export class SvelteKitNhostClient extends NhostClient { set(accessToken ?? null); // set fresh accessToken into HoudiniClient's session (client-side only) setClientSession({ accessToken }); + // FIXME: after setClientSession() AT changes back to stale server-side AT in few sec + // WORKAROUND: remove next line + at = accessToken; // save session as cookie everytime token is refreshed or user signin via WebAuthN. // Cookie will be removed when browser closed or user explicitly SIGNED_OUT. Cookies.set(NHOST_SESSION_KEY, btoa(JSON.stringify(session)), { From 857e2828aef24a5754f6498cf51bce26cfe5b122 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Tue, 17 Dec 2024 19:08:16 -0800 Subject: [PATCH 13/77] fix: deps updated --- apps/console/package.json | 10 +- .../src/routes/(app)/customers/+page.svelte | 2 +- .../src/routes/(app)/groups/+page.svelte | 2 +- .../routes/(app)/organizations/+page.svelte | 2 +- .../components/search-policies-result.svelte | 2 +- .../components/personal-access-tokens.svelte | 2 +- .../profile/components/user-org-roles.svelte | 2 +- .../src/routes/(app)/users/+page.svelte | 2 +- .../[id=uuid]/components/delegation.svelte | 2 +- apps/docs/package.json | 4 +- apps/smart/package.json | 10 +- apps/web/package.json | 6 +- packages/skeleton-ui/package.json | 8 +- .../skeleton-ui/src/components/table/ctx.ts | 2 +- .../components/table/table-head-filter.svelte | 4 +- .../src/components/table/table-head.svelte | 4 +- .../components/table/table-pagination.svelte | 4 +- .../components/table/table-row-count.svelte | 4 +- .../table/table-rows-per-page.svelte | 4 +- .../src/components/table/table-search.svelte | 4 +- .../src/components/table/table.svelte | 4 +- packages/smart/package.json | 8 +- packages/ui/package.json | 8 +- pnpm-lock.yaml | 773 +++++++++--------- 24 files changed, 435 insertions(+), 438 deletions(-) diff --git a/apps/console/package.json b/apps/console/package.json index 59f1cdb99..ed4035135 100644 --- a/apps/console/package.json +++ b/apps/console/package.json @@ -69,11 +69,11 @@ "@vercel/analytics": "1.4.1", "@vercel/flags": "2.6.3", "@vercel/speed-insights": "1.1.0", - "@vercel/toolbar": "0.1.28", - "@vincjo/datatables": "1.14.10", + "@vercel/toolbar": "0.1.30", + "@vincjo/datatables": "2.2.0", "@vitest/coverage-v8": "2.1.8", "@xyflow/svelte": "0.1.25", - "ai": "4.0.18", + "ai": "4.0.20", "autoprefixer": "10.4.20", "chrome-ai": "1.11.1", "date-fns": "4.1.0", @@ -99,12 +99,12 @@ "sveltekit-flash-message": "2.4.4", "sveltekit-rate-limiter": "0.6.1", "sveltekit-search-params": "3.0.0", - "sveltekit-superforms": "2.22.0", + "sveltekit-superforms": "2.22.1", "sveltekit-view-transition": "0.5.3", "swapy": "1.0.2", "tailwind-merge": "2.5.5", "tailwind-variants": "0.3.0", - "tailwindcss": "3.4.16", + "tailwindcss": "3.4.17", "tailwindcss-animate": "1.0.7", "tslib": "2.8.1", "typescript": "5.7.2", diff --git a/apps/console/src/routes/(app)/customers/+page.svelte b/apps/console/src/routes/(app)/customers/+page.svelte index 5e53a55f3..e015c8a7a 100644 --- a/apps/console/src/routes/(app)/customers/+page.svelte +++ b/apps/console/src/routes/(app)/customers/+page.svelte @@ -1,6 +1,6 @@ diff --git a/docs/awesome-sveltekit.md b/docs/awesome-sveltekit.md index 04289ba8f..f7e274cc0 100644 --- a/docs/awesome-sveltekit.md +++ b/docs/awesome-sveltekit.md @@ -171,6 +171,7 @@ Awesome **SvelteKit** Links - [climbing_noteboo](https://github.com/diericx/climbing_notebook) - Use skeleton, Superforms, sveltekit-flash-message - [Vercel Toolbar and Feature Flags SvelteKit Starter](https://github.com/vercel/examples/tree/main/toolbar/toolbar-feature-flags-sveltekit), [Demo](https://toolbar-feature-flags-sveltekit.vercel.app/), [Blog](https://vercel.com/blog/flags-as-code-in-next-js) - [JavaFlavors](https://github.com/Critteros/JavaFlavors/tree/main/web) - use `houdini` and `setClientSession()`, drizzle, superforms, shadcn-svelte +- [Churros](https://github.com/inp-net/churros) - use `houdini` Fragments, `@loading` and `kustomization` for deployment. [Demo](https://git.inpt.fr/churros/churros) - [Turborepo Svelte starter](https://github.com/kevingdc/turborepo-sveltekit-shadcn/tree/main) - [JustShip](https://www.justship.today/) - Skip the boring parts, Ship **svelte 5** apps in days not weeks. Components: Stripe, Auth, tailwind - [next-forge](https://www.next-forge.com/) - Production-grade `Turborepo` template for` Next.js` apps. Components: From 4cf27cdbb21e015203a07b874455fcbc80c4f6bc Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Wed, 18 Dec 2024 22:54:44 -0800 Subject: [PATCH 16/77] fix(nhost): added org settings tables --- docs/hasura.md | 2 +- .../default/functions/functions.yaml | 1 + .../public_org_settings_with_defaults.yaml | 3 + .../default/tables/public_groups.yaml | 2 +- .../default/tables/public_org_settings.yaml | 50 ++++++++++++++ .../default/tables/public_organizations.yaml | 41 ++++++++++++ .../default/tables/public_pools.yaml | 2 +- .../default/tables/public_setting_keys.yaml | 50 ++++++++++++++ .../default/tables/public_subscriptions.yaml | 15 +++++ .../databases/default/tables/tables.yaml | 2 + .../down.sql | 9 --- .../up.sql | 7 -- .../1733695951358_auth_miscellaneous/down.sql | 5 ++ .../1733695951358_auth_miscellaneous/up.sql | 15 +++++ .../up.sql | 13 ++-- .../up.sql | 13 ++-- .../up.sql | 17 +++-- .../up.sql | 11 +-- .../up.sql | 17 +++-- .../down.sql | 39 +---------- .../down.sql | 37 +--------- .../down.sql | 32 +-------- .../1733781905395_auth_miscellaneous/down.sql | 2 - .../1733781905395_auth_miscellaneous/up.sql | 2 - .../down.sql | 1 + .../up.sql | 25 +++++++ .../down.sql | 3 + .../up.sql | 67 +++++++++++++++++++ nhost/seeds/default/007_org_settings.sql | 9 +++ 29 files changed, 336 insertions(+), 156 deletions(-) create mode 100644 nhost/metadata/databases/default/functions/public_org_settings_with_defaults.yaml create mode 100644 nhost/metadata/databases/default/tables/public_org_settings.yaml create mode 100644 nhost/metadata/databases/default/tables/public_setting_keys.yaml delete mode 100644 nhost/migrations/default/1733695951358_add_roles_to_auth_roles/down.sql delete mode 100644 nhost/migrations/default/1733695951358_add_roles_to_auth_roles/up.sql create mode 100644 nhost/migrations/default/1733695951358_auth_miscellaneous/down.sql create mode 100644 nhost/migrations/default/1733695951358_auth_miscellaneous/up.sql delete mode 100644 nhost/migrations/default/1733781905395_auth_miscellaneous/down.sql delete mode 100644 nhost/migrations/default/1733781905395_auth_miscellaneous/up.sql create mode 100644 nhost/migrations/default/1734581585771_create_table_public_setting_keys/down.sql create mode 100644 nhost/migrations/default/1734581585771_create_table_public_setting_keys/up.sql create mode 100644 nhost/migrations/default/1734587932092_create_table_public_org_settings/down.sql create mode 100644 nhost/migrations/default/1734587932092_create_table_public_org_settings/up.sql create mode 100644 nhost/seeds/default/007_org_settings.sql diff --git a/docs/hasura.md b/docs/hasura.md index 86ffa6378..fccbe7fa7 100644 --- a/docs/hasura.md +++ b/docs/hasura.md @@ -50,7 +50,7 @@ hasura seed create rules --database-name default --from-table rules --endpoint h hasura seed create policies --database-name default --from-table policies --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret hasura seed create devices --database-name default --from-table devices --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret hasura seed create pools --database-name default --from-table pools --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret - +hasura seed create org_settings --database-name default --from-table org_settings --endpoint https://local.hasura.local.nhost.run --admin-secret hasura-admin-secret # Export data from multiple tables: # hasura seed create policies_organization --database-name default --from-table policies --from-table organization diff --git a/nhost/metadata/databases/default/functions/functions.yaml b/nhost/metadata/databases/default/functions/functions.yaml index bfa9baa18..df35d1078 100644 --- a/nhost/metadata/databases/default/functions/functions.yaml +++ b/nhost/metadata/databases/default/functions/functions.yaml @@ -1,4 +1,5 @@ - "!include public_device_associated_pools.yaml" - "!include public_device_dissociated_pools.yaml" +- "!include public_org_settings_with_defaults.yaml" - "!include public_user_associated_groups.yaml" - "!include public_user_dissociated_groups.yaml" diff --git a/nhost/metadata/databases/default/functions/public_org_settings_with_defaults.yaml b/nhost/metadata/databases/default/functions/public_org_settings_with_defaults.yaml new file mode 100644 index 000000000..8727e387d --- /dev/null +++ b/nhost/metadata/databases/default/functions/public_org_settings_with_defaults.yaml @@ -0,0 +1,3 @@ +function: + name: org_settings_with_defaults + schema: public diff --git a/nhost/metadata/databases/default/tables/public_groups.yaml b/nhost/metadata/databases/default/tables/public_groups.yaml index d033bbd81..6bed2ab38 100644 --- a/nhost/metadata/databases/default/tables/public_groups.yaml +++ b/nhost/metadata/databases/default/tables/public_groups.yaml @@ -73,7 +73,7 @@ update_permissions: _eq: X-Hasura-Org-Id check: null set: - org_id: x-hasura-Org-Id + updated_by: x-hasura-User-Id comment: "" delete_permissions: - role: org:admin diff --git a/nhost/metadata/databases/default/tables/public_org_settings.yaml b/nhost/metadata/databases/default/tables/public_org_settings.yaml new file mode 100644 index 000000000..d6a537021 --- /dev/null +++ b/nhost/metadata/databases/default/tables/public_org_settings.yaml @@ -0,0 +1,50 @@ +table: + name: org_settings + schema: public +insert_permissions: + - role: org:admin + permission: + check: {} + set: + created_by: x-hasura-User-Id + org_id: x-hasura-Org-Id + updated_by: x-hasura-User-Id + columns: + - key + - value + comment: "" +select_permissions: + - role: org:admin + permission: + columns: + - value + - key + - created_at + - updated_at + - created_by + - org_id + - updated_by + filter: + org_id: + _eq: X-Hasura-Org-Id + allow_aggregations: true + comment: "" +update_permissions: + - role: org:admin + permission: + columns: + - value + filter: + org_id: + _eq: X-Hasura-Org-Id + check: null + set: + updated_by: x-hasura-User-Id + comment: "" +delete_permissions: + - role: org:admin + permission: + filter: + org_id: + _eq: X-Hasura-Org-Id + comment: "" diff --git a/nhost/metadata/databases/default/tables/public_organizations.yaml b/nhost/metadata/databases/default/tables/public_organizations.yaml index ec15cd910..297dfba00 100644 --- a/nhost/metadata/databases/default/tables/public_organizations.yaml +++ b/nhost/metadata/databases/default/tables/public_organizations.yaml @@ -43,6 +43,13 @@ object_relationships: using: foreign_key_constraint_on: owner_id array_relationships: + - name: devices + using: + foreign_key_constraint_on: + column: org_id + table: + name: devices + schema: public - name: groups using: foreign_key_constraint_on: @@ -50,6 +57,34 @@ array_relationships: table: name: groups schema: public + - name: policies + using: + foreign_key_constraint_on: + column: org_id + table: + name: policies + schema: public + - name: pools + using: + foreign_key_constraint_on: + column: org_id + table: + name: pools + schema: public + - name: rules + using: + foreign_key_constraint_on: + column: org_id + table: + name: rules + schema: public + - name: settings + using: + foreign_key_constraint_on: + column: org_id + table: + name: org_settings + schema: public - name: subscriptions using: foreign_key_constraint_on: @@ -64,6 +99,12 @@ array_relationships: table: name: user_org_roles schema: public +computed_fields: + - name: settingsWithDefaults + definition: + function: + name: org_settings_with_defaults + schema: public insert_permissions: - role: user permission: diff --git a/nhost/metadata/databases/default/tables/public_pools.yaml b/nhost/metadata/databases/default/tables/public_pools.yaml index 2b60c2116..818542822 100644 --- a/nhost/metadata/databases/default/tables/public_pools.yaml +++ b/nhost/metadata/databases/default/tables/public_pools.yaml @@ -84,7 +84,7 @@ update_permissions: _eq: X-Hasura-Org-Id check: null set: - org_id: x-hasura-User-Id + updated_by: x-hasura-User-Id comment: "" delete_permissions: - role: org:admin diff --git a/nhost/metadata/databases/default/tables/public_setting_keys.yaml b/nhost/metadata/databases/default/tables/public_setting_keys.yaml new file mode 100644 index 000000000..8ff28b72d --- /dev/null +++ b/nhost/metadata/databases/default/tables/public_setting_keys.yaml @@ -0,0 +1,50 @@ +table: + name: setting_keys + schema: public +insert_permissions: + - role: sys:admin + permission: + check: {} + columns: + - allowed_values + - default_value + - description + - key + comment: "" +select_permissions: + - role: org:admin + permission: + columns: + - allowed_values + - default_value + - description + - key + filter: {} + allow_aggregations: true + comment: "" + - role: sys:admin + permission: + columns: + - allowed_values + - default_value + - description + - key + filter: {} + allow_aggregations: true + comment: "" +update_permissions: + - role: sys:admin + permission: + columns: + - allowed_values + - default_value + - description + - key + filter: {} + check: null + comment: "" +delete_permissions: + - role: sys:admin + permission: + filter: {} + comment: "" diff --git a/nhost/metadata/databases/default/tables/public_subscriptions.yaml b/nhost/metadata/databases/default/tables/public_subscriptions.yaml index bdb0bbf7e..a188b0086 100644 --- a/nhost/metadata/databases/default/tables/public_subscriptions.yaml +++ b/nhost/metadata/databases/default/tables/public_subscriptions.yaml @@ -58,3 +58,18 @@ select_permissions: _eq: X-Hasura-Org-Id allow_aggregations: true comment: "" +update_permissions: + - role: org:billing + permission: + columns: + - plan + - stripe_checkout_session_id + - stripe_customer_id + - stripe_subscription_id + filter: + org_id: + _eq: X-Hasura-Org-Id + check: null + set: + updated_by: x-hasura-User-Id + comment: "" diff --git a/nhost/metadata/databases/default/tables/tables.yaml b/nhost/metadata/databases/default/tables/tables.yaml index 9072218d0..a8d0e75e0 100644 --- a/nhost/metadata/databases/default/tables/tables.yaml +++ b/nhost/metadata/databases/default/tables/tables.yaml @@ -12,12 +12,14 @@ - "!include public_devices.yaml" - "!include public_direction.yaml" - "!include public_groups.yaml" +- "!include public_org_settings.yaml" - "!include public_organizations.yaml" - "!include public_plan.yaml" - "!include public_policies.yaml" - "!include public_pools.yaml" - "!include public_protocol.yaml" - "!include public_rules.yaml" +- "!include public_setting_keys.yaml" - "!include public_status.yaml" - "!include public_subject_type.yaml" - "!include public_subscriptions.yaml" diff --git a/nhost/migrations/default/1733695951358_add_roles_to_auth_roles/down.sql b/nhost/migrations/default/1733695951358_add_roles_to_auth_roles/down.sql deleted file mode 100644 index 0b8aae56f..000000000 --- a/nhost/migrations/default/1733695951358_add_roles_to_auth_roles/down.sql +++ /dev/null @@ -1,9 +0,0 @@ --- Could not auto-generate a down migration. --- Please write an appropriate down migration for the SQL below: --- INSERT INTO auth.roles (role) VALUES ('public') ON CONFLICT (role) DO NOTHING; --- INSERT INTO auth.roles (role) VALUES ('private') ON CONFLICT (role) DO NOTHING; --- INSERT INTO auth.roles (role) VALUES ('sys:admin') ON CONFLICT (role) DO NOTHING; --- INSERT INTO auth.roles (role) VALUES ('org:owner') ON CONFLICT (role) DO NOTHING; --- INSERT INTO auth.roles (role) VALUES ('org:admin') ON CONFLICT (role) DO NOTHING; --- INSERT INTO auth.roles (role) VALUES ('org:billing') ON CONFLICT (role) DO NOTHING; --- INSERT INTO auth.roles (role) VALUES ('org:member') ON CONFLICT (role) DO NOTHING; diff --git a/nhost/migrations/default/1733695951358_add_roles_to_auth_roles/up.sql b/nhost/migrations/default/1733695951358_add_roles_to_auth_roles/up.sql deleted file mode 100644 index 89241558b..000000000 --- a/nhost/migrations/default/1733695951358_add_roles_to_auth_roles/up.sql +++ /dev/null @@ -1,7 +0,0 @@ -INSERT INTO auth.roles (role) VALUES ('public') ON CONFLICT (role) DO NOTHING; -INSERT INTO auth.roles (role) VALUES ('private') ON CONFLICT (role) DO NOTHING; -INSERT INTO auth.roles (role) VALUES ('sys:admin') ON CONFLICT (role) DO NOTHING; -INSERT INTO auth.roles (role) VALUES ('org:owner') ON CONFLICT (role) DO NOTHING; -INSERT INTO auth.roles (role) VALUES ('org:admin') ON CONFLICT (role) DO NOTHING; -INSERT INTO auth.roles (role) VALUES ('org:billing') ON CONFLICT (role) DO NOTHING; -INSERT INTO auth.roles (role) VALUES ('org:member') ON CONFLICT (role) DO NOTHING; diff --git a/nhost/migrations/default/1733695951358_auth_miscellaneous/down.sql b/nhost/migrations/default/1733695951358_auth_miscellaneous/down.sql new file mode 100644 index 000000000..d1f44d540 --- /dev/null +++ b/nhost/migrations/default/1733695951358_auth_miscellaneous/down.sql @@ -0,0 +1,5 @@ +SET ROLE postgres; +DELETE FROM auth.roles +WHERE role IN ('public', 'private', 'sys:admin', 'org:owner', 'org:admin', 'org:billing', 'org:member'); + +DROP INDEX IF EXISTS refresh_tokens_metadata_name_unique; diff --git a/nhost/migrations/default/1733695951358_auth_miscellaneous/up.sql b/nhost/migrations/default/1733695951358_auth_miscellaneous/up.sql new file mode 100644 index 000000000..ee26bfb66 --- /dev/null +++ b/nhost/migrations/default/1733695951358_auth_miscellaneous/up.sql @@ -0,0 +1,15 @@ +-- Add custom app roles +INSERT INTO auth.roles (role) +VALUES ('public'), + ('private'), + ('sys:admin'), + ('org:owner'), + ('org:admin'), + ('org:billing'), + ('org:member') + +ON CONFLICT (role) DO NOTHING; + +-- Create index on refresh_tokens table metadata column +SET ROLE postgres; +CREATE UNIQUE INDEX refresh_tokens_metadata_name_unique ON auth.refresh_tokens USING btree (((metadata ->> 'name'::text))) WHERE (metadata IS NOT NULL); diff --git a/nhost/migrations/default/1733696442327_create_table_public_plan_enum/up.sql b/nhost/migrations/default/1733696442327_create_table_public_plan_enum/up.sql index a9ca1d66b..aed307274 100644 --- a/nhost/migrations/default/1733696442327_create_table_public_plan_enum/up.sql +++ b/nhost/migrations/default/1733696442327_create_table_public_plan_enum/up.sql @@ -1,10 +1,13 @@ CREATE TABLE public.plan ( - value text PRIMARY KEY, - description text NOT NULL + value text PRIMARY KEY, + description text NOT NULL ); COMMENT ON TABLE public.plan IS 'plan enum'; --- -INSERT INTO public.plan (value, description) VALUES ('starter', 'Starter') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.plan (value, description) VALUES ('pro', 'Pro') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.plan (value, description) VALUES ('enterprise', 'Enterprise') ON CONFLICT (value) DO NOTHING; +INSERT INTO public.plan (value, description) +VALUES ('starter', 'Starter'), + ('pro', 'Pro'), + ('enterprise', 'Enterprise') + +ON CONFLICT (value) DO NOTHING; diff --git a/nhost/migrations/default/1733696468495_create_table_public_status_enum/up.sql b/nhost/migrations/default/1733696468495_create_table_public_status_enum/up.sql index 883a82a36..febc51eed 100644 --- a/nhost/migrations/default/1733696468495_create_table_public_status_enum/up.sql +++ b/nhost/migrations/default/1733696468495_create_table_public_status_enum/up.sql @@ -1,10 +1,13 @@ CREATE TABLE public.status ( - value text PRIMARY KEY, - description text NOT NULL + value text PRIMARY KEY, + description text NOT NULL ); COMMENT ON TABLE public.status IS 'status enum'; --- -INSERT INTO public.status (value, description) VALUES ('active', 'Active') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.status (value, description) VALUES ('disabled', 'Disabled') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.status (value, description) VALUES ('closed', 'Closed') ON CONFLICT (value) DO NOTHING; +INSERT INTO public.status (value, description) +VALUES ('active', 'Active'), + ('disabled', 'Disabled'), + ('closed', 'Closed') + +ON CONFLICT (value) DO NOTHING; diff --git a/nhost/migrations/default/1733696529179_create_table_public_action_enum/up.sql b/nhost/migrations/default/1733696529179_create_table_public_action_enum/up.sql index 5ba9c0eac..d7d9bb5df 100644 --- a/nhost/migrations/default/1733696529179_create_table_public_action_enum/up.sql +++ b/nhost/migrations/default/1733696529179_create_table_public_action_enum/up.sql @@ -1,12 +1,15 @@ CREATE TABLE public.action ( - value text PRIMARY KEY, - description text NOT NULL + value text PRIMARY KEY, + description text NOT NULL ); COMMENT ON TABLE public.action IS 'policy action enum'; --- -INSERT INTO public.action (value, description) VALUES ('callout_terminating', 'CALLOUT_TERMINATING') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.action (value, description) VALUES ('callout_inspection', 'CALLOUT_INSPECTION') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.action (value, description) VALUES ('callout_unknown', 'CALLOUT_UNKNOWN') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.action (value, description) VALUES ('block', 'BLOCK') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.action (value, description) VALUES ('permit', 'PERMIT') ON CONFLICT (value) DO NOTHING; +INSERT INTO public.action (value, description) +VALUES ('callout_terminating', 'CALLOUT_TERMINATING'), + ('callout_inspection', 'CALLOUT_INSPECTION'), + ('callout_unknown', 'CALLOUT_UNKNOWN'), + ('block', 'BLOCK'), + ('permit', 'PERMIT') + +ON CONFLICT (value) DO NOTHING; diff --git a/nhost/migrations/default/1733696550536_create_table_public_direction_enum/up.sql b/nhost/migrations/default/1733696550536_create_table_public_direction_enum/up.sql index a8d958fbb..9ce2d1fcb 100644 --- a/nhost/migrations/default/1733696550536_create_table_public_direction_enum/up.sql +++ b/nhost/migrations/default/1733696550536_create_table_public_direction_enum/up.sql @@ -1,9 +1,12 @@ CREATE TABLE public.direction ( - value text PRIMARY KEY, - description text NOT NULL + value text PRIMARY KEY, + description text NOT NULL ); COMMENT ON TABLE public.direction IS 'policy direction enum'; --- -INSERT INTO public.direction (value, description) VALUES ('ingress', 'INGRESS') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.direction (value, description) VALUES ('egress', 'EGRESS') ON CONFLICT (value) DO NOTHING; +INSERT INTO public.direction (value, description) +VALUES ('ingress', 'INGRESS'), + ('egress', 'EGRESS') + +ON CONFLICT (value) DO NOTHING; diff --git a/nhost/migrations/default/1733696597519_create_table_public_subject_type_enum/up.sql b/nhost/migrations/default/1733696597519_create_table_public_subject_type_enum/up.sql index f6b494a0d..9d0c1b002 100644 --- a/nhost/migrations/default/1733696597519_create_table_public_subject_type_enum/up.sql +++ b/nhost/migrations/default/1733696597519_create_table_public_subject_type_enum/up.sql @@ -1,12 +1,15 @@ CREATE TABLE public.subject_type ( - value text PRIMARY KEY, - description text NOT NULL + value text PRIMARY KEY, + description text NOT NULL ); COMMENT ON TABLE public.subject_type IS 'policy subject type enum'; --- -INSERT INTO public.subject_type (value, description) VALUES ('device', 'DEVICE') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.subject_type (value, description) VALUES ('device_pool', 'DEVICE_POOL') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.subject_type (value, description) VALUES ('user', 'USER') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.subject_type (value, description) VALUES ('group', 'GROUP') ON CONFLICT (value) DO NOTHING; -INSERT INTO public.subject_type (value, description) VALUES ('service_account', 'SERVICE_ACCOUNT') ON CONFLICT (value) DO NOTHING; +INSERT INTO public.subject_type (value, description) +VALUES ('device', 'DEVICE'), + ('device_pool', 'DEVICE_POOL'), + ('user', 'USER'), + ('group', 'GROUP'), + ('service_account', 'SERVICE_ACCOUNT') + +ON CONFLICT (value) DO NOTHING; diff --git a/nhost/migrations/default/1733776768047_create_table_public_devices/down.sql b/nhost/migrations/default/1733776768047_create_table_public_devices/down.sql index d1a202207..d05618c9f 100644 --- a/nhost/migrations/default/1733776768047_create_table_public_devices/down.sql +++ b/nhost/migrations/default/1733776768047_create_table_public_devices/down.sql @@ -1,38 +1 @@ --- Could not auto-generate a down migration. --- Please write an appropriate down migration for the SQL below: --- CREATE TABLE public.devices --- ( --- id uuid NOT NULL DEFAULT gen_random_uuid(), --- display_name text NOT NULL, --- description text, --- tags text[], --- metadata jsonb, --- created_by uuid NOT NULL, --- updated_by uuid NOT NULL, --- created_at timestamptz NOT NULL DEFAULT now(), --- updated_at timestamptz NOT NULL DEFAULT now(), --- org_id uuid NOT NULL, --- ip text NOT NULL, --- public_ip text, --- version text, --- alternate_dns boolean DEFAULT false, --- proxy_ip boolean DEFAULT false, --- PRIMARY KEY (id), --- FOREIGN KEY (org_id) REFERENCES public.organizations (id) ON UPDATE restrict ON DELETE cascade, --- UNIQUE (org_id, display_name) --- ); --- COMMENT ON TABLE public.devices IS 'Table containing devices data'; --- --- --- CREATE TRIGGER set_public_devices_updated_at --- BEFORE UPDATE --- ON public.devices --- FOR EACH ROW --- EXECUTE FUNCTION public.set_current_timestamp_updated_at(); --- COMMENT ON TRIGGER set_public_devices_updated_at ON public.devices IS 'trigger to set value of column updated_at to current timestamp on row update'; --- --- --- CREATE TRIGGER insert_deleted_record_when_public_devices_deleted --- AFTER DELETE --- ON public.devices --- FOR EACH ROW --- EXECUTE FUNCTION public.deleted_record_insert(); --- COMMENT ON TRIGGER insert_deleted_record_when_public_devices_deleted ON public.devices IS 'trigger to save deleted records for audit'; +DROP TABLE public.devices; diff --git a/nhost/migrations/default/1733776810389_create_table_public_pools/down.sql b/nhost/migrations/default/1733776810389_create_table_public_pools/down.sql index 15c8a0c49..faa1cc25e 100644 --- a/nhost/migrations/default/1733776810389_create_table_public_pools/down.sql +++ b/nhost/migrations/default/1733776810389_create_table_public_pools/down.sql @@ -1,36 +1 @@ --- Could not auto-generate a down migration. --- Please write an appropriate down migration for the SQL below: --- CREATE TABLE public.pools --- ( --- id uuid NOT NULL DEFAULT gen_random_uuid(), --- display_name text NOT NULL, --- description text, --- tags text[], --- metadata jsonb, --- created_by uuid NOT NULL, --- updated_by uuid NOT NULL, --- created_at timestamptz NOT NULL DEFAULT now(), --- updated_at timestamptz NOT NULL DEFAULT now(), --- org_id uuid NOT NULL, --- version text, --- alternate_dns boolean DEFAULT false, --- proxy_ip boolean DEFAULT false, --- PRIMARY KEY (id), --- FOREIGN KEY (org_id) REFERENCES public.organizations (id) ON UPDATE restrict ON DELETE cascade, --- UNIQUE (org_id, display_name) --- ); --- COMMENT ON TABLE public.pools IS 'Table containing device pools data'; --- --- --- CREATE TRIGGER set_public_pools_updated_at --- BEFORE UPDATE --- ON public.pools --- FOR EACH ROW --- EXECUTE FUNCTION public.set_current_timestamp_updated_at(); --- COMMENT ON TRIGGER set_public_pools_updated_at ON public.pools IS 'trigger to set value of column updated_at to current timestamp on row update'; --- --- --- CREATE TRIGGER insert_deleted_record_when_public_pools_deleted --- AFTER DELETE --- ON public.pools --- FOR EACH ROW --- EXECUTE FUNCTION public.deleted_record_insert(); --- COMMENT ON TRIGGER insert_deleted_record_when_public_pools_deleted ON public.pools IS 'trigger to save deleted records for audit'; +DROP TABLE public.pools; diff --git a/nhost/migrations/default/1733776913067_create_table_public_device_pools/down.sql b/nhost/migrations/default/1733776913067_create_table_public_device_pools/down.sql index aba5b9e27..dc51e77a3 100644 --- a/nhost/migrations/default/1733776913067_create_table_public_device_pools/down.sql +++ b/nhost/migrations/default/1733776913067_create_table_public_device_pools/down.sql @@ -1,31 +1 @@ --- Could not auto-generate a down migration. --- Please write an appropriate down migration for the SQL below: --- CREATE TABLE public.device_pools --- ( --- device_id uuid NOT NULL, --- pool_id uuid NOT NULL, --- PRIMARY KEY (device_id, pool_id), --- FOREIGN KEY (device_id) REFERENCES public.devices (id) ON UPDATE restrict ON DELETE cascade, --- FOREIGN KEY (pool_id) REFERENCES public.pools (id) ON UPDATE restrict ON DELETE cascade --- ); --- COMMENT ON TABLE public.device_pools IS 'Device to Pool association table'; --- --- --- CREATE FUNCTION public.device_associated_pools(device_row public.devices) RETURNS SETOF public.pools --- LANGUAGE sql --- STABLE AS --- $$ --- SELECT * --- FROM pools --- WHERE id IN (SELECT pool_id FROM public.device_pools WHERE device_id = device_row.id) --- $$; --- COMMENT ON FUNCTION public.device_associated_pools(device_row public.devices) IS 'Used as Computed Field on Devices Table'; --- --- --- CREATE FUNCTION public.device_dissociated_pools(device_row public.devices) RETURNS SETOF public.pools --- LANGUAGE sql --- STABLE AS --- $$ --- SELECT * --- FROM pools --- WHERE id NOT IN (SELECT pool_id FROM public.device_pools WHERE device_id = device_row.id) --- $$; --- COMMENT ON FUNCTION public.device_dissociated_pools(device_row public.devices) IS 'Used as Computed Field on Devices Table'; +DROP TABLE public.device_pools; diff --git a/nhost/migrations/default/1733781905395_auth_miscellaneous/down.sql b/nhost/migrations/default/1733781905395_auth_miscellaneous/down.sql deleted file mode 100644 index d1cdd9c1e..000000000 --- a/nhost/migrations/default/1733781905395_auth_miscellaneous/down.sql +++ /dev/null @@ -1,2 +0,0 @@ -SET ROLE postgres; -DROP INDEX IF EXISTS refresh_tokens_metadata_name_unique; \ No newline at end of file diff --git a/nhost/migrations/default/1733781905395_auth_miscellaneous/up.sql b/nhost/migrations/default/1733781905395_auth_miscellaneous/up.sql deleted file mode 100644 index f5a0f37a4..000000000 --- a/nhost/migrations/default/1733781905395_auth_miscellaneous/up.sql +++ /dev/null @@ -1,2 +0,0 @@ -SET ROLE postgres; -CREATE UNIQUE INDEX refresh_tokens_metadata_name_unique ON auth.refresh_tokens USING btree (((metadata ->> 'name'::text))) WHERE (metadata IS NOT NULL); \ No newline at end of file diff --git a/nhost/migrations/default/1734581585771_create_table_public_setting_keys/down.sql b/nhost/migrations/default/1734581585771_create_table_public_setting_keys/down.sql new file mode 100644 index 000000000..4ce0eb58c --- /dev/null +++ b/nhost/migrations/default/1734581585771_create_table_public_setting_keys/down.sql @@ -0,0 +1 @@ +DROP TABLE public.setting_keys; diff --git a/nhost/migrations/default/1734581585771_create_table_public_setting_keys/up.sql b/nhost/migrations/default/1734581585771_create_table_public_setting_keys/up.sql new file mode 100644 index 000000000..386381895 --- /dev/null +++ b/nhost/migrations/default/1734581585771_create_table_public_setting_keys/up.sql @@ -0,0 +1,25 @@ +-- Metadata for Constraints: Allows flexible definitions of permissible values for settings. +-- Dynamic Validation: Enables runtime checks (via application or triggers) to ensure values adhere to allowed options. +-- Extensibility: Can store complex rules for validation (e.g., ranges, lists, or logical conditions). +CREATE TABLE public.setting_keys +( + key text PRIMARY KEY, + description text, + default_value JSONB, + allowed_values JSONB, + CHECK (key ~ '^[A-Z]+(_[A-Z]+)*$') -- Allows only uppercase letters and underscores +); +COMMENT ON TABLE public.setting_keys IS 'Table containing Organization unique Setting keys and Feature Flags, act like enum'; +--- +INSERT INTO public.setting_keys (key, description, default_value, allowed_values) +VALUES + ('THEME_COLOR', 'Theme color for the application', '"dark"', '["dark", "light"]'), + ('ITEMS_PER_PAGE', 'Number of items displayed per page', '10', '{"min": 1, "max": 100}'), + ('USER_NOTIFICATIONS', 'Enable user notifications', '{"email": true}', '{"email": true, "sms": true}'), + ('AGENT_VERSION', 'Agent application version', '"v1.0.87"', '{"min": "v1.0.0", "max": "v3.0.0"}'), + ('FEATURE_SHOW_MAGIC_LINK_LOGIN', 'Feature - show magic link login', 'true', '[true, false]'), + ('FEATURE_SHOW_SOCIAL_LOGIN', 'Feature - show social login', 'true', '[true, false]'), + ('FEATURE_SIMULATE_LOADING_STATE', 'Feature - simulate loading state', 'true', '[true, false]') + +ON CONFLICT (key) DO NOTHING; + diff --git a/nhost/migrations/default/1734587932092_create_table_public_org_settings/down.sql b/nhost/migrations/default/1734587932092_create_table_public_org_settings/down.sql new file mode 100644 index 000000000..fd3c569ad --- /dev/null +++ b/nhost/migrations/default/1734587932092_create_table_public_org_settings/down.sql @@ -0,0 +1,3 @@ +DROP FUNCTION IF EXISTS public.org_settings_with_defaults(org_row public.organizations); +DROP FUNCTION IF EXISTS public.validate_setting_value(); +DROP TABLE public.org_settings; diff --git a/nhost/migrations/default/1734587932092_create_table_public_org_settings/up.sql b/nhost/migrations/default/1734587932092_create_table_public_org_settings/up.sql new file mode 100644 index 000000000..6ef4e3b18 --- /dev/null +++ b/nhost/migrations/default/1734587932092_create_table_public_org_settings/up.sql @@ -0,0 +1,67 @@ +CREATE TABLE public.org_settings +( + key text NOT NULL, + value JSONB, + org_id uuid NOT NULL, + created_by uuid NOT NULL, + updated_by uuid NOT NULL, + created_at timestamptz NOT NULL DEFAULT now(), + updated_at timestamptz NOT NULL DEFAULT now(), + PRIMARY KEY (key, org_id), + FOREIGN KEY (key) REFERENCES public.setting_keys (key) ON UPDATE cascade ON DELETE cascade, + FOREIGN KEY (org_id) REFERENCES public.organizations (id) ON UPDATE restrict ON DELETE cascade +); +COMMENT ON TABLE public.org_settings IS 'Table containing organization''s settings and feature flags'; +--- +CREATE TRIGGER set_public_org_settings_updated_at + BEFORE UPDATE + ON public.org_settings + FOR EACH ROW +EXECUTE PROCEDURE public.set_current_timestamp_updated_at(); +COMMENT ON TRIGGER set_public_org_settings_updated_at ON public.org_settings IS 'trigger to set value of column updated_at to current timestamp on row update'; +--- +CREATE TRIGGER insert_deleted_record_when_public_org_settings_deleted + AFTER DELETE + ON public.org_settings + FOR EACH ROW +EXECUTE FUNCTION public.deleted_record_insert(); +COMMENT ON TRIGGER insert_deleted_record_when_public_org_settings_deleted ON public.org_settings IS 'trigger to save deleted records for audit'; +--- +CREATE FUNCTION public.org_settings_with_defaults(org_row public.organizations) RETURNS SETOF public.org_settings + LANGUAGE sql + STABLE AS +$$ +SELECT SK.key as key, + COALESCE(OS.value, SK.default_value) AS value, + OS.org_id AS org_id, + OS.created_by AS created_by, + OS.updated_by AS updated_by, + OS.created_at AS created_at, + OS.updated_at AS updated_at +FROM public.setting_keys SK + LEFT JOIN public.org_settings OS ON SK.key = OS.key AND OS.org_id = org_row.id; +$$; +COMMENT ON FUNCTION public.org_settings_with_defaults(org_row public.organizations) IS 'Used as Computed Field on Organizations Table'; +--- +/* +-- Optional: Enforcing allowed_values Validation with a Trigger +-- If you want to enforce that the `value` in the `public.org_settings` table matches the `allowed_values` in the `public.setting_keys` table, you can create a trigger. +CREATE OR REPLACE FUNCTION validate_setting_value() + RETURNS TRIGGER AS $$ +BEGIN + -- Check if the value is allowed + IF NOT ( + (SELECT allowed_values FROM public.setting_keys WHERE key = NEW.key)::jsonb @> NEW.value + ) THEN + RAISE EXCEPTION 'Value % is not allowed for setting %', NEW.value, NEW.key; + END IF; + + RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +CREATE TRIGGER trg_validate_setting_value + BEFORE INSERT OR UPDATE ON public.org_settings + FOR EACH ROW +EXECUTE FUNCTION validate_setting_value(); +*/; diff --git a/nhost/seeds/default/007_org_settings.sql b/nhost/seeds/default/007_org_settings.sql new file mode 100644 index 000000000..7ad6b081e --- /dev/null +++ b/nhost/seeds/default/007_org_settings.sql @@ -0,0 +1,9 @@ +SET check_function_bodies = false; +INSERT INTO public.org_settings (key, value, org_id, created_by, updated_by, created_at, updated_at) VALUES ('THEME_COLOR', '"light"', '8dfd9a31-de01-47be-92a7-ba1c720c6270', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '2024-12-19 06:13:04.806093+00', '2024-12-19 06:13:04.806093+00'); +INSERT INTO public.org_settings (key, value, org_id, created_by, updated_by, created_at, updated_at) VALUES ('FEATURE_SHOW_MAGIC_LINK_LOGIN', NULL, '8dfd9a31-de01-47be-92a7-ba1c720c6270', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '2024-12-19 06:13:54.006768+00', '2024-12-19 06:13:54.006768+00'); +INSERT INTO public.org_settings (key, value, org_id, created_by, updated_by, created_at, updated_at) VALUES ('AGENT_VERSION', NULL, '8dfd9a31-de01-47be-92a7-ba1c720c6270', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '2024-12-19 06:14:52.005392+00', '2024-12-19 06:14:52.005392+00'); +INSERT INTO public.org_settings (key, value, org_id, created_by, updated_by, created_at, updated_at) VALUES ('FEATURE_SHOW_SOCIAL_LOGIN', 'false', '8dfd9a31-de01-47be-92a7-ba1c720c6270', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '2024-12-19 06:14:14.90919+00', '2024-12-19 06:29:26.199716+00'); +INSERT INTO public.org_settings (key, value, org_id, created_by, updated_by, created_at, updated_at) VALUES ('FEATURE_SIMULATE_LOADING_STATE', 'true', '8dfd9a31-de01-47be-92a7-ba1c720c6270', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '2024-12-19 06:14:29.227718+00', '2024-12-19 06:29:46.139623+00'); +INSERT INTO public.org_settings (key, value, org_id, created_by, updated_by, created_at, updated_at) VALUES ('ITEMS_PER_PAGE', '15', '8dfd9a31-de01-47be-92a7-ba1c720c6270', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '572ad1c0-f97b-4e16-b1f6-8b5ca90f931f', '2024-12-19 06:15:09.843899+00', '2024-12-19 06:30:16.749885+00'); +INSERT INTO public.org_settings (key, value, org_id, created_by, updated_by, created_at, updated_at) VALUES ('ITEMS_PER_PAGE', '15', 'd5dbb6b6-5e43-4dca-b855-be9b65b6695b', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', '2024-12-19 06:15:39.55309+00', '2024-12-19 06:30:25.468719+00'); +INSERT INTO public.org_settings (key, value, org_id, created_by, updated_by, created_at, updated_at) VALUES ('THEME_COLOR', '"dark"', 'd5dbb6b6-5e43-4dca-b855-be9b65b6695b', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', 'bacd19f4-0cc4-43d1-9e7a-4e5098ed8d83', '2024-12-19 06:16:06.949734+00', '2024-12-19 06:30:50.69442+00'); From d9a4746ed990ea025e45747a7074b7e98a735a14 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Wed, 18 Dec 2024 23:19:17 -0800 Subject: [PATCH 17/77] fix: deps updated --- apps/console/package.json | 12 +- apps/console/schema.graphql | 2043 ++++++++++++++++- .../console/src/routes/(app)/profile/+page.ts | 2 + apps/smart/package.json | 14 +- apps/web/package.json | 2 +- package.json | 2 +- packages/skeleton-ui/package.json | 6 +- packages/smart/package.json | 4 +- packages/ui/package.json | 6 +- pnpm-lock.yaml | 625 ++--- 10 files changed, 2258 insertions(+), 458 deletions(-) diff --git a/apps/console/package.json b/apps/console/package.json index ed4035135..870e884dd 100644 --- a/apps/console/package.json +++ b/apps/console/package.json @@ -31,8 +31,8 @@ "test:unit:ui": "dotenv-run -f .env -f .secrets -v -- vitest --ui" }, "devDependencies": { - "@ai-sdk/azure": "1.0.10", - "@ai-sdk/openai": "1.0.8", + "@ai-sdk/azure": "1.0.12", + "@ai-sdk/openai": "1.0.10", "@ai-sdk/svelte": "1.0.6", "@aibrow/dom-types": "1.2.1", "@floating-ui/dom": "1.6.12", @@ -40,7 +40,7 @@ "@inlang/cli": "2.18.1", "@inlang/paraglide-sveltekit": "0.14.0", "@nhost/nhost-js": "3.2.1", - "@skeletonlabs/skeleton": "2.10.3", + "@skeletonlabs/skeleton": "2.10.4", "@skeletonlabs/tw-plugin": "0.4.0", "@spectacular/biome-config": "workspace:*", "@spectacular/role-houdini": "workspace:*", @@ -50,10 +50,10 @@ "@spectacular/utils": "workspace:*", "@svelte-plugins/datepicker": "1.0.9", "@sveltejs/adapter-auto": "3.3.1", - "@sveltejs/adapter-node": "5.2.10", + "@sveltejs/adapter-node": "5.2.11", "@sveltejs/adapter-vercel": "5.5.2", "@sveltejs/enhanced-img": "0.3.10", - "@sveltejs/kit": "2.12.1", + "@sveltejs/kit": "2.12.2", "@sveltejs/vite-plugin-svelte": "3.1.2", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/forms": "0.5.9", @@ -72,7 +72,7 @@ "@vercel/toolbar": "0.1.30", "@vincjo/datatables": "2.2.0", "@vitest/coverage-v8": "2.1.8", - "@xyflow/svelte": "0.1.25", + "@xyflow/svelte": "0.1.26", "ai": "4.0.20", "autoprefixer": "10.4.20", "chrome-ai": "1.11.1", diff --git a/apps/console/schema.graphql b/apps/console/schema.graphql index b24ae453e..1d4ff3333 100644 --- a/apps/console/schema.graphql +++ b/apps/console/schema.graphql @@ -1183,6 +1183,33 @@ type devices_aggregate { nodes: [devices!]! } +input devices_aggregate_bool_exp { + bool_and: devices_aggregate_bool_exp_bool_and + bool_or: devices_aggregate_bool_exp_bool_or + count: devices_aggregate_bool_exp_count +} + +input devices_aggregate_bool_exp_bool_and { + arguments: devices_select_column_devices_aggregate_bool_exp_bool_and_arguments_columns! + distinct: Boolean + filter: devices_bool_exp + predicate: Boolean_comparison_exp! +} + +input devices_aggregate_bool_exp_bool_or { + arguments: devices_select_column_devices_aggregate_bool_exp_bool_or_arguments_columns! + distinct: Boolean + filter: devices_bool_exp + predicate: Boolean_comparison_exp! +} + +input devices_aggregate_bool_exp_count { + arguments: [devices_select_column!] + distinct: Boolean + filter: devices_bool_exp + predicate: Int_comparison_exp! +} + """ aggregate fields of "devices" """ @@ -1192,6 +1219,15 @@ type devices_aggregate_fields { min: devices_min_fields } +""" +order by aggregate values of table "devices" +""" +input devices_aggregate_order_by { + count: order_by + max: devices_max_order_by + min: devices_min_order_by +} + """append existing jsonb value of filtered columns with new jsonb value""" input devices_append_input { metadata: jsonb @@ -1260,6 +1296,24 @@ type devices_max_fields { version: String } +""" +order by max() on columns of table "devices" +""" +input devices_max_order_by { + createdAt: order_by + createdBy: order_by + description: order_by + displayName: order_by + id: order_by + ip: order_by + orgId: order_by + publicIp: order_by + tags: order_by + updatedAt: order_by + updatedBy: order_by + version: order_by +} + """aggregate min on columns""" type devices_min_fields { createdAt: timestamptz @@ -1276,6 +1330,24 @@ type devices_min_fields { version: String } +""" +order by min() on columns of table "devices" +""" +input devices_min_order_by { + createdAt: order_by + createdBy: order_by + description: order_by + displayName: order_by + id: order_by + ip: order_by + orgId: order_by + publicIp: order_by + tags: order_by + updatedAt: order_by + updatedBy: order_by + version: order_by +} + """ response of any mutation on the table "devices" """ @@ -1370,6 +1442,28 @@ enum devices_select_column { version } +""" +select "devices_aggregate_bool_exp_bool_and_arguments_columns" columns of table "devices" +""" +enum devices_select_column_devices_aggregate_bool_exp_bool_and_arguments_columns { + """column name""" + alternateDns + + """column name""" + proxyIp +} + +""" +select "devices_aggregate_bool_exp_bool_or_arguments_columns" columns of table "devices" +""" +enum devices_select_column_devices_aggregate_bool_exp_bool_or_arguments_columns { + """column name""" + alternateDns + + """column name""" + proxyIp +} + """ input type for updating data in table "devices" """ @@ -2192,6 +2286,19 @@ type mutation_root { """ delete_groups_by_pk(id: uuid!): groups + """ + delete data from the table: "org_settings" + """ + delete_org_settings( + """filter the rows which have to be deleted""" + where: org_settings_bool_exp! + ): org_settings_mutation_response + + """ + delete single row from the table: "org_settings" + """ + delete_org_settings_by_pk(key: String!, org_id: uuid!): org_settings + """ delete data from the table: "organizations" """ @@ -2244,6 +2351,19 @@ type mutation_root { """ delete_rules_by_pk(id: uuid!): rules + """ + delete data from the table: "setting_keys" + """ + delete_setting_keys( + """filter the rows which have to be deleted""" + where: setting_keys_bool_exp! + ): setting_keys_mutation_response + + """ + delete single row from the table: "setting_keys" + """ + delete_setting_keys_by_pk(key: String!): setting_keys + """ delete data from the table: "user_groups" """ @@ -2336,6 +2456,28 @@ type mutation_root { on_conflict: groups_on_conflict ): groups + """ + insert data into the table: "org_settings" + """ + insert_org_settings( + """the rows to be inserted""" + objects: [org_settings_insert_input!]! + + """upsert condition""" + on_conflict: org_settings_on_conflict + ): org_settings_mutation_response + + """ + insert a single row into the table: "org_settings" + """ + insert_org_settings_one( + """the row to be inserted""" + object: org_settings_insert_input! + + """upsert condition""" + on_conflict: org_settings_on_conflict + ): org_settings + """ insert data into the table: "organizations" """ @@ -2424,6 +2566,28 @@ type mutation_root { on_conflict: rules_on_conflict ): rules + """ + insert data into the table: "setting_keys" + """ + insert_setting_keys( + """the rows to be inserted""" + objects: [setting_keys_insert_input!]! + + """upsert condition""" + on_conflict: setting_keys_on_conflict + ): setting_keys_mutation_response + + """ + insert a single row into the table: "setting_keys" + """ + insert_setting_keys_one( + """the row to be inserted""" + object: setting_keys_insert_input! + + """upsert condition""" + on_conflict: setting_keys_on_conflict + ): setting_keys + """ insert data into the table: "user_groups" """ @@ -2670,6 +2834,76 @@ type mutation_root { updates: [groups_updates!]! ): [groups_mutation_response] + """ + update data of the table: "org_settings" + """ + update_org_settings( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: org_settings_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: org_settings_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: org_settings_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: org_settings_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: org_settings_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: org_settings_set_input + + """filter the rows which have to be updated""" + where: org_settings_bool_exp! + ): org_settings_mutation_response + + """ + update single row of the table: "org_settings" + """ + update_org_settings_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: org_settings_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: org_settings_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: org_settings_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: org_settings_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: org_settings_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: org_settings_set_input + pk_columns: org_settings_pk_columns_input! + ): org_settings + + """ + update multiples rows of table: "org_settings" + """ + update_org_settings_many( + """updates to execute, in order""" + updates: [org_settings_updates!]! + ): [org_settings_mutation_response] + """ update data of the table: "organizations" """ @@ -2920,6 +3154,104 @@ type mutation_root { updates: [rules_updates!]! ): [rules_mutation_response] + """ + update data of the table: "setting_keys" + """ + update_setting_keys( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: setting_keys_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: setting_keys_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: setting_keys_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: setting_keys_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: setting_keys_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: setting_keys_set_input + + """filter the rows which have to be updated""" + where: setting_keys_bool_exp! + ): setting_keys_mutation_response + + """ + update single row of the table: "setting_keys" + """ + update_setting_keys_by_pk( + """append existing jsonb value of filtered columns with new jsonb value""" + _append: setting_keys_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: setting_keys_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: setting_keys_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: setting_keys_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: setting_keys_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: setting_keys_set_input + pk_columns: setting_keys_pk_columns_input! + ): setting_keys + + """ + update multiples rows of table: "setting_keys" + """ + update_setting_keys_many( + """updates to execute, in order""" + updates: [setting_keys_updates!]! + ): [setting_keys_mutation_response] + + """ + update data of the table: "subscriptions" + """ + update_subscriptions( + """sets the columns of the filtered rows to the given values""" + _set: subscriptions_set_input + + """filter the rows which have to be updated""" + where: subscriptions_bool_exp! + ): subscriptions_mutation_response + + """ + update single row of the table: "subscriptions" + """ + update_subscriptions_by_pk( + """sets the columns of the filtered rows to the given values""" + _set: subscriptions_set_input + pk_columns: subscriptions_pk_columns_input! + ): subscriptions + + """ + update multiples rows of table: "subscriptions" + """ + update_subscriptions_many( + """updates to execute, in order""" + updates: [subscriptions_updates!]! + ): [subscriptions_mutation_response] + """ update data of the table: "user_org_roles" """ @@ -2978,37 +3310,376 @@ enum order_by { desc_nulls_last } +"""Table containing organization's settings and feature flags""" +type org_settings { + created_at: timestamptz! + created_by: uuid! + key: String! + org_id: uuid! + updated_at: timestamptz! + updated_by: uuid! + value( + """JSON select path""" + path: String + ): jsonb +} + """ -Table containing organizations owned by users. Auto-enroll members based on email domain +aggregated selection of "org_settings" """ -type organizations { - allowedEmailDomains: [String!] - allowedEmails: [String!] - autoEnroll: Boolean! - blockedEmailDomains: [String!] - blockedEmails: [String!] - createdAt: timestamptz! - createdBy: uuid! - description: String - displayName: String! +type org_settings_aggregate { + aggregate: org_settings_aggregate_fields + nodes: [org_settings!]! +} - """An array relationship""" - groups( - """distinct select on columns""" - distinct_on: [groups_select_column!] +input org_settings_aggregate_bool_exp { + count: org_settings_aggregate_bool_exp_count +} - """limit the number of rows returned""" - limit: Int +input org_settings_aggregate_bool_exp_count { + arguments: [org_settings_select_column!] + distinct: Boolean + filter: org_settings_bool_exp + predicate: Int_comparison_exp! +} - """skip the first n rows. Use only with order_by""" - offset: Int +""" +aggregate fields of "org_settings" +""" +type org_settings_aggregate_fields { + count(columns: [org_settings_select_column!], distinct: Boolean): Int! + max: org_settings_max_fields + min: org_settings_min_fields +} - """sort the rows by one or more columns""" - order_by: [groups_order_by!] +""" +order by aggregate values of table "org_settings" +""" +input org_settings_aggregate_order_by { + count: order_by + max: org_settings_max_order_by + min: org_settings_min_order_by +} - """filter the rows returned""" - where: groups_bool_exp - ): [groups!]! +"""append existing jsonb value of filtered columns with new jsonb value""" +input org_settings_append_input { + value: jsonb +} + +""" +input type for inserting array relation for remote table "org_settings" +""" +input org_settings_arr_rel_insert_input { + data: [org_settings_insert_input!]! + + """upsert condition""" + on_conflict: org_settings_on_conflict +} + +""" +Boolean expression to filter rows from the table "org_settings". All fields are combined with a logical 'AND'. +""" +input org_settings_bool_exp { + _and: [org_settings_bool_exp!] + _not: org_settings_bool_exp + _or: [org_settings_bool_exp!] + created_at: timestamptz_comparison_exp + created_by: uuid_comparison_exp + key: String_comparison_exp + org_id: uuid_comparison_exp + updated_at: timestamptz_comparison_exp + updated_by: uuid_comparison_exp + value: jsonb_comparison_exp +} + +""" +unique or primary key constraints on table "org_settings" +""" +enum org_settings_constraint { + """ + unique or primary key constraint on columns "key", "org_id" + """ + org_settings_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input org_settings_delete_at_path_input { + value: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input org_settings_delete_elem_input { + value: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input org_settings_delete_key_input { + value: String +} + +""" +input type for inserting data into table "org_settings" +""" +input org_settings_insert_input { + key: String + value: jsonb +} + +"""aggregate max on columns""" +type org_settings_max_fields { + created_at: timestamptz + created_by: uuid + key: String + org_id: uuid + updated_at: timestamptz + updated_by: uuid +} + +""" +order by max() on columns of table "org_settings" +""" +input org_settings_max_order_by { + created_at: order_by + created_by: order_by + key: order_by + org_id: order_by + updated_at: order_by + updated_by: order_by +} + +"""aggregate min on columns""" +type org_settings_min_fields { + created_at: timestamptz + created_by: uuid + key: String + org_id: uuid + updated_at: timestamptz + updated_by: uuid +} + +""" +order by min() on columns of table "org_settings" +""" +input org_settings_min_order_by { + created_at: order_by + created_by: order_by + key: order_by + org_id: order_by + updated_at: order_by + updated_by: order_by +} + +""" +response of any mutation on the table "org_settings" +""" +type org_settings_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [org_settings!]! +} + +""" +on_conflict condition type for table "org_settings" +""" +input org_settings_on_conflict { + constraint: org_settings_constraint! + update_columns: [org_settings_update_column!]! = [] + where: org_settings_bool_exp +} + +"""Ordering options when selecting data from "org_settings".""" +input org_settings_order_by { + created_at: order_by + created_by: order_by + key: order_by + org_id: order_by + updated_at: order_by + updated_by: order_by + value: order_by +} + +"""primary key columns input for table: org_settings""" +input org_settings_pk_columns_input { + key: String! + org_id: uuid! +} + +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input org_settings_prepend_input { + value: jsonb +} + +""" +select columns of table "org_settings" +""" +enum org_settings_select_column { + """column name""" + created_at + + """column name""" + created_by + + """column name""" + key + + """column name""" + org_id + + """column name""" + updated_at + + """column name""" + updated_by + + """column name""" + value +} + +""" +input type for updating data in table "org_settings" +""" +input org_settings_set_input { + value: jsonb +} + +""" +Streaming cursor of the table "org_settings" +""" +input org_settings_stream_cursor_input { + """Stream column input with initial value""" + initial_value: org_settings_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input org_settings_stream_cursor_value_input { + created_at: timestamptz + created_by: uuid + key: String + org_id: uuid + updated_at: timestamptz + updated_by: uuid + value: jsonb +} + +""" +update columns of table "org_settings" +""" +enum org_settings_update_column { + """column name""" + value +} + +input org_settings_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: org_settings_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: org_settings_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: org_settings_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: org_settings_delete_key_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: org_settings_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: org_settings_set_input + + """filter the rows which have to be updated""" + where: org_settings_bool_exp! +} + +input org_settings_with_defaults_args { + org_row: organizations_scalar +} + +""" +Table containing organizations owned by users. Auto-enroll members based on email domain +""" +type organizations { + allowedEmailDomains: [String!] + allowedEmails: [String!] + autoEnroll: Boolean! + blockedEmailDomains: [String!] + blockedEmails: [String!] + createdAt: timestamptz! + createdBy: uuid! + description: String + + """An array relationship""" + devices( + """distinct select on columns""" + distinct_on: [devices_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [devices_order_by!] + + """filter the rows returned""" + where: devices_bool_exp + ): [devices!]! + + """An aggregate relationship""" + devices_aggregate( + """distinct select on columns""" + distinct_on: [devices_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [devices_order_by!] + + """filter the rows returned""" + where: devices_bool_exp + ): devices_aggregate! + displayName: String! + + """An array relationship""" + groups( + """distinct select on columns""" + distinct_on: [groups_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [groups_order_by!] + + """filter the rows returned""" + where: groups_bool_exp + ): [groups!]! """An aggregate relationship""" groups_aggregate( @@ -3037,6 +3708,168 @@ type organizations { owner: users! ownerId: uuid! + """An array relationship""" + policies( + """distinct select on columns""" + distinct_on: [policies_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [policies_order_by!] + + """filter the rows returned""" + where: policies_bool_exp + ): [policies!]! + + """An aggregate relationship""" + policies_aggregate( + """distinct select on columns""" + distinct_on: [policies_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [policies_order_by!] + + """filter the rows returned""" + where: policies_bool_exp + ): policies_aggregate! + + """An array relationship""" + pools( + """distinct select on columns""" + distinct_on: [pools_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pools_order_by!] + + """filter the rows returned""" + where: pools_bool_exp + ): [pools!]! + + """An aggregate relationship""" + pools_aggregate( + """distinct select on columns""" + distinct_on: [pools_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [pools_order_by!] + + """filter the rows returned""" + where: pools_bool_exp + ): pools_aggregate! + + """An array relationship""" + rules( + """distinct select on columns""" + distinct_on: [rules_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [rules_order_by!] + + """filter the rows returned""" + where: rules_bool_exp + ): [rules!]! + + """An aggregate relationship""" + rules_aggregate( + """distinct select on columns""" + distinct_on: [rules_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [rules_order_by!] + + """filter the rows returned""" + where: rules_bool_exp + ): rules_aggregate! + + """An array relationship""" + settings( + """distinct select on columns""" + distinct_on: [org_settings_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [org_settings_order_by!] + + """filter the rows returned""" + where: org_settings_bool_exp + ): [org_settings!]! + + """Used as Computed Field on Organizations Table""" + settingsWithDefaults( + """distinct select on columns""" + distinct_on: [org_settings_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [org_settings_order_by!] + + """filter the rows returned""" + where: org_settings_bool_exp + ): [org_settings!] + + """An aggregate relationship""" + settings_aggregate( + """distinct select on columns""" + distinct_on: [org_settings_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [org_settings_order_by!] + + """filter the rows returned""" + where: org_settings_bool_exp + ): org_settings_aggregate! + """An array relationship""" subscriptions( """distinct select on columns""" @@ -3150,6 +3983,8 @@ input organizations_bool_exp { createdAt: timestamptz_comparison_exp createdBy: uuid_comparison_exp description: String_comparison_exp + devices: devices_bool_exp + devices_aggregate: devices_aggregate_bool_exp displayName: String_comparison_exp groups: groups_bool_exp groups_aggregate: groups_aggregate_bool_exp @@ -3157,6 +3992,15 @@ input organizations_bool_exp { metadata: jsonb_comparison_exp owner: users_bool_exp ownerId: uuid_comparison_exp + policies: policies_bool_exp + policies_aggregate: policies_aggregate_bool_exp + pools: pools_bool_exp + pools_aggregate: pools_aggregate_bool_exp + rules: rules_bool_exp + rules_aggregate: rules_aggregate_bool_exp + settings: org_settings_bool_exp + settingsWithDefaults: org_settings_bool_exp + settings_aggregate: org_settings_aggregate_bool_exp subscriptions: subscriptions_bool_exp subscriptions_aggregate: subscriptions_aggregate_bool_exp tags: String_array_comparison_exp @@ -3210,6 +4054,10 @@ input organizations_insert_input { displayName: String groups: groups_arr_rel_insert_input metadata: jsonb + policies: policies_arr_rel_insert_input + pools: pools_arr_rel_insert_input + rules: rules_arr_rel_insert_input + settings: org_settings_arr_rel_insert_input tags: [String!] users: user_org_roles_arr_rel_insert_input } @@ -3288,12 +4136,18 @@ input organizations_order_by { createdAt: order_by createdBy: order_by description: order_by + devices_aggregate: devices_aggregate_order_by displayName: order_by groups_aggregate: groups_aggregate_order_by id: order_by metadata: order_by owner: users_order_by ownerId: order_by + policies_aggregate: policies_aggregate_order_by + pools_aggregate: pools_aggregate_order_by + rules_aggregate: rules_aggregate_order_by + settingsWithDefaults_aggregate: org_settings_aggregate_order_by + settings_aggregate: org_settings_aggregate_order_by subscriptions_aggregate: subscriptions_aggregate_order_by tags: order_by updatedAt: order_by @@ -3311,6 +4165,8 @@ input organizations_prepend_input { metadata: jsonb } +scalar organizations_scalar + """ select columns of table "organizations" """ @@ -3577,6 +4433,33 @@ type policies_aggregate { nodes: [policies!]! } +input policies_aggregate_bool_exp { + bool_and: policies_aggregate_bool_exp_bool_and + bool_or: policies_aggregate_bool_exp_bool_or + count: policies_aggregate_bool_exp_count +} + +input policies_aggregate_bool_exp_bool_and { + arguments: policies_select_column_policies_aggregate_bool_exp_bool_and_arguments_columns! + distinct: Boolean + filter: policies_bool_exp + predicate: Boolean_comparison_exp! +} + +input policies_aggregate_bool_exp_bool_or { + arguments: policies_select_column_policies_aggregate_bool_exp_bool_or_arguments_columns! + distinct: Boolean + filter: policies_bool_exp + predicate: Boolean_comparison_exp! +} + +input policies_aggregate_bool_exp_count { + arguments: [policies_select_column!] + distinct: Boolean + filter: policies_bool_exp + predicate: Int_comparison_exp! +} + """ aggregate fields of "policies" """ @@ -3594,11 +4477,45 @@ type policies_aggregate_fields { variance: policies_variance_fields } +""" +order by aggregate values of table "policies" +""" +input policies_aggregate_order_by { + avg: policies_avg_order_by + count: order_by + max: policies_max_order_by + min: policies_min_order_by + stddev: policies_stddev_order_by + stddev_pop: policies_stddev_pop_order_by + stddev_samp: policies_stddev_samp_order_by + sum: policies_sum_order_by + var_pop: policies_var_pop_order_by + var_samp: policies_var_samp_order_by + variance: policies_variance_order_by +} + +""" +input type for inserting array relation for remote table "policies" +""" +input policies_arr_rel_insert_input { + data: [policies_insert_input!]! + + """upsert condition""" + on_conflict: policies_on_conflict +} + """aggregate avg on columns""" type policies_avg_fields { weight: Float } +""" +order by avg() on columns of table "policies" +""" +input policies_avg_order_by { + weight: order_by +} + """ Boolean expression to filter rows from the table "policies". All fields are combined with a logical 'AND'. """ @@ -3681,6 +4598,25 @@ type policies_max_fields { weight: smallint } +""" +order by max() on columns of table "policies" +""" +input policies_max_order_by { + createdAt: order_by + createdBy: order_by + id: order_by + orgId: order_by + ruleId: order_by + subjectDisplayName: order_by + subjectId: order_by + subjectSecondaryId: order_by + updatedAt: order_by + updatedBy: order_by + validFrom: order_by + validTo: order_by + weight: order_by +} + """aggregate min on columns""" type policies_min_fields { createdAt: timestamptz @@ -3698,6 +4634,25 @@ type policies_min_fields { weight: smallint } +""" +order by min() on columns of table "policies" +""" +input policies_min_order_by { + createdAt: order_by + createdBy: order_by + id: order_by + orgId: order_by + ruleId: order_by + subjectDisplayName: order_by + subjectId: order_by + subjectSecondaryId: order_by + updatedAt: order_by + updatedBy: order_by + validFrom: order_by + validTo: order_by + weight: order_by +} + """ response of any mutation on the table "policies" """ @@ -3794,6 +4749,22 @@ enum policies_select_column { weight } +""" +select "policies_aggregate_bool_exp_bool_and_arguments_columns" columns of table "policies" +""" +enum policies_select_column_policies_aggregate_bool_exp_bool_and_arguments_columns { + """column name""" + active +} + +""" +select "policies_aggregate_bool_exp_bool_or_arguments_columns" columns of table "policies" +""" +enum policies_select_column_policies_aggregate_bool_exp_bool_or_arguments_columns { + """column name""" + active +} + """ input type for updating data in table "policies" """ @@ -3809,16 +4780,37 @@ type policies_stddev_fields { weight: Float } +""" +order by stddev() on columns of table "policies" +""" +input policies_stddev_order_by { + weight: order_by +} + """aggregate stddev_pop on columns""" type policies_stddev_pop_fields { weight: Float } +""" +order by stddev_pop() on columns of table "policies" +""" +input policies_stddev_pop_order_by { + weight: order_by +} + """aggregate stddev_samp on columns""" type policies_stddev_samp_fields { weight: Float } +""" +order by stddev_samp() on columns of table "policies" +""" +input policies_stddev_samp_order_by { + weight: order_by +} + """ Streaming cursor of the table "policies" """ @@ -3854,6 +4846,13 @@ type policies_sum_fields { weight: smallint } +""" +order by sum() on columns of table "policies" +""" +input policies_sum_order_by { + weight: order_by +} + """ update columns of table "policies" """ @@ -3887,16 +4886,37 @@ type policies_var_pop_fields { weight: Float } +""" +order by var_pop() on columns of table "policies" +""" +input policies_var_pop_order_by { + weight: order_by +} + """aggregate var_samp on columns""" type policies_var_samp_fields { weight: Float } +""" +order by var_samp() on columns of table "policies" +""" +input policies_var_samp_order_by { + weight: order_by +} + """aggregate variance on columns""" type policies_variance_fields { weight: Float } +""" +order by variance() on columns of table "policies" +""" +input policies_variance_order_by { + weight: order_by +} + """Table containing device pools data""" type pools { alternateDns: Boolean @@ -3917,11 +4937,41 @@ type pools { version: String } +""" +aggregated selection of "pools" +""" type pools_aggregate { aggregate: pools_aggregate_fields nodes: [pools!]! } +input pools_aggregate_bool_exp { + bool_and: pools_aggregate_bool_exp_bool_and + bool_or: pools_aggregate_bool_exp_bool_or + count: pools_aggregate_bool_exp_count +} + +input pools_aggregate_bool_exp_bool_and { + arguments: pools_select_column_pools_aggregate_bool_exp_bool_and_arguments_columns! + distinct: Boolean + filter: pools_bool_exp + predicate: Boolean_comparison_exp! +} + +input pools_aggregate_bool_exp_bool_or { + arguments: pools_select_column_pools_aggregate_bool_exp_bool_or_arguments_columns! + distinct: Boolean + filter: pools_bool_exp + predicate: Boolean_comparison_exp! +} + +input pools_aggregate_bool_exp_count { + arguments: [pools_select_column!] + distinct: Boolean + filter: pools_bool_exp + predicate: Int_comparison_exp! +} + """ aggregate fields of "pools" """ @@ -3945,6 +4995,16 @@ input pools_append_input { metadata: jsonb } +""" +input type for inserting array relation for remote table "pools" +""" +input pools_arr_rel_insert_input { + data: [pools_insert_input!]! + + """upsert condition""" + on_conflict: pools_on_conflict +} + """ Boolean expression to filter rows from the table "pools". All fields are combined with a logical 'AND'. """ @@ -4177,6 +5237,28 @@ enum pools_select_column { version } +""" +select "pools_aggregate_bool_exp_bool_and_arguments_columns" columns of table "pools" +""" +enum pools_select_column_pools_aggregate_bool_exp_bool_and_arguments_columns { + """column name""" + alternateDns + + """column name""" + proxyIp +} + +""" +select "pools_aggregate_bool_exp_bool_or_arguments_columns" columns of table "pools" +""" +enum pools_select_column_pools_aggregate_bool_exp_bool_or_arguments_columns { + """column name""" + alternateDns + + """column name""" + proxyIp +} + """ input type for updating data in table "pools" """ @@ -4715,9 +5797,7 @@ type query_root { """fetch data from the table: "device_pools" using primary key columns""" device_pools_by_pk(deviceId: uuid!, poolId: uuid!): device_pools - """ - fetch data from the table: "devices" - """ + """An array relationship""" devices( """distinct select on columns""" distinct_on: [devices_select_column!] @@ -4735,9 +5815,7 @@ type query_root { where: devices_bool_exp ): [devices!]! - """ - fetch aggregated fields from the table: "devices" - """ + """An aggregate relationship""" devices_aggregate( """distinct select on columns""" distinct_on: [devices_select_column!] @@ -4843,6 +5921,99 @@ type query_root { """fetch data from the table: "groups" using primary key columns""" groups_by_pk(id: uuid!): groups + """ + fetch data from the table: "org_settings" + """ + org_settings( + """distinct select on columns""" + distinct_on: [org_settings_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [org_settings_order_by!] + + """filter the rows returned""" + where: org_settings_bool_exp + ): [org_settings!]! + + """ + fetch aggregated fields from the table: "org_settings" + """ + org_settings_aggregate( + """distinct select on columns""" + distinct_on: [org_settings_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [org_settings_order_by!] + + """filter the rows returned""" + where: org_settings_bool_exp + ): org_settings_aggregate! + + """fetch data from the table: "org_settings" using primary key columns""" + org_settings_by_pk(key: String!, org_id: uuid!): org_settings + + """ + execute function "org_settings_with_defaults" which returns "org_settings" + """ + org_settings_with_defaults( + """ + input parameters for function "org_settings_with_defaults" + """ + args: org_settings_with_defaults_args! + + """distinct select on columns""" + distinct_on: [org_settings_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [org_settings_order_by!] + + """filter the rows returned""" + where: org_settings_bool_exp + ): [org_settings!]! + + """ + execute function "org_settings_with_defaults" and query aggregates on result of table type "org_settings" + """ + org_settings_with_defaults_aggregate( + """ + input parameters for function "org_settings_with_defaults_aggregate" + """ + args: org_settings_with_defaults_args! + + """distinct select on columns""" + distinct_on: [org_settings_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [org_settings_order_by!] + + """filter the rows returned""" + where: org_settings_bool_exp + ): org_settings_aggregate! + """ fetch data from the table: "organizations" """ @@ -4909,9 +6080,7 @@ type query_root { """fetch data from the table: "plan" using primary key columns""" plan_by_pk(value: String!): plan - """ - fetch data from the table: "policies" - """ + """An array relationship""" policies( """distinct select on columns""" distinct_on: [policies_select_column!] @@ -4929,9 +6098,7 @@ type query_root { where: policies_bool_exp ): [policies!]! - """ - fetch aggregated fields from the table: "policies" - """ + """An aggregate relationship""" policies_aggregate( """distinct select on columns""" distinct_on: [policies_select_column!] @@ -4952,9 +6119,7 @@ type query_root { """fetch data from the table: "policies" using primary key columns""" policies_by_pk(id: uuid!): policies - """ - fetch data from the table: "pools" - """ + """An array relationship""" pools( """distinct select on columns""" distinct_on: [pools_select_column!] @@ -4972,9 +6137,7 @@ type query_root { where: pools_bool_exp ): [pools!]! - """ - fetch aggregated fields from the table: "pools" - """ + """An aggregate relationship""" pools_aggregate( """distinct select on columns""" distinct_on: [pools_select_column!] @@ -5018,9 +6181,7 @@ type query_root { """fetch data from the table: "protocol" using primary key columns""" protocol_by_pk(value: String!): protocol - """ - fetch data from the table: "rules" - """ + """An array relationship""" rules( """distinct select on columns""" distinct_on: [rules_select_column!] @@ -5038,9 +6199,7 @@ type query_root { where: rules_bool_exp ): [rules!]! - """ - fetch aggregated fields from the table: "rules" - """ + """An aggregate relationship""" rules_aggregate( """distinct select on columns""" distinct_on: [rules_select_column!] @@ -5061,6 +6220,49 @@ type query_root { """fetch data from the table: "rules" using primary key columns""" rules_by_pk(id: uuid!): rules + """ + fetch data from the table: "setting_keys" + """ + setting_keys( + """distinct select on columns""" + distinct_on: [setting_keys_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [setting_keys_order_by!] + + """filter the rows returned""" + where: setting_keys_bool_exp + ): [setting_keys!]! + + """ + fetch aggregated fields from the table: "setting_keys" + """ + setting_keys_aggregate( + """distinct select on columns""" + distinct_on: [setting_keys_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [setting_keys_order_by!] + + """filter the rows returned""" + where: setting_keys_bool_exp + ): setting_keys_aggregate! + + """fetch data from the table: "setting_keys" using primary key columns""" + setting_keys_by_pk(key: String!): setting_keys + """ fetch data from the table: "status" """ @@ -5412,6 +6614,33 @@ type rules_aggregate { nodes: [rules!]! } +input rules_aggregate_bool_exp { + bool_and: rules_aggregate_bool_exp_bool_and + bool_or: rules_aggregate_bool_exp_bool_or + count: rules_aggregate_bool_exp_count +} + +input rules_aggregate_bool_exp_bool_and { + arguments: rules_select_column_rules_aggregate_bool_exp_bool_and_arguments_columns! + distinct: Boolean + filter: rules_bool_exp + predicate: Boolean_comparison_exp! +} + +input rules_aggregate_bool_exp_bool_or { + arguments: rules_select_column_rules_aggregate_bool_exp_bool_or_arguments_columns! + distinct: Boolean + filter: rules_bool_exp + predicate: Boolean_comparison_exp! +} + +input rules_aggregate_bool_exp_count { + arguments: [rules_select_column!] + distinct: Boolean + filter: rules_bool_exp + predicate: Int_comparison_exp! +} + """ aggregate fields of "rules" """ @@ -5429,16 +6658,50 @@ type rules_aggregate_fields { variance: rules_variance_fields } +""" +order by aggregate values of table "rules" +""" +input rules_aggregate_order_by { + avg: rules_avg_order_by + count: order_by + max: rules_max_order_by + min: rules_min_order_by + stddev: rules_stddev_order_by + stddev_pop: rules_stddev_pop_order_by + stddev_samp: rules_stddev_samp_order_by + sum: rules_sum_order_by + var_pop: rules_var_pop_order_by + var_samp: rules_var_samp_order_by + variance: rules_variance_order_by +} + """append existing jsonb value of filtered columns with new jsonb value""" input rules_append_input { metadata: jsonb } +""" +input type for inserting array relation for remote table "rules" +""" +input rules_arr_rel_insert_input { + data: [rules_insert_input!]! + + """upsert condition""" + on_conflict: rules_on_conflict +} + """aggregate avg on columns""" type rules_avg_fields { weight: Float } +""" +order by avg() on columns of table "rules" +""" +input rules_avg_order_by { + weight: order_by +} + """ Boolean expression to filter rows from the table "rules". All fields are combined with a logical 'AND'. """ @@ -5553,6 +6816,28 @@ type rules_max_fields { weight: smallint } +""" +order by max() on columns of table "rules" +""" +input rules_max_order_by { + appId: order_by + createdAt: order_by + createdBy: order_by + description: order_by + destination: order_by + destinationPort: order_by + displayName: order_by + id: order_by + orgId: order_by + source: order_by + sourcePort: order_by + tags: order_by + throttleRate: order_by + updatedAt: order_by + updatedBy: order_by + weight: order_by +} + """aggregate min on columns""" type rules_min_fields { appId: String @@ -5573,6 +6858,28 @@ type rules_min_fields { weight: smallint } +""" +order by min() on columns of table "rules" +""" +input rules_min_order_by { + appId: order_by + createdAt: order_by + createdBy: order_by + description: order_by + destination: order_by + destinationPort: order_by + displayName: order_by + id: order_by + orgId: order_by + source: order_by + sourcePort: order_by + tags: order_by + throttleRate: order_by + updatedAt: order_by + updatedBy: order_by + weight: order_by +} + """ response of any mutation on the table "rules" """ @@ -5706,6 +7013,22 @@ enum rules_select_column { weight } +""" +select "rules_aggregate_bool_exp_bool_and_arguments_columns" columns of table "rules" +""" +enum rules_select_column_rules_aggregate_bool_exp_bool_and_arguments_columns { + """column name""" + shared +} + +""" +select "rules_aggregate_bool_exp_bool_or_arguments_columns" columns of table "rules" +""" +enum rules_select_column_rules_aggregate_bool_exp_bool_or_arguments_columns { + """column name""" + shared +} + """ input type for updating data in table "rules" """ @@ -5732,16 +7055,37 @@ type rules_stddev_fields { weight: Float } +""" +order by stddev() on columns of table "rules" +""" +input rules_stddev_order_by { + weight: order_by +} + """aggregate stddev_pop on columns""" type rules_stddev_pop_fields { weight: Float } +""" +order by stddev_pop() on columns of table "rules" +""" +input rules_stddev_pop_order_by { + weight: order_by +} + """aggregate stddev_samp on columns""" type rules_stddev_samp_fields { weight: Float } +""" +order by stddev_samp() on columns of table "rules" +""" +input rules_stddev_samp_order_by { + weight: order_by +} + """ Streaming cursor of the table "rules" """ @@ -5778,106 +7122,373 @@ input rules_stream_cursor_value_input { weight: smallint } -"""aggregate sum on columns""" -type rules_sum_fields { - weight: smallint +"""aggregate sum on columns""" +type rules_sum_fields { + weight: smallint +} + +""" +order by sum() on columns of table "rules" +""" +input rules_sum_order_by { + weight: order_by +} + +""" +update columns of table "rules" +""" +enum rules_update_column { + """column name""" + action + + """column name""" + appId + + """column name""" + description + + """column name""" + destination + + """column name""" + destinationPort + + """column name""" + direction + + """column name""" + displayName + + """column name""" + metadata + + """column name""" + protocol + + """column name""" + shared + + """column name""" + source + + """column name""" + sourcePort + + """column name""" + tags + + """column name""" + throttleRate + + """column name""" + weight +} + +input rules_updates { + """append existing jsonb value of filtered columns with new jsonb value""" + _append: rules_append_input + + """ + delete the field or element with specified path (for JSON arrays, negative integers count from the end) + """ + _delete_at_path: rules_delete_at_path_input + + """ + delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array + """ + _delete_elem: rules_delete_elem_input + + """ + delete key/value pair or string element. key/value pairs are matched based on their key value + """ + _delete_key: rules_delete_key_input + + """increments the numeric columns with given value of the filtered values""" + _inc: rules_inc_input + + """prepend existing jsonb value of filtered columns with new jsonb value""" + _prepend: rules_prepend_input + + """sets the columns of the filtered rows to the given values""" + _set: rules_set_input + + """filter the rows which have to be updated""" + where: rules_bool_exp! +} + +"""aggregate var_pop on columns""" +type rules_var_pop_fields { + weight: Float +} + +""" +order by var_pop() on columns of table "rules" +""" +input rules_var_pop_order_by { + weight: order_by +} + +"""aggregate var_samp on columns""" +type rules_var_samp_fields { + weight: Float +} + +""" +order by var_samp() on columns of table "rules" +""" +input rules_var_samp_order_by { + weight: order_by +} + +"""aggregate variance on columns""" +type rules_variance_fields { + weight: Float +} + +""" +order by variance() on columns of table "rules" +""" +input rules_variance_order_by { + weight: order_by +} + +""" +Table containing Organization unique Setting keys and Feature Flags, act like enum +""" +type setting_keys { + allowed_values( + """JSON select path""" + path: String + ): jsonb + default_value( + """JSON select path""" + path: String + ): jsonb + description: String + key: String! +} + +""" +aggregated selection of "setting_keys" +""" +type setting_keys_aggregate { + aggregate: setting_keys_aggregate_fields + nodes: [setting_keys!]! +} + +""" +aggregate fields of "setting_keys" +""" +type setting_keys_aggregate_fields { + count(columns: [setting_keys_select_column!], distinct: Boolean): Int! + max: setting_keys_max_fields + min: setting_keys_min_fields +} + +"""append existing jsonb value of filtered columns with new jsonb value""" +input setting_keys_append_input { + allowed_values: jsonb + default_value: jsonb +} + +""" +Boolean expression to filter rows from the table "setting_keys". All fields are combined with a logical 'AND'. +""" +input setting_keys_bool_exp { + _and: [setting_keys_bool_exp!] + _not: setting_keys_bool_exp + _or: [setting_keys_bool_exp!] + allowed_values: jsonb_comparison_exp + default_value: jsonb_comparison_exp + description: String_comparison_exp + key: String_comparison_exp +} + +""" +unique or primary key constraints on table "setting_keys" +""" +enum setting_keys_constraint { + """ + unique or primary key constraint on columns "key" + """ + setting_keys_pkey +} + +""" +delete the field or element with specified path (for JSON arrays, negative integers count from the end) +""" +input setting_keys_delete_at_path_input { + allowed_values: [String!] + default_value: [String!] +} + +""" +delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array +""" +input setting_keys_delete_elem_input { + allowed_values: Int + default_value: Int +} + +""" +delete key/value pair or string element. key/value pairs are matched based on their key value +""" +input setting_keys_delete_key_input { + allowed_values: String + default_value: String +} + +""" +input type for inserting data into table "setting_keys" +""" +input setting_keys_insert_input { + allowed_values: jsonb + default_value: jsonb + description: String + key: String +} + +"""aggregate max on columns""" +type setting_keys_max_fields { + description: String + key: String +} + +"""aggregate min on columns""" +type setting_keys_min_fields { + description: String + key: String } """ -update columns of table "rules" +response of any mutation on the table "setting_keys" """ -enum rules_update_column { - """column name""" - action +type setting_keys_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! - """column name""" - appId + """data from the rows affected by the mutation""" + returning: [setting_keys!]! +} - """column name""" - description +""" +on_conflict condition type for table "setting_keys" +""" +input setting_keys_on_conflict { + constraint: setting_keys_constraint! + update_columns: [setting_keys_update_column!]! = [] + where: setting_keys_bool_exp +} - """column name""" - destination +"""Ordering options when selecting data from "setting_keys".""" +input setting_keys_order_by { + allowed_values: order_by + default_value: order_by + description: order_by + key: order_by +} - """column name""" - destinationPort +"""primary key columns input for table: setting_keys""" +input setting_keys_pk_columns_input { + key: String! +} - """column name""" - direction +"""prepend existing jsonb value of filtered columns with new jsonb value""" +input setting_keys_prepend_input { + allowed_values: jsonb + default_value: jsonb +} +""" +select columns of table "setting_keys" +""" +enum setting_keys_select_column { """column name""" - displayName + allowed_values """column name""" - metadata + default_value """column name""" - protocol + description """column name""" - shared + key +} - """column name""" - source +""" +input type for updating data in table "setting_keys" +""" +input setting_keys_set_input { + allowed_values: jsonb + default_value: jsonb + description: String + key: String +} + +""" +Streaming cursor of the table "setting_keys" +""" +input setting_keys_stream_cursor_input { + """Stream column input with initial value""" + initial_value: setting_keys_stream_cursor_value_input! + + """cursor ordering""" + ordering: cursor_ordering +} + +"""Initial value of the column from where the streaming should start""" +input setting_keys_stream_cursor_value_input { + allowed_values: jsonb + default_value: jsonb + description: String + key: String +} +""" +update columns of table "setting_keys" +""" +enum setting_keys_update_column { """column name""" - sourcePort + allowed_values """column name""" - tags + default_value """column name""" - throttleRate + description """column name""" - weight + key } -input rules_updates { +input setting_keys_updates { """append existing jsonb value of filtered columns with new jsonb value""" - _append: rules_append_input + _append: setting_keys_append_input """ delete the field or element with specified path (for JSON arrays, negative integers count from the end) """ - _delete_at_path: rules_delete_at_path_input + _delete_at_path: setting_keys_delete_at_path_input """ delete the array element with specified index (negative integers count from the end). throws an error if top level container is not an array """ - _delete_elem: rules_delete_elem_input + _delete_elem: setting_keys_delete_elem_input """ delete key/value pair or string element. key/value pairs are matched based on their key value """ - _delete_key: rules_delete_key_input - - """increments the numeric columns with given value of the filtered values""" - _inc: rules_inc_input + _delete_key: setting_keys_delete_key_input """prepend existing jsonb value of filtered columns with new jsonb value""" - _prepend: rules_prepend_input + _prepend: setting_keys_prepend_input """sets the columns of the filtered rows to the given values""" - _set: rules_set_input + _set: setting_keys_set_input """filter the rows which have to be updated""" - where: rules_bool_exp! -} - -"""aggregate var_pop on columns""" -type rules_var_pop_fields { - weight: Float -} - -"""aggregate var_samp on columns""" -type rules_var_samp_fields { - weight: Float -} - -"""aggregate variance on columns""" -type rules_variance_fields { - weight: Float + where: setting_keys_bool_exp! } scalar smallint @@ -6478,9 +8089,7 @@ type subscription_root { where: device_pools_bool_exp ): [device_pools!]! - """ - fetch data from the table: "devices" - """ + """An array relationship""" devices( """distinct select on columns""" distinct_on: [devices_select_column!] @@ -6498,9 +8107,7 @@ type subscription_root { where: devices_bool_exp ): [devices!]! - """ - fetch aggregated fields from the table: "devices" - """ + """An aggregate relationship""" devices_aggregate( """distinct select on columns""" distinct_on: [devices_select_column!] @@ -6662,6 +8269,113 @@ type subscription_root { where: groups_bool_exp ): [groups!]! + """ + fetch data from the table: "org_settings" + """ + org_settings( + """distinct select on columns""" + distinct_on: [org_settings_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [org_settings_order_by!] + + """filter the rows returned""" + where: org_settings_bool_exp + ): [org_settings!]! + + """ + fetch aggregated fields from the table: "org_settings" + """ + org_settings_aggregate( + """distinct select on columns""" + distinct_on: [org_settings_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [org_settings_order_by!] + + """filter the rows returned""" + where: org_settings_bool_exp + ): org_settings_aggregate! + + """fetch data from the table: "org_settings" using primary key columns""" + org_settings_by_pk(key: String!, org_id: uuid!): org_settings + + """ + fetch data from the table in a streaming manner: "org_settings" + """ + org_settings_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [org_settings_stream_cursor_input]! + + """filter the rows returned""" + where: org_settings_bool_exp + ): [org_settings!]! + + """ + execute function "org_settings_with_defaults" which returns "org_settings" + """ + org_settings_with_defaults( + """ + input parameters for function "org_settings_with_defaults" + """ + args: org_settings_with_defaults_args! + + """distinct select on columns""" + distinct_on: [org_settings_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [org_settings_order_by!] + + """filter the rows returned""" + where: org_settings_bool_exp + ): [org_settings!]! + + """ + execute function "org_settings_with_defaults" and query aggregates on result of table type "org_settings" + """ + org_settings_with_defaults_aggregate( + """ + input parameters for function "org_settings_with_defaults_aggregate" + """ + args: org_settings_with_defaults_args! + + """distinct select on columns""" + distinct_on: [org_settings_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [org_settings_order_by!] + + """filter the rows returned""" + where: org_settings_bool_exp + ): org_settings_aggregate! + """ fetch data from the table: "organizations" """ @@ -6756,9 +8470,7 @@ type subscription_root { where: plan_bool_exp ): [plan!]! - """ - fetch data from the table: "policies" - """ + """An array relationship""" policies( """distinct select on columns""" distinct_on: [policies_select_column!] @@ -6776,9 +8488,7 @@ type subscription_root { where: policies_bool_exp ): [policies!]! - """ - fetch aggregated fields from the table: "policies" - """ + """An aggregate relationship""" policies_aggregate( """distinct select on columns""" distinct_on: [policies_select_column!] @@ -6813,9 +8523,7 @@ type subscription_root { where: policies_bool_exp ): [policies!]! - """ - fetch data from the table: "pools" - """ + """An array relationship""" pools( """distinct select on columns""" distinct_on: [pools_select_column!] @@ -6833,9 +8541,7 @@ type subscription_root { where: pools_bool_exp ): [pools!]! - """ - fetch aggregated fields from the table: "pools" - """ + """An aggregate relationship""" pools_aggregate( """distinct select on columns""" distinct_on: [pools_select_column!] @@ -6907,9 +8613,7 @@ type subscription_root { where: protocol_bool_exp ): [protocol!]! - """ - fetch data from the table: "rules" - """ + """An array relationship""" rules( """distinct select on columns""" distinct_on: [rules_select_column!] @@ -6927,9 +8631,7 @@ type subscription_root { where: rules_bool_exp ): [rules!]! - """ - fetch aggregated fields from the table: "rules" - """ + """An aggregate relationship""" rules_aggregate( """distinct select on columns""" distinct_on: [rules_select_column!] @@ -6964,6 +8666,63 @@ type subscription_root { where: rules_bool_exp ): [rules!]! + """ + fetch data from the table: "setting_keys" + """ + setting_keys( + """distinct select on columns""" + distinct_on: [setting_keys_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [setting_keys_order_by!] + + """filter the rows returned""" + where: setting_keys_bool_exp + ): [setting_keys!]! + + """ + fetch aggregated fields from the table: "setting_keys" + """ + setting_keys_aggregate( + """distinct select on columns""" + distinct_on: [setting_keys_select_column!] + + """limit the number of rows returned""" + limit: Int + + """skip the first n rows. Use only with order_by""" + offset: Int + + """sort the rows by one or more columns""" + order_by: [setting_keys_order_by!] + + """filter the rows returned""" + where: setting_keys_bool_exp + ): setting_keys_aggregate! + + """fetch data from the table: "setting_keys" using primary key columns""" + setting_keys_by_pk(key: String!): setting_keys + + """ + fetch data from the table in a streaming manner: "setting_keys" + """ + setting_keys_stream( + """maximum number of rows returned in a single batch""" + batch_size: Int! + + """cursor to stream the results returned by the query""" + cursor: [setting_keys_stream_cursor_input]! + + """filter the rows returned""" + where: setting_keys_bool_exp + ): [setting_keys!]! + """ fetch data from the table: "status" """ @@ -7535,6 +9294,17 @@ input subscriptions_min_order_by { validUntil: order_by } +""" +response of any mutation on the table "subscriptions" +""" +type subscriptions_mutation_response { + """number of rows affected by the mutation""" + affected_rows: Int! + + """data from the rows affected by the mutation""" + returning: [subscriptions!]! +} + """Ordering options when selecting data from "subscriptions".""" input subscriptions_order_by { createdAt: order_by @@ -7553,6 +9323,11 @@ input subscriptions_order_by { validUntil: order_by } +"""primary key columns input for table: subscriptions""" +input subscriptions_pk_columns_input { + id: uuid! +} + """ select columns of table "subscriptions" """ @@ -7597,6 +9372,16 @@ enum subscriptions_select_column { validUntil } +""" +input type for updating data in table "subscriptions" +""" +input subscriptions_set_input { + plan: plan_enum + stripeCheckoutSessionId: String + stripeCustomerId: String + stripeSubscriptionId: String +} + """aggregate stddev on columns""" type subscriptions_stddev_fields { credits: Float @@ -7673,6 +9458,14 @@ input subscriptions_sum_order_by { credits: order_by } +input subscriptions_updates { + """sets the columns of the filtered rows to the given values""" + _set: subscriptions_set_input + + """filter the rows which have to be updated""" + where: subscriptions_bool_exp! +} + """aggregate var_pop on columns""" type subscriptions_var_pop_fields { credits: Float diff --git a/apps/console/src/routes/(app)/profile/+page.ts b/apps/console/src/routes/(app)/profile/+page.ts index b63255a44..9093b0ccd 100644 --- a/apps/console/src/routes/(app)/profile/+page.ts +++ b/apps/console/src/routes/(app)/profile/+page.ts @@ -9,6 +9,8 @@ const log = new Logger('user.profile.browser'); export const _GetUserVariables: Variables = async (event) => { // const user = nhost.auth.getUser() // const userId = user?.id; + const aaaa = await event.parent(); + console.log('aaaa', aaaa); const { session } = await event.parent(); const userId = session?.user.id; if (!userId) { diff --git a/apps/smart/package.json b/apps/smart/package.json index edb45cd89..9f819c7cb 100644 --- a/apps/smart/package.json +++ b/apps/smart/package.json @@ -26,8 +26,8 @@ "test:e2e": "dotenv-run -f .env -f .secrets -v -- playwright test" }, "devDependencies": { - "@ai-sdk/azure": "1.0.10", - "@ai-sdk/openai": "1.0.8", + "@ai-sdk/azure": "1.0.12", + "@ai-sdk/openai": "1.0.10", "@ai-sdk/svelte": "1.0.6", "@aibrow/dom-types": "1.2.1", "@inlang/paraglide-sveltekit": "0.15.0", @@ -37,11 +37,11 @@ "@spectacular/ui": "workspace:*", "@spectacular/utils": "workspace:*", "@sveltejs/adapter-auto": "3.3.1", - "@sveltejs/adapter-node": "5.2.10", + "@sveltejs/adapter-node": "5.2.11", "@sveltejs/adapter-vercel": "5.5.2", "@sveltejs/enhanced-img": "0.4.4", - "@sveltejs/kit": "2.12.1", - "@sveltejs/vite-plugin-svelte": "5.0.2", + "@sveltejs/kit": "2.12.2", + "@sveltejs/vite-plugin-svelte": "5.0.3", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/forms": "0.5.9", "@tailwindcss/typography": "0.5.15", @@ -55,8 +55,8 @@ "lucide-svelte": "0.468.0", "mode-watcher": "0.5.0", "openai-zod-to-json-schema": "1.0.3", - "runed": "0.19.0", - "svelte": "5.14.3", + "runed": "0.20.0", + "svelte": "5.14.4", "svelte-check": "4.1.1", "svelte-persisted-store": "0.12.0", "svelte-radix": "2.0.1", diff --git a/apps/web/package.json b/apps/web/package.json index 2a8c201f0..5c3bf7d2c 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -40,7 +40,7 @@ "astro-seo": "0.8.4", "lucide-svelte": "0.468.0", "mode-watcher": "0.5.0", - "svelte": "5.14.3", + "svelte": "5.14.4", "tailwind-merge": "2.5.5", "tailwindcss": "3.4.17", "typescript": "5.7.2", diff --git a/package.json b/package.json index a880b1ca3..7fd637759 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "devDependencies": { "@biomejs/biome": "1.9.4", "@changesets/changelog-github": "0.5.0", - "@changesets/cli": "2.27.10", + "@changesets/cli": "2.27.11", "@dotenv-run/cli": "1.3.6", "@manypkg/cli": "0.23.0", "@markuplint/astro-parser": "4.6.14", diff --git a/packages/skeleton-ui/package.json b/packages/skeleton-ui/package.json index 5e1a5c126..e29c4c3d0 100644 --- a/packages/skeleton-ui/package.json +++ b/packages/skeleton-ui/package.json @@ -36,12 +36,12 @@ "@floating-ui/dom": "1.6.12", "@fontsource-variable/inter": "5.1.0", "@inlang/paraglide-sveltekit": "0.15.0", - "@skeletonlabs/skeleton": "2.10.3", + "@skeletonlabs/skeleton": "2.10.4", "@skeletonlabs/tw-plugin": "0.4.0", "@spectacular/biome-config": "workspace:*", "@spectacular/typescript-config": "workspace:*", "@spectacular/utils": "workspace:*", - "@sveltejs/kit": "2.12.1", + "@sveltejs/kit": "2.12.2", "@sveltejs/vite-plugin-svelte": "3.1.2", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/forms": "0.5.9", @@ -52,7 +52,7 @@ "@vincjo/datatables": "2.2.0", "@vitest/coverage-v8": "2.1.8", "autoprefixer": "10.4.20", - "bits-ui": "0.21.16", + "bits-ui": "0.22.0", "clsx": "2.1.1", "cssnano": "7.0.6", "date-fns": "4.1.0", diff --git a/packages/smart/package.json b/packages/smart/package.json index 383ecbfa6..c73e06d41 100644 --- a/packages/smart/package.json +++ b/packages/smart/package.json @@ -31,13 +31,13 @@ "@aibrow/dom-types": "1.2.1", "@floating-ui/dom": "1.6.12", "@inlang/paraglide-sveltekit": "0.15.0", - "@skeletonlabs/skeleton": "2.10.3", + "@skeletonlabs/skeleton": "2.10.4", "@spectacular/biome-config": "workspace:*", "@spectacular/skeleton": "workspace:*", "@spectacular/typescript-config": "workspace:*", "@spectacular/utils": "workspace:*", "@svelte-plugins/datepicker": "1.0.9", - "@sveltejs/kit": "2.12.1", + "@sveltejs/kit": "2.12.2", "@sveltejs/vite-plugin-svelte": "3.1.2", "@tsconfig/svelte": "5.0.4", "@types/dom-chromium-ai": "0.0.4", diff --git a/packages/ui/package.json b/packages/ui/package.json index 98ce86673..c309ea961 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -49,8 +49,8 @@ "@spectacular/typescript-config": "workspace:*", "@spectacular/utils": "workspace:*", "@sveltejs/adapter-auto": "3.3.1", - "@sveltejs/kit": "2.12.1", - "@sveltejs/vite-plugin-svelte": "5.0.2", + "@sveltejs/kit": "2.12.2", + "@sveltejs/vite-plugin-svelte": "5.0.3", "@tailwindcss/aspect-ratio": "0.4.2", "@tailwindcss/container-queries": "0.1.1", "@tailwindcss/forms": "0.5.9", @@ -69,7 +69,7 @@ "paneforge": "1.0.0-next.1", "postcss-import": "16.1.0", "postcss-load-config": "6.0.1", - "svelte": "5.14.3", + "svelte": "5.14.4", "svelte-check": "4.1.1", "svelte-sonner": "0.3.28", "sveltekit-superforms": "2.22.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6b6a97bda..a6b24dde2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,8 +19,8 @@ importers: specifier: 0.5.0 version: 0.5.0 '@changesets/cli': - specifier: 2.27.10 - version: 2.27.10 + specifier: 2.27.11 + version: 2.27.11 '@dotenv-run/cli': specifier: 1.3.6 version: 1.3.6 @@ -68,11 +68,11 @@ importers: version: 2.1.8(vitest@2.1.8) devDependencies: '@ai-sdk/azure': + specifier: 1.0.12 + version: 1.0.12(zod@3.24.1) + '@ai-sdk/openai': specifier: 1.0.10 version: 1.0.10(zod@3.24.1) - '@ai-sdk/openai': - specifier: 1.0.8 - version: 1.0.8(zod@3.24.1) '@ai-sdk/svelte': specifier: 1.0.6 version: 1.0.6(svelte@4.2.19)(zod@3.24.1) @@ -90,13 +90,13 @@ importers: version: 2.18.1 '@inlang/paraglide-sveltekit': specifier: 0.14.0 - version: 0.14.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) + version: 0.14.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) '@nhost/nhost-js': specifier: 3.2.1 version: 3.2.1(graphql@16.10.0) '@skeletonlabs/skeleton': - specifier: 2.10.3 - version: 2.10.3(svelte@4.2.19) + specifier: 2.10.4 + version: 2.10.4(svelte@4.2.19) '@skeletonlabs/tw-plugin': specifier: 0.4.0 version: 0.4.0(tailwindcss@3.4.17) @@ -123,19 +123,19 @@ importers: version: 1.0.9 '@sveltejs/adapter-auto': specifier: 3.3.1 - version: 3.3.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) + version: 3.3.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) '@sveltejs/adapter-node': - specifier: 5.2.10 - version: 5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) + specifier: 5.2.11 + version: 5.2.11(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) '@sveltejs/adapter-vercel': specifier: 5.5.2 - version: 5.5.2(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(rollup@4.28.1) + version: 5.5.2(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(rollup@4.28.1) '@sveltejs/enhanced-img': specifier: 0.3.10 version: 0.3.10(rollup@4.28.1)(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/kit': - specifier: 2.12.1 - version: 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + specifier: 2.12.2 + version: 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/vite-plugin-svelte': specifier: 3.1.2 version: 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) @@ -174,13 +174,13 @@ importers: version: 1.5.0 '@vercel/analytics': specifier: 1.4.1 - version: 1.4.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19) + version: 1.4.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19) '@vercel/flags': specifier: 2.6.3 - version: 2.6.3(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1) + version: 2.6.3(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1) '@vercel/speed-insights': specifier: 1.1.0 - version: 1.1.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19) + version: 1.1.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19) '@vercel/toolbar': specifier: 0.1.30 version: 0.1.30(react@18.3.1)(vite@5.4.11(@types/node@22.10.2)) @@ -191,8 +191,8 @@ importers: specifier: 2.1.8 version: 2.1.8(vitest@2.1.8) '@xyflow/svelte': - specifier: 0.1.25 - version: 0.1.25(svelte@4.2.19) + specifier: 0.1.26 + version: 0.1.26(svelte@4.2.19) ai: specifier: 4.0.20 version: 4.0.20(react@18.3.1)(zod@3.24.1) @@ -207,7 +207,7 @@ importers: version: 4.1.0 formsnap: specifier: 1.0.1 - version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) + version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) graphql: specifier: 16.10.0 version: 16.10.0 @@ -264,19 +264,19 @@ importers: version: 5.8.3 sveltekit-flash-message: specifier: 2.4.4 - version: 2.4.4(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19) + version: 2.4.4(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19) sveltekit-rate-limiter: specifier: 0.6.1 - version: 0.6.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) + version: 0.6.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))) sveltekit-search-params: specifier: 3.0.0 - version: 3.0.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + version: 3.0.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) sveltekit-superforms: specifier: 2.22.1 - version: 2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + version: 2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) sveltekit-view-transition: specifier: 0.5.3 - version: 0.5.3(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19) + version: 0.5.3(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19) swapy: specifier: 1.0.2 version: 1.0.2 @@ -330,7 +330,7 @@ importers: version: 5.1.3(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.17) '@astrojs/vercel': specifier: 8.0.1 - version: 8.0.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.14.3) + version: 8.0.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.14.4) '@fontsource-variable/inter': specifier: 5.1.0 version: 5.1.0 @@ -357,20 +357,20 @@ importers: apps/smart: devDependencies: '@ai-sdk/azure': + specifier: 1.0.12 + version: 1.0.12(zod@3.24.1) + '@ai-sdk/openai': specifier: 1.0.10 version: 1.0.10(zod@3.24.1) - '@ai-sdk/openai': - specifier: 1.0.8 - version: 1.0.8(zod@3.24.1) '@ai-sdk/svelte': specifier: 1.0.6 - version: 1.0.6(svelte@5.14.3)(zod@3.24.1) + version: 1.0.6(svelte@5.14.4)(zod@3.24.1) '@aibrow/dom-types': specifier: 1.2.1 version: 1.2.1 '@inlang/paraglide-sveltekit': specifier: 0.15.0 - version: 0.15.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) + version: 0.15.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) '@playwright/test': specifier: 1.49.1 version: 1.49.1 @@ -388,22 +388,22 @@ importers: version: link:../../packages/utils '@sveltejs/adapter-auto': specifier: 3.3.1 - version: 3.3.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))) + version: 3.3.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))) '@sveltejs/adapter-node': - specifier: 5.2.10 - version: 5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))) + specifier: 5.2.11 + version: 5.2.11(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))) '@sveltejs/adapter-vercel': specifier: 5.5.2 - version: 5.5.2(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(rollup@4.28.1) + version: 5.5.2(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(rollup@4.28.1) '@sveltejs/enhanced-img': specifier: 0.4.4 - version: 0.4.4(rollup@4.28.1)(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + version: 0.4.4(rollup@4.28.1)(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) '@sveltejs/kit': - specifier: 2.12.1 - version: 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + specifier: 2.12.2 + version: 2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': - specifier: 5.0.2 - version: 5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + specifier: 5.0.3 + version: 5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) '@tailwindcss/container-queries': specifier: 0.1.1 version: 0.1.1(tailwindcss@3.4.17) @@ -427,43 +427,43 @@ importers: version: 10.4.20(postcss@8.4.49) bits-ui: specifier: 1.0.0-next.71 - version: 1.0.0-next.71(svelte@5.14.3) + version: 1.0.0-next.71(svelte@5.14.4) clsx: specifier: 2.1.1 version: 2.1.1 formsnap: specifier: 2.0.0 - version: 2.0.0(svelte@5.14.3)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.3)(typescript@5.7.2)) + version: 2.0.0(svelte@5.14.4)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.4)(typescript@5.7.2)) lucide-svelte: specifier: 0.468.0 - version: 0.468.0(svelte@5.14.3) + version: 0.468.0(svelte@5.14.4) mode-watcher: specifier: 0.5.0 - version: 0.5.0(svelte@5.14.3) + version: 0.5.0(svelte@5.14.4) openai-zod-to-json-schema: specifier: 1.0.3 version: 1.0.3(zod@3.24.1) runed: - specifier: 0.19.0 - version: 0.19.0(svelte@5.14.3) + specifier: 0.20.0 + version: 0.20.0(svelte@5.14.4) svelte: - specifier: 5.14.3 - version: 5.14.3 + specifier: 5.14.4 + version: 5.14.4 svelte-check: specifier: 4.1.1 - version: 4.1.1(picomatch@4.0.2)(svelte@5.14.3)(typescript@5.7.2) + version: 4.1.1(picomatch@4.0.2)(svelte@5.14.4)(typescript@5.7.2) svelte-persisted-store: specifier: 0.12.0 - version: 0.12.0(svelte@5.14.3) + version: 0.12.0(svelte@5.14.4) svelte-radix: specifier: 2.0.1 - version: 2.0.1(svelte@5.14.3) + version: 2.0.1(svelte@5.14.4) svelte-sonner: specifier: 0.3.28 - version: 0.3.28(svelte@5.14.3) + version: 0.3.28(svelte@5.14.4) sveltekit-superforms: specifier: 2.22.1 - version: 2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.3)(typescript@5.7.2) + version: 2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.4)(typescript@5.7.2) tailwind-merge: specifier: 2.5.5 version: 2.5.5 @@ -481,7 +481,7 @@ importers: version: 5.7.2 vaul-svelte: specifier: 1.0.0-next.3 - version: 1.0.0-next.3(svelte@5.14.3) + version: 1.0.0-next.3(svelte@5.14.4) vite: specifier: 6.0.3 version: 6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1) @@ -518,13 +518,13 @@ importers: version: 0.30.2(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1)) '@astrojs/svelte': specifier: 7.0.1 - version: 7.0.1(@types/node@22.10.2)(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(jiti@1.21.7)(svelte@5.14.3)(typescript@5.7.2)(yaml@2.6.1) + version: 7.0.1(@types/node@22.10.2)(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(jiti@1.21.7)(svelte@5.14.4)(typescript@5.7.2)(yaml@2.6.1) '@astrojs/tailwind': specifier: 5.1.3 version: 5.1.3(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(tailwindcss@3.4.17) '@astrojs/vercel': specifier: 8.0.1 - version: 8.0.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.14.3) + version: 8.0.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.14.4) '@fontsource-variable/inter': specifier: 5.1.0 version: 5.1.0 @@ -557,13 +557,13 @@ importers: version: 0.8.4(typescript@5.7.2) lucide-svelte: specifier: 0.468.0 - version: 0.468.0(svelte@5.14.3) + version: 0.468.0(svelte@5.14.4) mode-watcher: specifier: 0.5.0 - version: 0.5.0(svelte@5.14.3) + version: 0.5.0(svelte@5.14.4) svelte: - specifier: 5.14.3 - version: 5.14.3 + specifier: 5.14.4 + version: 5.14.4 tailwind-merge: specifier: 2.5.5 version: 2.5.5 @@ -621,10 +621,10 @@ importers: version: 5.1.0 '@inlang/paraglide-sveltekit': specifier: 0.15.0 - version: 0.15.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) + version: 0.15.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) '@skeletonlabs/skeleton': - specifier: 2.10.3 - version: 2.10.3(svelte@4.2.19) + specifier: 2.10.4 + version: 2.10.4(svelte@4.2.19) '@skeletonlabs/tw-plugin': specifier: 0.4.0 version: 0.4.0(tailwindcss@3.4.17) @@ -638,8 +638,8 @@ importers: specifier: workspace:* version: link:../utils '@sveltejs/kit': - specifier: 2.12.1 - version: 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + specifier: 2.12.2 + version: 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/vite-plugin-svelte': specifier: 3.1.2 version: 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) @@ -671,8 +671,8 @@ importers: specifier: 10.4.20 version: 10.4.20(postcss@8.4.49) bits-ui: - specifier: 0.21.16 - version: 0.21.16(svelte@4.2.19) + specifier: 0.22.0 + version: 0.22.0(svelte@4.2.19) clsx: specifier: 2.1.1 version: 2.1.1 @@ -684,7 +684,7 @@ importers: version: 4.1.0 formsnap: specifier: 1.0.1 - version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) + version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) graphql: specifier: 16.10.0 version: 16.10.0 @@ -705,7 +705,7 @@ importers: version: 4.2.19 sveltekit-superforms: specifier: 2.22.1 - version: 2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + version: 2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) tailwind-merge: specifier: 2.5.5 version: 2.5.5 @@ -744,10 +744,10 @@ importers: version: 1.6.12 '@inlang/paraglide-sveltekit': specifier: 0.15.0 - version: 0.15.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) + version: 0.15.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0) '@skeletonlabs/skeleton': - specifier: 2.10.3 - version: 2.10.3(svelte@4.2.19) + specifier: 2.10.4 + version: 2.10.4(svelte@4.2.19) '@spectacular/biome-config': specifier: workspace:* version: link:../biome-config @@ -764,8 +764,8 @@ importers: specifier: 1.0.9 version: 1.0.9 '@sveltejs/kit': - specifier: 2.12.1 - version: 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + specifier: 2.12.2 + version: 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/vite-plugin-svelte': specifier: 3.1.2 version: 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) @@ -792,7 +792,7 @@ importers: version: 4.1.0 formsnap: specifier: 1.0.1 - version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) + version: 1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)) gjp-4-gpt: specifier: 0.0.8 version: 0.0.8 @@ -810,7 +810,7 @@ importers: version: 5.8.3 sveltekit-superforms: specifier: 2.22.1 - version: 2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + version: 2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) tailwind-merge: specifier: 2.5.5 version: 2.5.5 @@ -845,10 +845,10 @@ importers: version: 2.1.1 svelte-persisted-store: specifier: 0.12.0 - version: 0.12.0(svelte@5.14.3) + version: 0.12.0(svelte@5.14.4) svelte-radix: specifier: 2.0.1 - version: 2.0.1(svelte@5.14.3) + version: 2.0.1(svelte@5.14.4) tailwind-merge: specifier: 2.5.5 version: 2.5.5 @@ -861,7 +861,7 @@ importers: devDependencies: '@inlang/paraglide-sveltekit': specifier: 0.15.0 - version: 0.15.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) + version: 0.15.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(babel-plugin-macros@3.1.0) '@internationalized/date': specifier: 3.6.0 version: 3.6.0 @@ -876,13 +876,13 @@ importers: version: link:../utils '@sveltejs/adapter-auto': specifier: 3.3.1 - version: 3.3.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))) + version: 3.3.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))) '@sveltejs/kit': - specifier: 2.12.1 - version: 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + specifier: 2.12.2 + version: 2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) '@sveltejs/vite-plugin-svelte': - specifier: 5.0.2 - version: 5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + specifier: 5.0.3 + version: 5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) '@tailwindcss/aspect-ratio': specifier: 0.4.2 version: 0.4.2(tailwindcss@3.4.17) @@ -912,25 +912,25 @@ importers: version: 10.4.20(postcss@8.4.49) bits-ui: specifier: 1.0.0-next.51 - version: 1.0.0-next.51(svelte@5.14.3) + version: 1.0.0-next.51(svelte@5.14.4) cssnano: specifier: 7.0.6 version: 7.0.6(postcss@8.4.49) embla-carousel-svelte: specifier: 8.5.1 - version: 8.5.1(svelte@5.14.3) + version: 8.5.1(svelte@5.14.4) formsnap: specifier: 2.0.0 - version: 2.0.0(svelte@5.14.3)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.3)(typescript@5.7.2)) + version: 2.0.0(svelte@5.14.4)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.4)(typescript@5.7.2)) lucide-svelte: specifier: 0.468.0 - version: 0.468.0(svelte@5.14.3) + version: 0.468.0(svelte@5.14.4) mode-watcher: specifier: 0.5.0 - version: 0.5.0(svelte@5.14.3) + version: 0.5.0(svelte@5.14.4) paneforge: specifier: 1.0.0-next.1 - version: 1.0.0-next.1(svelte@5.14.3) + version: 1.0.0-next.1(svelte@5.14.4) postcss-import: specifier: 16.1.0 version: 16.1.0(postcss@8.4.49) @@ -938,17 +938,17 @@ importers: specifier: 6.0.1 version: 6.0.1(jiti@1.21.7)(postcss@8.4.49)(yaml@2.6.1) svelte: - specifier: 5.14.3 - version: 5.14.3 + specifier: 5.14.4 + version: 5.14.4 svelte-check: specifier: 4.1.1 - version: 4.1.1(picomatch@4.0.2)(svelte@5.14.3)(typescript@5.7.2) + version: 4.1.1(picomatch@4.0.2)(svelte@5.14.4)(typescript@5.7.2) svelte-sonner: specifier: 0.3.28 - version: 0.3.28(svelte@5.14.3) + version: 0.3.28(svelte@5.14.4) sveltekit-superforms: specifier: 2.22.1 - version: 2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.3)(typescript@5.7.2) + version: 2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.4)(typescript@5.7.2) tailwindcss: specifier: 3.4.17 version: 3.4.17 @@ -957,7 +957,7 @@ importers: version: 5.7.2 vaul-svelte: specifier: 1.0.0-next.2 - version: 1.0.0-next.2(svelte@5.14.3) + version: 1.0.0-next.2(svelte@5.14.4) vite: specifier: 6.0.3 version: 6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1) @@ -991,14 +991,14 @@ packages: '@adobe/css-tools@4.4.1': resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} - '@ai-sdk/azure@1.0.10': - resolution: {integrity: sha512-drbmzYS0iPRU/I3xnzphxNsYvSMjYhoq8gK34zShjeJGpPbewZPsXbPrncX6gdrkD4JR021yCahPc9E6RpXr5Q==} + '@ai-sdk/azure@1.0.12': + resolution: {integrity: sha512-1G2Imh1yoZFm4C/exic0hG/xV2DS39LWei2/DMOuzQ3Eby+eBtBCVRUdlXBbO2F4oef4XcAf56ajnPKfxYSUhA==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 - '@ai-sdk/openai@1.0.8': - resolution: {integrity: sha512-wcTHM9qgRWGYVO3WxPSTN/RwnZ9R5/17xyo61iUCCSCZaAuJyh6fKddO0/oamwDp3BG7g+4wbfAyuTo32H+fHw==} + '@ai-sdk/openai@1.0.10': + resolution: {integrity: sha512-ltZ1B/qSHvNiXngJBVY1GJD41/kvvi9QCQeuiEdf5utJnjRlR0MKNHzb3YRhJaLKFuGFrq1vAnxlSHGANY8R7A==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -1261,8 +1261,8 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - '@changesets/apply-release-plan@7.0.6': - resolution: {integrity: sha512-TKhVLtiwtQOgMAC0fCJfmv93faiViKSDqr8oMEqrnNs99gtSC1sZh/aEMS9a+dseU1ESZRCK+ofLgGY7o0fw/Q==} + '@changesets/apply-release-plan@7.0.7': + resolution: {integrity: sha512-qnPOcmmmnD0MfMg9DjU1/onORFyRpDXkMMl2IJg9mECY6RnxL3wN0TCCc92b2sXt1jt8DgjAUUsZYGUGTdYIXA==} '@changesets/assemble-release-plan@6.0.5': resolution: {integrity: sha512-IgvBWLNKZd6k4t72MBTBK3nkygi0j3t3zdC1zrfusYo0KpdsvnDjrMM9vPnTCLCMlfNs55jRL4gIMybxa64FCQ==} @@ -1273,12 +1273,12 @@ packages: '@changesets/changelog-github@0.5.0': resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} - '@changesets/cli@2.27.10': - resolution: {integrity: sha512-PfeXjvs9OfQJV8QSFFHjwHX3QnUL9elPEQ47SgkiwzLgtKGyuikWjrdM+lO9MXzOE22FO9jEGkcs4b+B6D6X0Q==} + '@changesets/cli@2.27.11': + resolution: {integrity: sha512-1QislpE+nvJgSZZo9+Lj3Lno5pKBgN46dAV8IVxKJy9wX8AOrs9nn5pYVZuDpoxWJJCALmbfOsHkyxujgetQSg==} hasBin: true - '@changesets/config@3.0.4': - resolution: {integrity: sha512-+DiIwtEBpvvv1z30f8bbOsUQGuccnZl9KRKMM/LxUHuDu5oEjmN+bJQ1RIBKNJjfYMQn8RZzoPiX0UgPaLQyXw==} + '@changesets/config@3.0.5': + resolution: {integrity: sha512-QyXLSSd10GquX7hY0Mt4yQFMEeqnO5z/XLpbIr4PAkNNoQNKwDyiSrx4yd749WddusH1v3OSiA0NRAYmH/APpQ==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} @@ -1289,8 +1289,8 @@ packages: '@changesets/get-github-info@0.6.0': resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} - '@changesets/get-release-plan@4.0.5': - resolution: {integrity: sha512-E6wW7JoSMcctdVakut0UB76FrrN3KIeJSXvB+DHMFo99CnC3ZVnNYDCVNClMlqAhYGmLmAj77QfApaI3ca4Fkw==} + '@changesets/get-release-plan@4.0.6': + resolution: {integrity: sha512-FHRwBkY7Eili04Y5YMOZb0ezQzKikTka4wL753vfUA5COSebt7KThqiuCN9BewE4/qFGgF/5t3AuzXx1/UAY4w==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -2574,8 +2574,8 @@ packages: rollup: optional: true - '@rollup/plugin-node-resolve@15.3.1': - resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} + '@rollup/plugin-node-resolve@16.0.0': + resolution: {integrity: sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 @@ -2720,11 +2720,11 @@ packages: '@sinclair/typebox@0.31.28': resolution: {integrity: sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ==} - '@sinclair/typebox@0.34.11': - resolution: {integrity: sha512-zE9pWGVSG82z+sFO+oUmqmqRVm8Wg5sVhmljYi1fDhLOSphBBy939QmC/qXcKFWqTiRJ6keyG4y75bIoTPRBAw==} + '@sinclair/typebox@0.34.12': + resolution: {integrity: sha512-tNc3Z7OUqcneO14tYyUH2QMdvC2c5sQOY0+SDw70aZix7Qi4GkaOQc22LfaVFPn64enKU5ggV2ryLWykeMGEog==} - '@skeletonlabs/skeleton@2.10.3': - resolution: {integrity: sha512-O1RecF68zEVvZl3GgRS4emqWMUIQLHvTOFoqGOw/2OXCPE06IxUQrHQf2hnxCPxtGZNXY2YX8UNV38l+eH8GNQ==} + '@skeletonlabs/skeleton@2.10.4': + resolution: {integrity: sha512-jlelxAK9vycpM9E9Y31N/lX7hLDMOEQqKoo75MmFQJbc0gxpYRv5hGO0MCxaoLco+TpH/xi/yCSNlflts24e6A==} peerDependencies: svelte: ^3.56.0 || ^4.0.0 || ^5.0.0 @@ -2736,8 +2736,8 @@ packages: '@svelte-plugins/datepicker@1.0.9': resolution: {integrity: sha512-HagVB8jLUwNFbwfAcJBNURN1QMQ+qAQQjLJPH97GMqI6auo7jIxOMiSIEWpx7SxTDewHJAlH1izQy3cwBVV8oQ==} - '@svelte-put/shortcut@3.1.2': - resolution: {integrity: sha512-9P0Rh9LFya1ee54m4njHCdPiQ4hv64tRsQM7MoNybenjbUUaMWP2txdXPykFqkrXQ1Oa6bmJVXlkz0bRng8ylg==} + '@svelte-put/shortcut@3.1.1': + resolution: {integrity: sha512-2L5EYTZXiaKvbEelVkg5znxqvfZGZai3m97+cAiUBhLZwXnGtviTDpHxOoZBsqz41szlfRMcamW/8o0+fbW3ZQ==} peerDependencies: svelte: ^3.55.0 || ^4.0.0 || ^5.0.0 @@ -2746,8 +2746,8 @@ packages: peerDependencies: '@sveltejs/kit': ^2.0.0 - '@sveltejs/adapter-node@5.2.10': - resolution: {integrity: sha512-U0SCdULhHbSYCDgvvrHRtKUykl9GZkM/b3NyeIUtaxM39upQFd5059pWmXgTNaNTU1HMdj4xx0xvNAvQcIzmXQ==} + '@sveltejs/adapter-node@5.2.11': + resolution: {integrity: sha512-lR7/dfUaKFf3aI408KRDy/BVDYoqUws7zNOJz2Hl4JoshlTnMgdha3brXBRFXB+cWtYvJjjPhvmq3xqpbioi4w==} peerDependencies: '@sveltejs/kit': ^2.4.0 @@ -2768,8 +2768,8 @@ packages: svelte: ^5.0.0 vite: '>= 5.0.0' - '@sveltejs/kit@2.12.1': - resolution: {integrity: sha512-M3rPijGImeOkI0DBJSwjqz+YFX2DyOf6NzWgHVk3mqpT06dlYCpcv5xh1q4rYEqB58yQlk4QA1Y35PUqnUiFKw==} + '@sveltejs/kit@2.12.2': + resolution: {integrity: sha512-7/nHyKxo3wzBMownGgaVvEfM2TGLwjUKgmHhLw/Qbyb5xmJ+40vYa0V2XJqJ2fRnTCfCcJ0Ya51ZVNW3vtn4rA==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -2800,8 +2800,8 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 - '@sveltejs/vite-plugin-svelte@5.0.2': - resolution: {integrity: sha512-GElAxQMlznx1pRdodtkmiyBZcjlaJntJ8APa2hBhnbUAJqKAFGdmwjRPJhh+2DMxwARRLBzQIs/iZ5EbR4X/og==} + '@sveltejs/vite-plugin-svelte@5.0.3': + resolution: {integrity: sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22} peerDependencies: svelte: ^5.0.0 @@ -3280,8 +3280,8 @@ packages: react-dom: optional: true - '@vercel/nft@0.27.9': - resolution: {integrity: sha512-pTs7OchHQmSYJPR0puVQCWw/NqzuvAtnAhBurz21lq4Y4KqWoMpYKqmikkETG5r1bHNCM/hQMZ5JiRr9mhOkyg==} + '@vercel/nft@0.27.10': + resolution: {integrity: sha512-zbaF9Wp/NsZtKLE4uVmL3FyfFwlpDyuymQM1kPbeT0mVOHKDQQNjnnfslB3REg3oZprmNFJuh3pkHBk2qAaizg==} engines: {node: '>=16'} hasBin: true @@ -3436,8 +3436,8 @@ packages: resolution: {integrity: sha512-BgYZfL2ADCXKOw2wJtkM3slhHotawWkgIRRxq4wEybnZQPjvAp71SPX35xepMykTw8gXlzWcWPTY31hlbnRsDA==} engines: {node: 18 >=18.20 || 20 || >=22} - '@xyflow/svelte@0.1.25': - resolution: {integrity: sha512-oavfqFGsXrSBSWDAPFEtMdM38Z3SU8pcC/rFwul9p8RbWhIc7B95JdcCc3NRZ2UbeOhNhltYRiWju9fOnFWXWA==} + '@xyflow/svelte@0.1.26': + resolution: {integrity: sha512-eNcS7uqJIYfkPuVLk9Ok3n6QkXxi2pwoDSoRv8JwceG/6wfCSfEcNhkPi4KjinFfdFZv28XxX8rlEBlG5N2kfw==} peerDependencies: svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -3649,10 +3649,10 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - bits-ui@0.21.16: - resolution: {integrity: sha512-XFZ7/bK7j/K+5iktxX/ZpmoFHjYjpPzP5EOO/4bWiaFg5TG1iMcfjDhlBTQnJxD6BoVoHuqeZPHZvaTgF4Iv3Q==} + bits-ui@0.22.0: + resolution: {integrity: sha512-r7Fw1HNgA4YxZBRcozl7oP0bheQ8EHh+kfMBZJgyFISix8t4p/nqDcHLmBgIiJ3T5XjYnJRorYDjIWaCfhb5fw==} peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.118 + svelte: ^4.0.0 || ^5.0.0 bits-ui@1.0.0-next.51: resolution: {integrity: sha512-6YlLpb5NtKawm/mtDGXQHtD0gp7Yvd8STvWVLfVpSQaqEV7Pb+TeMhp5Lv83NbU9H3gRFjfNToB7hGxBhM2tng==} @@ -3732,8 +3732,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001689: - resolution: {integrity: sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g==} + caniuse-lite@1.0.30001690: + resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -3758,6 +3758,10 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chalk@5.4.0: + resolution: {integrity: sha512-ZkD35Mx92acjB2yNJgziGqT9oKHEOxjTBTDRpOsRWtdecL/0jM3z5kM/CTzHWvHIen1GvkM85p6TuFfDGfc8/Q==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -3785,8 +3789,8 @@ packages: resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} engines: {node: '>= 14.16.0'} - chokidar@4.0.2: - resolution: {integrity: sha512-/b57FK+bblSU+dfewfFe0rT1YjVDfOmeLQwCAuC+vwvgLkXboATqqmy+Ipux6JrF6L5joe5CBnFOw+gLWH6yKg==} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} chownr@3.0.0: @@ -4584,8 +4588,8 @@ packages: engines: {node: '>=4'} hasBin: true - esrap@1.3.1: - resolution: {integrity: sha512-KpAH3+QsDmtOP1KOW04CbD1PgzWsIHjB8tOCk3PCb8xzNGn8XkjI8zl80i09fmXdzQyaS8tcsKCCDzHF7AcowA==} + esrap@1.3.2: + resolution: {integrity: sha512-C4PXusxYhFT98GjLSmb20k9PREuUdporer50dhzGuJu9IJXktbMddVCMLAERl5dAHyAi73GWWCE4FVHGP1794g==} esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} @@ -5444,8 +5448,8 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - ky@1.7.3: - resolution: {integrity: sha512-Sz49ZWR/BjNOq+2UK1k9ONZUVq8eyuCj30Zgc8VrRNtFlTBZduzuvehUd5kjQF6/Fms3Ir3EYqzJryw9tRvsSw==} + ky@1.7.4: + resolution: {integrity: sha512-zYEr/gh7uLW2l4su11bmQ2M9xLgQLjyvx58UyNM/6nuqyWFHPX5ktMjvpev3F8QWdjSsHUpnWew4PBCswBNuMQ==} engines: {node: '>=18'} lcid@3.1.1: @@ -6765,8 +6769,8 @@ packages: peerDependencies: svelte: ^5.0.0-next.1 - runed@0.19.0: - resolution: {integrity: sha512-VxUk/Lbm5WPR/b+NDQ+Itp/anG6bUWXH+JBUNA1M/YG/lsKZ1Gn+WwvBwyE/8aTpAV7ij12aEVxh78utqi/Q4A==} + runed@0.20.0: + resolution: {integrity: sha512-YqPxaUdWL5nUXuSF+/v8a+NkVN8TGyEGbQwTA25fLY35MR/2bvZ1c6sCbudoo1kT4CAJPh4kUkcgGVxW127WKw==} peerDependencies: svelte: ^5.7.0 @@ -7103,8 +7107,8 @@ packages: resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} - svelte@5.14.3: - resolution: {integrity: sha512-k9l8cuDuzvx/4IjWg2cVHLvkoPQUJUpOz6YtJbfdkqaBMxixxR3PSmkJKC0i+Oq59iPUj5UoHkskp3/OQFiN2g==} + svelte@5.14.4: + resolution: {integrity: sha512-2iR/UHHA2Dsldo4JdXDcdqT+spueuh+uNYw1FoTKBbpnFEECVISeqSo0uubPS4AfBE0xI6u7DGHxcdq3DTDmoQ==} engines: {node: '>=18'} svelte@5.5.3: @@ -7983,14 +7987,14 @@ snapshots: '@adobe/css-tools@4.4.1': {} - '@ai-sdk/azure@1.0.10(zod@3.24.1)': + '@ai-sdk/azure@1.0.12(zod@3.24.1)': dependencies: - '@ai-sdk/openai': 1.0.8(zod@3.24.1) + '@ai-sdk/openai': 1.0.10(zod@3.24.1) '@ai-sdk/provider': 1.0.2 '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) zod: 3.24.1 - '@ai-sdk/openai@1.0.8(zod@3.24.1)': + '@ai-sdk/openai@1.0.10(zod@3.24.1)': dependencies: '@ai-sdk/provider': 1.0.2 '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) @@ -8033,13 +8037,13 @@ snapshots: transitivePeerDependencies: - zod - '@ai-sdk/svelte@1.0.6(svelte@5.14.3)(zod@3.24.1)': + '@ai-sdk/svelte@1.0.6(svelte@5.14.4)(zod@3.24.1)': dependencies: '@ai-sdk/provider-utils': 2.0.4(zod@3.24.1) '@ai-sdk/ui-utils': 1.0.5(zod@3.24.1) - sswr: 2.1.0(svelte@5.14.3) + sswr: 2.1.0(svelte@5.14.4) optionalDependencies: - svelte: 5.14.3 + svelte: 5.14.4 transitivePeerDependencies: - zod @@ -8083,7 +8087,7 @@ snapshots: '@astrojs/check@0.9.4(typescript@5.7.2)': dependencies: '@astrojs/language-server': 2.15.4(typescript@5.7.2) - chokidar: 4.0.2 + chokidar: 4.0.3 kleur: 4.1.5 typescript: 5.7.2 yargs: 17.7.2 @@ -8220,12 +8224,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/svelte@7.0.1(@types/node@22.10.2)(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(jiti@1.21.7)(svelte@5.14.3)(typescript@5.7.2)(yaml@2.6.1)': + '@astrojs/svelte@7.0.1(@types/node@22.10.2)(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(jiti@1.21.7)(svelte@5.14.4)(typescript@5.7.2)(yaml@2.6.1)': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) astro: 5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) - svelte: 5.14.3 - svelte2tsx: 0.7.31(svelte@5.14.3)(typescript@5.7.2) + svelte: 5.14.4 + svelte2tsx: 0.7.31(svelte@5.14.4)(typescript@5.7.2) typescript: 5.7.2 vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1) transitivePeerDependencies: @@ -8264,12 +8268,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@8.0.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.14.3)': + '@astrojs/vercel@8.0.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(astro@5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1))(react@18.3.1)(rollup@4.28.1)(svelte@5.14.4)': dependencies: '@astrojs/internal-helpers': 0.4.2 - '@vercel/analytics': 1.4.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(react@18.3.1)(svelte@5.14.3) + '@vercel/analytics': 1.4.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(react@18.3.1)(svelte@5.14.4) '@vercel/edge': 1.1.4 - '@vercel/nft': 0.27.9(rollup@4.28.1) + '@vercel/nft': 0.27.10(rollup@4.28.1) astro: 5.0.9(@types/node@22.10.2)(jiti@1.21.7)(rollup@4.28.1)(typescript@5.7.2)(yaml@2.6.1) esbuild: 0.24.0 fast-glob: 3.3.2 @@ -8384,9 +8388,9 @@ snapshots: '@builder.io/partytown@0.10.2': {} - '@changesets/apply-release-plan@7.0.6': + '@changesets/apply-release-plan@7.0.7': dependencies: - '@changesets/config': 3.0.4 + '@changesets/config': 3.0.5 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.2 '@changesets/should-skip-package': 0.1.1 @@ -8421,15 +8425,15 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/cli@2.27.10': + '@changesets/cli@2.27.11': dependencies: - '@changesets/apply-release-plan': 7.0.6 + '@changesets/apply-release-plan': 7.0.7 '@changesets/assemble-release-plan': 6.0.5 '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.4 + '@changesets/config': 3.0.5 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.2 - '@changesets/get-release-plan': 4.0.5 + '@changesets/get-release-plan': 4.0.6 '@changesets/git': 3.0.2 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.1 @@ -8452,7 +8456,7 @@ snapshots: spawndamnit: 3.0.1 term-size: 2.2.1 - '@changesets/config@3.0.4': + '@changesets/config@3.0.5': dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.2 @@ -8480,10 +8484,10 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/get-release-plan@4.0.5': + '@changesets/get-release-plan@4.0.6': dependencies: '@changesets/assemble-release-plan': 6.0.5 - '@changesets/config': 3.0.4 + '@changesets/config': 3.0.5 '@changesets/pre': 2.0.1 '@changesets/read': 0.6.2 '@changesets/types': 6.0.0 @@ -9261,49 +9265,49 @@ snapshots: - babel-plugin-macros - debug - '@inlang/paraglide-sveltekit@0.14.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0)': + '@inlang/paraglide-sveltekit@0.14.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0)': dependencies: '@inlang/paraglide-js': 1.11.3(babel-plugin-macros@3.1.0) '@inlang/paraglide-vite': 1.3.0(babel-plugin-macros@3.1.0) '@lix-js/client': 2.2.1 - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) commander: 12.1.0 dedent: 1.5.1(babel-plugin-macros@3.1.0) devalue: 4.3.3 magic-string: 0.30.17 - svelte: 5.14.3 + svelte: 5.14.4 transitivePeerDependencies: - babel-plugin-macros - debug - supports-color - '@inlang/paraglide-sveltekit@0.15.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0)': + '@inlang/paraglide-sveltekit@0.15.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(babel-plugin-macros@3.1.0)': dependencies: '@inlang/paraglide-js': 1.11.3(babel-plugin-macros@3.1.0) '@inlang/paraglide-vite': 1.3.0(babel-plugin-macros@3.1.0) '@lix-js/client': 2.2.1 - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) commander: 12.1.0 dedent: 1.5.1(babel-plugin-macros@3.1.0) devalue: 4.3.3 magic-string: 0.30.17 - svelte: 5.14.3 + svelte: 5.14.4 transitivePeerDependencies: - babel-plugin-macros - debug - supports-color - '@inlang/paraglide-sveltekit@0.15.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(babel-plugin-macros@3.1.0)': + '@inlang/paraglide-sveltekit@0.15.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(babel-plugin-macros@3.1.0)': dependencies: '@inlang/paraglide-js': 1.11.3(babel-plugin-macros@3.1.0) '@inlang/paraglide-vite': 1.3.0(babel-plugin-macros@3.1.0) '@lix-js/client': 2.2.1 - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) commander: 12.1.0 dedent: 1.5.1(babel-plugin-macros@3.1.0) devalue: 4.3.3 magic-string: 0.30.17 - svelte: 5.14.3 + svelte: 5.14.4 transitivePeerDependencies: - babel-plugin-macros - debug @@ -10007,7 +10011,7 @@ snapshots: optionalDependencies: rollup: 4.28.1 - '@rollup/plugin-node-resolve@15.3.1(rollup@4.28.1)': + '@rollup/plugin-node-resolve@16.0.0(rollup@4.28.1)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.28.1) '@types/resolve': 1.20.2 @@ -10128,10 +10132,10 @@ snapshots: '@sinclair/typebox@0.31.28': {} - '@sinclair/typebox@0.34.11': + '@sinclair/typebox@0.34.12': optional: true - '@skeletonlabs/skeleton@2.10.3(svelte@4.2.19)': + '@skeletonlabs/skeleton@2.10.4(svelte@4.2.19)': dependencies: esm-env: 1.0.0 svelte: 4.2.19 @@ -10142,50 +10146,50 @@ snapshots: '@svelte-plugins/datepicker@1.0.9': {} - '@svelte-put/shortcut@3.1.2(svelte@4.2.19)': + '@svelte-put/shortcut@3.1.1(svelte@4.2.19)': dependencies: svelte: 4.2.19 - '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))': + '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))': dependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) import-meta-resolve: 4.1.0 - '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))': + '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))': dependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) import-meta-resolve: 4.1.0 - '@sveltejs/adapter-node@5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))': + '@sveltejs/adapter-node@5.2.11(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))': dependencies: '@rollup/plugin-commonjs': 28.0.2(rollup@4.28.1) '@rollup/plugin-json': 6.1.0(rollup@4.28.1) - '@rollup/plugin-node-resolve': 15.3.1(rollup@4.28.1) - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@rollup/plugin-node-resolve': 16.0.0(rollup@4.28.1) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) rollup: 4.28.1 - '@sveltejs/adapter-node@5.2.10(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))': + '@sveltejs/adapter-node@5.2.11(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))': dependencies: '@rollup/plugin-commonjs': 28.0.2(rollup@4.28.1) '@rollup/plugin-json': 6.1.0(rollup@4.28.1) - '@rollup/plugin-node-resolve': 15.3.1(rollup@4.28.1) - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + '@rollup/plugin-node-resolve': 16.0.0(rollup@4.28.1) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) rollup: 4.28.1 - '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(rollup@4.28.1)': + '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(rollup@4.28.1)': dependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) - '@vercel/nft': 0.27.9(rollup@4.28.1) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@vercel/nft': 0.27.10(rollup@4.28.1) esbuild: 0.24.0 transitivePeerDependencies: - encoding - rollup - supports-color - '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(rollup@4.28.1)': + '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(rollup@4.28.1)': dependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) - '@vercel/nft': 0.27.9(rollup@4.28.1) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + '@vercel/nft': 0.27.10(rollup@4.28.1) esbuild: 0.24.0 transitivePeerDependencies: - encoding @@ -10202,19 +10206,19 @@ snapshots: transitivePeerDependencies: - rollup - '@sveltejs/enhanced-img@0.4.4(rollup@4.28.1)(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))': + '@sveltejs/enhanced-img@0.4.4(rollup@4.28.1)(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))': dependencies: magic-string: 0.30.17 sharp: 0.33.5 - svelte: 5.14.3 - svelte-parse-markup: 0.1.5(svelte@5.14.3) + svelte: 5.14.4 + svelte-parse-markup: 0.1.5(svelte@5.14.4) vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1) vite-imagetools: 7.0.5(rollup@4.28.1) zimmerframe: 1.1.2 transitivePeerDependencies: - rollup - '@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))': + '@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))': dependencies: '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@types/cookie': 0.6.0 @@ -10232,7 +10236,7 @@ snapshots: tiny-glob: 0.2.9 vite: 5.4.11(@types/node@22.10.2) - '@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@5.14.3)(vite@5.4.11(@types/node@22.10.2))': + '@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@5.14.4)(vite@5.4.11(@types/node@22.10.2))': dependencies: '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@types/cookie': 0.6.0 @@ -10246,13 +10250,13 @@ snapshots: sade: 1.8.1 set-cookie-parser: 2.7.1 sirv: 3.0.0 - svelte: 5.14.3 + svelte: 5.14.4 tiny-glob: 0.2.9 vite: 5.4.11(@types/node@22.10.2) - '@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))': + '@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.1.1 @@ -10264,7 +10268,7 @@ snapshots: sade: 1.8.1 set-cookie-parser: 2.7.1 sirv: 3.0.0 - svelte: 5.14.3 + svelte: 5.14.4 tiny-glob: 0.2.9 vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1) @@ -10277,11 +10281,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) debug: 4.4.0 - svelte: 5.14.3 + svelte: 5.14.4 vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1) transitivePeerDependencies: - supports-color @@ -10300,14 +10304,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 - svelte: 5.14.3 + svelte: 5.14.4 vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1) vitefu: 1.0.4(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) transitivePeerDependencies: @@ -10814,28 +10818,28 @@ snapshots: transitivePeerDependencies: - supports-color - '@vercel/analytics@1.4.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19)': + '@vercel/analytics@1.4.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19)': optionalDependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) react: 18.3.1 svelte: 4.2.19 - '@vercel/analytics@1.4.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(react@18.3.1)(svelte@5.14.3)': + '@vercel/analytics@1.4.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(react@18.3.1)(svelte@5.14.4)': optionalDependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) react: 18.3.1 - svelte: 5.14.3 + svelte: 5.14.4 '@vercel/edge@1.1.4': {} - '@vercel/flags@2.6.3(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)': + '@vercel/flags@2.6.3(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)': dependencies: jose: 5.2.1 optionalDependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) react: 18.3.1 - '@vercel/nft@0.27.9(rollup@4.28.1)': + '@vercel/nft@0.27.10(rollup@4.28.1)': dependencies: '@mapbox/node-pre-gyp': 2.0.0-rc.0 '@rollup/pluginutils': 5.1.4(rollup@4.28.1) @@ -10854,9 +10858,9 @@ snapshots: - rollup - supports-color - '@vercel/speed-insights@1.1.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19)': + '@vercel/speed-insights@1.1.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(react@18.3.1)(svelte@4.2.19)': optionalDependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) react: 18.3.1 svelte: 4.2.19 @@ -11053,9 +11057,9 @@ snapshots: '@wolfy1339/lru-cache@11.0.2-patch.1': {} - '@xyflow/svelte@0.1.25(svelte@4.2.19)': + '@xyflow/svelte@0.1.26(svelte@4.2.19)': dependencies: - '@svelte-put/shortcut': 3.1.2(svelte@4.2.19) + '@svelte-put/shortcut': 3.1.1(svelte@4.2.19) '@xyflow/system': 0.0.47 classcat: 5.0.5 svelte: 4.2.19 @@ -11300,7 +11304,7 @@ snapshots: autoprefixer@10.4.20(postcss@8.4.49): dependencies: browserslist: 4.24.3 - caniuse-lite: 1.0.30001689 + caniuse-lite: 1.0.30001690 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -11349,32 +11353,32 @@ snapshots: dependencies: file-uri-to-path: 1.0.0 - bits-ui@0.21.16(svelte@4.2.19): + bits-ui@0.22.0(svelte@4.2.19): dependencies: '@internationalized/date': 3.6.0 '@melt-ui/svelte': 0.76.2(svelte@4.2.19) nanoid: 5.0.9 svelte: 4.2.19 - bits-ui@1.0.0-next.51(svelte@5.14.3): + bits-ui@1.0.0-next.51(svelte@5.14.4): dependencies: '@floating-ui/core': 1.6.8 '@floating-ui/dom': 1.6.12 '@internationalized/date': 3.6.0 esm-env: 1.2.1 - runed: 0.15.4(svelte@5.14.3) - svelte: 5.14.3 - svelte-toolbelt: 0.4.6(svelte@5.14.3) + runed: 0.15.4(svelte@5.14.4) + svelte: 5.14.4 + svelte-toolbelt: 0.4.6(svelte@5.14.4) - bits-ui@1.0.0-next.71(svelte@5.14.3): + bits-ui@1.0.0-next.71(svelte@5.14.4): dependencies: '@floating-ui/core': 1.6.8 '@floating-ui/dom': 1.6.12 '@internationalized/date': 3.6.0 esm-env: 1.2.1 - runed: 0.15.4(svelte@5.14.3) - svelte: 5.14.3 - svelte-toolbelt: 0.4.6(svelte@5.14.3) + runed: 0.15.4(svelte@5.14.4) + svelte: 5.14.4 + svelte-toolbelt: 0.4.6(svelte@5.14.4) boolbase@1.0.0: {} @@ -11384,7 +11388,7 @@ snapshots: dependencies: ansi-align: 3.0.1 camelcase: 8.0.0 - chalk: 5.3.0 + chalk: 5.4.0 cli-boxes: 3.0.0 string-width: 7.2.0 type-fest: 4.30.2 @@ -11406,7 +11410,7 @@ snapshots: browserslist@4.24.3: dependencies: - caniuse-lite: 1.0.30001689 + caniuse-lite: 1.0.30001690 electron-to-chromium: 1.5.74 node-releases: 2.0.19 update-browserslist-db: 1.1.1(browserslist@4.24.3) @@ -11442,11 +11446,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.24.3 - caniuse-lite: 1.0.30001689 + caniuse-lite: 1.0.30001690 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001689: {} + caniuse-lite@1.0.30001690: {} ccount@2.0.1: {} @@ -11460,7 +11464,7 @@ snapshots: chalk-template@1.1.0: dependencies: - chalk: 5.3.0 + chalk: 5.4.0 chalk@3.0.0: dependencies: @@ -11474,6 +11478,8 @@ snapshots: chalk@5.3.0: {} + chalk@5.4.0: {} + character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -11502,7 +11508,7 @@ snapshots: dependencies: readdirp: 4.0.2 - chokidar@4.0.2: + chokidar@4.0.3: dependencies: readdirp: 4.0.2 @@ -11753,7 +11759,7 @@ snapshots: '@cspell/cspell-types': 8.17.1 '@cspell/dynamic-import': 8.17.1 '@cspell/url': 8.17.1 - chalk: 5.3.0 + chalk: 5.4.0 chalk-template: 1.1.0 commander: 12.1.0 cspell-dictionary: 8.17.1 @@ -12186,11 +12192,11 @@ snapshots: dependencies: embla-carousel: 8.5.1 - embla-carousel-svelte@8.5.1(svelte@5.14.3): + embla-carousel-svelte@8.5.1(svelte@5.14.4): dependencies: embla-carousel: 8.5.1 embla-carousel-reactive-utils: 8.5.1(embla-carousel@8.5.1) - svelte: 5.14.3 + svelte: 5.14.4 embla-carousel@8.5.1: {} @@ -12373,10 +12379,9 @@ snapshots: esprima@4.0.1: {} - esrap@1.3.1: + esrap@1.3.2: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - '@typescript-eslint/types': 8.18.1 esrecurse@4.3.0: dependencies: @@ -12603,17 +12608,17 @@ snapshots: dependencies: fetch-blob: 3.2.0 - formsnap@1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)): + formsnap@1.0.1(svelte@4.2.19)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2)): dependencies: nanoid: 5.0.9 svelte: 4.2.19 - sveltekit-superforms: 2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) + sveltekit-superforms: 2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2) - formsnap@2.0.0(svelte@5.14.3)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.3)(typescript@5.7.2)): + formsnap@2.0.0(svelte@5.14.4)(sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.4)(typescript@5.7.2)): dependencies: - svelte: 5.14.3 - svelte-toolbelt: 0.5.0(svelte@5.14.3) - sveltekit-superforms: 2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.3)(typescript@5.7.2) + svelte: 5.14.4 + svelte-toolbelt: 0.5.0(svelte@5.14.4) + sveltekit-superforms: 2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.4)(typescript@5.7.2) fraction.js@4.3.7: {} @@ -12996,14 +13001,14 @@ snapshots: houdini-svelte@2.0.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/node@22.10.2): dependencies: '@kitql/helpers': 0.8.10 - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@5.14.3)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@5.14.4)(vite@5.4.11(@types/node@22.10.2)) ast-types: 0.16.1 estree-walker: 3.0.3 graphql: 15.9.0 houdini: 1.3.1 recast: 0.23.9 rollup: 3.29.5 - svelte: 5.14.3 + svelte: 5.14.4 vite: 5.4.11(@types/node@22.10.2) transitivePeerDependencies: - '@sveltejs/vite-plugin-svelte' @@ -13357,7 +13362,7 @@ snapshots: jsondiffpatch@0.6.0: dependencies: '@types/diff-match-patch': 1.0.36 - chalk: 5.3.0 + chalk: 5.4.0 diff-match-patch: 1.0.5 jsonfile@4.0.0: @@ -13408,7 +13413,7 @@ snapshots: kleur@4.1.5: {} - ky@1.7.3: {} + ky@1.7.4: {} lcid@3.1.1: dependencies: @@ -13530,9 +13535,9 @@ snapshots: dependencies: svelte: 4.2.19 - lucide-svelte@0.468.0(svelte@5.14.3): + lucide-svelte@0.468.0(svelte@5.14.4): dependencies: - svelte: 5.14.3 + svelte: 5.14.4 lz-string@1.5.0: {} @@ -14148,9 +14153,9 @@ snapshots: mkdirp@3.0.1: {} - mode-watcher@0.5.0(svelte@5.14.3): + mode-watcher@0.5.0(svelte@5.14.4): dependencies: - svelte: 5.14.3 + svelte: 5.14.4 mri@1.2.0: {} @@ -14349,7 +14354,7 @@ snapshots: package-json@10.0.1: dependencies: - ky: 1.7.3 + ky: 1.7.4 registry-auth-token: 5.0.3 registry-url: 6.0.1 semver: 7.6.3 @@ -14371,10 +14376,10 @@ snapshots: nanoid: 5.0.9 svelte: 4.2.19 - paneforge@1.0.0-next.1(svelte@5.14.3): + paneforge@1.0.0-next.1(svelte@5.14.4): dependencies: - svelte: 5.14.3 - svelte-toolbelt: 0.4.6(svelte@5.14.3) + svelte: 5.14.4 + svelte-toolbelt: 0.4.6(svelte@5.14.4) parent-module@1.0.1: dependencies: @@ -15065,15 +15070,15 @@ snapshots: dependencies: queue-microtask: 1.2.3 - runed@0.15.4(svelte@5.14.3): + runed@0.15.4(svelte@5.14.4): dependencies: esm-env: 1.2.1 - svelte: 5.14.3 + svelte: 5.14.4 - runed@0.19.0(svelte@5.14.3): + runed@0.20.0(svelte@5.14.4): dependencies: esm-env: 1.2.1 - svelte: 5.14.3 + svelte: 5.14.4 rusha@0.8.14: {} @@ -15247,9 +15252,9 @@ snapshots: svelte: 4.2.19 swrev: 4.0.0 - sswr@2.1.0(svelte@5.14.3): + sswr@2.1.0(svelte@5.14.4): dependencies: - svelte: 5.14.3 + svelte: 5.14.4 swrev: 4.0.0 stackback@0.0.2: {} @@ -15361,7 +15366,7 @@ snapshots: svelte-check@4.1.1(picomatch@4.0.2)(svelte@4.2.19)(typescript@5.7.2): dependencies: '@jridgewell/trace-mapping': 0.3.25 - chokidar: 4.0.2 + chokidar: 4.0.3 fdir: 6.4.2(picomatch@4.0.2) picocolors: 1.1.1 sade: 1.8.1 @@ -15370,14 +15375,14 @@ snapshots: transitivePeerDependencies: - picomatch - svelte-check@4.1.1(picomatch@4.0.2)(svelte@5.14.3)(typescript@5.7.2): + svelte-check@4.1.1(picomatch@4.0.2)(svelte@5.14.4)(typescript@5.7.2): dependencies: '@jridgewell/trace-mapping': 0.3.25 - chokidar: 4.0.2 + chokidar: 4.0.3 fdir: 6.4.2(picomatch@4.0.2) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.14.3 + svelte: 5.14.4 typescript: 5.7.2 transitivePeerDependencies: - picomatch @@ -15402,47 +15407,47 @@ snapshots: dependencies: svelte: 4.2.19 - svelte-parse-markup@0.1.5(svelte@5.14.3): + svelte-parse-markup@0.1.5(svelte@5.14.4): dependencies: - svelte: 5.14.3 + svelte: 5.14.4 svelte-persisted-store@0.12.0(svelte@4.2.19): dependencies: svelte: 4.2.19 - svelte-persisted-store@0.12.0(svelte@5.14.3): + svelte-persisted-store@0.12.0(svelte@5.14.4): dependencies: - svelte: 5.14.3 + svelte: 5.14.4 - svelte-radix@2.0.1(svelte@5.14.3): + svelte-radix@2.0.1(svelte@5.14.4): dependencies: - svelte: 5.14.3 + svelte: 5.14.4 svelte-select@5.8.3: dependencies: svelte-floating-ui: 1.5.8 - svelte-sonner@0.3.28(svelte@5.14.3): + svelte-sonner@0.3.28(svelte@5.14.4): dependencies: - svelte: 5.14.3 + svelte: 5.14.4 - svelte-toolbelt@0.4.6(svelte@5.14.3): + svelte-toolbelt@0.4.6(svelte@5.14.4): dependencies: clsx: 2.1.1 style-to-object: 1.0.8 - svelte: 5.14.3 + svelte: 5.14.4 - svelte-toolbelt@0.5.0(svelte@5.14.3): + svelte-toolbelt@0.5.0(svelte@5.14.4): dependencies: clsx: 2.1.1 style-to-object: 1.0.8 - svelte: 5.14.3 + svelte: 5.14.4 - svelte2tsx@0.7.31(svelte@5.14.3)(typescript@5.7.2): + svelte2tsx@0.7.31(svelte@5.14.4)(typescript@5.7.2): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 5.14.3 + svelte: 5.14.4 typescript: 5.7.2 svelte@4.2.19: @@ -15462,7 +15467,7 @@ snapshots: magic-string: 0.30.17 periscopic: 3.1.0 - svelte@5.14.3: + svelte@5.14.4: dependencies: '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.5.0 @@ -15472,7 +15477,7 @@ snapshots: aria-query: 5.3.2 axobject-query: 4.1.0 esm-env: 1.2.1 - esrap: 1.3.1 + esrap: 1.3.2 is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.17 @@ -15488,34 +15493,34 @@ snapshots: aria-query: 5.3.2 axobject-query: 4.1.0 esm-env: 1.2.1 - esrap: 1.3.1 + esrap: 1.3.2 is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.17 zimmerframe: 1.1.2 - sveltekit-flash-message@2.4.4(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19): + sveltekit-flash-message@2.4.4(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19): dependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) svelte: 4.2.19 - sveltekit-rate-limiter@0.6.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))): + sveltekit-rate-limiter@0.6.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2))): dependencies: '@isaacs/ttlcache': 1.4.1 - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) - sveltekit-search-params@3.0.0(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)): + sveltekit-search-params@3.0.0(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)): dependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) svelte: 4.2.19 transitivePeerDependencies: - supports-color - vite - sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2): + sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(@types/json-schema@7.0.15)(svelte@4.2.19)(typescript@5.7.2): dependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) devalue: 5.1.1 memoize-weak: 1.0.2 svelte: 4.2.19 @@ -15523,7 +15528,7 @@ snapshots: optionalDependencies: '@exodus/schemasafe': 1.3.0 '@gcornut/valibot-json-schema': 0.31.0 - '@sinclair/typebox': 0.34.11 + '@sinclair/typebox': 0.34.12 '@typeschema/class-validator': 0.3.0(@types/json-schema@7.0.15)(class-validator@0.14.1) '@vinejs/vine': 2.1.0 arktype: 2.0.0-rc.26 @@ -15540,17 +15545,17 @@ snapshots: - '@types/json-schema' - typescript - sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.3)(typescript@5.7.2): + sveltekit-superforms@2.22.1(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(@types/json-schema@7.0.15)(svelte@5.14.4)(typescript@5.7.2): dependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@5.0.2(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.3)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)))(svelte@5.14.4)(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)) devalue: 5.1.1 memoize-weak: 1.0.2 - svelte: 5.14.3 + svelte: 5.14.4 ts-deepmerge: 7.0.2 optionalDependencies: '@exodus/schemasafe': 1.3.0 '@gcornut/valibot-json-schema': 0.31.0 - '@sinclair/typebox': 0.34.11 + '@sinclair/typebox': 0.34.12 '@typeschema/class-validator': 0.3.0(@types/json-schema@7.0.15)(class-validator@0.14.1) '@vinejs/vine': 2.1.0 arktype: 2.0.0-rc.26 @@ -15567,9 +15572,9 @@ snapshots: - '@types/json-schema' - typescript - sveltekit-view-transition@0.5.3(@sveltejs/kit@2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19): + sveltekit-view-transition@0.5.3(@sveltejs/kit@2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19): dependencies: - '@sveltejs/kit': 2.12.1(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) + '@sveltejs/kit': 2.12.2(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)))(svelte@4.2.19)(vite@5.4.11(@types/node@22.10.2)) svelte: 4.2.19 svgo@3.3.2: @@ -15775,7 +15780,7 @@ snapshots: dependencies: bundle-require: 5.0.0(esbuild@0.24.0) cac: 6.7.14 - chokidar: 4.0.2 + chokidar: 4.0.3 consola: 3.2.3 debug: 4.4.0 esbuild: 0.24.0 @@ -15957,17 +15962,17 @@ snapshots: value-or-promise@1.0.12: {} - vaul-svelte@1.0.0-next.2(svelte@5.14.3): + vaul-svelte@1.0.0-next.2(svelte@5.14.4): dependencies: - bits-ui: 1.0.0-next.51(svelte@5.14.3) - svelte: 5.14.3 - svelte-toolbelt: 0.4.6(svelte@5.14.3) + bits-ui: 1.0.0-next.51(svelte@5.14.4) + svelte: 5.14.4 + svelte-toolbelt: 0.4.6(svelte@5.14.4) - vaul-svelte@1.0.0-next.3(svelte@5.14.3): + vaul-svelte@1.0.0-next.3(svelte@5.14.4): dependencies: - bits-ui: 1.0.0-next.71(svelte@5.14.3) - svelte: 5.14.3 - svelte-toolbelt: 0.4.6(svelte@5.14.3) + bits-ui: 1.0.0-next.71(svelte@5.14.4) + svelte: 5.14.4 + svelte-toolbelt: 0.4.6(svelte@5.14.4) vfile-location@5.0.3: dependencies: From 136c894afa9c203bc2a9150c04a15b57e0ed9233 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Wed, 18 Dec 2024 23:57:38 -0800 Subject: [PATCH 18/77] fix(console): exposing userId orgId defaultRole for use in load functions --- apps/console/src/routes/(app)/profile/+page.ts | 5 +---- apps/console/src/routes/+layout.server.ts | 6 +++++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/console/src/routes/(app)/profile/+page.ts b/apps/console/src/routes/(app)/profile/+page.ts index 9093b0ccd..228d360da 100644 --- a/apps/console/src/routes/(app)/profile/+page.ts +++ b/apps/console/src/routes/(app)/profile/+page.ts @@ -9,10 +9,7 @@ const log = new Logger('user.profile.browser'); export const _GetUserVariables: Variables = async (event) => { // const user = nhost.auth.getUser() // const userId = user?.id; - const aaaa = await event.parent(); - console.log('aaaa', aaaa); - const { session } = await event.parent(); - const userId = session?.user.id; + const { userId, orgId, defaultRole } = await event.parent(); if (!userId) { log.error('not authenticated'); throw error(400, 'not authenticated'); diff --git a/apps/console/src/routes/+layout.server.ts b/apps/console/src/routes/+layout.server.ts index 7b7985ba4..1acde41c9 100644 --- a/apps/console/src/routes/+layout.server.ts +++ b/apps/console/src/routes/+layout.server.ts @@ -8,13 +8,17 @@ export const load = loadFlash( async ({ locals: { paraglide: { lang, textDirection }, + nhost, }, }) => { + const claims = nhost.auth.getHasuraClaims(); log.debug(lang, textDirection); - // pass locale information from "server-context" to "shared server + client context" return { vercelEnv: secrets.VERCEL_ENV ?? 'development', + userId: claims?.['x-hasura-user-id'], + orgId: claims?.['x-hasura-org-id'], + defaultRole: claims?.['x-hasura-default-role'], }; }, ); From 618c139309db89323a0edec6d3865e1db5111263 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Wed, 18 Dec 2024 23:58:27 -0800 Subject: [PATCH 19/77] fix(console): replace window.location.href with .url to make it work with SSR --- .../src/routes/(auth)/signin/components/social.svelte | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/console/src/routes/(auth)/signin/components/social.svelte b/apps/console/src/routes/(auth)/signin/components/social.svelte index 2e3cb5f1a..8a286d7cb 100644 --- a/apps/console/src/routes/(auth)/signin/components/social.svelte +++ b/apps/console/src/routes/(auth)/signin/components/social.svelte @@ -4,20 +4,25 @@ import { Github } from 'lucide-svelte'; import { getNhostClient } from '$lib/stores/nhost'; import { Logger } from '@spectacular/utils'; import { ROUTE_DASHBOARD } from '$lib/constants'; +import { page } from '$app/stores'; const log = new Logger('auth:signin:social:browser'); // Variables const nhost = getNhostClient(); -const origin = new URL(window.location.href).origin; -const redirectTo = `${origin}${ROUTE_DASHBOARD}`; + const locale = 'en'; + +// Reactivity +$: urlOrigin = new URL($page.url).origin; +$: redirectTo = `${urlOrigin}${ROUTE_DASHBOARD}`; +$: log.debug('redirectTo', redirectTo);
    - From 9ccd0f797478b813d59447290f5710b1d3fa9cd8 Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Thu, 19 Dec 2024 12:19:22 -0800 Subject: [PATCH 20/77] fix(console): adding cookie debug --- apps/console/src/hooks.client.ts | 14 ++++++++++ apps/console/src/lib/server/hooks/auth.ts | 31 +++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/apps/console/src/hooks.client.ts b/apps/console/src/hooks.client.ts index 502dc6d94..bf82a1b35 100644 --- a/apps/console/src/hooks.client.ts +++ b/apps/console/src/hooks.client.ts @@ -1,6 +1,7 @@ import { dev } from '$app/environment'; import { Logger } from '@spectacular/utils'; import type { HandleClientError, ClientInit } from '@sveltejs/kit'; +import { NHOST_SESSION_KEY } from '$lib/constants'; /** * Code in `init` method in `hooks.client.ts` will run one-time in browser, when the application starts up, @@ -12,6 +13,19 @@ export const init: ClientInit = async () => { if (!dev) { Logger.enableProductionMode(); } + + // for debug cookies in development mode. + if (dev) { + cookieStore.onchange = (event: CookieChangeEvent) => { + // console.log("cookie changed", {event}); + if (event.deleted[0] && event.deleted[0].name === NHOST_SESSION_KEY) { + console.log('cookie deleted', { deleted: event.deleted[0].value }); + } + if (event.changed[0] && event.changed[0].name === NHOST_SESSION_KEY) { + console.log('cookie changed', { changed: event.changed[0].value }); + } + }; + } }; const log = new Logger('hooks:client'); diff --git a/apps/console/src/lib/server/hooks/auth.ts b/apps/console/src/lib/server/hooks/auth.ts index ac5ca56b6..f4730cef3 100644 --- a/apps/console/src/lib/server/hooks/auth.ts +++ b/apps/console/src/lib/server/hooks/auth.ts @@ -25,6 +25,37 @@ export const auth = (async ({ event, resolve }) => { const nhost = await getServerNhost(initialSession); + // check if refreshToken in URL + const refreshToken = url.searchParams.get('refreshToken') || undefined; + if (refreshToken) { + log.debug({ refreshToken }); + const { session: newSession, error } = await nhost.auth.refreshSession(refreshToken); + if (error) { + // delete session cookie when the refreshToken has expired + event.cookies.delete(NHOST_SESSION_KEY, { path: '/' }); + // TODO: should we throw error and display error to user? + log.error('auth error:', error); + redirect(303, i18n.resolveRoute(`/signin?redirectTo=${event.url.pathname}`)); + } + + if (newSession) { + // Expire the cookie 60 seconds before the token expires + // const expires = new Date(); + // expires.setSeconds(expires.getSeconds() + session.accessTokenExpiresIn - 60); + // FIXME: *** btoa don't support unicode and throw error: DOMException [InvalidCharacterError]: Invalid character *** + cookies.set(NHOST_SESSION_KEY, btoa(JSON.stringify(newSession)), { + path: '/', + sameSite: 'strict', + // make it as session cookie and let the browser refresh and update cookie + httpOnly: false, + // expires, + }); + } + event.url.searchParams.delete('refreshToken'); + // TODO: comment this block to proceed to next handler + redirect(303, event.url.pathname); + } + // check if session is still valid const currentTime = Math.floor(Date.now() / 1000); const tokenExpirationTime = nhost.auth.getDecodedAccessToken()?.exp; From 7b46945504c723363854dc40abb7149a2295efcd Mon Sep 17 00:00:00 2001 From: Sumanth Chinthagunta Date: Tue, 24 Dec 2024 18:23:32 -0800 Subject: [PATCH 21/77] fix: oauth login and houdini client session refresh now works --- apps/console/src/lib/graphql/client.ts | 11 +- apps/console/src/lib/server/hooks/auth.ts | 56 +- apps/console/src/lib/server/hooks/guard.ts | 9 +- apps/console/src/lib/stores/nhost.ts | 13 +- apps/console/src/routes/+layout.svelte | 3 - docs/hasura-auth.md | 1 + docs/images/token-handler-pattern.webp | Bin 0 -> 15966 bytes llms.txt | 27489 +++++++++++++++++++ 8 files changed, 27504 insertions(+), 78 deletions(-) create mode 100644 docs/images/token-handler-pattern.webp create mode 100644 llms.txt diff --git a/apps/console/src/lib/graphql/client.ts b/apps/console/src/lib/graphql/client.ts index c17c3b337..105d5e5b6 100644 --- a/apps/console/src/lib/graphql/client.ts +++ b/apps/console/src/lib/graphql/client.ts @@ -7,7 +7,6 @@ import { GRAPHQL_URL } from '$lib/constants'; import { Logger, hasErrorMessage, hasErrorTypes, isErrorType } from '@spectacular/utils'; import { error, redirect } from '@sveltejs/kit'; import { createClient as createWSClient } from 'graphql-ws'; -import { at } from '$lib/stores/nhost'; const url = env.PUBLIC_NHOST_GRAPHQL_URL ?? GRAPHQL_URL; const log = new Logger(browser ? 'houdini.browser.client' : 'houdini.server.client'); @@ -54,15 +53,6 @@ export default new HoudiniClient({ const useRole = metadata?.useRole; const adminSecret = metadata?.adminSecret; - // FIXME: after setClientSession() AT changes back to stale server-side AT in few sec - // if (browser && getClientSession()?.accessToken) { - // accessToken = getClientSession().accessToken; - // } - // WORKAROUND: remove next block - if (browser && at) { - accessToken = at; - } - return { headers: { ...(accessToken ? { Authorization: `Bearer ${accessToken}` } : {}), @@ -70,6 +60,7 @@ export default new HoudiniClient({ ...(adminSecret ? { 'X-Hasura-Admin-Secret': adminSecret } : {}), ...(backendToken ? { backendToken } : {}), }, + // Instruct the browser to add cookies to cross-origin requests credentials: 'include', // Tip: for HTTP-Only cookies }; }, diff --git a/apps/console/src/lib/server/hooks/auth.ts b/apps/console/src/lib/server/hooks/auth.ts index f4730cef3..aa70d86fe 100644 --- a/apps/console/src/lib/server/hooks/auth.ts +++ b/apps/console/src/lib/server/hooks/auth.ts @@ -1,74 +1,24 @@ import { NHOST_SESSION_KEY } from '$lib/constants'; -import { i18n } from '$lib/i18n'; import { getServerNhost } from '$lib/server/utils/nhost'; import type { NhostSession } from '@nhost/nhost-js'; import { Logger } from '@spectacular/utils'; import type { Handle } from '@sveltejs/kit'; -import { redirect } from '@sveltejs/kit'; export const log = new Logger('server:middleware:auth'); /** - * Auth middleware goal is to set `NhostClient` initialized from either session cookie or refreshToken and set it into locals. - * If either cookie or refreshToken are not present, a dummy `NhostClient` is set into locals. + * Auth middleware goal is to set `NhostClient` initialized from session cookie. + * If either cookie not present, a dummy `NhostClient` is set into locals. * So next middleware or `+server.ts` has to check validity of session. * TODO: - * refreshAuthPlugin: https://github.com/SprocketBot/sprocket/blob/dev/clients/web/src/client.ts * Use nhost.setRole('manager'), nhost.setRole('superviser'), nhost.unsetRole('manager') etc to * to set/unset/switch the user role for all subsequent graphql, storage and functions calls temporarily. * by default, user's default_role is used. */ export const auth = (async ({ event, resolve }) => { const { url, cookies } = event; - log.debug('pathname:', url.pathname); - + log.debug({ pathname: url.pathname }); const sessionCookieValue = cookies.get(NHOST_SESSION_KEY); const initialSession = sessionCookieValue ? (JSON.parse(atob(sessionCookieValue)) as NhostSession) : undefined; - const nhost = await getServerNhost(initialSession); - - // check if refreshToken in URL - const refreshToken = url.searchParams.get('refreshToken') || undefined; - if (refreshToken) { - log.debug({ refreshToken }); - const { session: newSession, error } = await nhost.auth.refreshSession(refreshToken); - if (error) { - // delete session cookie when the refreshToken has expired - event.cookies.delete(NHOST_SESSION_KEY, { path: '/' }); - // TODO: should we throw error and display error to user? - log.error('auth error:', error); - redirect(303, i18n.resolveRoute(`/signin?redirectTo=${event.url.pathname}`)); - } - - if (newSession) { - // Expire the cookie 60 seconds before the token expires - // const expires = new Date(); - // expires.setSeconds(expires.getSeconds() + session.accessTokenExpiresIn - 60); - // FIXME: *** btoa don't support unicode and throw error: DOMException [InvalidCharacterError]: Invalid character *** - cookies.set(NHOST_SESSION_KEY, btoa(JSON.stringify(newSession)), { - path: '/', - sameSite: 'strict', - // make it as session cookie and let the browser refresh and update cookie - httpOnly: false, - // expires, - }); - } - event.url.searchParams.delete('refreshToken'); - // TODO: comment this block to proceed to next handler - redirect(303, event.url.pathname); - } - - // check if session is still valid - const currentTime = Math.floor(Date.now() / 1000); - const tokenExpirationTime = nhost.auth.getDecodedAccessToken()?.exp; - const accessTokenExpired = tokenExpirationTime && currentTime > tokenExpirationTime; - if (accessTokenExpired) { - log.debug('session expired:', { accessTokenExpired, path: event.url.pathname }); - // HINT: delete session cookie when accessTokenExpired and redirect to signin page. - event.cookies.delete(NHOST_SESSION_KEY, { path: '/' }); - redirect(303, i18n.resolveRoute(`/signin?redirectTo=${event.url.pathname}`)); - } - - // HINT: set `nhost` into `locals` after `NhostSession` is initialized from - // either session cookie or refreshToken but before `await resolve(event)` call. event.locals.nhost = nhost; const result = await resolve(event); return result; diff --git a/apps/console/src/lib/server/hooks/guard.ts b/apps/console/src/lib/server/hooks/guard.ts index 091f2024d..f1307b6e6 100644 --- a/apps/console/src/lib/server/hooks/guard.ts +++ b/apps/console/src/lib/server/hooks/guard.ts @@ -43,7 +43,7 @@ export const guard = (async ({ event, resolve }) => { // check if role has access to target route const { - url: { pathname }, + url: { pathname, searchParams }, locals: { paraglide: { lang }, nhost, @@ -59,8 +59,11 @@ export const guard = (async ({ event, resolve }) => { // Check isAuthenticated const { isAuthenticated, isLoading } = nhost.auth.getAuthenticationStatus(); - log.debug({ isAuthenticated, isLoading, lang }); - if (!isAuthenticated) { + const hasRefreshToken = searchParams.has('refreshToken'); + log.debug({ hasRefreshToken, isAuthenticated, isLoading, lang }); + + // HINT: only redirect to signin page when not authenticated and not RefreshToken case + if (!hasRefreshToken && !isAuthenticated) { const message: App.Superforms.Message = { type: 'error', message: 'Not authenticated' } as const; redirectWithFlash(303, i18n.resolveRoute(`/signin?redirectTo=${pathname}`), message, event); } diff --git a/apps/console/src/lib/stores/nhost.ts b/apps/console/src/lib/stores/nhost.ts index accd0bbe7..edb76eed1 100644 --- a/apps/console/src/lib/stores/nhost.ts +++ b/apps/console/src/lib/stores/nhost.ts @@ -1,17 +1,15 @@ import { browser } from '$app/environment'; import { env } from '$env/dynamic/public'; -import { SearchSecurityKeysStore, extractSession, getClientSession, setClientSession } from '$houdini'; +import { SearchSecurityKeysStore } from '$houdini'; import { NHOST_SESSION_KEY } from '$lib/constants'; import { NhostClient, type NhostClientConstructorParams } from '@nhost/nhost-js'; import type { User } from '@nhost/nhost-js'; import { Logger } from '@spectacular/utils'; +import { invalidateAll } from '$app/navigation'; import Cookies from 'js-cookie'; import { getContext, onDestroy, setContext } from 'svelte'; import { type Readable, type Writable, derived, get, readable, readonly, writable } from 'svelte/store'; -// WORKAROUND: remove next line -export let at: string | undefined; - // TODO: change to Svelte 5 Class: https://x.com/ankurpsinghal/status/1856719524059283897 const skQuery = new SearchSecurityKeysStore().artifact.raw; export class SvelteKitNhostClient extends NhostClient { @@ -68,13 +66,10 @@ export class SvelteKitNhostClient extends NhostClient { set(this.auth.getAccessToken() ?? null); this.auth.onTokenChanged((session) => { this.#log.debug('The access token refreshed:', { session }); + // invalidateAll trigger reloading layout data and set the houdini client session + invalidateAll(); const accessToken = session?.accessToken; set(accessToken ?? null); - // set fresh accessToken into HoudiniClient's session (client-side only) - setClientSession({ accessToken }); - // FIXME: after setClientSession() AT changes back to stale server-side AT in few sec - // WORKAROUND: remove next line - at = accessToken; // save session as cookie everytime token is refreshed or user signin via WebAuthN. // Cookie will be removed when browser closed or user explicitly SIGNED_OUT. Cookies.set(NHOST_SESSION_KEY, btoa(JSON.stringify(session)), { diff --git a/apps/console/src/routes/+layout.svelte b/apps/console/src/routes/+layout.svelte index dad7c2eaa..a5a114c6e 100644 --- a/apps/console/src/routes/+layout.svelte +++ b/apps/console/src/routes/+layout.svelte @@ -28,7 +28,6 @@ import { setupViewTransition } from 'sveltekit-view-transition'; import '../app.pcss'; import { setNhostClient } from '$lib/stores/nhost'; import type { LayoutData } from './$types'; -import { setClientSession, extractSession } from '$houdini'; const log = new Logger('root:layout:browser'); @@ -96,8 +95,6 @@ function scrollHandler(event: ComponentEvents['scroll']) { // Disable left sidebar on homepage $: slotSidebarLeft = matchNoSidebarPaths($page.url.pathname) ? 'w-0' : 'bg-surface-50-900-token lg:w-auto'; $: allyPageSmoothScroll = !$prefersReducedMotionStore ? 'scroll-smooth' : ''; -// HINT: On client-side, nhost client refresh accessToken. No need to copy it from server context. -// $: setClientSession(extractSession(data)); diff --git a/docs/hasura-auth.md b/docs/hasura-auth.md index 8b34180fe..01440942d 100644 --- a/docs/hasura-auth.md +++ b/docs/hasura-auth.md @@ -244,3 +244,4 @@ You can find an example of a function that can generate a valid access token for - [Hasura Authentication Using JWTs](https://hasura.io/docs/latest/auth/authentication/jwt/) - [logto: Understand how organizations work](https://docs.logto.io/docs/recipes/organizations/understand-how-it-works/) - [FedCA](https://developer.mozilla.org/en-US/docs/Web/API/Credential_Management_API/Credential_types) +- [Best Practices for Storing Access Tokens in the Browser](https://curity.medium.com/best-practices-for-storing-access-tokens-in-the-browser-6b3d515d9814) diff --git a/docs/images/token-handler-pattern.webp b/docs/images/token-handler-pattern.webp new file mode 100644 index 0000000000000000000000000000000000000000..64138185d75c546b372bd016c29320dcef009084 GIT binary patch literal 15966 zcmch;V~nmr&^GvtZQHhO+qQYewr$(CdB(;W+c;y}Gkacq+4tM*CY$}Sopkq=O7)ey zt1DIAxl_tg;^ON30Dy*=u%fymrzSK20D%10H$ec6K!AS|LN`7DAb}Pr7l?WbqzQ=s z7i+o{DREIDv2x{J09>S%-E+j2QT4{ek95~jR+G6HD*Q53O$YELZrx?{56v0^CPe@4 zhP_I!Gk=oL9(PF(gqIC7?ib%za~s38|7M?wK%1BU>&YJhgYVf7y07{Zl+(UrpVmi( zH-w9wQh&k^j^~@J-NU|}AIGngPm0g@H-Q_0_`JA}n{S#2kWYnihNJu`{|x`8Dl%576i7#xtR#zp*)^!g(T4FJcs62|>-w~W)V~L0?W(Z9g z5A2n)&+MuX&!9f|il5;^4P+OF6jTL7Z&gFtMez7~sOxj{fMu%SZHBpPD}*{ji;%58NZQuF)#c2h}@PqI_?9NNswyWRif>L3J zd4$jnbD-}6CjdpzsiReK(%-kW2~em!GGj^LFiM=|&=x}3yNK8Io+}M%hIaNLcsUA7 z9Leb;zTN+GXVORS5WUDx1khq2+_MDW()FcB&zJv~-Tt?MSjG-xIqiS`pNxfdIO|0l zn@c^b)@;R@PTkohR{Qmc5_hsZZsZr4Fem1ziGq9u?Sooj)(Y%!*Ww+7e8!&oc?1r} z-lm#8A9;&fVO#Y-OwOKMjXX3g)O*RH*@aC^fe;j5zuImlf=?oaHZ00{q28#67xeLz%VSVXNhVpcf8z`e)F;mDZzCGbDYPr=D&6Cq%ku2 z^o<23mgTr^rxf(o{Au)%ot%zGbtuMN zHz~;HcArPS{cD34OZI{rstei~B*l!}qWIf#92lo)wWYPT7UXZY%9uGi$MisapWS$L zy-yUSkd?jt!4P=M*Qt%!{IC6cWdEp2pJrvEJWFTa(==x-+f;pGg-*&-ze^r;o$~%9#(YIYC zf4%$f7}oQ=*nwgOp5;J3?6n62g^*6L4wI3yX4&I8OaPkZj1eV`XXd#n^7m|<`(i0`KnpYGr6jo{yc_vCFm+Bqm zAYEfVUfvYR*`CS9jP+n3Aq-4`FTh66iKic2^C97sDVx;=8ApF9%4wMq=+ zYa!NZ@He6j<~u4dinBvJ6uum1M9=eRB8acdjtnd)HtyAehJ( zn_{jy)$&EvlTCyXBp~*0qn4Gv4KEx$ zZ+>1!(K`6xH4Ll5YKsr_+F=K4#R=|R+aR^8U;mUa4JwXy2-0yg=tIimo9lj+ z-Ka{zrLr3vfKl!VwM3%&Fy85RFQm*ud|dP+X`E(;&!0Fx~6 z85ZBI=mpIqG!rZ(z9vJrP-3L9IA9rcEtsn}y~N!m(o2Q)hjT^*`>u4{-oa*689fFf z_a)xed#|My#U>y?iLYQ4;+$P-OD^Ie*-OMryp@bA^VUEH|L^R{@*K>E>$*f84r_dGKo4&S%PHq53{htx_|5c*>|B##i|5$WW!h@w)?4i zYLjIPAC0yC&T>lukaE+O>m!Lz2E6xXCf-Um&bP41W}G(r+P3d;EkeoXbEqfjtA!YD zn(*imR?9@h?u>Eovv{!XrvxSlYM;WHG0dOnYQNB-ci1G@iP7m(q^K9r{E1&ugTAPU zp$vxjdIZVg`${2$Ou`XEjv>fMozF({C|u0-CRNhK#RDLwJRSR|K=GsP7_{CKgQeNx zJ2&hZNR821&=zY`YXbYcX_4WM*`s=!!S#Bg7I_iP+Qbo#_?D^)R*&>vR9+u_)df+) zscxDM#8jU5@!ReGIIzH13`Ni|ID7uS0TSip;3AF19Wr|KT=1Bl;tBLE!b``*qDn;0 z@iuVw)m{_6MAE7h{HCNn9p7L!ilr)K^aC5r*p_hM|_)dFd zoRVzSV92D2X=s1=QfosRMmP}yzadw14lf*Gd>gCB-(VIm8Lbv~ZmvHS$X*fFm+D0t zBX{6>1kth*l!d;m?A^!K1^M=Vb2n1Sg30NaGdB5(3+?T!EK#kE1HND^@nBmR6} zV|yjBpg0#e<#5d^ut1s{=mU_j5`CT*^1a4i3`!!BQBo})G*OAXm)$V-QjfLrkjt0pO)TB^6wM zjwR1|q&G6?v9sNk7#4(M&hZOY`A|Su6&#A7afU0mUyP+csFk!L0@TRR}^C4A}x{*6oZ~;qB}<)t72a1IJf5>Il#g# zA-}UEfH`%KQ&&$=vr0|&b?!RWA|U>5D+7xF)1Z0_(cO69jsmHeTge0vTCR%_lZLH_f|x05SAG)p0-4se0^KT zFS{a65?`)Uk*SoR6r5HE1I?Tj_`$i{VJ&rta9R@TOM4z--+_oOxrKlfTDR*V zuvnfp+n4{%nZntGn6>fdUb{~49YQ)RcZ+psACHM;$OuuFgUl-2_s^349CRKbscf@_(_KuVxnv}U1 zheY6@j(P#3N=yM1ZAa~w4lOqpMD4M3$sXpZ-u*RuZs{GJv1;{TFT9lGwfUzesAkj# znog>Ae+%Lf+H(w#hLtd5F}Vs^SeriPdtus*;`m|}zB~|q?rwm_BRIcNy>qP2lHH9$ z1OjGLA!-oBQa!h8W9jHAD`PzK^-nYnJy0wev)P#&nnJi+qqRFRp>Um9{Qf{99#BoB z?7{I98quX5tU!~Ww=ht<7nKDO;a9Hm)^xl;!x3tjJ3z_|H`jXE&dXB?GoT`c#cZsV z=^QzAdP;rBbq_~EvPUy&Fc{vkWwkZ%9{J9WE9dkV-SJV-PP5D!_g%&+ZUmzgU3Nn% zu+qH6dOW#oHLCP#$Z+TGo6y5Hp!F%PYdZkIUmh;{)?HKinyzY!dd{dzv}8HC&-%zG z4;;eq&VZ}R~CYzHcnLV%QtQWf5*;x z)C+GS1BJSZueH|>5z>J!B9AorsCRQ^d1Wq7&!sL`4#Rq*6RWQm_>d( z)YKT(E&6jHp-cb(ocLos((}X)GNdiHPgAbhX*$xUj7e<~d`w3$Z7dE#Ew2abd#^}L9#0K$ zJczs5Uixdh1BA&d?=0=Ccz^y2cMcX>n#kn=8N@H)tTj6fir#t<8k4Dbr4#>NdzkM5DbM8U(-6xT~%y z9#l#>^o16LIsNQ2YL77CKC;Fa8@^Mno1nDVy}k|%exN|DxN|GcV64A#s(P>qcKd#q z*b6j&%~OuODCn8pYkxhUUYL$|j+d_ZuXDV~KRk9W8AOrm^i8f6-Z$$9KA_Q|@1EY- z-PP8#=&l!0p7$Ng*Tn+nBNA0cMrWVAAH1w;94Hc`1^q;7;AOlS6jr408x0|WyD;O5fCOy> ztd$z4olp|=bN)X_koX+&r#^&b3Z}cX{9+p*NvGOUYIuJauWb10zwZ`BMD`$)J;pWF zO1K5z0E*t=;I=|s7#r%M7r~+Frq$R1CA2&@H9S5&%@Jf7H`hzG>J{724$J)HO|w_GH>VokO4T$Ow5o z&?AI`7}^MtTJ~>?KcRxW{%SmXF-ut@MInjl2;suC=Qq;gGR<;TXdUk*^IR0U6&HA9huq@Lqj=8fz2}F z?9R#G3tZs4r?CT?R^{%4ui&hToFw~_v|%o<^py7q9z;LLk{a#BJ2u(`u=bE^R7xzm z$3{Oq%0!l)4qJLyghs4^%|J)r$p|9DFPb%Y3m_(g_((=h@r3i4wg`rmz?RjsfWmM9 zA#29b)19s=3V9=J*L!6lc}682E7c`zMTLt9;?HeHuOON)+ryQl>Ykm-npiszmZ$~f z=B?Q^)GaHL2K_Iwb~{l?ygV_MJA{2OvwQ5w8vkliAMw_N+#Y^OTH5>kDYViP^0+ld z?$0t^$|pirlz^!YRuY|C(Yr*4w$ep-D0W&!i3m805{9>Uu}oW;<;s5gY=s2n8mZ|+ zd#wG7Ah^HebKyxV5dvek5T{VQS;-|Z(QI99u14W0g~+zz30T$!*da5ti3fW)PvHT9 z1LeI(fFc0E0|C0g=Y34@uek9DM^xe}OLbusBHzwB5XMb5Ern}QZ|bz z+bpLdLh8(cC7ER{@?}EvT-fedpKp%I^{e4K@$WFhsC(m~uk}HOz!yTjMQ_W2Z^$KB_7(Jck_vu%}EG z`CM2oQvES{_TC;lxSB4WVpf59H0303Q2>UH?{tKgfKI*c<{0^aD1EdAI9&*_dxmqO2z zIqr1ymEWSJxdnA{NEInARoO1%L0;h@*A$k1yu};jS7lGQ(2tTh3N%|cb)@wsm@cSY zd9>0S4v&(F$f;JgUd1L_ze(8v{@1a5kN~h+tHVkP=4)rC9M&+W-mJok4K!&xTVeF({>Q%1cx8uH$sn-;%#h(=uF!Q2-CF~y5?C-O2J9DRQkGE!_=I?ficD&g7eqk+X zpai(q%lu9=zr!Rv> z2_PsdgZV5azq^e#@uA1V29H&mUwF|U*lZAiy8OjgP#kNdBL0Cy0FRY@xYsFAh%-+( zy=SbBo@b_=R(n5VaK-`7XCwyQl~0VP31!4o`1IoL2FpC&PQ5xWI|lJ_`r^dK~$pzTlqY}cOxwjU)II` z)-T`Py^eQ2c<-t~K6&0D87e|}@e%en62V-Dn_2W_=u^B#6^K>8S_C8!F4uNBjV=}#I+5NDR+FM=MC_#d1H`5LW({QRD`!H0wwMtwg0Tq@~bNLlgCX>-6nwQKdeplYu z%ka|JvIfgTyIBEJTo3mM*355a;aS`HG?%Vi&lwh9qd(vHHYxDmlY|LMX9s-4ms~0w zN&80&`_qJFQR5vuJIz$(BM$oF+j_p4_DmPS?GoF@Mw$ zrWD7X1n_?Bu&a~Kh>Rr0*lxi950!3t*!S5!)+gIDby}Ov7uUb>1g4?(k|lI7GHdku z9G**}Qk(BmR z3AE(Pna6;x*s-y3%X*E8E>ufzgAxGHlRwhbRxvRH(?VUH=IRE}Nq?oHEGQ~rl4;~< zm;x;!Y^M=AQ|ysyHwH$UN6A7vlNU3U)5&&PSZC_t3(XXYY!nMRiKCvCLr7O71J&(t z=ywcHuPi>8eZ2cH5$uq{xz49y+O@|rF}u1pPD7M#Dj&<#Y(5HFEV)^UQr?gd+;L6j zZx@vV{EZ;JI z=O#!#>{1YS123Nv=?q+<(jU0)d^A2~S>{)4%?NV4s?LKQ-tz1Vdaxt0FR|<3sBxZ) zxf^9+9W0H$kcCd*LGwk=t?)RoE3 zpNvvW;F)OrA9lW37BAk1YHG%H(|jdTq}N8EhOfpa5f_pG*Rp1WyJ2AJzV?FG;a3>I z)%>6hw>$Q;h)iECbwAjzlZC+lIGoXu>i#QnMg+{JkLavQHpShYkG1; zZ1-=8rZ(@!i7-4M5pTP&XE?yn_=2>3-N$xZ@taa5Vvqo&XT#NMW?b?Ldu!Q-%WH&| z2Z;Qq#+DRq&PZlnF|ugHLuu2}UZM^}^bXW+HTJ7&rKY+Wjcvz(EXersK2-GrxNsJr zAE|dJ!+R~dw7@n#9Q!1IPf3J%M(Qx9>ie4KSQ;U(&v+bKBaZ0>iem`%;v=jYlijHIH^mM6Ts4nrF% zEf9O7wPV-%%fIc+!~0N9Xn$E4ty6fPVioG6)8!5UK_%T7mVeY=S9NkI5@&K|nFATM zt~GpieZZJl4zmeW2`|pR)HMV^G9uY&q89c(>-KN7E;o^%gtf+l5p{%s^dD74U+ag) z22aU%?Yv;+N&jRF#SY;fVO|6W3SNl{?H*S8 z+3v?Fe{)CT8D|~`+OwApWZqUxaO!!evj{kNkV>VtA{84_w}aU1g;xixXb%j&4FJDG zJ238OnGFv;vicwITA3KcQfU2c!?xkw7J6RzgegIZA)@D#Shm&{*a`3I^2{hOw*Gm8 zUZDAO7YXpr*0ARIBpYW-#313Pj1mz2QBJxGtImr77n>{pb1MCDNcBU`2qT9~>!amj z`|!X(-Of{^m8L5KjF@%eX$K*fPjMhOPJ$6u^M_xvE4mIN)Pf2_tiHKc?>@N|+AZpTmU%?j0f1+fa{v~ii!KoT=5`BBxPz`C3Gb^k*iGB+P9<`stWiwqTXd4Z+qqI=5U+E25wzSmkIBT=z{F`2bZ*ovh}W zb@m;}2`_R%Lp4UeNt#Y!jnQ<9_&(UD>zGP`h8*1Em_$$i?{$7+_ndcb1AX=UI4J;c zg)ZBNta6i6TGluzP-X6rlyMK!6nMQUfkCgEt4~_VS<4y^9S=<2wY{^xe(fx+?2Nzu zAwt0q6k}4b0KmeNwKDCuqSY{s1Qi2I@X6ng&~0=P3+WQ4sX{CZD#_hF5-S`!j@mZh z)$<`wpWc(|bOADbEFO&G8&c?RZz(+t&{U)1-aJQd;1u14D8VL|rwu#W4%Ui_Q{(S2 zBM&LH_f=fD3$ixO_T5QO)R56AM>ye56e*w35@n=O=gq1SN+M0X&(ap#wmN(D9W_UO zG+7ORI5%1R#V7~lI~YBFz@Yv^B?VTq??z5K`howDvSw}+B}RZno~{YD?OIW6wthiy z%*uVRfo@(mkf{?#9g1alAuu%w6cbp*l-G#1AOk6+{wu}DSR2p5pK9i~kph=QTMP>m zeh5FR&~jB;`0m=1I}7_o>NHX6Bq)PG38Uh1h24NYNabw!8eB&+=*0#x?6=L|i>$f#&qc}kBq5vRAB^A=;@SO7;}3&?Z28c; z;fx*ld|(4N%{0Q6DE1G@y1n6flLlr?VFkVA{qx*BEvbZ6Azjhh)9S~JYv>jH-+$%=XsDj!G z7>0wR&Sw58WA@ib;=5|vj}LxOAzp!zoIQCac?_U0B(G9`0XOeQVStbdzPhqi7{Wyt zg1XsZCo(~u*TkuQAM#=;^KzW>QDIDuU9D^W8H^$_2hqCGDHsTJ77OItedJ6rdNT=sLBMvw3SWH3TvVIBB z;`aHbccI^xw(-7-{I#A*c58>-lq9u3Q0ES)Y_UK>SC;+`Vy3l+hMVx#wd|ESyA^p% z;`*CI%2e-oKsyFT%uHS*3JSGxM&`i;PV*eJ8c=wud!#;K{QmQq)_%%n%ePDmsqi6n zy&zFGyjY(9k#a}jxmqkwy=R)y8lc}v6{G>&4cDH|TCHT`lc>qXPa;JWAgKK$13*RA*)#Ba)8Ca9$P!@A9>LLbKLXiXDhPh+;{=+N!OfNB4PSaF`RxY@MJ zM;jSU{3kG_)IEjJwC;A!;fOh0z9a*3P(b>%tm^?=AM%y}?7~XpT8}gA{Bc$rqxyYx zJ17eeUQt3XNz*tUco1s6GG|+_TyL6{UGkIzzZCgsB-Bp_M=!!uO7wy0vuzs)=PYY5 zR6q4F>hf1xpmYwll^%i&H{w&s{3ZLmk3hUo5whUedYCNmLo%-%tj;g#pSj-13FR$qQQY8mb%6(GI6E;uC=`^2N_ludKp4%2_aoyKF@ zv%kJN`&FiRkv$PR1r1{opKnLFS?;@+_F>=(+LR^dCwCsLXm$Ko(Cx5+JCnK;lk2`?8|#XdzeSKYZ}qLNmAfOubz zfqeikw{9=Kd39c?zEW38*qIeL@%9EX+6Ip5R)O%?F6Ii}Wl#BV$Qk}BsfZG^c7ui> zztxgO9rqjY(%@da2%tZ4eyJIIfBlq&g_q3}J*V!X0CEJ&f@s!!G66ya{xY$Ak?H6z zBg|ngP^}Z(Dk`=1?FS>X61{O}Nn{V6=*P37Iqh7I;U5W%I3T}B``_`ioi2%WIgGLcN0mmQD>Ifp9NSk7^ zw61ld$poA~*jnyt8g{ExPkL`VNv*AKkj%4QE+Ezn#N#I3Ot%T&Dl}j#aIy+x)u6-*X$R&gw!bGD*Dq$srCR*^%{-Ys& z8_$0RH{FJ_2tgbvjiZ$9#?CPlSQI9@+z}!t@^P!szPFDy2Jk9v(D}oq<0NSd5tpyp zPy@y{)on_!hSg6*$^V?;FD^87Ng`O-DMVaf)Myp35^wr*eZ|IKJ(8R8=4BYw4_shf z3xQWNCZUfhzZszy`X%;NbR}>h@tCG2T94?2D|2RZFzVFy2EB8Er*r}bJ6*}0d#FWj zG|E;%g=78J8toVjNo+9sdJ5-UFnfWgc{LCae)WXm7q59KB+W`IdRN~Q4U8|+w}h-G z+V34oD0EGIQ0DI*l<%LUPFoY5?J3xsMwZV}FyL14GK-pGzT#@~S5{*fo%G>R${IE| z)uP1eEJA@(+PmbI+0O&Zetz(=aYBB1rt7vT{6Y<8K6>pvAH}PcR-e&8v({XtZXb1SyH|3JhzyrZ@hfeU&8xb zm+P_SA`IRp>EYzA6t*PEkL$9yBQ-r^jV@#Ypi>Wn-o4f+T^z30fJfAS=HvnGZ@gvX zR8ndukSOu%eoubvUb2*zkvQWMVgsJIYdE)+iK48IK_ET6QzU-wp!qi7&jl`)`B4&X ztJ?lJKx$Y~{M6=Dc%972g=pOD&vqAvK}Z$s=zb);0m=@`??vw}ubBDw==aVac84I) zy~LGnSmG1xt}g_CH;=qHuHy*=g;0M~%1BJHI}d4?MIovo=8PlqNA+b;uxcP30Ud4X zRKl)=P8;R5h>XB=;-~Qfk|x`{|M5ctSMqB^VEcxSAv2#BDkh#b(Y&n&IKmv4*Qy>N z7|YWAfP!+nKSq_V#qL}MhVn_{-*b7vFe2d(pN!%I!$@^+zPf=d`!Ay*9+gR7sQ*f8 zk4Y1d)wHl~`*3+n5f%7FfJ64LG9qIK`!}bWufBF)1YbU7jp-{n~KVMFoBYrZvB&Qe8~e|8m@SHI;~@%+K3`w-SO{ z=(4CV_!wJqi4lR3kw?cE3Nvc7w30kpui*}Cffj!bKwB3FWH?*6?QpX6>mp=k%=4Mf zp*^#irFxahT}Urlo1@vPW;ejDqC98DB(rp}t6Z(6k&GMNo>FPqxIoJAy@y0QBV@4E zd?n2pCBkTOjiHS;7Iz-(G(NjgQG$(8D?63Vy<#C8WsEVVCzz*Ckk^Z7%ye?3Bb5ao?Vn5HvXKBg`y1{t$7#LmUZEK^4p~F^G7M5APvf#;_Z$Q|r?u+y8 z(k5dHGgB*Dj-A5rc&3%=1Z^=-X<_b!|B)X*n4JIzmFTj1Vu5iLMLr zl%-@4EdI9u7a@$v@gX+bMOtQ-ibe+$6wF4vq)w#EwczU}O=EH(5Y^Ae5Kejj1i@h6 zJ6_LnjK-&TU0&>|4Vi)tQP7USG6{=6gWPg})TxO7QNnq0SLRp=#=(7);u!C?AH$He zZ#hE^95dl}E8V7R@iEhHl2lK8YEeh4KP?O$$AVsH8A70zRae(o}R4dEYC?3JVEGu!X33 zf$&xn6;~90oYkg=YEhY2eODHK4sE~-5TNK!@EmRtrmZ8gnB{f2dbmXC(K z$ejT~o)gphnacZb`&L0sZ5)P~(&Xr=ww&h+m>60-(Zp4}p-RZUTSSo^fxmQ!BxbED z_Uxg4Z)amb1s?FSLJyGz_*e6{f7Jw1|F{{TDcIoV-*bNWN0x*Vu zh##X*<;vz40D*yEOrKp4kgm>iPwtt8$9|~ovdOJMUteh~0Eg!L?)>;Kd844CaWe`i zBRQh-U7AQ@D}aTpg>r3cZ%&U3hGkebrfDeO#%9%oci*7Bk(J6GyF=5z=*I4Wo{+QsJloj5s4Erh5-_^?AUk**<3=8BJr z=C#*7_IqBSj%4UEhLl8yd(Hm#93Yy#0e#*;CK8|_RWXmez?E}J_FSS{ONJo%C_L(c zqh{huDTX@_mMb&VT4fZ~E(8fM4j$mtKbPsAv0=I?Jk&!#OLRz1k!0xnYAa@3m#&C1 zfTe3ldzbi3n5N(Q)0zD_Dlf?(__f~ zec^AGM#g);uj!XD((4w$cWC{gb2~gWVh%dSCJ0Xo85)ie)bXq?b`TSJATc&gNW0z= zJPIsEeeZn+42&m%3Yg82v$n+OdQ_gJFHQ+ytkJ=$EgWEOrdi2a0Gyf`50obVXUhXy zhSyVT=oc+$a4%CE>gV6HA&a#a^D*EtW2lZoNHfNOV3r?KYv0h`)M&|<_{+uv-5VkY z_g?V6iY}GD_=ZvNdq=_!Mv#|ecMvt@dnhV;HYbik^+-)9K0YQzJv@jHF zZc7g}I{4V2DM+2pqq%dJOuspwI8xKQGeD27=*FU2I7itGA%k?&^cOMv=~x8wWe$sg z4E4abKSZ=R=r;+`JtRgiCei?=u~x;VW*V%M^&=MB^iGXfean8`8x|r*d0Qcsxtz4m z$Cff^JKV(kPnM)3OJ4P!?A`Wnj^b6WbBkPPAAac}l{Oc{@X_AFvn~|>7?kf<%c$xe z;IN_M{URV^khTbKTz<7ZxGcB+Nhm$m_q*B-YZF+kVd;&4MWe*JMOWH9tKW+H>VX-%#To?s~}|k2q8@?7;b(aIn~6 zZFp9T+_zCCQKZ&uYvD3eprI|+)Qe`lDN%%_G8YXjIXH)vD#D#rv6P<8XOLz1_~{0> zvLh*Wt*-}7e#{x=S6?1}$u#JoQrH?u>9!=POdazVYp{QsU|&kW?m$(@}@@d z_(#;(0ay*y0%hn;&n=6-?V&v$q&U8yfD@(*P~Zncd$?@~^w*+#Q{dv{R3gzE#CHA( zEAG@KvAb-obF~nf&=NM3fHRD)jGu~w+=h}^ z5!P)g{J7dqMuU*Db-UPoRbEiW4YwJQ&}8O=lS8uPa778e9d7~V&@dxSM%fI0{T%sT zA?QE!e3=YaDTZ=IHV3R18s>KY_KE;#@>9n4F6k+VrK=H&MfgD`7W0<8iei;XKuP|(T@GY~t8 z&UX-vU5bHCiy!60i;m#e`EcBnDW1Mfd63>;Qv$KDjf7b_5Tt6XOsLl{s+(h zn!*1SdqV&~|4A5`nHYf*{|f{CV*nKVx15QQ5vbt57=L~M0N{fEV%++t0`lLu=|3p{ Gwf_SE7Fr|# literal 0 HcmV?d00001 diff --git a/llms.txt b/llms.txt new file mode 100644 index 000000000..003d1c331 --- /dev/null +++ b/llms.txt @@ -0,0 +1,27489 @@ +This is the full developer documentation for Svelte and SvelteKit. + +# Start of Svelte documentation + + +# Overview + +Svelte is a framework for building user interfaces on the web. It uses a compiler to turn declarative components written in HTML, CSS and JavaScript... + +```svelte + + + + + + +``` + +...into lean, tightly optimized JavaScript. + +You can use it to build anything on the web, from standalone components to ambitious full stack apps (using Svelte's companion application framework, [SvelteKit](../kit)) and everything in between. + +These pages serve as reference documentation. If you're new to Svelte, we recommend starting with the [interactive tutorial](/tutorial) and coming back here when you have questions. + +You can also try Svelte online in the [playground](/playground) or, if you need a more fully-featured environment, on [StackBlitz](https://sveltekit.new). + +# Getting started + +We recommend using [SvelteKit](../kit), the official application framework from the Svelte team powered by [Vite](https://vite.dev/): + +```bash +npx sv create myapp +cd myapp +npm install +npm run dev +``` + +Don't worry if you don't know Svelte yet! You can ignore all the nice features SvelteKit brings on top for now and dive into it later. + +## Alternatives to SvelteKit + +You can also use Svelte directly with Vite by running `npm create vite@latest` and selecting the `svelte` option. With this, `npm run build` will generate HTML, JS and CSS files inside the `dist` directory using [vite-plugin-svelte](https://github.com/sveltejs/vite-plugin-svelte). In most cases, you will probably need to [choose a routing library](faq#Is-there-a-router) as well. + +There are also plugins for [Rollup](https://github.com/sveltejs/rollup-plugin-svelte), [Webpack](https://github.com/sveltejs/svelte-loader) [and a few others](https://sveltesociety.dev/packages?category=build-plugins), but we recommend Vite. + +## Editor tooling + +The Svelte team maintains a [VS Code extension](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode), and there are integrations with various other [editors](https://sveltesociety.dev/resources#editor-support) and tools as well. + +You can also check your code from the command line using [sv check](https://github.com/sveltejs/cli). + +## Getting help + +Don't be shy about asking for help in the [Discord chatroom](/chat)! You can also find answers on [Stack Overflow](https://stackoverflow.com/questions/tagged/svelte). + +# .svelte files + +Components are the building blocks of Svelte applications. They are written into `.svelte` files, using a superset of HTML. + +All three sections — script, styles and markup — are optional. + + +```svelte +/// file: MyComponent.svelte + + + + + + + +``` + +## ` + + +``` + +You can `export` bindings from this block, and they will become exports of the compiled module. You cannot `export default`, since the default export is the component itself. + +> [!NOTE] If you are using TypeScript and import such exports from a `module` block into a `.ts` file, make sure to have your editor setup so that TypeScript knows about them. This is the case for our VS Code extension and the IntelliJ plugin, but in other cases you might need to setup our [TypeScript editor plugin](https://www.npmjs.com/package/typescript-svelte-plugin). + +> [!LEGACY] +> In Svelte 4, this script tag was created using ` +``` + +You can specify a fallback value for a prop. It will be used if the component's consumer doesn't specify the prop on the component when instantiating the component, or if the passed value is `undefined` at some point. + +```svelte + +``` + +To get all properties, use rest syntax: + +```svelte + +``` + +You can use reserved words as prop names. + +```svelte + +``` + +If you're using TypeScript, you can declare the prop types: + +```svelte + +``` + +If you're using JavaScript, you can declare the prop types using JSDoc: + +```svelte + +``` + +If you export a `const`, `class` or `function`, it is readonly from outside the component. + +```svelte + +``` + +Readonly props can be accessed as properties on the element, tied to the component using [`bind:this` syntax](bindings#bind:this). + +### Reactive variables + +To change component state and trigger a re-render, just assign to a locally declared variable that was declared using the `$state` rune. + +Update expressions (`count += 1`) and property assignments (`obj.x = y`) have the same effect. + +```svelte + +``` + +Svelte's ` +``` + +If you'd like to react to changes to a prop, use the `$derived` or `$effect` runes instead. + +```svelte + +``` + +For more information on reactivity, read the documentation around runes. + +# Reactivity fundamentals + +Reactivity is at the heart of interactive UIs. When you click a button, you expect some kind of response. It's your job as a developer to make this happen. It's Svelte's job to make your job as intuitive as possible, by providing a good API to express reactive systems. + +## Runes + +Svelte 5 uses _runes_, a powerful set of primitives for controlling reactivity inside your Svelte components and inside `.svelte.js` and `.svelte.ts` modules. + +Runes are function-like symbols that provide instructions to the Svelte compiler. You don't need to import them from anywhere — when you use Svelte, they're part of the language. + +The following sections introduce the most important runes for declare state, derived state and side effects at a high level. For more details refer to the later sections on [state](state) and [side effects](side-effects). + +## `$state` + +Reactive state is declared with the `$state` rune: + +```svelte + + + +``` + +You can also use `$state` in class fields (whether public or private): + +```js +// @errors: 7006 2554 +class Todo { + done = $state(false); + text = $state(); + + constructor(text) { + this.text = text; + } +} +``` + +> [!LEGACY] +> In Svelte 4, state was implicitly reactive if the variable was declared at the top level +> +> ```svelte +> +> +> +> ``` + +## `$derived` + +Derived state is declared with the `$derived` rune: + +```svelte + + + + +

    {count} doubled is {doubled}

    +``` + +The expression inside `$derived(...)` should be free of side-effects. Svelte will disallow state changes (e.g. `count++`) inside derived expressions. + +As with `$state`, you can mark class fields as `$derived`. + +> [!LEGACY] +> In Svelte 4, you could use reactive statements for this. +> +> ```svelte +> +> +> +> +>

    {count} doubled is {doubled}

    +> ``` +> +> This only worked at the top level of a component. + +## `$effect` + +To run _side-effects_ when the component is mounted to the DOM, and when values change, we can use the `$effect` rune ([demo](/playground/untitled#H4sIAAAAAAAAE31T24rbMBD9lUG7kAQ2sbdlX7xOYNk_aB_rQhRpbAsU2UiTW0P-vbrYubSlYGzmzMzROTPymdVKo2PFjzMzfIusYB99z14YnfoQuD1qQh-7bmdFQEonrOppVZmKNBI49QthCc-OOOH0LZ-9jxnR6c7eUpOnuv6KeT5JFdcqbvbcBcgDz1jXKGg6ncFyBedYR6IzLrAZwiN5vtSxaJA-EzadfJEjKw11C6GR22-BLH8B_wxdByWpvUYtqqal2XB6RVkG1CoHB6U1WJzbnYFDiwb3aGEdDa3Bm1oH12sQLTcNPp7r56m_00mHocSG97_zd7ICUXonA5fwKbPbkE2ZtMJGGVkEdctzQi4QzSwr9prnFYNk5hpmqVuqPQjNnfOJoMF22lUsrq_UfIN6lfSVyvQ7grB3X2mjMZYO3XO9w-U5iLx42qg29md3BP_ni5P4gy9ikTBlHxjLzAtPDlyYZmRdjAbGq7HprEQ7p64v4LU_guu0kvAkhBim3nMplWl8FreQD-CW20aZR0wq12t-KqDWeBywhvexKC3memmDwlHAv9q4Vo2ZK8KtK0CgX7u9J8wXbzdKv-nRnfF_2baTqlYoWUF2h5efl9-n0O6koAMAAA==)): + +```svelte + + + +``` + +The function passed to `$effect` will run when the component mounts, and will re-run after any changes to the values it reads that were declared with `$state` or `$derived` (including those passed in with `$props`). Re-runs are batched (i.e. changing `color` and `size` in the same moment won't cause two separate runs), and happen after any DOM updates have been applied. + +> [!LEGACY] +> In Svelte 4, you could use reactive statements for this. +> +> ```svelte +> +> +> +> ``` +> +> This only worked at the top level of a component. + +# What are runes? + +> [!NOTE] **rune** /ro͞on/ _noun_ +> +> A letter or mark used as a mystical or magic symbol. + +Runes are symbols that you use in `.svelte` and `.svelte.js`/`.svelte.ts` files to control the Svelte compiler. If you think of Svelte as a language, runes are part of the syntax — they are _keywords_. + +Runes have a `$` prefix and look like functions: + +```js +let message = $state('hello'); +``` + +They differ from normal JavaScript functions in important ways, however: + +- You don't need to import them — they are part of the language +- They're not values — you can't assign them to a variable or pass them as arguments to a function +- Just like JavaScript keywords, they are only valid in certain positions (the compiler will help you if you put them in the wrong place) + +> [!LEGACY] +> Runes didn't exist prior to Svelte 5. + +# $state + +The `$state` rune allows you to create _reactive state_, which means that your UI _reacts_ when it changes. + +```svelte + + + +``` + +Unlike other frameworks you may have encountered, there is no API for interacting with state — `count` is just a number, rather than an object or a function, and you can update it like you would update any other variable. + +### Deep state + +If `$state` is used with an array or a simple object, the result is a deeply reactive _state proxy_. [Proxies](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) allow Svelte to run code when you read or write properties, including via methods like `array.push(...)`, triggering granular updates. + +> [!NOTE] Classes like `Set` and `Map` will not be proxied, but Svelte provides reactive implementations for various built-ins like these that can be imported from [`svelte/reactivity`](./svelte-reactivity). + +State is proxified recursively until Svelte finds something other than an array or simple object. In a case like this... + +```js +let todos = $state([ + { + done: false, + text: 'add more todos' + } +]); +``` + +...modifying an individual todo's property will trigger updates to anything in your UI that depends on that specific property: + +```js +let todos = [{ done: false, text: 'add more todos' }]; +// ---cut--- +todos[0].done = !todos[0].done; +``` + +If you push a new object to the array, it will also be proxified: + +```js +// @filename: ambient.d.ts +declare global { + const todos: Array<{ done: boolean, text: string }> +} + +// @filename: index.js +// ---cut--- +todos.push({ + done: false, + text: 'eat lunch' +}); +``` + +> [!NOTE] When you update properties of proxies, the original object is _not_ mutated. + +Note that if you destructure a reactive value, the references are not reactive — as in normal JavaScript, they are evaluated at the point of destructuring: + +```js +let todos = [{ done: false, text: 'add more todos' }]; +// ---cut--- +let { done, text } = todos[0]; + +// this will not affect the value of `done` +todos[0].done = !todos[0].done; +``` + +### Classes + +You can also use `$state` in class fields (whether public or private): + +```js +// @errors: 7006 2554 +class Todo { + done = $state(false); + text = $state(); + + constructor(text) { + this.text = text; + } + + reset() { + this.text = ''; + this.done = false; + } +} +``` + +> [!NOTE] The compiler transforms `done` and `text` into `get`/`set` methods on the class prototype referencing private fields. This means the properties are not enumerable. + +When calling methods in JavaScript, the value of [`this`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this) matters. This won't work, because `this` inside the `reset` method will be the ` +``` + +You can either use an inline function... + +```svelte + +``` + +...or use an arrow function in the class definition: + +```js +// @errors: 7006 2554 +class Todo { + done = $state(false); + text = $state(); + + constructor(text) { + this.text = text; + } + + +++reset = () => {+++ + this.text = ''; + this.done = false; + } +} +``` + +## `$state.raw` + +In cases where you don't want objects and arrays to be deeply reactive you can use `$state.raw`. + +State declared with `$state.raw` cannot be mutated; it can only be _reassigned_. In other words, rather than assigning to a property of an object, or using an array method like `push`, replace the object or array altogether if you'd like to update it: + +```js +let person = $state.raw({ + name: 'Heraclitus', + age: 49 +}); + +// this will have no effect +person.age += 1; + +// this will work, because we're creating a new person +person = { + name: 'Heraclitus', + age: 50 +}; +``` + +This can improve performance with large arrays and objects that you weren't planning to mutate anyway, since it avoids the cost of making them reactive. Note that raw state can _contain_ reactive state (for example, a raw array of reactive objects). + +## `$state.snapshot` + +To take a static snapshot of a deeply reactive `$state` proxy, use `$state.snapshot`: + +```svelte + +``` + +This is handy when you want to pass some state to an external library or API that doesn't expect a proxy, such as `structuredClone`. + +## Passing state into functions + +JavaScript is a _pass-by-value_ language — when you call a function, the arguments are the _values_ rather than the _variables_. In other words: + +```js +/// file: index.js +// @filename: index.js +// ---cut--- +/** + * @param {number} a + * @param {number} b + */ +function add(a, b) { + return a + b; +} + +let a = 1; +let b = 2; +let total = add(a, b); +console.log(total); // 3 + +a = 3; +b = 4; +console.log(total); // still 3! +``` + +If `add` wanted to have access to the _current_ values of `a` and `b`, and to return the current `total` value, you would need to use functions instead: + +```js +/// file: index.js +// @filename: index.js +// ---cut--- +/** + * @param {() => number} getA + * @param {() => number} getB + */ +function add(+++getA, getB+++) { + return +++() => getA() + getB()+++; +} + +let a = 1; +let b = 2; +let total = add+++(() => a, () => b)+++; +console.log(+++total()+++); // 3 + +a = 3; +b = 4; +console.log(+++total()+++); // 7 +``` + +State in Svelte is no different — when you reference something declared with the `$state` rune... + +```js +let a = +++$state(1)+++; +let b = +++$state(2)+++; +``` + +...you're accessing its _current value_. + +Note that 'functions' is broad — it encompasses properties of proxies and [`get`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get)/[`set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set) properties... + +```js +/// file: index.js +// @filename: index.js +// ---cut--- +/** + * @param {{ a: number, b: number }} input + */ +function add(input) { + return { + get value() { + return input.a + input.b; + } + }; +} + +let input = $state({ a: 1, b: 2 }); +let total = add(input); +console.log(total.value); // 3 + +input.a = 3; +input.b = 4; +console.log(total.value); // 7 +``` + +...though if you find yourself writing code like that, consider using [classes](#Classes) instead. + +# $derived + +Derived state is declared with the `$derived` rune: + +```svelte + + + + +

    {count} doubled is {doubled}

    +``` + +The expression inside `$derived(...)` should be free of side-effects. Svelte will disallow state changes (e.g. `count++`) inside derived expressions. + +As with `$state`, you can mark class fields as `$derived`. + +> [!NOTE] Code in Svelte components is only executed once at creation. Without the `$derived` rune, `doubled` would maintain its original value even when `count` changes. + +## `$derived.by` + +Sometimes you need to create complex derivations that don't fit inside a short expression. In these cases, you can use `$derived.by` which accepts a function as its argument. + +```svelte + + + +``` + +In essence, `$derived(expression)` is equivalent to `$derived.by(() => expression)`. + +## Understanding dependencies + +Anything read synchronously inside the `$derived` expression (or `$derived.by` function body) is considered a _dependency_ of the derived state. When the state changes, the derived will be marked as _dirty_ and recalculated when it is next read. + +To exempt a piece of state from being treated as a dependency, use [`untrack`](svelte#untrack). + +# $effect + +Effects are what make your application _do things_. When Svelte runs an effect function, it tracks which pieces of state (and derived state) are accessed (unless accessed inside [`untrack`](svelte#untrack)), and re-runs the function when that state later changes. + +Most of the effects in a Svelte app are created by Svelte itself — they're the bits that update the text in `

    hello {name}!

    ` when `name` changes, for example. + +But you can also create your own effects with the `$effect` rune, which is useful when you need to synchronize an external system (whether that's a library, or a `` element, or something across a network) with state inside your Svelte app. + +> [!NOTE] Avoid overusing `$effect`! When you do too much work in effects, code often becomes difficult to understand and maintain. See [when not to use `$effect`](#When-not-to-use-$effect) to learn about alternative approaches. + +Your effects run after the component has been mounted to the DOM, and in a [microtask](https://developer.mozilla.org/en-US/docs/Web/API/HTML_DOM_API/Microtask_guide) after state changes ([demo](/playground/untitled#H4sIAAAAAAAAE31S246bMBD9lZF3pSRSAqTVvrCAVPUP2sdSKY4ZwJJjkD0hSVH-vbINuWxXfQH5zMyZc2ZmZLVUaFn6a2R06ZGlHmBrpvnBvb71fWQHVOSwPbf4GS46TajJspRlVhjZU1HqkhQSWPkHIYdXS5xw-Zas3ueI6FRn7qHFS11_xSRZhIxbFtcDtw7SJb1iXaOg5XIFeQGjzyPRaevYNOGZIJ8qogbpe8CWiy_VzEpTXiQUcvPDkSVrSNZz1UlW1N5eLcqmpdXUvaQ4BmqlhZNUCgxuzFHDqUWNAxrYeUM76AzsnOsdiJbrBp_71lKpn3RRbii-4P3f-IMsRxS-wcDV_bL4PmSdBa2wl7pKnbp8DMgVvJm8ZNskKRkEM_OzyOKQFkgqOYBQ3Nq89Ns0nbIl81vMFN-jKoLMTOr-SOBOJS-Z8f5Y6D1wdcR8dFqvEBdetK-PHwj-z-cH8oHPY54wRJ8Ys7iSQ3Bg3VA9azQbmC9k35kKzYa6PoVtfwbbKVnBixBiGn7Pq0rqJoUtHiCZwAM3jdTPWCVtr_glhVrhecIa3vuksJ_b7TqFs4DPyriSjd5IwoNNQaAmNI-ESfR2p8zimzvN1swdCkvJHPH6-_oX8o1SgcIDAAA=)): + +```svelte + + + +``` + +Re-runs are batched (i.e. changing `color` and `size` in the same moment won't cause two separate runs), and happen after any DOM updates have been applied. + +You can place `$effect` anywhere, not just at the top level of a component, as long as it is called during component initialization (or while a parent effect is active). It is then tied to the lifecycle of the component (or parent effect) and will therefore destroy itself when the component unmounts (or the parent effect is destroyed). + +You can return a function from `$effect`, which will run immediately before the effect re-runs, and before it is destroyed ([demo](/playground/untitled#H4sIAAAAAAAAE42RQY-bMBCF_8rI2kPopiXpMQtIPfbeW6m0xjyKtWaM7CFphPjvFVB2k2oPe7LmzXzyezOjaqxDVKefo5JrD3VaBLVXrLu5-tb3X-IZTmat0hHv6cazgCWqk8qiCbaXouRSHISMH1gop4coWrA7JE9bp7PO2QjjuY5vA8fDYZ3hUh7QNDCy2yWUFzTOUilpSj9aG-linaMKFGACtKCmSwvGGYGeLQvCWbtnMq3m34grajxHoa1JOUXI93_V_Sfz7Oz7Mafj0ypN-zvHm8dSAmQITP_xaUq2IU1GO1dp80I2Uh_82dao92Rl9R8GvgF0QrbrUFstcFeq0PgAkha0LoICPoeB4w1SJUvsZcj4rvcMlvmvGlGCv6J-DeSgw2vabQnJlm55p7nM0rcTctYei3HZxZSl7XHVqkHEM3k2zpqXfFyj393zU05fpyI6f0HI0hUoPoamC9roKDeo2ivBH1EnCQOmX9NfYw2GHrgCAAA=)). + +```svelte + + +

    {count}

    + + + +``` + +### Understanding dependencies + +`$effect` automatically picks up any reactive values (`$state`, `$derived`, `$props`) that are _synchronously_ read inside its function body and registers them as dependencies. When those dependencies change, the `$effect` schedules a rerun. + +Values that are read _asynchronously_ — after an `await` or inside a `setTimeout`, for example — will not be tracked. Here, the canvas will be repainted when `color` changes, but not when `size` changes ([demo](/playground/untitled#H4sIAAAAAAAAE31T246bMBD9lZF3pWSlBEirfaEQqdo_2PatVIpjBrDkGGQPJGnEv1e2IZfVal-wfHzmzJyZ4cIqqdCy9M-F0blDlnqArZjmB3f72XWRHVCRw_bc4me4aDWhJstSlllhZEfbQhekkMDKfwg5PFvihMvX5OXH_CJa1Zrb0-Kpqr5jkiwC48rieuDWQbqgZ6wqFLRcvkC-hYvnkWi1dWqa8ESQTxFRjfQWsOXiWzmr0sSLhEJu3p1YsoJkNUcdZUnN9dagrBu6FVRQHAM10sJRKgUG16bXcGxQ44AGdt7SDkTDdY02iqLHnJVU6hedlWuIp94JW6Tf8oBt_8GdTxlF0b4n0C35ZLBzXb3mmYn3ae6cOW74zj0YVzDNYXRHFt9mprNgHfZSl6mzml8CMoLvTV6wTZIUDEJv5us2iwMtiJRyAKG4tXnhl8O0yhbML0Wm-B7VNlSSSd31BG7z8oIZZ6dgIffAVY_5xdU9Qrz1Bnx8fCfwtZ7v8Qc9j3nB8PqgmMWlHIID6-bkVaPZwDySfWtKNGtquxQ23Qlsq2QJT0KIqb8dL0up6xQ2eIBkAg_c1FI_YqW0neLnFCqFpwmreedJYT7XX8FVOBfwWRhXstZrSXiwKQjUhOZeMIleb5JZfHWn2Yq5pWEpmR7Hv-N_wEqT8hEEAAA=)): + +```ts +// @filename: index.ts +declare let canvas: { + width: number; + height: number; + getContext(type: '2d', options?: CanvasRenderingContext2DSettings): CanvasRenderingContext2D; +}; +declare let color: string; +declare let size: number; + +// ---cut--- +$effect(() => { + const context = canvas.getContext('2d'); + context.clearRect(0, 0, canvas.width, canvas.height); + + // this will re-run whenever `color` changes... + context.fillStyle = color; + + setTimeout(() => { + // ...but not when `size` changes + context.fillRect(0, 0, size, size); + }, 0); +}); +``` + +An effect only reruns when the object it reads changes, not when a property inside it changes. (If you want to observe changes _inside_ an object at dev time, you can use [`$inspect`]($inspect).) + +```svelte + + + + +

    {state.value} doubled is {derived.value}

    +``` + +An effect only depends on the values that it read the last time it ran. If `a` is true, changes to `b` will [not cause this effect to rerun](/playground/untitled#H4sIAAAAAAAAE3WQ0WrDMAxFf0U1hTow1vcsMfQ7lj3YjlxEXTvEymC4_vfFC6Ewtidxde8RkrJw5DGJ9j2LoO8oWnGZJvEi-GuqIn2iZ1x1istsa6dLdqaJ1RAG9sigoYdjYs0onfYJm7fdMX85q3dE59CylA30CnJtDWxjSNHjq49XeZqXEChcT9usLUAOpIbHA0yzM78oColGhDVofLS3neZSS6mqOz-XD51ZmGOAGKwne-vztk-956CL0kAJsi7decupf4l658EUZX4I8yTWt93jSI5wFC3PC5aP8g0Aje5DcQEAAA==): + +```ts +let a = false; +let b = false; +// ---cut--- +$effect(() => { + console.log('running'); + + if (a || b) { + console.log('inside if block'); + } +}); +``` + +## `$effect.pre` + +In rare cases, you may need to run code _before_ the DOM updates. For this we can use the `$effect.pre` rune: + +```svelte + + +
    + {#each messages as message} +

    {message}

    + {/each} +
    +``` + +Apart from the timing, `$effect.pre` works exactly like `$effect`. + +## `$effect.tracking` + +The `$effect.tracking` rune is an advanced feature that tells you whether or not the code is running inside a tracking context, such as an effect or inside your template ([demo](/playground/untitled#H4sIAAAAAAAACn3PwYrCMBDG8VeZDYIt2PYeY8Dn2HrIhqkU08nQjItS-u6buAt7UDzmz8ePyaKGMWBS-nNRcmdU-hHUTpGbyuvI3KZvDFLal0v4qvtIgiSZUSb5eWSxPfWSc4oB2xDP1XYk8HHiSHkICeXKeruDDQ4Demlldv4y0rmq6z10HQwuJMxGVv4mVVXDwcJS0jP9u3knynwtoKz1vifT_Z9Jhm0WBCcOTlDD8kyspmML5qNpHg40jc3fFryJ0iWsp_UHgz3180oBAAA=)): + +```svelte + + +

    in template: {$effect.tracking()}

    +``` + +This allows you to (for example) add things like subscriptions without causing memory leaks, by putting them in child effects. Here's a `readable` function that listens to changes from a callback function as long as it's inside a tracking context: + +```ts +import { tick } from 'svelte'; + +export default function readable( + initial_value: T, + start: (callback: (update: (v: T) => T) => T) => () => void +) { + let value = $state(initial_value); + + let subscribers = 0; + let stop: null | (() => void) = null; + + return { + get value() { + // If in a tracking context ... + if ($effect.tracking()) { + $effect(() => { + // ...and there's no subscribers yet... + if (subscribers === 0) { + // ...invoke the function and listen to changes to update state + stop = start((fn) => (value = fn(value))); + } + + subscribers++; + + // The return callback is called once a listener unlistens + return () => { + tick().then(() => { + subscribers--; + // If it was the last subscriber... + if (subscribers === 0) { + // ...stop listening to changes + stop?.(); + stop = null; + } + }); + }; + }); + } + + return value; + } + }; +} +``` + +## `$effect.root` + +The `$effect.root` rune is an advanced feature that creates a non-tracked scope that doesn't auto-cleanup. This is useful for nested effects that you want to manually control. This rune also allows for the creation of effects outside of the component initialisation phase. + +```svelte + +``` + +## When not to use `$effect` + +In general, `$effect` is best considered something of an escape hatch — useful for things like analytics and direct DOM manipulation — rather than a tool you should use frequently. In particular, avoid using it to synchronise state. Instead of this... + +```svelte + +``` + +...do this: + +```svelte + +``` + +> [!NOTE] For things that are more complicated than a simple expression like `count * 2`, you can also use `$derived.by`. + +You might be tempted to do something convoluted with effects to link one value to another. The following example shows two inputs for "money spent" and "money left" that are connected to each other. If you update one, the other should update accordingly. Don't use effects for this ([demo](/playground/untitled#H4sIAAAAAAAACpVRy26DMBD8FcvKgUhtoIdeHBwp31F6MGSJkBbHwksEQvx77aWQqooq9bgzOzP7mGTdIHipPiZJowOpGJAv0po2VmfnDv4OSBErjYdneHWzBJaCjcx91TWOToUtCIEE3cig0OIty44r5l1oDtjOkyFIsv3GINQ_CNYyGegd1DVUlCR7oU9iilDUcP8S8roYs9n8p2wdYNVFm4csTx872BxNCcjr5I11fdgonEkXsjP2CoUUZWMv6m6wBz2x7yxaM-iJvWeRsvSbSVeUy5i0uf8vKA78NIeJLSZWv1I8jQjLdyK4XuTSeIdmVKJGGI4LdjVOiezwDu1yG74My8PLCQaSiroe5s_5C2PHrkVGAgAA)): + +```svelte + + + + + +``` + +Instead, use callbacks where possible ([demo](/playground/untitled#H4sIAAAAAAAACo1SMW6EMBD8imWluFMSIEUaDiKlvy5lSOHjlhOSMRZeTiDkv8deMEEJRcqdmZ1ZjzzxqpZgePo5cRw18JQA_sSVaPz0rnVk7iDRYxdhYA8vW4Wg0NnwzJRdrfGtUAVKQIYtCsly9pIkp4AZ7cQOezAoEA7JcWUkVBuCdol0dNWrEutWsV5fHfnhPQ5wZJMnCwyejxCh6G6A0V3IHk4zu_jOxzzPBxBld83PTr7xXrb3rUNw8PbiYJ3FP22oTIoLSComq5XuXTeu8LzgnVA3KDgj13wiQ8taRaJ82rzXskYM-URRlsXktejjgNLoo9e4fyf70_8EnwncySX1GuunX6kGRwnzR_BgaPNaGy3FmLJKwrCUeBM6ZUn0Cs2mOlp3vwthQJ5i14P9st9vZqQlsQIAAA==)): + +```svelte + + + + + +``` + +If you need to use bindings, for whatever reason (for example when you want some kind of "writable `$derived`"), consider using getters and setters to synchronise state ([demo](/playground/untitled#H4sIAAAAAAAACpWRwW6DMBBEf8WyekikFOihFwcq9TvqHkyyQUjGsfCCQMj_XnvBNKpy6Qn2DTOD1wu_tRocF18Lx9kCFwT4iRvVxenT2syNoDGyWjl4xi93g2AwxPDSXfrW4oc0EjUgwzsqzSr2VhTnxJwNHwf24lAhHIpjVDZNwy1KS5wlNoGMSg9wOCYksQccerMlv65p51X0p_Xpdt_4YEy9yTkmV3z4MJT579-bUqsaNB2kbI0dwlnCgirJe2UakJzVrbkKaqkWivasU1O1ULxnOVk3JU-Uxti0p_-vKO4no_enbQ_yXhnZn0aHs4b1jiJMK7q2zmo1C3bTMG3LaZQVrMjeoSPgaUtkDxePMCEX2Ie6b_8D4WyJJEwCAAA=)): + +```svelte + + + + + +``` + +If you absolutely have to update `$state` within an effect and run into an infinite loop because you read and write to the same `$state`, use [untrack](svelte#untrack). + +# $props + +The inputs to a component are referred to as _props_, which is short for _properties_. You pass props to components just like you pass attributes to elements: + +```svelte + + + + +``` + +On the other side, inside `MyComponent.svelte`, we can receive props with the `$props` rune... + +```svelte + + + +

    this component is {props.adjective}

    +``` + +...though more commonly, you'll [_destructure_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment) your props: + +```svelte + + + +

    this component is {+++adjective+++}

    +``` + +## Fallback values + +Destructuring allows us to declare fallback values, which are used if the parent component does not set a given prop: + +```js +let { adjective = 'happy' } = $props(); +``` + +> [!NOTE] Fallback values are not turned into reactive state proxies (see [Updating props](#Updating-props) for more info) + +## Renaming props + +We can also use the destructuring assignment to rename props, which is necessary if they're invalid identifiers, or a JavaScript keyword like `super`: + +```js +let { super: trouper = 'lights are gonna find me' } = $props(); +``` + +## Rest props + +Finally, we can use a _rest property_ to get, well, the rest of the props: + +```js +let { a, b, c, ...others } = $props(); +``` + +## Updating props + +References to a prop inside a component update when the prop itself updates — when `count` changes in `App.svelte`, it will also change inside `Child.svelte`. But the child component is able to temporarily override the prop value, which can be useful for unsaved ephemeral state ([demo](/playground/untitled#H4sIAAAAAAAAE6WQ0WrDMAxFf0WIQR0Wmu3VTQJln7HsIfVcZubIxlbGRvC_DzuBraN92qPula50tODZWB1RPi_IX16jLALWSOOUq6P3-_ihLWftNEZ9TVeOWBNHlNhGFYznfqCBzeRdYHh6M_YVzsFNsNs3pdpGd4eBcqPVDMrNxNDBXeSRtXioDgO1zU8ataeZ2RE4Utao924RFXQ9iHXwvoPHKpW1xY4g_Bg0cSVhKS0p560Za95612ZC02ONrD8ZJYdZp_rGQ37ff_mSP86Np2TWZaNNmdcH56P4P67K66_SXoK9pG-5dF5Z9QEAAA==)): + +```svelte + + + + + + +``` + +```svelte + + + + +``` + +While you can temporarily _reassign_ props, you should not _mutate_ props unless they are [bindable]($bindable). + +If the prop is a regular object, the mutation will have no effect ([demo](/playground/untitled#H4sIAAAAAAAAE3WQwU7DMBBEf2W1QmorQgJXk0RC3PkBwiExG9WQrC17U4Es_ztKUkQp9OjxzM7bjcjtSKjwyfKNp1aLORA4b13ADHszUED1HFE-3eyaBcy-Mw_O5eFAg8xa1wb6T9eWhVgCKiyD9sZJ3XAjZnTWCzzuzfAKvbcjbPJieR2jm_uGy-InweXqtd0baaliBG0nFgW3kBIUNWYo9CGoxE-UsgvIpw2_oc9-LmAPJBCPDJCggqvlVtvdH9puErEMlvVg9HsVtzuoaojzkKKAfRuALVDfk5ZZW0fmy05wXcFdwyktlUs-KIinljTXrRVnm7-kL9dYLVbUAQAA)): + +```svelte + + + + +``` + +```svelte + + + + +``` + +If the prop is a reactive state proxy, however, then mutations _will_ have an effect but you will see an [`ownership_invalid_mutation`](runtime-warnings#Client-warnings-ownership_invalid_mutation) warning, because the component is mutating state that does not 'belong' to it ([demo](/playground/untitled#H4sIAAAAAAAAE3WR0U7DMAxFf8VESBuiauG1WycheOEbKA9p67FA6kSNszJV-XeUZhMw2GN8r-1znUmQ7FGU4pn2UqsOes-SlSGRia3S6ET5Mgk-2OiJBZGdOh6szd0eNcdaIx3-V28NMRI7UYq1awdleVNTzaq3ZmB43CndwXYwPSzyYn4dWxermqJRI4Np3rFlqODasWRcTtAaT1zCHYSbVU3r4nsyrdPMKTUFKDYiE4yfLEoePIbsQpqfy3_nOVMuJIqg0wk1RFg7GOuWfwEbz2wIDLVatR_VtLyBagNTHFIUMCqtoZXeIfAOU1JoUJsR2IC3nWTMjt7GM4yKdyBhlAMpesvhydCC0y_i0ZagHByMh26WzUhXUUxKnpbcVnBfUwhznJnNlac7JkuIURL-2VVfwxflyrWcSQIAAA==)): + +```svelte + + + + +``` + +```svelte + + + + +``` + +The fallback value of a prop not declared with `$bindable` is left untouched — it is not turned into a reactive state proxy — meaning mutations will not cause updates ([demo](/playground/untitled#H4sIAAAAAAAAE3WQwU7DMBBEf2VkIbUVoYFraCIh7vwA4eC4G9Wta1vxpgJZ_nfkBEQp9OjxzOzTRGHlkUQlXpy9G0gq1idCL43ppDrAD84HUYheGwqieo2CP3y2Z0EU3-En79fhRIaz1slA_-nKWSbLQVRiE9SgPTetbVkfvRsYzztttugHd8RiXU6vr-jisbWb8idhN7O3bEQhmN5ZVDyMlIorcOddv_Eufq4AGmJEuG5PilEjQrnRcoV7JCTUuJlGWq7-YHYjs7NwVhmtDnVcrlA3iLmzLLGTAdaB-j736h68Oxv-JM1I0AFjoG1OzPfX023c1nhobUoT39QeKsRzS8owM8DFTG_pE6dcVl70AQAA)) + +```svelte + + + + +``` + +In summary: don't mutate props. Either use callback props to communicate changes, or — if parent and child should share the same object — use the [`$bindable`]($bindable) rune. + +## Type safety + +You can add type safety to your components by annotating your props, as you would with any other variable declaration. In TypeScript that might look like this... + +```svelte + +``` + +...while in JSDoc you can do this: + +```svelte + +``` + +You can, of course, separate the type declaration from the annotation: + +```svelte + +``` + +Adding types is recommended, as it ensures that people using your component can easily discover which props they should provide. + +# $bindable + +Ordinarily, props go one way, from parent to child. This makes it easy to understand how data flows around your app. + +In Svelte, component props can be _bound_, which means that data can also flow _up_ from child to parent. This isn't something you should do often, but it can simplify your code if used sparingly and carefully. + +It also means that a state proxy can be _mutated_ in the child. + +> [!NOTE] Mutation is also possible with normal props, but is strongly discouraged — Svelte will warn you if it detects that a component is mutating state it does not 'own'. + +To mark a prop as bindable, we use the `$bindable` rune: + + +```svelte +/// file: FancyInput.svelte + + + + + +``` + +Now, a component that uses `` can add the [`bind:`](bind) directive ([demo](/playground/untitled#H4sIAAAAAAAAE3WQwWrDMBBEf2URBSfg2nfFMZRCoYeecqx6UJx1IyqvhLUONcb_XqSkTUOSk1az7DBvJtEai0HI90nw6FHIJIhckO7i78n7IhzQctS2OuAtvXHESByEFFVoeuO5VqTYdN71DC-amvGV_MDQ9q6DrCjP0skkWymKJxYZOgxBfyKs4SGwZlxke7TWZcuVoqo8-1P1z3lraCcP2g64nk4GM5S1osrXf0JV-lrkgvGbheR-wDm_g30V8JL-1vpOCZFogpQsEsWcemtxscyhKArfOx9gjps0Lq4hzRVfemaYfu-PoIqqwKPFY_XpaIqj4tYRP7a6M3aUkD27zjSw0RTgbZN6Z8WNs66XsEP03tBXUueUJFlelvYx_wCuI3leNwIAAA==)): + + +```svelte +/// App.svelte + + + +

    {message}

    +``` + +The parent component doesn't _have_ to use `bind:` — it can just pass a normal prop. Some parents don't want to listen to what their children have to say. + +In this case, you can specify a fallback value for when no prop is passed at all: + +```js +/// file: FancyInput.svelte +let { value = $bindable('fallback'), ...props } = $props(); +``` + +# $inspect + +> [!NOTE] `$inspect` only works during development. In a production build it becomes a noop. + +The `$inspect` rune is roughly equivalent to `console.log`, with the exception that it will re-run whenever its argument changes. `$inspect` tracks reactive state deeply, meaning that updating something inside an object or array using fine-grained reactivity will cause it to re-fire ([demo](/playground/untitled#H4sIAAAAAAAACkWQ0YqDQAxFfyUMhSotdZ-tCvu431AXtGOqQ2NmmMm0LOK_r7Utfby5JzeXTOpiCIPKT5PidkSVq2_n1F7Jn3uIcEMSXHSw0evHpAjaGydVzbUQCmgbWaCETZBWMPlKj29nxBDaHj_edkAiu12JhdkYDg61JGvE_s2nR8gyuBuiJZuDJTyQ7eE-IEOzog1YD80Lb0APLfdYc5F9qnFxjiKWwbImo6_llKRQVs-2u91c_bD2OCJLkT3JZasw7KLA2XCX31qKWE6vIzNk1fKE0XbmYrBTufiI8-_8D2cUWBA_AQAA)): + +```svelte + + + + +``` + +## $inspect(...).with + +`$inspect` returns a property `with`, which you can invoke with a callback, which will then be invoked instead of `console.log`. The first argument to the callback is either `"init"` or `"update"`; subsequent arguments are the values passed to `$inspect` ([demo](/playground/untitled#H4sIAAAAAAAACkVQ24qDMBD9lSEUqlTqPlsj7ON-w7pQG8c2VCchmVSK-O-bKMs-DefKYRYx6BG9qL4XQd2EohKf1opC8Nsm4F84MkbsTXAqMbVXTltuWmp5RAZlAjFIOHjuGLOP_BKVqB00eYuKs82Qn2fNjyxLtcWeyUE2sCRry3qATQIpJRyD7WPVMf9TW-7xFu53dBcoSzAOrsqQNyOe2XUKr0Xi5kcMvdDB2wSYO-I9vKazplV1-T-d6ltgNgSG1KjVUy7ZtmdbdjqtzRcphxMS1-XubOITJtPrQWMvKnYB15_1F7KKadA_AQAA)): + +```svelte + + + +``` + +A convenient way to find the origin of some change is to pass `console.trace` to `with`: + +```js +// @errors: 2304 +$inspect(stuff).with(console.trace); +``` + +## $inspect.trace(...) + +This rune, added in 5.14, causes the surrounding function to be _traced_ in development. Any time the function re-runs as part of an [effect]($effect) or a [derived]($derived), information will be printed to the console about which pieces of reactive state caused the effect to fire. + +```svelte + +``` + +`$inspect.trace` takes an optional first argument which will be used as the label. + +# $host + +When compiling a component as a custom element, the `$host` rune provides access to the host element, allowing you to (for example) dispatch custom events ([demo](/playground/untitled#H4sIAAAAAAAAE41Ry2rDMBD8FSECtqkTt1fHFpSSL-ix7sFRNkTEXglrnTYY_3uRlDgxTaEHIfYxs7szA9-rBizPPwZOZwM89wmecqxbF70as7InaMjltrWFR3mpkQDJ8pwXVnbKkKiwItUa3RGLVtk7gTHQXRDR2lXda4CY1D0SK9nCUk0QPyfrCovsRoNFe17aQOAwGncgO2gBqRzihJXiQrEs2csYOhQ-7HgKHaLIbpRhhBG-I2eD_8ciM4KnnOCbeE5dD2P6h0Dz0-Yi_arNhPLJXBtSGi2TvSXdbpqwdsXvjuYsC1veabvvUTog2ylrapKH2G2XsMFLS4uDthQnq2t1cwKkGOGLvYU5PvaQxLsxOkPmsm97Io1Mo2yUPF6VnOZFkw1RMoopKLKAE_9gmGxyDFMwMcwN-Bx_ABXQWmOtAgAA)): + + +```svelte +/// file: Stepper.svelte + + + + + + +``` + + +```svelte +/// file: App.svelte + + + count -= 1} + onincrement={() => count += 1} +> + +

    count: {count}

    +``` + +# Basic markup + +Markup inside a Svelte component can be thought of as HTML++. + +## Tags + +A lowercase tag, like `
    `, denotes a regular HTML element. A capitalised tag or a tag that uses dot notation, such as `` or ``, indicates a _component_. + +```svelte + + +
    + +
    +``` + +## Element attributes + +By default, attributes work exactly like their HTML counterparts. + +```svelte +
    + +
    +``` + +As in HTML, values may be unquoted. + + +```svelte + +``` + +Attribute values can contain JavaScript expressions. + +```svelte +page {p} +``` + +Or they can _be_ JavaScript expressions. + +```svelte + +``` + +Boolean attributes are included on the element if their value is [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy) and excluded if it's [falsy](https://developer.mozilla.org/en-US/docs/Glossary/Falsy). + +All other attributes are included unless their value is [nullish](https://developer.mozilla.org/en-US/docs/Glossary/Nullish) (`null` or `undefined`). + +```svelte + +
    This div has no title attribute
    +``` + +> [!NOTE] Quoting a singular expression does not affect how the value is parsed, but in Svelte 6 it will cause the value to be coerced to a string: +> +> +> ```svelte +> +> ``` + +When the attribute name and value match (`name={name}`), they can be replaced with `{name}`. + +```svelte + + +``` + +## Component props + +By convention, values passed to components are referred to as _properties_ or _props_ rather than _attributes_, which are a feature of the DOM. + +As with elements, `name={name}` can be replaced with the `{name}` shorthand. + +```svelte + +``` + +_Spread attributes_ allow many attributes or properties to be passed to an element or component at once. + +An element or component can have multiple spread attributes, interspersed with regular ones. + +```svelte + +``` + +## Events + +Listening to DOM events is possible by adding attributes to the element that start with `on`. For example, to listen to the `click` event, add the `onclick` attribute to a button: + +```svelte + +``` + +Event attributes are case sensitive. `onclick` listens to the `click` event, `onClick` listens to the `Click` event, which is different. This ensures you can listen to custom events that have uppercase characters in them. + +Because events are just attributes, the same rules as for attributes apply: + +- you can use the shorthand form: `` +- you can spread them: `` + +Timing-wise, event attributes always fire after events from bindings (e.g. `oninput` always fires after an update to `bind:value`). Under the hood, some event handlers are attached directly with `addEventListener`, while others are _delegated_. + +When using `ontouchstart` and `ontouchmove` event attributes, the handlers are [passive](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#using_passive_listeners) for better performance. This greatly improves responsiveness by allowing the browser to scroll the document immediately, rather than waiting to see if the event handler calls `event.preventDefault()`. + +In the very rare cases that you need to prevent these event defaults, you should use [`on`](svelte-events#on) instead (for example inside an action). + +### Event delegation + +To reduce memory footprint and increase performance, Svelte uses a technique called event delegation. This means that for certain events — see the list below — a single event listener at the application root takes responsibility for running any handlers on the event's path. + +There are a few gotchas to be aware of: + +- when you manually dispatch an event with a delegated listener, make sure to set the `{ bubbles: true }` option or it won't reach the application root +- when using `addEventListener` directly, avoid calling `stopPropagation` or the event won't reach the application root and handlers won't be invoked. Similarly, handlers added manually inside the application root will run _before_ handlers added declaratively deeper in the DOM (with e.g. `onclick={...}`), in both capturing and bubbling phases. For these reasons it's better to use the `on` function imported from `svelte/events` rather than `addEventListener`, as it will ensure that order is preserved and `stopPropagation` is handled correctly. + +The following event handlers are delegated: + +- `beforeinput` +- `click` +- `change` +- `dblclick` +- `contextmenu` +- `focusin` +- `focusout` +- `input` +- `keydown` +- `keyup` +- `mousedown` +- `mousemove` +- `mouseout` +- `mouseover` +- `mouseup` +- `pointerdown` +- `pointermove` +- `pointerout` +- `pointerover` +- `pointerup` +- `touchend` +- `touchmove` +- `touchstart` + +## Text expressions + +A JavaScript expression can be included as text by surrounding it with curly braces. + +```svelte +{expression} +``` + +Curly braces can be included in a Svelte template by using their [HTML entity](https://developer.mozilla.org/docs/Glossary/Entity) strings: `{`, `{`, or `{` for `{` and `}`, `}`, or `}` for `}`. + +If you're using a regular expression (`RegExp`) [literal notation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#literal_notation_and_constructor), you'll need to wrap it in parentheses. + + +```svelte +

    Hello {name}!

    +

    {a} + {b} = {a + b}.

    + +
    {(/^[A-Za-z ]+$/).test(value) ? x : y}
    +``` + +The expression will be stringified and escaped to prevent code injections. If you want to render HTML, use the `{@html}` tag instead. + +```svelte +{@html potentiallyUnsafeHtmlString} +``` + +> [!NOTE] Make sure that you either escape the passed string or only populate it with values that are under your control in order to prevent [XSS attacks](https://owasp.org/www-community/attacks/xss/) + +## Comments + +You can use HTML comments inside components. + +```svelte +

    Hello world

    +``` + +Comments beginning with `svelte-ignore` disable warnings for the next block of markup. Usually, these are accessibility warnings; make sure that you're disabling them for a good reason. + +```svelte + + +``` + +You can add a special comment starting with `@component` that will show up when hovering over the component name in other files. + +````svelte + + + +
    +

    + Hello, {name} +

    +
    +```` + +# {#if ...} + +```svelte + +{#if expression}...{/if} +``` + +```svelte + +{#if expression}...{:else if expression}...{/if} +``` + +```svelte + +{#if expression}...{:else}...{/if} +``` + +Content that is conditionally rendered can be wrapped in an if block. + +```svelte +{#if answer === 42} +

    what was the question?

    +{/if} +``` + +Additional conditions can be added with `{:else if expression}`, optionally ending in an `{:else}` clause. + +```svelte +{#if porridge.temperature > 100} +

    too hot!

    +{:else if 80 > porridge.temperature} +

    too cold!

    +{:else} +

    just right!

    +{/if} +``` + +(Blocks don't have to wrap elements, they can also wrap text within elements.) + +# {#each ...} + +```svelte + +{#each expression as name}...{/each} +``` + +```svelte + +{#each expression as name, index}...{/each} +``` + +Iterating over values can be done with an each block. The values in question can be arrays, array-like objects (i.e. anything with a `length` property), or iterables like `Map` and `Set` — in other words, anything that can be used with `Array.from`. + +```svelte +

    Shopping list

    +
      + {#each items as item} +
    • {item.name} x {item.qty}
    • + {/each} +
    +``` + +An each block can also specify an _index_, equivalent to the second argument in an `array.map(...)` callback: + +```svelte +{#each items as item, i} +
  • {i + 1}: {item.name} x {item.qty}
  • +{/each} +``` + +## Keyed each blocks + +```svelte + +{#each expression as name (key)}...{/each} +``` + +```svelte + +{#each expression as name, index (key)}...{/each} +``` + +If a _key_ expression is provided — which must uniquely identify each list item — Svelte will use it to diff the list when data changes, rather than adding or removing items at the end. The key can be any object, but strings and numbers are recommended since they allow identity to persist when the objects themselves change. + +```svelte +{#each items as item (item.id)} +
  • {item.name} x {item.qty}
  • +{/each} + + +{#each items as item, i (item.id)} +
  • {i + 1}: {item.name} x {item.qty}
  • +{/each} +``` + +You can freely use destructuring and rest patterns in each blocks. + +```svelte +{#each items as { id, name, qty }, i (id)} +
  • {i + 1}: {name} x {qty}
  • +{/each} + +{#each objects as { id, ...rest }} +
  • {id}
  • +{/each} + +{#each items as [id, ...rest]} +
  • {id}
  • +{/each} +``` + +## Each blocks without an item + +```svelte + +{#each expression}...{/each} +``` + +```svelte + +{#each expression, index}...{/each} +``` + +In case you just want to render something `n` times, you can omit the `as` part ([demo](/playground/untitled#H4sIAAAAAAAAE3WR0W7CMAxFf8XKNAk0WsSeUEaRpn3Guoc0MbQiJFHiMlDVf18SOrZJ48259_jaVgZmxBEZZ28thgCNFV6xBdt1GgPj7wOji0t2EqI-wa_OleGEmpLWiID_6dIaQkMxhm1UdwKpRQhVzWSaVORJNdvWpqbhAYVsYQCNZk8thzWMC_DCHMZk3wPSThNQ088I3mghD9UwSwHwlLE5PMIzVFUFq3G7WUZ2OyUvU3JOuZU332wCXTRmtPy1NgzXZtUFp8WFw9536uWqpbIgPEaDsJBW90cTOHh0KGi2XsBq5-cT6-3nPauxXqHnsHJnCFZ3CvJVkyuCQ0mFF9TZyCQ162WGvteLKfG197Y3iv_pz_fmS68Hxt8iPBPj5HscP8YvCNX7uhYCAAA=)): + +```svelte +
    + {#each { length: 8 }, rank} + {#each { length: 8 }, file} +
    + {/each} + {/each} +
    +``` + +## Else blocks + +```svelte + +{#each expression as name}...{:else}...{/each} +``` + +An each block can also have an `{:else}` clause, which is rendered if the list is empty. + +```svelte +{#each todos as todo} +

    {todo.text}

    +{:else} +

    No tasks today!

    +{/each} +``` + +# {#key ...} + +```svelte + +{#key expression}...{/key} +``` + +Key blocks destroy and recreate their contents when the value of an expression changes. When used around components, this will cause them to be reinstantiated and reinitialised: + +```svelte +{#key value} + +{/key} +``` + +It's also useful if you want a transition to play whenever a value changes: + +```svelte +{#key value} +
    {value}
    +{/key} +``` + +# {#await ...} + +```svelte + +{#await expression}...{:then name}...{:catch name}...{/await} +``` + +```svelte + +{#await expression}...{:then name}...{/await} +``` + +```svelte + +{#await expression then name}...{/await} +``` + +```svelte + +{#await expression catch name}...{/await} +``` + +Await blocks allow you to branch on the three possible states of a [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) — pending, fulfilled or rejected. + +```svelte +{#await promise} + +

    waiting for the promise to resolve...

    +{:then value} + +

    The value is {value}

    +{:catch error} + +

    Something went wrong: {error.message}

    +{/await} +``` + +> [!NOTE] During server-side rendering, only the pending branch will be rendered. +> +> If the provided expression is not a `Promise`, only the `:then` branch will be rendered, including during server-side rendering. + +The `catch` block can be omitted if you don't need to render anything when the promise rejects (or no error is possible). + +```svelte +{#await promise} + +

    waiting for the promise to resolve...

    +{:then value} + +

    The value is {value}

    +{/await} +``` + +If you don't care about the pending state, you can also omit the initial block. + +```svelte +{#await promise then value} +

    The value is {value}

    +{/await} +``` + +Similarly, if you only want to show the error state, you can omit the `then` block. + +```svelte +{#await promise catch error} +

    The error is {error}

    +{/await} +``` + +> [!NOTE] You can use `#await` with [`import(...)`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import) to render components lazily: +> +> ```svelte +> {#await import('./Component.svelte') then { default: Component }} +> +> {/await} +> ``` + +# {#snippet ...} + +```svelte + +{#snippet name()}...{/snippet} +``` + +```svelte + +{#snippet name(param1, param2, paramN)}...{/snippet} +``` + +Snippets, and [render tags](@render), are a way to create reusable chunks of markup inside your components. Instead of writing duplicative code like [this](/playground/untitled#H4sIAAAAAAAAE5VUYW-kIBD9K8Tmsm2yXXRzvQ-s3eR-R-0HqqOQKhAZb9sz_vdDkV1t000vRmHewMx7w2AflbIGG7GnPlK8gYhFv42JthG-m9Gwf6BGcLbVXZuPSGrzVho8ZirDGpDIhldgySN5GpEMez9kaNuckY1ANJZRamRuu2ZnhEZt6a84pvs43mzD4pMsUDDi8DMkQFYCGdkvsJwblFq5uCik9bmJ4JZwUkv1eoknWigX2eGNN6aGXa6bjV8ybP-X7sM36T58SVcrIIV2xVIaA41xeD5kKqWXuqpUJEefOqVuOkL9DfBchGrzWfu0vb-RpTd3o-zBR045Ga3HfuE5BmJpKauuhbPtENlUF2sqR9jqpsPSxWsMrlngyj3VJiyYjJXb1-lMa7IWC-iSk2M5Zzh-SJjShe-siq5kpZRPs55BbSGU5YPyte4vVV_VfFXxVb10dSLf17pS2lM5HnpPxw4Zpv6x-F57p0jI3OKlVnhv5V9wPQrNYQQ9D_f6aGHlC89fq1Z3qmDkJCTCweOGF4VUFSPJvD_DhreVdA0eu8ehJJ5x91dBaBkpWm3ureCFPt3uzRv56d4kdp-2euG38XZ6dsnd3ZmPG9yRBCrzRUvi-MccOdwz3qE-fOZ7AwAhlrtTUx3c76vRhSwlFBHDtoPhefgHX3dM0PkEAAA=)... + +```svelte +{#each images as image} + {#if image.href} + +
    + {image.caption} +
    {image.caption}
    +
    +
    + {:else} +
    + {image.caption} +
    {image.caption}
    +
    + {/if} +{/each} +``` + +...you can write [this](/playground/untitled#H4sIAAAAAAAAE5VUYW-bMBD9KxbRlERKY4jWfSA02n5H6QcXDmwVbMs-lnaI_z6D7TTt1moTAnPvzvfenQ_GpBEd2CS_HxPJekjy5IfWyS7BFz0b9id0CM62ajDVjBS2MkLjqZQldoBE9KwFS-7I_YyUOPqlRGuqnKw5orY5pVpUduj3mitUln5LU3pI0_UuBp9FjTwnDr9AHETLMSeHK6xiGoWSLi9yYT034cwSRjohn17zcQPNFTs8s153sK9Uv_Yh0-5_5d7-o9zbD-UqCaRWrllSYZQxLw_HUhb0ta-y4NnJUxfUvc7QuLJSaO0a3oh2MLBZat8u-wsPnXzKQvTtVVF34xK5d69ThFmHEQ4SpzeVRediTG8rjD5vBSeN3E5JyHh6R1DQK9-iml5kjzQUN_lSgVU8DhYLx7wwjSvRkMDvTjiwF4zM1kXZ7DlF1eN3A7IG85e-zRrYEjjm0FkI4Cc7Ripm0pHOChexhcWXzreeZyRMU6Mk3ljxC9w4QH-cQZ_b3T5pjHxk1VNr1CDrnJy5QDh6XLO6FrLNSRb2l9gz0wo3S6m7HErSgLsPGMHkpDZK31jOanXeHPQz-eruLHUP0z6yTbpbrn223V70uMXNSpQSZjpL0y8hcxxpNqA6_ql3BQAxlxvfpQ_uT9GrWjQC6iRHM8D0MP0GQsIi92QEAAA=): + +```svelte +{#snippet figure(image)} +
    + {image.caption} +
    {image.caption}
    +
    +{/snippet} + +{#each images as image} + {#if image.href} + + {@render figure(image)} + + {:else} + {@render figure(image)} + {/if} +{/each} +``` + +Like function declarations, snippets can have an arbitrary number of parameters, which can have default values, and you can destructure each parameter. You cannot use rest parameters, however. + +## Snippet scope + +Snippets can be declared anywhere inside your component. They can reference values declared outside themselves, for example in the ` + +{#snippet hello(name)} +

    hello {name}! {message}!

    +{/snippet} + +{@render hello('alice')} +{@render hello('bob')} +``` + +...and they are 'visible' to everything in the same lexical scope (i.e. siblings, and children of those siblings): + +```svelte +
    + {#snippet x()} + {#snippet y()}...{/snippet} + + + {@render y()} + {/snippet} + + + {@render y()} +
    + + +{@render x()} +``` + +Snippets can reference themselves and each other ([demo](/playground/untitled#H4sIAAAAAAAAE2WPTQqDMBCFrxLiRqH1Zysi7TlqF1YnENBJSGJLCYGeo5tesUeosfYH3c2bee_jjaWMd6BpfrAU6x5oTvdS0g01V-mFPkNnYNRaDKrxGxto5FKCIaeu1kYwFkauwsoUWtZYPh_3W5FMY4U2mb3egL9kIwY0rbhgiO-sDTgjSEqSTvIDs-jiOP7i_MHuFGAL6p9BtiSbOTl0GtzCuihqE87cqtyam6WRGz_vRcsZh5bmRg3gju4Fptq_kzQBAAA=)): + +```svelte +{#snippet blastoff()} + 🚀 +{/snippet} + +{#snippet countdown(n)} + {#if n > 0} + {n}... + {@render countdown(n - 1)} + {:else} + {@render blastoff()} + {/if} +{/snippet} + +{@render countdown(10)} +``` + +## Passing snippets to components + +Within the template, snippets are values just like any other. As such, they can be passed to components as props ([demo](/playground/untitled#H4sIAAAAAAAAE3VS247aMBD9lZGpBGwDASRegonaPvQL2qdlH5zYEKvBNvbQLbL875VzAcKyj3PmzJnLGU8UOwqSkd8KJdaCk4TsZS0cyV49wYuJuQiQpGd-N2bu_ooaI1YwJ57hpVYoFDqSEepKKw3mO7VDeTTaIvxiRS1gb_URxvO0ibrS8WanIrHUyiHs7Vmigy28RmyHHmKvDMbMmFq4cQInvGSwTsBYWYoMVhCSB2rBFFPsyl0uruTlR3JZCWvlTXl1Yy_mawiR_rbZKZrellJ-5JQ0RiBUgnFhJ9OGR7HKmwVoilXeIye8DOJGfYCgRlZ3iE876TBsZPX7hPdteO75PC4QaIo8vwNPePmANQ2fMeEFHrLD7rR1jTNkW986E8C3KwfwVr8HSHOSEBT_kGRozyIkn_zQveXDL3rIfPJHtUDwzShJd_Qk3gQCbOGLsdq4yfTRJopRuin3I7nv6kL7ARRjmLdBDG3uv1mhuLA3V2mKtqNEf_oCn8p9aN-WYqH5peP4kWBl1UwJzAEPT9U7K--0fRrrWnPTXpCm1_EVdXjpNmlA8G1hPPyM1fKgMqjFHjctXGjLhZ05w0qpDhksGrybuNEHtJnCalZWsuaTlfq6nPaaBSv_HKw-K57BjzOiVj9ZKQYKzQjZodYFqydYTRN4gPhVzTDO2xnma3HsVWjaLjT8nbfwHy7Q5f2dBAAA)): + +```svelte + + +{#snippet header()} + fruit + qty + price + total +{/snippet} + +{#snippet row(d)} + {d.name} + {d.qty} + {d.price} + {d.qty * d.price} +{/snippet} + + +``` + +Think about it like passing content instead of data to a component. The concept is similar to slots in web components. + +As an authoring convenience, snippets declared directly _inside_ a component implicitly become props _on_ the component ([demo](/playground/untitled#H4sIAAAAAAAAE3VSTa_aMBD8Kyu_SkAbCA-JSzBR20N_QXt6vIMTO8SqsY29tI2s_PcqTiB8vaPHs7MzuxuIZgdBMvJLo0QlOElIJZXwJHsLBBvb_XUASc7Mb9Yu_B-hsMMK5sUzvDQahUZPMkJ96aTFfKd3KA_WOISfrFACKmcOMFmk8TWUTjY73RFLoz1C5U4SPWzhrcN2GKDrlcGEWauEnyRwxCaDdQLWyVJksII2uaMWTDPNLtzX5YX8-kgua-GcHJVXI3u5WEPb0d83O03TMZSmfRzOkG1Db7mNacOL19JagVALxoWbztq-H8U6j0SaYp2P2BGbOyQ2v8PQIFMXLKRDk177pq0zf6d8bMrzwBdd0pamyPMb-IjNEzS2f86Gz_Dwf-2F9nvNSUJQ_EOSoTuJNvngqK5v4Pas7n4-OCwlEEJcQTIMO-nSQwtb-GSdsX46e9gbRoP9yGQ11I0rEuycunu6PHx1QnPhxm3SFN15MOlYEFJZtf0dUywMbwZOeBGsrKNLYB54-1R9WNqVdki7usim6VmQphf7mnpshiQRhNAXdoOfMyX3OgMlKtz0cGEcF27uLSul3mewjPjgOOoDukxjPS9rqfh0pb-8zs6aBSt_7505aZ7B9xOi0T9YKW4UooVsr0zB1BTrWQJ3EL-oWcZ572GxFoezCk37QLe3897-B2i2U62uBAAA)): + +```svelte + +
    + {#snippet header()} + + + + + {/snippet} + + {#snippet row(d)} + + + + + {/snippet} +
    fruitqtypricetotal{d.name}{d.qty}{d.price}{d.qty * d.price}
    +``` + +Any content inside the component tags that is _not_ a snippet declaration implicitly becomes part of the `children` snippet ([demo](/playground/untitled#H4sIAAAAAAAAE3WOQQrCMBBFrzIMggql3ddY1Du4si5sOmIwnYRkFKX07lKqglqX8_7_w2uRDw1hjlsWI5ZqTPBoLEXMdy3K3fdZDzB5Ndfep_FKVnpWHSKNce1YiCVijirqYLwUJQOYxrsgsLmIOIZjcA1M02w4n-PpomSVvTclqyEutDX6DA2pZ7_ABIVugrmEC3XJH92P55_G39GodCmWBFrQJ2PrQAwdLGHig_NxNv9xrQa1dhWIawrv1Wzeqawa8953D-8QOmaEAQAA)): + +```svelte + + +``` + +```svelte + + + + + +``` + +> [!NOTE] Note that you cannot have a prop called `children` if you also have content inside the component — for this reason, you should avoid having props with that name + +You can declare snippet props as being optional. You can either use optional chaining to not render anything if the snippet isn't set... + +```svelte + + +{@render children?.()} +``` + +...or use an `#if` block to render fallback content: + +```svelte + + +{#if children} + {@render children()} +{:else} + fallback content +{/if} +``` + +## Typing snippets + +Snippets implement the `Snippet` interface imported from `'svelte'`: + +```svelte + +``` + +With this change, red squigglies will appear if you try and use the component without providing a `data` prop and a `row` snippet. Notice that the type argument provided to `Snippet` is a tuple, since snippets can have multiple parameters. + +We can tighten things up further by declaring a generic, so that `data` and `row` refer to the same type: + +```svelte + +``` + +## Exporting snippets + +Snippets declared at the top level of a `.svelte` file can be exported from a ` + +{#snippet add(a, b)} + {a} + {b} = {a + b} +{/snippet} +``` + +> [!NOTE] +> This requires Svelte 5.5.0 or newer + +## Programmatic snippets + +Snippets can be created programmatically with the [`createRawSnippet`](svelte#createRawSnippet) API. This is intended for advanced use cases. + +## Snippets and slots + +In Svelte 4, content can be passed to components using [slots](legacy-slots). Snippets are more powerful and flexible, and as such slots are deprecated in Svelte 5. + +# {@render ...} + +To render a [snippet](snippet), use a `{@render ...}` tag. + +```svelte +{#snippet sum(a, b)} +

    {a} + {b} = {a + b}

    +{/snippet} + +{@render sum(1, 2)} +{@render sum(3, 4)} +{@render sum(5, 6)} +``` + +The expression can be an identifier like `sum`, or an arbitrary JavaScript expression: + +```svelte +{@render (cool ? coolSnippet : lameSnippet)()} +``` + +## Optional snippets + +If the snippet is potentially undefined — for example, because it's an incoming prop — then you can use optional chaining to only render it when it _is_ defined: + +```svelte +{@render children?.()} +``` + +Alternatively, use an [`{#if ...}`](if) block with an `:else` clause to render fallback content: + +```svelte +{#if children} + {@render children()} +{:else} +

    fallback content

    +{/if} +``` + +# {@html ...} + +To inject raw HTML into your component, use the `{@html ...}` tag: + +```svelte +
    + {@html content} +
    +``` + +> [!NOTE] Make sure that you either escape the passed string or only populate it with values that are under your control in order to prevent [XSS attacks](https://owasp.org/www-community/attacks/xss/). Never render unsanitized content. + +The expression should be valid standalone HTML — this will not work, because `
    ` is not valid HTML: + +```svelte +{@html '
    '}content{@html '
    '} +``` + +It also will not compile Svelte code. + +## Styling + +Content rendered this way is 'invisible' to Svelte and as such will not receive [scoped styles](scoped-styles) — in other words, this will not work, and the `a` and `img` styles will be regarded as unused: + + +```svelte +
    + {@html content} +
    + + +``` + +Instead, use the `:global` modifier to target everything inside the `
    `: + + +```svelte + +``` + +# {@const ...} + +The `{@const ...}` tag defines a local constant. + +```svelte +{#each boxes as box} + {@const area = box.width * box.height} + {box.width} * {box.height} = {area} +{/each} +``` + +`{@const}` is only allowed as an immediate child of a block — `{#if ...}`, `{#each ...}`, `{#snippet ...}` and so on — or a ``. + +# {@debug ...} + +The `{@debug ...}` tag offers an alternative to `console.log(...)`. It logs the values of specific variables whenever they change, and pauses code execution if you have devtools open. + +```svelte + + +{@debug user} + +

    Hello {user.firstname}!

    +``` + +`{@debug ...}` accepts a comma-separated list of variable names (not arbitrary expressions). + +```svelte + +{@debug user} +{@debug user1, user2, user3} + + +{@debug user.firstname} +{@debug myArray[0]} +{@debug !isReady} +{@debug typeof user === 'object'} +``` + +The `{@debug}` tag without any arguments will insert a `debugger` statement that gets triggered when _any_ state changes, as opposed to the specified variables. + +# bind: + +Data ordinarily flows down, from parent to child. The `bind:` directive allows data to flow the other way, from child to parent. + +The general syntax is `bind:property={expression}`, where `expression` is an _lvalue_ (i.e. a variable or an object property). When the expression is an identifier with the same name as the property, we can omit the expression — in other words these are equivalent: + + +```svelte + + +``` + + +Svelte creates an event listener that updates the bound value. If an element already has a listener for the same event, that listener will be fired before the bound value is updated. + +Most bindings are _two-way_, meaning that changes to the value will affect the element and vice versa. A few bindings are _readonly_, meaning that changing their value will have no effect on the element. + +## Function bindings + +You can also use `bind:property={get, set}`, where `get` and `set` are functions, allowing you to perform validation and transformation: + +```svelte + value, + (v) => value = v.toLowerCase()} +/> +``` + +In the case of readonly bindings like [dimension bindings](#Dimensions), the `get` value should be `null`: + +```svelte +
    ...
    +``` + +> [!NOTE] +> Function bindings are available in Svelte 5.9.0 and newer. + +## `` + +A `bind:value` directive on an `` element binds the input's `value` property: + + +```svelte + + + +

    {message}

    +``` + +In the case of a numeric input (`type="number"` or `type="range"`), the value will be coerced to a number ([demo](/playground/untitled#H4sIAAAAAAAAE6WPwYoCMQxAfyWEPeyiOOqx2w74Hds9pBql0IllmhGXYf5dKqwiyILsLXnwwsuI-5i4oPkaUX8yo7kCnKNQV7dNzoty4qSVBSr8jG-Poixa0KAt2z5mbb14TaxA4OCtKCm_rz4-f2m403WltrlrYhMFTtcLNkoeFGqZ8yhDF7j3CCHKzpwoDexGmqCL4jwuPUJHZ-dxVcfmyYGe5MAv-La5pbxYFf5Z9Zf_UJXb-sEMquFgJJhBmGyTW5yj8lnRaD_w9D1dAKSSj7zqAQAA)): + +```svelte + + + + + + +

    {a} + {b} = {a + b}

    +``` + +If the input is empty or invalid (in the case of `type="number"`), the value is `undefined`. + +Since 5.6.0, if an `` has a `defaultValue` and is part of a form, it will revert to that value instead of the empty string when the form is reset. Note that for the initial render the value of the binding takes precedence unless it is `null` or `undefined`. + +```svelte + + + + + + +``` + +> [!NOTE] +> Use reset buttons sparingly, and ensure that users won't accidentally click them while trying to submit the form. + +## `` + +Checkbox and radio inputs can be bound with `bind:checked`: + +```svelte + +``` + +Since 5.6.0, if an `` has a `defaultChecked` attribute and is part of a form, it will revert to that value instead of `false` when the form is reset. Note that for the initial render the value of the binding takes precedence unless it is `null` or `undefined`. + +```svelte + + +
    + + +
    +``` + +## `` + +Inputs that work together can use `bind:group`. + +```svelte + + + + + + + + + + + + +``` + +> [!NOTE] `bind:group` only works if the inputs are in the same Svelte component. + +## `` + +On `` elements with `type="file"`, you can use `bind:files` to get the [`FileList` of selected files](https://developer.mozilla.org/en-US/docs/Web/API/FileList). When you want to update the files programmatically, you always need to use a `FileList` object. Currently `FileList` objects cannot be constructed directly, so you need to create a new [`DataTransfer`](https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer) object and get `files` from there. + +```svelte + + + + + +``` + +`FileList` objects also cannot be modified, so if you want to e.g. delete a single file from the list, you need to create a new `DataTransfer` object and add the files you want to keep. + +> [!NOTE] `DataTransfer` may not be available in server-side JS runtimes. Leaving the state that is bound to `files` uninitialized prevents potential errors if components are server-side rendered. + +## `` value binding corresponds to the `value` property on the selected ` + + + + +``` + +When the value of an ` + + + +``` + +## `