diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 201aa25..b7b72bd 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -1,6 +1,7 @@ \ No newline at end of file diff --git a/package.json b/package.json index 95e3a4a..b2b0d26 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,12 @@ "test:coverage": "pnpm run test:unit --coverage && pnpm run test:e2e --coverage", "prepare": "husky" }, + "dependencies": { + "@nanoforge-dev/schematics": "^2.1.3", + "bun": "catalog:core", + "dotenv": "catalog:libs-back", + "typescript": "catalog:build" + }, "devDependencies": { "@alexanderniebuhr/prettier-plugin-unocss": "catalog:css", "@commitlint/cli": "catalog:ci", @@ -83,13 +89,9 @@ "@vitest/browser-playwright": "catalog:test", "@vitest/coverage-v8": "catalog:test", "bits-ui": "catalog:components", - "bun": "catalog:core", "clsx": "catalog:css", - "dotenv": "catalog:libs-back", "eslint": "catalog:lint", "eslint-plugin-svelte": "catalog:lint", - "flowbite": "catalog:components", - "flowbite-svelte": "catalog:components", "formsnap": "catalog:libs-front", "globals": "catalog:lint", "husky": "catalog:ci", @@ -108,7 +110,6 @@ "tailwind-merge": "catalog:css", "tailwind-variants": "catalog:css", "tailwindcss": "catalog:css", - "typescript": "catalog:build", "typescript-eslint": "catalog:lint", "unocss": "catalog:css", "vite": "catalog:core", @@ -116,7 +117,7 @@ "vitest-browser-svelte": "catalog:test", "zod": "catalog:libs-front" }, - "packageManager": "pnpm@11.3.0", + "packageManager": "pnpm@11.5.1", "engines": { "node": "25" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f7edf53..31dd70b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,33 +17,27 @@ catalogs: version: 6.0.3 ci: '@commitlint/cli': - specifier: ^21.0.1 - version: 21.0.1 + specifier: ^21.0.2 + version: 21.0.2 '@commitlint/config-conventional': - specifier: ^21.0.1 - version: 21.0.1 + specifier: ^21.0.2 + version: 21.0.2 '@favware/cliff-jumper': specifier: ^6.1.0 version: 6.1.0 '@nanoforge-dev/actions': - specifier: ^2.0.0 - version: 2.0.0 + specifier: ^2.1.3 + version: 2.1.3 husky: specifier: ^9.1.7 version: 9.1.7 lint-staged: - specifier: ^17.0.5 - version: 17.0.5 + specifier: ^17.0.7 + version: 17.0.7 components: bits-ui: specifier: ^2.18.1 version: 2.18.1 - flowbite: - specifier: ^4.0.2 - version: 4.0.2 - flowbite-svelte: - specifier: ^1.33.1 - version: 1.33.1 monaco-editor: specifier: ^0.55.1 version: 0.55.1 @@ -52,8 +46,8 @@ catalogs: specifier: ^1.3.0 version: 1.3.0 '@sveltejs/kit': - specifier: ^2.61.1 - version: 2.61.1 + specifier: ^2.62.0 + version: 2.62.0 '@sveltejs/vite-plugin-svelte': specifier: ^7.1.2 version: 7.1.2 @@ -64,17 +58,17 @@ catalogs: specifier: ^1.3.14 version: 1.3.14 svelte: - specifier: ^5.55.9 - version: 5.55.10 + specifier: ^5.56.1 + version: 5.56.1 svelte-check: - specifier: ^4.4.8 - version: 4.4.8 + specifier: ^4.5.0 + version: 4.5.0 svelte-kit-sessions: specifier: ^0.4.0 version: 0.4.0 vite: - specifier: ^8.0.14 - version: 8.0.14 + specifier: ^8.0.16 + version: 8.0.16 css: '@alexanderniebuhr/prettier-plugin-unocss': specifier: ^0.0.4 @@ -108,8 +102,8 @@ catalogs: version: 66.7.0 i18n: '@inlang/paraglide-js': - specifier: ^2.18.1 - version: 2.18.1 + specifier: ^2.18.2 + version: 2.18.2 icons: '@iconify-json/clarity': specifier: ^1.2.4 @@ -118,13 +112,13 @@ catalogs: specifier: ^1.2.4 version: 1.2.4 '@iconify-json/material-icon-theme': - specifier: ^1.2.66 - version: 1.2.66 + specifier: ^1.2.67 + version: 1.2.67 '@iconify-json/solar': specifier: ^1.2.5 version: 1.2.5 '@lucide/svelte': - specifier: ^1.16.0 + specifier: ^1.17.0 version: 1.17.0 libs-back: dotenv: @@ -132,11 +126,11 @@ catalogs: version: 17.4.2 libs-front: '@internationalized/date': - specifier: ^3.12.1 + specifier: ^3.12.2 version: 3.12.2 '@tanstack/svelte-query': - specifier: ^6.1.33 - version: 6.1.33 + specifier: ^6.1.34 + version: 6.1.34 formsnap: specifier: ^2.0.1 version: 2.0.1 @@ -163,11 +157,11 @@ catalogs: specifier: ^6.0.2 version: 6.0.2 eslint: - specifier: ^10.4.0 - version: 10.4.0 + specifier: ^10.4.1 + version: 10.4.1 eslint-plugin-svelte: - specifier: ^3.17.1 - version: 3.18.0 + specifier: ^3.19.0 + version: 3.19.0 globals: specifier: ^17.6.0 version: 17.6.0 @@ -175,27 +169,27 @@ catalogs: specifier: ^3.8.3 version: 3.8.3 prettier-plugin-svelte: - specifier: ^4.0.1 - version: 4.0.1 + specifier: ^4.1.0 + version: 4.1.0 typescript-eslint: - specifier: ^8.60.0 - version: 8.60.0 + specifier: ^8.60.1 + version: 8.60.1 test: '@playwright/test': specifier: ^1.60.0 version: 1.60.0 '@vitest/browser-playwright': - specifier: ^4.1.7 - version: 4.1.7 + specifier: ^4.1.8 + version: 4.1.8 '@vitest/coverage-v8': - specifier: ^4.1.7 - version: 4.1.7 + specifier: ^4.1.8 + version: 4.1.8 playwright: specifier: ^1.60.0 version: 1.60.0 vitest: - specifier: ^4.1.7 - version: 4.1.7 + specifier: ^4.1.8 + version: 4.1.8 vitest-browser-svelte: specifier: ^2.1.1 version: 2.1.1 @@ -203,16 +197,29 @@ catalogs: importers: .: + dependencies: + '@nanoforge-dev/schematics': + specifier: ^2.1.3 + version: 2.1.3(chokidar@5.0.0) + bun: + specifier: catalog:core + version: 1.3.14 + dotenv: + specifier: catalog:libs-back + version: 17.4.2 + typescript: + specifier: catalog:build + version: 6.0.3 devDependencies: '@alexanderniebuhr/prettier-plugin-unocss': specifier: catalog:css version: 0.0.4 '@commitlint/cli': specifier: catalog:ci - version: 21.0.1(@types/node@25.9.1)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.3) + version: 21.0.2(@types/node@25.9.1)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.3) '@commitlint/config-conventional': specifier: catalog:ci - version: 21.0.1 + version: 21.0.2 '@favware/cliff-jumper': specifier: catalog:ci version: 6.1.0 @@ -227,28 +234,28 @@ importers: version: 1.2.1 '@iconify-json/material-icon-theme': specifier: catalog:icons - version: 1.2.66 + version: 1.2.67 '@iconify-json/solar': specifier: catalog:icons version: 1.2.5 '@inlang/paraglide-js': specifier: catalog:i18n - version: 2.18.1(typescript@6.0.3) + version: 2.18.2(typescript@6.0.3) '@internationalized/date': specifier: catalog:libs-front version: 3.12.2 '@lucide/svelte': specifier: catalog:icons - version: 1.17.0(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + version: 1.17.0(svelte@5.56.1(@typescript-eslint/types@8.60.1)) '@nanoforge-dev/actions': specifier: catalog:ci - version: 2.0.0 + version: 2.1.3 '@nanoforge-dev/ecs-lib': specifier: catalog:core version: 1.3.0 '@nanoforge-dev/utils-eslint-config': specifier: catalog:lint - version: 1.0.2(@types/eslint@9.6.1)(eslint@10.4.0(jiti@2.7.0))(prettier@3.8.3)(typescript@6.0.3) + version: 1.0.2(@types/eslint@9.6.1)(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3)(typescript@6.0.3) '@nanoforge-dev/utils-prettier-config': specifier: catalog:lint version: 1.0.2 @@ -257,16 +264,16 @@ importers: version: 1.60.0 '@sveltejs/kit': specifier: catalog:core - version: 2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + version: 2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) '@sveltejs/vite-plugin-svelte': specifier: catalog:core - version: 7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + version: 7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) '@tanstack/svelte-query': specifier: catalog:libs-front - version: 6.1.33(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + version: 6.1.34(svelte@5.56.1(@typescript-eslint/types@8.60.1)) '@trivago/prettier-plugin-sort-imports': specifier: catalog:lint - version: 6.0.2(prettier-plugin-svelte@4.0.1(prettier@3.8.3)(svelte@5.55.10(@typescript-eslint/types@8.60.0)))(prettier@3.8.3)(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + version: 6.0.2(prettier-plugin-svelte@4.1.0(prettier@3.8.3)(svelte@5.56.1(@typescript-eslint/types@8.60.1)))(prettier@3.8.3)(svelte@5.56.1(@typescript-eslint/types@8.60.1)) '@tsconfig/svelte': specifier: catalog:build version: 5.0.8 @@ -287,37 +294,25 @@ importers: version: 66.7.0 '@vitest/browser-playwright': specifier: catalog:test - version: 4.1.7(playwright@1.60.0)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.7) + version: 4.1.8(playwright@1.60.0)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8) '@vitest/coverage-v8': specifier: catalog:test - version: 4.1.7(@vitest/browser@4.1.7)(vitest@4.1.7) + version: 4.1.8(@vitest/browser@4.1.8)(vitest@4.1.8) bits-ui: specifier: catalog:components - version: 2.18.1(@internationalized/date@3.12.2)(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0)) - bun: - specifier: catalog:core - version: 1.3.14 + version: 2.18.1(@internationalized/date@3.12.2)(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1)) clsx: specifier: catalog:css version: 2.1.1 - dotenv: - specifier: catalog:libs-back - version: 17.4.2 eslint: specifier: catalog:lint - version: 10.4.0(jiti@2.7.0) + version: 10.4.1(jiti@2.7.0) eslint-plugin-svelte: specifier: catalog:lint - version: 3.18.0(eslint@10.4.0(jiti@2.7.0))(svelte@5.55.10(@typescript-eslint/types@8.60.0)) - flowbite: - specifier: catalog:components - version: 4.0.2 - flowbite-svelte: - specifier: catalog:components - version: 1.33.1(svelte@5.55.10(@typescript-eslint/types@8.60.0))(tailwindcss@4.3.0) + version: 3.19.0(eslint@10.4.1(jiti@2.7.0))(svelte@5.56.1(@typescript-eslint/types@8.60.1)) formsnap: specifier: catalog:libs-front - version: 2.0.1(svelte@5.55.10(@typescript-eslint/types@8.60.0))(sveltekit-superforms@2.30.1(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)) + version: 2.0.1(svelte@5.56.1(@typescript-eslint/types@8.60.1))(sveltekit-superforms@2.30.1(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)) globals: specifier: catalog:lint version: 17.6.0 @@ -326,10 +321,10 @@ importers: version: 9.1.7 lint-staged: specifier: catalog:ci - version: 17.0.5 + version: 17.0.7 mode-watcher: specifier: catalog:libs-front - version: 1.1.0(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + version: 1.1.0(svelte@5.56.1(@typescript-eslint/types@8.60.1)) monaco-editor: specifier: catalog:components version: 0.55.1 @@ -341,25 +336,25 @@ importers: version: 3.8.3 prettier-plugin-svelte: specifier: catalog:lint - version: 4.0.1(prettier@3.8.3)(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + version: 4.1.0(prettier@3.8.3)(svelte@5.56.1(@typescript-eslint/types@8.60.1)) svelte: specifier: catalog:core - version: 5.55.10(@typescript-eslint/types@8.60.0) + version: 5.56.1(@typescript-eslint/types@8.60.1) svelte-adapter-bun: specifier: catalog:build - version: 1.0.1(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(typescript@6.0.3) + version: 1.0.1(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(typescript@6.0.3) svelte-check: specifier: catalog:core - version: 4.4.8(picomatch@4.0.4)(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3) + version: 4.5.0(picomatch@4.0.4)(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3) svelte-kit-sessions: specifier: catalog:core - version: 0.4.0(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + version: 0.4.0(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1)) svelte-sonner: specifier: catalog:libs-front - version: 1.1.1(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + version: 1.1.1(svelte@5.56.1(@typescript-eslint/types@8.60.1)) sveltekit-superforms: specifier: catalog:libs-front - version: 2.30.1(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3) + version: 2.30.1(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3) tailwind-merge: specifier: catalog:css version: 3.6.0 @@ -369,24 +364,21 @@ importers: tailwindcss: specifier: catalog:css version: 4.3.0 - typescript: - specifier: catalog:build - version: 6.0.3 typescript-eslint: specifier: catalog:lint - version: 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) + version: 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) unocss: specifier: catalog:css - version: 66.7.0(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + version: 66.7.0(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) vite: specifier: catalog:core - version: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) + version: 8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) vitest: specifier: catalog:test - version: 4.1.7(@types/node@25.9.1)(@vitest/browser-playwright@4.1.7)(@vitest/coverage-v8@4.1.7)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + version: 4.1.8(@types/node@25.9.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) vitest-browser-svelte: specifier: catalog:test - version: 2.1.1(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vitest@4.1.7) + version: 2.1.1(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vitest@4.1.8) zod: specifier: catalog:libs-front version: 4.4.3 @@ -414,9 +406,18 @@ packages: '@alexanderniebuhr/prettier-plugin-unocss@0.0.4': resolution: {integrity: sha512-uuuNFjp+WNGsP7V5C7F7uot4a8imccsRf9DYXuQquzXzxLEfzWfqYy/cZUNUk4+fOpLbXGlPUxrJvPAcPau0Ow==} - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} + '@angular-devkit/core@21.2.14': + resolution: {integrity: sha512-RSOWXB9bFc2nwRWMxbIT0RbSNFUrwfBo4N5MNxbyQ69Ndc0gVm3h+3ArHv0qotH4d+pJYbm5ttXu8YqR2kc0CA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^5.0.0 + peerDependenciesMeta: + chokidar: + optional: true + + '@angular-devkit/schematics@21.2.14': + resolution: {integrity: sha512-KMJlQSBEzI4+Cy1Zh72gmGQNN2I1vY+nj9CoRcZPBIi1si+0ZAc49XT85eYl+eQumNTVQviUG7LQqgLDAHml+g==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} @@ -475,13 +476,13 @@ packages: '@blazediff/core@1.9.1': resolution: {integrity: sha512-ehg3jIkYKulZh+8om/O25vkvSsXXwC+skXmyA87FFx6A/45eqOkZsBltMw/TVteb0mloiGT8oGRTcjRAz66zaA==} - '@commitlint/cli@21.0.1': - resolution: {integrity: sha512-8vq10krmbJwBkvzXKhbs4o4JQEVscd3pqOlWuDUaDBwbeL694/P33UC29tZQFTAgPU9fVJ2+f2m3zw16yKWxHg==} + '@commitlint/cli@21.0.2': + resolution: {integrity: sha512-YMmfLbqBg+ZRvvmPhc+cilSQFrh/AgzVgCT1U/OifmUZEwPbvCtA8rN//YNaF9d5eoZphxVMGYtmwA2QgQORgg==} engines: {node: '>=22.12.0'} hasBin: true - '@commitlint/config-conventional@21.0.1': - resolution: {integrity: sha512-gRorrkfWOh/+V5X8GYWWbQvrzPczopGMS4CCNrQdHkK4xWElv82BDvIsDhJZWTlI7TazOlYea6VATufCsFs+sw==} + '@commitlint/config-conventional@21.0.2': + resolution: {integrity: sha512-P/ZRhryQmkj0Z0dY9FOoRwe3xkwJyyAdtXwt01NT2kuZttcG2CNYp1q5Ci3u+nDT2jcbJRw2kt13Czl1qKNPfg==} engines: {node: '>=22.12.0'} '@commitlint/config-validator@21.0.1': @@ -500,44 +501,44 @@ packages: resolution: {integrity: sha512-ksmG2+cHGtuDPQQbhBbC4unwm444+6TiPw0d1bKf67hntgZqZ8E0g1MuYKUuyT5IH4IMmXZhKq22/Z3jBvtQIw==} engines: {node: '>=22.12.0'} - '@commitlint/is-ignored@21.0.1': - resolution: {integrity: sha512-iNDP8SFdw8JEkM0CHZ2XFnhTN4Zg5jKUY2d8kBOSFrI2aA+3YJI7fcqVpfgbpJ9xtxFVYpi+DBATU5AvhoTq8g==} + '@commitlint/is-ignored@21.0.2': + resolution: {integrity: sha512-H5z4t8PC9tUsmZ/o+EptM3Nq8sTFtskAShdcqxCoyzklW5eaVT5xbrDAET2uypzir9Vsj4ZZmBtyKjYe2XqgeQ==} engines: {node: '>=22.12.0'} - '@commitlint/lint@21.0.1': - resolution: {integrity: sha512-gF+iYtUw1gBG3HUH9z3VxwUjGg2R2G5j+nmvPs8aIeYkiB7TtneBu3wO85I0bUl93bYNsvsCNI9Nte2fmDUMww==} + '@commitlint/lint@21.0.2': + resolution: {integrity: sha512-PnUmLYGeGLfW8oVatR9KpNxSHYAnJOEWlMZzfdeFOUq6WUrFx1fGQaWCWJqMoIll/xPM+GdfJV+tKHZVHhl0Fg==} engines: {node: '>=22.12.0'} - '@commitlint/load@21.0.1': - resolution: {integrity: sha512-Btg1q1mKmiihN4W3x0EsPDrJMOQfMa9NIqlzlJyXAfxvsOGdGXOW5p3R3RcSxDCaY7JabY9flIl+Om1af3PSrw==} + '@commitlint/load@21.0.2': + resolution: {integrity: sha512-lwUE70hN0/qE/ZRROhbaX65ly/FF12DrqfReLCESo37M0OQCFAf2jRS+2tSCSORq+bm4Kdju7qNDj46uc1QzTA==} engines: {node: '>=22.12.0'} - '@commitlint/message@21.0.1': - resolution: {integrity: sha512-R3dVQeJQ0B6yqrZEjkUHD4r7UJYLV9Lvk2xs3PTOmtWk2G3mI6Xgc+YdRxL1PwcDfBiUjv2SkIkW4AUc976w1w==} + '@commitlint/message@21.0.2': + resolution: {integrity: sha512-5n4aqHGD/FNnom/D5L8i7cYtV+xjuXcBL832C3w9VglEsZzIsoHpJsvxzJ7cgiOsOdc/2jU4t5+7qMHh7GBX3g==} engines: {node: '>=22.12.0'} - '@commitlint/parse@21.0.1': - resolution: {integrity: sha512-oh/nCSOqdoeQNA1tO8aAmxkq5EBo8/NzcFQRvv66AWc9HpED28sL2iSicCKU6hPintWuscL6BJEWi77Wq1LPMQ==} + '@commitlint/parse@21.0.2': + resolution: {integrity: sha512-QVZJhGHTm+oiuWyEKOCTQ0ZM3mfJ0eGWFeHuj7WzSKEth+UukcCHac9GD8pgdFlg/qGkFWOtyaNd1T8REgagaw==} engines: {node: '>=22.12.0'} - '@commitlint/read@21.0.1': - resolution: {integrity: sha512-pMEu4lbpC8W0ZgKJj2U6WaobXIZWdFlULpIEewYhkPXx+WZcnoO53YrVPc7QErQuNolq2Me8dP58Wu7YAVXVOA==} + '@commitlint/read@21.0.2': + resolution: {integrity: sha512-BtsrnLVycSSKf4Q0gMch4giCj5NNlmcbhc8ra5vONgGtP2IjRDo33bEFtr5Pm+2N+5fXGWb2MksWPrspPfdhdw==} engines: {node: '>=22.12.0'} '@commitlint/resolve-extends@21.0.1': resolution: {integrity: sha512-0DhjYWL6uYrY16Efa032fYk3woGJDU4AGWiG1XXltT9AMUNYKyb5cIZU2ivbaMZ3+kKFqUjikD2cjh66Sbh/Sg==} engines: {node: '>=22.12.0'} - '@commitlint/rules@21.0.1': - resolution: {integrity: sha512-VMooYpz4nJg7xlaUso6CCOWEz8D/ChkvsvZUMARcoJ1ZpfKPyFCGrHNha2tbsETNAb6ErgiRuCr2DvghrvPDYQ==} + '@commitlint/rules@21.0.2': + resolution: {integrity: sha512-k6tQ69Td7t2qUSIbik8D3TL1q3ZJpkEbV+yLogDzCRAdOxJm4ndhtBNREsLA1/puRfWvzS9eioF2w43WT+hHgQ==} engines: {node: '>=22.12.0'} '@commitlint/to-lines@21.0.1': resolution: {integrity: sha512-bd1BFII7p1EQZre9Kaj+kKaMFP3cFCdt21K7DItVux9XP5WjLgJ0/Uy1pJJh9aPwVJ6SKg62PxqlZaHI8hQAXw==} engines: {node: '>=22.12.0'} - '@commitlint/top-level@21.0.1': - resolution: {integrity: sha512-4esUYqzY7K0FCgcJ/1xWEZekV7Ch4yZT1+xjEb7KzqbJ05XEkxHVsTfC8ADKNNtlCE2pj98KEbPGZWw9WwEnVw==} + '@commitlint/top-level@21.0.2': + resolution: {integrity: sha512-s9KKM+e+mXgFeIh4n7KmOGAVT3mkJ3Fp1bBYHIK5pjeUwlEMzp/tZfb5u0Poa680AsQTXMEMRxZi1vQ9m2X5ug==} engines: {node: '>=22.12.0'} '@commitlint/types@21.0.1': @@ -604,8 +605,8 @@ packages: resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.7.1': - resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} + '@eslint/plugin-kit@0.7.2': + resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@exodus/schemasafe@1.3.0': @@ -664,8 +665,8 @@ packages: '@iconify-json/icomoon-free@1.2.1': resolution: {integrity: sha512-Me5L0/vH/LlhVr5R85TFah0LcJD7an6mv+5dagvXY/YnXQsOx3eB7GUioXheSoB8tObhvCuZFbvujMYKPKNWfw==} - '@iconify-json/material-icon-theme@1.2.66': - resolution: {integrity: sha512-TxWgH1twATqzvdMOafXf3V7NtgdLGkg77ySoEUo0uKv4cmzsy/8fHUZWNn6t9s7ZAzAjxf41ZIDdWIwxIsMrbQ==} + '@iconify-json/material-icon-theme@1.2.67': + resolution: {integrity: sha512-SouqLxahwVOuIVqED8Spl1wSy3DM7sYwNOPxFW7Eh4hVNqR4L4zTkEXFP4V6bQegkhl9kFWbNGlYKDFjXh92iQ==} '@iconify-json/solar@1.2.5': resolution: {integrity: sha512-WMAiNwchU8zhfrySww6KQBRIBbsQ6SvgIu2yA+CHGyMima/0KQwT5MXogrZPJGoQF+1Ye3Qj6K+1CiyNn3YkoA==} @@ -676,11 +677,11 @@ packages: '@iconify/utils@3.1.3': resolution: {integrity: sha512-LPKOXPn/zV+zis1oOfGWogaXVpqUybF3ZS6SCZIsz8vg0ivVp9+fVqyYB7xq0aiST/VhUQYGO1qo6uoYSiEJqw==} - '@inlang/paraglide-js@2.18.1': - resolution: {integrity: sha512-YzIrJ34KbsJwzvVKBzcBEgp4AqmhNYD1EF2pOV+g87L024XTFmcmikI4/NMfb63H9zJ6UeEPTOmEK7Nzu/4E2Q==} + '@inlang/paraglide-js@2.18.2': + resolution: {integrity: sha512-H2ksOE2dy9M4iJ+oDu8VPgk+B52C+OCFQpuJHBol0ZYLs3H17PCewVWIppkJNC36ClmLZnGhF+URjbcglTM8XQ==} hasBin: true peerDependencies: - typescript: '>=5' + typescript: '>=5.6' peerDependenciesMeta: typescript: optional: true @@ -727,8 +728,8 @@ packages: peerDependencies: svelte: ^5 - '@nanoforge-dev/actions@2.0.0': - resolution: {integrity: sha512-9t/LC+cIBov7UNLNe1G/fRfKJhpR3tGSiYjReQibf3FZlupooctqW7oeuToCvdCQgM3CrZIJ9nXH7+EvFXXL9A==} + '@nanoforge-dev/actions@2.1.3': + resolution: {integrity: sha512-eOuQ5q0gFylFrj//77c7PWCKAcX0GRKM7fAQiiExOnUxnuYWQGu4DIL3LMXsjDNAVMRgK3BMk0C1QivEPUN5Dg==} engines: {node: '25'} '@nanoforge-dev/common@1.3.0': @@ -739,6 +740,10 @@ packages: resolution: {integrity: sha512-FZozPG9VrJRX/Pydl+iDflBWuIOlPLkiBuQu7cRNt+owJJ3iBU6sdSqwvXa4UxySjIJqij9pNaWyXOHQCl9Fjw==} engines: {node: '25'} + '@nanoforge-dev/schematics@2.1.3': + resolution: {integrity: sha512-5o4z+GTQF/dzvkk6UrwtoUrlrjFWQBevvtupCqc0coiLfetU2FUORryFPG1tZhrIP3GPuuYTM/8meTJDs7IMPA==} + engines: {node: '25'} + '@nanoforge-dev/utils-eslint-config@1.0.2': resolution: {integrity: sha512-hIsVGGpVIW3RvPZocWEf15Y5eqmIxTtLfWI66wqx+AO6PHcatUBhEi4sk1i54Qb2yGFueRBS/dSXj0kxG4Rbcw==} engines: {node: '25'} @@ -1011,9 +1016,6 @@ packages: '@oxc-project/types@0.131.0': resolution: {integrity: sha512-PgnWDfV0h+b16XNKbXU7Daib/BFSt/J2mEzfYIBu6JB/wNdlU+kVYXCkGA1A9fWkTbOgbjh4e6NhPeQOYvFhEA==} - '@oxc-project/types@0.132.0': - resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==} - '@oxc-project/types@0.133.0': resolution: {integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==} @@ -1151,82 +1153,42 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@popperjs/core@2.11.8': - resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@poppinss/macroable@1.1.2': resolution: {integrity: sha512-FAVBRzzWhYP5mA3lCwLH1A0fKBqq5anyjGet90Z81aRK5c/+LTGUE1zJhZrErjaenBSOOI9BVUs3WVmotneFQA==} '@quansync/fs@1.0.0': resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} - '@rolldown/binding-android-arm64@1.0.2': - resolution: {integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - '@rolldown/binding-android-arm64@1.0.3': resolution: {integrity: sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.2': - resolution: {integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - '@rolldown/binding-darwin-arm64@1.0.3': resolution: {integrity: sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.2': - resolution: {integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - '@rolldown/binding-darwin-x64@1.0.3': resolution: {integrity: sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.2': - resolution: {integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - '@rolldown/binding-freebsd-x64@1.0.3': resolution: {integrity: sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.2': - resolution: {integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.0.3': resolution: {integrity: sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.2': - resolution: {integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.0.3': resolution: {integrity: sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1234,13 +1196,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.2': - resolution: {integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.0.3': resolution: {integrity: sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1248,13 +1203,6 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.2': - resolution: {integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.0.3': resolution: {integrity: sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1262,13 +1210,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.2': - resolution: {integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.3': resolution: {integrity: sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1276,13 +1217,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.2': - resolution: {integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.3': resolution: {integrity: sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1290,13 +1224,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.2': - resolution: {integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - '@rolldown/binding-linux-x64-musl@1.0.3': resolution: {integrity: sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1304,46 +1231,23 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.2': - resolution: {integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.0.3': resolution: {integrity: sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.2': - resolution: {integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.0.3': resolution: {integrity: sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.2': - resolution: {integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.0.3': resolution: {integrity: sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.2': - resolution: {integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.3': resolution: {integrity: sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1353,24 +1257,6 @@ packages: '@rolldown/pluginutils@1.0.1': resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} - '@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 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/pluginutils@5.3.0': - resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@sapphire/result@2.8.0': resolution: {integrity: sha512-693yWouX+hR9uJm1Jgq0uSSjbSD3UrblMaxiuGbHPjSwzLCSZTcm0h3kvdVhq3o/yl4+oeAWW3hiaJ0TELuRJQ==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} @@ -1418,8 +1304,8 @@ packages: peerDependencies: acorn: ^8.9.0 - '@sveltejs/kit@2.61.1': - resolution: {integrity: sha512-Ny8s1SR1TyQS2hD2Rvw0XKzU2Nw1eUF52dTb6T2bdcgz7wSC+Nyb5IwjWYlR4b2dvbbR5NJDiQwHg3rnNseghg==} + '@sveltejs/kit@2.62.0': + resolution: {integrity: sha512-4JlkXGRJ3kW15dL4LCHV3Mu5aSTTtmH8EBNE4QjJl+KLY77dClgAsZg8aebpwFcDXemNP1z9az8EatD2UNWAcQ==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -1444,103 +1330,11 @@ packages: '@swc/helpers@0.5.23': resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} - '@tailwindcss/node@4.3.0': - resolution: {integrity: sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==} - - '@tailwindcss/oxide-android-arm64@4.3.0': - resolution: {integrity: sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [android] - - '@tailwindcss/oxide-darwin-arm64@4.3.0': - resolution: {integrity: sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [darwin] - - '@tailwindcss/oxide-darwin-x64@4.3.0': - resolution: {integrity: sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==} - engines: {node: '>= 20'} - cpu: [x64] - os: [darwin] - - '@tailwindcss/oxide-freebsd-x64@4.3.0': - resolution: {integrity: sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==} - engines: {node: '>= 20'} - cpu: [x64] - os: [freebsd] - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0': - resolution: {integrity: sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==} - engines: {node: '>= 20'} - cpu: [arm] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-gnu@4.3.0': - resolution: {integrity: sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@tailwindcss/oxide-linux-arm64-musl@4.3.0': - resolution: {integrity: sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@tailwindcss/oxide-linux-x64-gnu@4.3.0': - resolution: {integrity: sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@tailwindcss/oxide-linux-x64-musl@4.3.0': - resolution: {integrity: sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - libc: [musl] - - '@tailwindcss/oxide-wasm32-wasi@4.3.0': - resolution: {integrity: sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - bundledDependencies: - - '@napi-rs/wasm-runtime' - - '@emnapi/core' - - '@emnapi/runtime' - - '@tybys/wasm-util' - - '@emnapi/wasi-threads' - - tslib - - '@tailwindcss/oxide-win32-arm64-msvc@4.3.0': - resolution: {integrity: sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [win32] - - '@tailwindcss/oxide-win32-x64-msvc@4.3.0': - resolution: {integrity: sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==} - engines: {node: '>= 20'} - cpu: [x64] - os: [win32] - - '@tailwindcss/oxide@4.3.0': - resolution: {integrity: sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==} - engines: {node: '>= 20'} - - '@tailwindcss/postcss@4.3.0': - resolution: {integrity: sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w==} - - '@tanstack/query-core@5.100.14': - resolution: {integrity: sha512-5X41dGpxgeaHISCRW2oYwcSycZeULZzAunaudXT9ov1KOTj9xwt0CH6hbwqP1/z74ZWF7rYFnDpyYH07XFcZew==} + '@tanstack/query-core@5.101.0': + resolution: {integrity: sha512-cQetA74EB+seWySv1TTKr828TnP0u39m6LykwDXIo84SNortpDkp30TMEjkqtYCNP9c40uT/iwl6MLiufEt0Ow==} - '@tanstack/svelte-query@6.1.33': - resolution: {integrity: sha512-hdbGeLLOIfkrB+/leytCON+tjpSbkO36OsXxrTkPpwC7p8jK36DaoBRR1FO1Z0jOg/fmfCs26lafzFsWXV5W9w==} + '@tanstack/svelte-query@6.1.34': + resolution: {integrity: sha512-b/j6OXHd285NLPTH31SqJ8+XfHKoDPV8+ZGxXjg4pSAWW2aVo/f5gbu5m32QjfdTSumib3+d1dJBv5Yupv7HKw==} peerDependencies: svelte: ^5.25.0 @@ -1602,9 +1396,6 @@ packages: '@types/node@25.9.1': resolution: {integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==} - '@types/resolve@1.20.2': - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -1627,63 +1418,63 @@ packages: '@types/json-schema': optional: true - '@typescript-eslint/eslint-plugin@8.60.0': - resolution: {integrity: sha512-QYb/sa74/s7OKMbACMjrYnGspj9Hs5YI5aaffSL65UfeBUzVzBJfVo3oWSpbzPurvm7yaCCo2Lk7lVj610HqKw==} + '@typescript-eslint/eslint-plugin@8.60.1': + resolution: {integrity: sha512-JQ4S5GB0tfjO8BuJ4fcX+HodkzJjYBV+7OJ+wLygaX7OGQ7FudyHL4NSCA6ob+w3Yn+5MkKIozOwQhXeM7opVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.60.0 + '@typescript-eslint/parser': ^8.60.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.60.0': - resolution: {integrity: sha512-fcqpj/MyK4sxDPcbe7STNPbpQL4RLZOPWuaTmwZYuc+hJKzRf58yRxfhqGpc6PIq9ZyfSBpfHgmUHmHs0KwHwg==} + '@typescript-eslint/parser@8.60.1': + resolution: {integrity: sha512-A0M6ua6H252bVjPvvtSgl2QA4+ET9S5Mtkb2GDyTxIhH/C4qDItT7RQNO5PhMC6NXGYXOR9dIalcDDgBKT7oFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.60.0': - resolution: {integrity: sha512-aZu74NNKJeUWqCjDddzdiKaS82dgYgV/vmf+Ui3ZdZejmgfXR/q+pRumgobnQ2cCJTgGTWp4ypiwsuofFubavg==} + '@typescript-eslint/project-service@8.60.1': + resolution: {integrity: sha512-eXkTH2bxmXlqD1RnOPmLZ9ZM9D3VwSx04JOwBnP9RQ+yUA5a2Mu7SfW8uaV2Aon53NJzZlZYuX7tn91Izf+xaw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.60.0': - resolution: {integrity: sha512-pFzqhllJMs+jghLQWzV00ds39xLzuyqPSev5pd8f4Ir0rtKR3ZLUB4/4dhjOFighWb9larvtfJvqL+4yKDI3Xw==} + '@typescript-eslint/scope-manager@8.60.1': + resolution: {integrity: sha512-gvI5OQoptnxQnchOirukCuQ55svJSTuD/4k5+pC267xyBtYry748R9/c3tYUzb/iE6RZfllRz2lVulLCHkTm4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.60.0': - resolution: {integrity: sha512-BZPR3RGYlAXnly6ymAxfkVn5rCbZzQNou0rxv3GfWZ8cTQp+hhVd73khbGLAd8k1TlAPLISH337M+tAgAnaJDQ==} + '@typescript-eslint/tsconfig-utils@8.60.1': + resolution: {integrity: sha512-nh8w4qAteiKuZu3pSSzG/yGKpw0OlkrKnzFmbVRenKaD4qc+7i1GrmZaLVkr8rk4uipiPGMOW4YsM6WmKZ5CvA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.60.0': - resolution: {integrity: sha512-SX46wEUtitCpq7AN38HkUU/+zvUpdKf7ephtWAFgckH8O7PQIyL5gvrhQgBLuEYgLfuKWOVvWVskMbuFHAz5xg==} + '@typescript-eslint/type-utils@8.60.1': + resolution: {integrity: sha512-sdwTrpjosW7ANQYJ39ZBF1ZyEMEGVB2UsikrserVM/30a/F1dTLnu9bGxEdosugyu5caigjLrR2qiD11asjI1A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.60.0': - resolution: {integrity: sha512-AsE7x2XaAK+CVbeih0Fvbn+r1qHxtpLDJ3XUuFcIinT318T90yHMJC+Zgv+jUuDjQQd06HKwxnDu6sz1IcTilA==} + '@typescript-eslint/types@8.60.1': + resolution: {integrity: sha512-4h0tY8ppCkdCzcrl2YM5M3my0xsE1Tf8om3owEu5oPWmXwkKRmk0j0LGDzYBGUcAlesEbxBhazqu/K4cu3Ug7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.60.0': - resolution: {integrity: sha512-3AcZNBGMClm6CXDyo8kYvVGT/sx29sS0oBsIb9oZI2gunA4Vm2M3YHzRLPvsUBBsl+yB5FPtltq7gGH0iTlp9g==} + '@typescript-eslint/typescript-estree@8.60.1': + resolution: {integrity: sha512-alpRkfG8hlVE5kdJW2GkfgDgXxold3e8e4l6EnmhRmRLbekgAPCCGDVD++sABy9FcgPFroq+uFcCSM1vR57Cew==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.60.0': - resolution: {integrity: sha512-HtXuPfrHTyBDkameWpl+vJb1Uevu2tznAyahM1Oc4AENidCLTPiZDWIo4GfcxNdC/RcfGcadzzkqbRG87dUrQA==} + '@typescript-eslint/utils@8.60.1': + resolution: {integrity: sha512-h2MPBLoNtjc3qZWfY3Tl51yPorQ2McHn8pJfcMNTcIvrrZrr90Ykffit0yjrPFWQcRcUxzH20+6OcVdW4yHtUg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.60.0': - resolution: {integrity: sha512-9WI52t8ZGLVGrPMBet25yAftqY/n95+zmoUUtJBBQTKDSKUu7OsPTroT2op7U9JatkoRccL0YkWDNMFfC4Sjxg==} + '@typescript-eslint/visitor-keys@8.60.1': + resolution: {integrity: sha512-EbGRQg4FhrmwLodl+t3JNAnXHWVr9Vp+Zl1QBZVPY4ByfkzIT8cX3K6QWODHtkIZqqJVEWvhHSx3v5PDHsaQag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@unocss/cli@66.7.0': @@ -1780,31 +1571,31 @@ packages: resolution: {integrity: sha512-ZtvYkYpZOYdvbws3uaOAvTFuvFXoQGAtmzeiXu+XSMGxi5GVsODpoI9Xu9TplEMuD/5fmAtBbKb9cQHkWkLXDQ==} engines: {node: '>=18.16.0'} - '@vitest/browser-playwright@4.1.7': - resolution: {integrity: sha512-OlTlJej7YN6VwV7zJJoNeaCsctF+JXpzpZ4oBHUbrQFfIq+0KW2f07rprCLh9N/zRIZ0v4Mchn1QDDmWMUhPKw==} + '@vitest/browser-playwright@4.1.8': + resolution: {integrity: sha512-SR7FqgegaexEg73xvf3ArtygXegagMdXnL0EZMpxrWvvhQxvicD/E8p0ib0J91riPRtQUViyh67Xjw3NqvyhVg==} peerDependencies: playwright: '*' - vitest: 4.1.7 + vitest: 4.1.8 - '@vitest/browser@4.1.7': - resolution: {integrity: sha512-N2JFGfXoEGVAut+kHeru9dD4BUMq/q5xDvBARNl0tUsly3m5KglLOu8VO/6MkDfOlgxXTycojkt6gBKsuyR+IQ==} + '@vitest/browser@4.1.8': + resolution: {integrity: sha512-u21VzX07HzlJYpFgkxmjEXar/tG2UqWGgyGG/46SrrPc7rSdCTPw5vuowopO9CIqF8UCUQzDFdbVnNpw6N0BfQ==} peerDependencies: - vitest: 4.1.7 + vitest: 4.1.8 - '@vitest/coverage-v8@4.1.7': - resolution: {integrity: sha512-qsYPeXc5Q9dFLd1i8Ap+Bx8sQgcp+rFVQo4R0dDsWNBzl26ldVF1qOO+RL24K7FDrR6pA+50XedRLSoSG24bVQ==} + '@vitest/coverage-v8@4.1.8': + resolution: {integrity: sha512-lt3kovsyHwYe00wq4D1ti0Z974fWj4NLp6siqiyEufUpyFwK9Yhi7rBhac9JL5aA0zoMrJqc4vYPZRUnI7l7nw==} peerDependencies: - '@vitest/browser': 4.1.7 - vitest: 4.1.7 + '@vitest/browser': 4.1.8 + vitest: 4.1.8 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.1.7': - resolution: {integrity: sha512-1R+tw0ortHEbZDGMymm+pN7/AFQ/RkFFdtd7EN+VBpynKmLbP8A3rpEXdshBJ7+8hQ9zBJh/i1s0yKNtxAnU7w==} + '@vitest/expect@4.1.8': + resolution: {integrity: sha512-h3nDO677RDLEGlBxyQ5CW8RlMThSKSRLUePLOx09gNIWRL40edgA1GCZSZgf1W55MFAG6/Sw14KeaAnqv0NKdQ==} - '@vitest/mocker@4.1.7': - resolution: {integrity: sha512-vY7nuamKgfvpA1Koa3oYIw/k7D6kZnpGyNMZW8loow2bsBYla1TFdqTaXncWdRn4pgwNs+90RhnXhJScDwQeJA==} + '@vitest/mocker@4.1.8': + resolution: {integrity: sha512-LEiN/xe4OSIbKe9HQIp5OC24agGD9J5CnmMgsLohVVoOPWL9a2sBoR6VBx43jQZb7Kr1l4RCuyCJzcAa0+dojw==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1814,20 +1605,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.7': - resolution: {integrity: sha512-umgCarTOYQWIaDMvGDRZij+6b9oVeLIyJzfN+AS88e0ZOU3QTgNNSTtjQOpcvWr3np1N0j4WgZj+sb3oYBDscw==} + '@vitest/pretty-format@4.1.8': + resolution: {integrity: sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==} - '@vitest/runner@4.1.7': - resolution: {integrity: sha512-BapjmAQ2aI78WdMEfeUWivnfVzB+VPGwWRQcJE0OUq7qEeEcBsCSf+0T5iREBNE5nBb4wA5Ya0W6IA+sghdEFw==} + '@vitest/runner@4.1.8': + resolution: {integrity: sha512-EmVxeBAfMJvycdjd6Hm+RbFBbA9fKvo0Kx37hNpBYoYeavH3RNsBXWDooR1mgD52dCrxIIuP7UotpfiwOikvcg==} - '@vitest/snapshot@4.1.7': - resolution: {integrity: sha512-ZacLzja+TmJeZ1h14xW2FB/WpeimUD3haBXQPyJqxvo8jQTmfeA8zv58mtjN2C7EHXZDYVcVYdYmAxjkWVvKCw==} + '@vitest/snapshot@4.1.8': + resolution: {integrity: sha512-acfZboRmAIf05DEKcBQy33VXojFJjtUdLyo7oOmV9kebb2xdU01UknNiPuPZoJZQyO7DF0gZdTGTpeAzET9QPQ==} - '@vitest/spy@4.1.7': - resolution: {integrity: sha512-kbkI5LMWakyuTIvs6fUJ5qdIVb1XVKsYJAT4OJ938cHMROYMSfmoQdZy0aaAnjbbc8F61vkoTqz/Az+/HiIu5Q==} + '@vitest/spy@4.1.8': + resolution: {integrity: sha512-6EevtBp6OZOPF7bmz36HrGMeP3txgVSrgebWxHOafDXGkhIzfXK14f8KF6MuFfgXXUeHxmpD3BQxkV00/3s5mA==} - '@vitest/utils@4.1.7': - resolution: {integrity: sha512-T532WBu791cBxJlCl6SO+J14l81DQx6uQHm1bQbmCDY7nqlEIgkza/UFnSBNaUtSf41unldDFjdOBYEQC4b5Hw==} + '@vitest/utils@4.1.8': + resolution: {integrity: sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -1839,9 +1630,20 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + ajv@6.15.0: resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} + ajv@8.20.0: resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} @@ -1857,9 +1659,6 @@ packages: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} - apexcharts@5.13.0: - resolution: {integrity: sha512-PJuXT6zdiCbv0IkX5cqkKFVIIh+9v3kqP9zsOHEGpIWi7DfTgzvfOKc8icw6G3/ulR3V1alDDUtOVH0zWCWGEQ==} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -1883,8 +1682,8 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - ast-v8-to-istanbul@1.0.2: - resolution: {integrity: sha512-dKmJxJsGItLmc5CYZKuEjuG6GnBs6PG4gohMhyFOWKaNQoYCuRZJDECaBlHmcG0lv2wc2E0uU8lESmBEumC3DQ==} + ast-v8-to-istanbul@1.0.3: + resolution: {integrity: sha512-jCMQ6ZylLPudp0CDfBmQBZUsrh1/8psbmu9ibeVWKuHWD0YrH9YABwlKu5kVEFoT0GCQQW9Z/SxfuEbbkGQCRg==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -1961,6 +1760,10 @@ packages: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} + cli-spinners@3.4.0: + resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==} + engines: {node: '>=18.20'} + cli-truncate@5.2.0: resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} engines: {node: '>=20'} @@ -1984,6 +1787,10 @@ packages: resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} + commander@15.0.0: + resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} + engines: {node: '>=22.12.0'} + comment-json@4.6.2: resolution: {integrity: sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==} engines: {node: '>= 6'} @@ -2069,9 +1876,6 @@ packages: engines: {node: '>=4'} hasBin: true - date-fns@4.3.0: - resolution: {integrity: sha512-OYcL+3N/jyWbYdFGqoMAhytDgxP9pbYPUUiRCOgn4Fewaadk9l/Wam4Avciiyp2BgkpfQyBV9B+ehnVJych+eQ==} - dayjs@1.11.21: resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==} @@ -2139,10 +1943,6 @@ packages: emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} - enhanced-resolve@5.22.1: - resolution: {integrity: sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww==} - engines: {node: '>=10.13.0'} - env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -2154,10 +1954,6 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - es-module-lexer@2.1.0: resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} @@ -2209,8 +2005,8 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-svelte@3.18.0: - resolution: {integrity: sha512-vc3P37lrDronWDb2kPXiG8sqkuiMqitGXSSaflb7Y+jpDgNoAzW8i7tdqyJKpcLZmFIqZCD+je2oZRf9qyRyBw==} + eslint-plugin-svelte@3.19.0: + resolution: {integrity: sha512-t3rNaZeXz4d2gG4uJyMEYfJCFKf22+SWbSizIIXIWKu4wM+XPLiMWuSSr/C5821JmFeN9ogK+eExbG+z+twyxw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.1 || ^9.0.0 || ^10.0.0 @@ -2242,8 +2038,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.4.0: - resolution: {integrity: sha512-loXy6bWOoP3EP6JA7jo6p5jMpBJmHmsNZM5SFRHLdh1MGOPurMnNBj4ZlAbaqUAaQWbCr7jHV4P7gzAyryZWkQ==} + eslint@10.4.1: + resolution: {integrity: sha512-AyIKhnOBuOAdueD7RB3xB+YeAWScb9jHsJBgH2Hcde8InP5JYhqrRR6iTMHyTEwgENK54Cp44e4v8BwNhsuHuw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -2272,8 +2068,8 @@ packages: resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} - esrap@2.2.9: - resolution: {integrity: sha512-4KijP+NxCWthMCUC3qHbE6n4vCjqgJS1uAYKhuT/GWfFTf1Qyive2TgOjep+gzbSzRfnNyaN/UU9YmdOt8Eg0A==} + esrap@2.2.10: + resolution: {integrity: sha512-HUTyxhhAQBl1hhsyLlHD1sh9xF6o6vaejzLxK5sge+LzrdEflQPQaNhC+n98d+OVB8v3LCCF+y80x/4bACjjJw==} peerDependencies: '@typescript-eslint/types': ^8.2.0 peerDependenciesMeta: @@ -2288,9 +2084,6 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -2356,27 +2149,6 @@ packages: flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} - flowbite-datepicker@1.3.2: - resolution: {integrity: sha512-6Nfm0MCVX3mpaR7YSCjmEO2GO8CDt6CX8ZpQnGdeu03WUCWtEPQ/uy0PUiNtIJjJZWnX0Cm3H55MOhbD1g+E/g==} - - flowbite-datepicker@2.0.0: - resolution: {integrity: sha512-m81hl0Bimq45MUg4maJLOnXrX+C9lZ0AkjMb9uotuVUSr729k/YiymWDfVAm63AYDH7g7y3rI3ke3XaBzWWqLw==} - - flowbite-svelte@1.33.1: - resolution: {integrity: sha512-HIG61H/YvWbfk0JTfirbPFb1F/YRPiJWYlUE7KTlmZ1X/ZTG6NZA9CgRuraO358cdpt0kv1gPYldrAKM1Apx2w==} - peerDependencies: - svelte: ^5.40.0 - tailwindcss: ^4.1.4 - - flowbite@2.5.2: - resolution: {integrity: sha512-kwFD3n8/YW4EG8GlY3Od9IoKND97kitO+/ejISHSqpn3vw2i5K/+ZI8Jm2V+KC4fGdnfi0XZ+TzYqQb4Q1LshA==} - - flowbite@3.1.2: - resolution: {integrity: sha512-MkwSgbbybCYgMC+go6Da5idEKUFfMqc/AmSjm/2ZbdmvoKf5frLPq/eIhXc9P+rC8t9boZtUXzHDgt5whZ6A/Q==} - - flowbite@4.0.2: - resolution: {integrity: sha512-TxBdfZpd3HktHH4ashiYjirrSZeVPtG1OCRZMKTeXUa9FOlMxSF98zgjMB/AxE49KZ+rlfgWynAlaNpWxrqZmA==} - formsnap@2.0.1: resolution: {integrity: sha512-iJSe4YKd/W6WhLwKDVJU9FQeaJRpEFuolhju7ZXlRpUVyDdqFdMP8AUBICgnVvQPyP41IPAlBa/v0Eo35iE6wQ==} engines: {node: '>=18', pnpm: '>=8.7.0'} @@ -2394,9 +2166,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -2465,9 +2234,6 @@ packages: resolution: {integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==} engines: {node: '>=18'} - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} @@ -2480,10 +2246,6 @@ packages: resolution: {integrity: sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==} engines: {node: '>=12'} - hasown@2.0.4: - resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} - engines: {node: '>= 0.4'} - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -2537,10 +2299,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-core-module@2.16.2: - resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} - engines: {node: '>= 0.4'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -2553,8 +2311,9 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} @@ -2613,8 +2372,8 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + js-yaml@4.2.0: + resolution: {integrity: sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==} hasBin: true jsesc@3.1.0: @@ -2649,6 +2408,9 @@ packages: engines: {node: '>=6'} hasBin: true + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -2667,8 +2429,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - libphonenumber-js@1.13.3: - resolution: {integrity: sha512-xMkdAMqcyG7iN2WZZmGIfWbYxW4orRkny+0/AXIbwL0xll2zkDX0Vzo/BXFa6+7mh2UvJl9MbcTtHk0YXkFtBA==} + libphonenumber-js@1.13.4: + resolution: {integrity: sha512-/lhWr7vq8foWN9Apksnd9v8/cfwzW6g6qKOCo25XBGkNaVCHucXO57hLy4CWHGvytvLz6Nt3J5Gs8p3jlCGFXA==} lightningcss-android-arm64@1.32.0: resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} @@ -2751,8 +2513,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@17.0.5: - resolution: {integrity: sha512-d12yC+/e8RhBjZtaxZn71FyrgU/P5e+uAPifhCLwdosQZP/zamSdKRWDC30ocVIbzDKiFG1McHc/LUgB92GIPw==} + lint-staged@17.0.7: + resolution: {integrity: sha512-JrSobt+tW3rH8IOMi8tDZd3foorM5yPEkLD/V2NxobgHrFfHWGee4MOLVuZeScgxftEwbHrPHIFA/ZL+nUJeuA==} engines: {node: '>=22.22.1'} hasBin: true @@ -2814,10 +2576,6 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} - mini-svg-data-uri@1.4.4: - resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} - hasBin: true - minimatch@10.2.5: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} @@ -2884,6 +2642,10 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} + ora@9.3.0: + resolution: {integrity: sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==} + engines: {node: '>=20'} + oxc-parser@0.131.0: resolution: {integrity: sha512-SJ3/7ZPbgie8dr5Z9BI/M51zZbpXba+hRSG0MDzVwMW5CRQg2fjYE0jHGlLX4eeiibGgC/mzoDFKSDHwVZEHRQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2939,9 +2701,6 @@ packages: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -3016,8 +2775,8 @@ packages: resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} engines: {node: '>=6.0.0'} - prettier-plugin-svelte@4.0.1: - resolution: {integrity: sha512-oDVmtKi+M8bJeUoMfPvulUqZYcuXrs5AmhhLYPKtBeg6hcpMdx7UYYisVCqEaLQuKtiPSYFpotfwp4cZK3D4xw==} + prettier-plugin-svelte@4.1.0: + resolution: {integrity: sha512-YZkhA2Q9oOerFFG9tq+2f98WYT7Z2JgrybJrAyrB78jpsH9i/DdgplXemehuFPgsldetFNCcR/yCcYlDjPy94Q==} engines: {node: '>=20'} peerDependencies: prettier: ^3.0.0 @@ -3074,11 +2833,6 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve@1.22.12: - resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} - engines: {node: '>= 0.4'} - hasBin: true - restore-cursor@5.1.0: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} @@ -3086,11 +2840,6 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.0.2: - resolution: {integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - rolldown@1.0.3: resolution: {integrity: sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3120,6 +2869,9 @@ packages: '@sveltejs/kit': optional: true + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} @@ -3167,6 +2919,10 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + sqlite-wasm-kysely@0.3.0: resolution: {integrity: sha512-TzjBNv7KwRw6E3pdKdlRyZiTmUIE0UttT/Sl56MVwVARl/u5gp978KepazCJZewFUnlWHz9i3NQd4kOtP/Afdg==} peerDependencies: @@ -3178,6 +2934,10 @@ packages: std-env@4.1.0: resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} + stdin-discarder@0.3.2: + resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==} + engines: {node: '>=18'} + string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -3217,27 +2977,23 @@ packages: resolution: {integrity: sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==} engines: {node: '>=20'} - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - svelte-adapter-bun@1.0.1: resolution: {integrity: sha512-tNOvfm8BGgG+rmEA7hkmqtq07v7zoo4skLQc+hIoQ79J+1fkEMpJEA2RzCIe3aPc8JdrsMJkv3mpiZPMsgahjA==} peerDependencies: '@sveltejs/kit': ^2.4.0 typescript: ^5 - svelte-check@4.4.8: - resolution: {integrity: sha512-67adfgBox5eNSNIvIIwgFizKGdcRrGpiMoNO2obHcYuLz7iTa8Xgm/NGU3ntMFnNm8K1grFOIG6HhMLX/vcN8w==} + svelte-check@4.5.0: + resolution: {integrity: sha512-9lNwPxCLWniFvQIcEv1LFqjIxcFtO3smb5+5BKbRJ3ttL4o2lXCej5rLF4DAnfLPI66oaA81vAxw6ILdIWI7kA==} engines: {node: '>= 18.0.0'} hasBin: true peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' - svelte-eslint-parser@1.6.1: - resolution: {integrity: sha512-hhvSH6kRj46UzrBVO5TaotD+Iuvruj5ccKBcO4wAhVcPTLmIc/c32D8UllBTYO0on4LzYuM0rNzf1lM/gBlkSQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.33.0} + svelte-eslint-parser@1.7.1: + resolution: {integrity: sha512-mmwwKL9L/MB0QyBKdfyWxGjDuQfEyzxWy5S9Kkd0O/V5XD57MQ33KQtXrO6vKLuP6PIt8CRozvOX1mxpcRTqUg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.34.1} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 peerDependenciesMeta: @@ -3273,8 +3029,8 @@ packages: peerDependencies: svelte: ^5.0.0 - svelte@5.55.10: - resolution: {integrity: sha512-v9mFVBY1USosyIWdXE7Cg4AN0ywyKCMcAhONvli8doMowEhFhMdNLKD1j7O/UnsrdVTHaUOk/jv8hD/HClVy+g==} + svelte@5.56.1: + resolution: {integrity: sha512-eArsJmvl3xZVuTYD852PzIEdg2wgDdIZ1NEsIPbzAukHwi284B18No4nK2rCO9AwsWUDza4Cjvmoa4HaojTl5g==} engines: {node: '>=18'} sveltekit-superforms@2.30.1: @@ -3306,22 +3062,18 @@ packages: tailwindcss@4.3.0: resolution: {integrity: sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==} - tapable@2.3.3: - resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} - engines: {node: '>=6'} - tiny-case@1.0.3: resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@1.2.2: - resolution: {integrity: sha512-M/Q0B2cp4K7kynaT/vnED1j8TlLY+Pp7C6Wl2bl/7u/F0mUVwdyOpwomQb8JpYLitHUssAJRmLZdMCGsrx7i+g==} + tinyexec@1.2.4: + resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} engines: {node: '>=18'} - tinyglobby@0.2.16: - resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} tinypool@2.1.0: @@ -3373,8 +3125,8 @@ packages: typebox@1.1.39: resolution: {integrity: sha512-vj0afVtOfLQvv0GR0VxVagYxsXN64btL7Z9XoaG0ZggH3mruMMkOO6hXdgMsjCY3shZgEvooAWVeznQVs5c43w==} - typescript-eslint@8.60.0: - resolution: {integrity: sha512-9f65qWLZdAW9m1JaxBDUHcqRUfL8bkxxXL7XxEfI+F09q56PkBvIfCjLF3yInsDM/BBmwkqmCQdCZe/RYlIWEw==} + typescript-eslint@8.60.1: + resolution: {integrity: sha512-6m5hkkRAp8lKvhVpcprAIn5KkehQEh+47oHH2VGnExEh7dhNxXlg6GPAOIu6TxbVQxhebrJDvjl3020ooiWCMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -3455,8 +3207,8 @@ packages: resolution: {integrity: sha512-TQ5pAGhd5whStmqWvYF4OjQROlmv9SMFVt37qoCBdqRffuuklWYQlCNnEs2ZaIBD1kZRNnikiZOS1eqgkar0iw==} engines: {node: '>= 0.10'} - vite@8.0.14: - resolution: {integrity: sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==} + vite@8.0.16: + resolution: {integrity: sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -3512,20 +3264,20 @@ packages: svelte: ^3 || ^4 || ^5 || ^5.0.0-next.0 vitest: ^4.0.0 - vitest@4.1.7: - resolution: {integrity: sha512-flYyaFd2CgoCoU+0UKt3pxksgC+S02iTDN0n3LtqaMeXsI9SBcdNujc2k0DeFLzUn/0k538yNjOSdwgCqcrwJA==} + vitest@4.1.8: + resolution: {integrity: sha512-flY6ScbCIt9HThs+C5HS7jvGOB560DJtk/Z15IQROTA6zEy49Nh8T/dofWTQL+n3vswqn87sbJNiuqw1SDp5Ig==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.7 - '@vitest/browser-preview': 4.1.7 - '@vitest/browser-webdriverio': 4.1.7 - '@vitest/coverage-istanbul': 4.1.7 - '@vitest/coverage-v8': 4.1.7 - '@vitest/ui': 4.1.7 + '@vitest/browser-playwright': 4.1.8 + '@vitest/browser-preview': 4.1.8 + '@vitest/browser-webdriverio': 4.1.8 + '@vitest/coverage-istanbul': 4.1.8 + '@vitest/coverage-v8': 4.1.8 + '@vitest/ui': 4.1.8 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3672,12 +3424,31 @@ snapshots: import-fresh: 3.3.0 prettier: 2.5.1 - '@alloc/quick-lru@5.2.0': {} + '@angular-devkit/core@21.2.14(chokidar@5.0.0)': + dependencies: + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + jsonc-parser: 3.3.1 + picomatch: 4.0.4 + rxjs: 7.8.2 + source-map: 0.7.6 + optionalDependencies: + chokidar: 5.0.0 + + '@angular-devkit/schematics@21.2.14(chokidar@5.0.0)': + dependencies: + '@angular-devkit/core': 21.2.14(chokidar@5.0.0) + jsonc-parser: 3.3.1 + magic-string: 0.30.21 + ora: 9.3.0 + rxjs: 7.8.2 + transitivePeerDependencies: + - chokidar '@antfu/install-pkg@1.1.0': dependencies: package-manager-detector: 1.6.0 - tinyexec: 1.2.2 + tinyexec: 1.2.4 '@ark/schema@0.56.0': dependencies: @@ -3741,14 +3512,14 @@ snapshots: '@blazediff/core@1.9.1': {} - '@commitlint/cli@21.0.1(@types/node@25.9.1)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.3)': + '@commitlint/cli@21.0.2(@types/node@25.9.1)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.3)': dependencies: '@commitlint/format': 21.0.1 - '@commitlint/lint': 21.0.1 - '@commitlint/load': 21.0.1(@types/node@25.9.1)(typescript@6.0.3) - '@commitlint/read': 21.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) + '@commitlint/lint': 21.0.2 + '@commitlint/load': 21.0.2(@types/node@25.9.1)(typescript@6.0.3) + '@commitlint/read': 21.0.2(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) '@commitlint/types': 21.0.1 - tinyexec: 1.2.2 + tinyexec: 1.2.4 yargs: 18.0.0 transitivePeerDependencies: - '@types/node' @@ -3756,7 +3527,7 @@ snapshots: - conventional-commits-parser - typescript - '@commitlint/config-conventional@21.0.1': + '@commitlint/config-conventional@21.0.2': dependencies: '@commitlint/types': 21.0.1 conventional-changelog-conventionalcommits: 9.3.1 @@ -3778,19 +3549,19 @@ snapshots: '@commitlint/types': 21.0.1 picocolors: 1.1.1 - '@commitlint/is-ignored@21.0.1': + '@commitlint/is-ignored@21.0.2': dependencies: '@commitlint/types': 21.0.1 semver: 7.8.1 - '@commitlint/lint@21.0.1': + '@commitlint/lint@21.0.2': dependencies: - '@commitlint/is-ignored': 21.0.1 - '@commitlint/parse': 21.0.1 - '@commitlint/rules': 21.0.1 + '@commitlint/is-ignored': 21.0.2 + '@commitlint/parse': 21.0.2 + '@commitlint/rules': 21.0.2 '@commitlint/types': 21.0.1 - '@commitlint/load@21.0.1(@types/node@25.9.1)(typescript@6.0.3)': + '@commitlint/load@21.0.2(@types/node@25.9.1)(typescript@6.0.3)': dependencies: '@commitlint/config-validator': 21.0.1 '@commitlint/execute-rule': 21.0.1 @@ -3805,20 +3576,20 @@ snapshots: - '@types/node' - typescript - '@commitlint/message@21.0.1': {} + '@commitlint/message@21.0.2': {} - '@commitlint/parse@21.0.1': + '@commitlint/parse@21.0.2': dependencies: '@commitlint/types': 21.0.1 conventional-changelog-angular: 8.3.1 conventional-commits-parser: 6.4.0 - '@commitlint/read@21.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)': + '@commitlint/read@21.0.2(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)': dependencies: - '@commitlint/top-level': 21.0.1 + '@commitlint/top-level': 21.0.2 '@commitlint/types': 21.0.1 git-raw-commits: 5.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) - tinyexec: 1.2.2 + tinyexec: 1.2.4 transitivePeerDependencies: - conventional-commits-filter - conventional-commits-parser @@ -3831,16 +3602,16 @@ snapshots: global-directory: 5.0.0 resolve-from: 5.0.0 - '@commitlint/rules@21.0.1': + '@commitlint/rules@21.0.2': dependencies: '@commitlint/ensure': 21.0.1 - '@commitlint/message': 21.0.1 + '@commitlint/message': 21.0.2 '@commitlint/to-lines': 21.0.1 '@commitlint/types': 21.0.1 '@commitlint/to-lines@21.0.1': {} - '@commitlint/top-level@21.0.1': + '@commitlint/top-level@21.0.2': dependencies: escalade: 3.2.0 @@ -3880,9 +3651,9 @@ snapshots: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.4.0(jiti@2.7.0))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.4.1(jiti@2.7.0))': dependencies: - eslint: 10.4.0(jiti@2.7.0) + eslint: 10.4.1(jiti@2.7.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -3907,7 +3678,7 @@ snapshots: '@eslint/object-schema@3.0.5': {} - '@eslint/plugin-kit@0.7.1': + '@eslint/plugin-kit@0.7.2': dependencies: '@eslint/core': 1.2.1 levn: 0.4.1 @@ -3928,7 +3699,7 @@ snapshots: conventional-recommended-bump: 11.2.0 execa: 9.6.1 git-cliff: 2.13.1 - js-yaml: 4.1.1 + js-yaml: 4.2.0 semver: 7.8.1 smol-toml: 1.6.1 @@ -3983,7 +3754,7 @@ snapshots: dependencies: '@iconify/types': 2.0.0 - '@iconify-json/material-icon-theme@1.2.66': + '@iconify-json/material-icon-theme@1.2.67': dependencies: '@iconify/types': 2.0.0 @@ -3999,7 +3770,7 @@ snapshots: '@iconify/types': 2.0.0 import-meta-resolve: 4.2.0 - '@inlang/paraglide-js@2.18.1(typescript@6.0.3)': + '@inlang/paraglide-js@2.18.2(typescript@6.0.3)': dependencies: '@inlang/recommend-sherlock': 0.2.1 '@inlang/sdk': 2.9.3 @@ -4066,15 +3837,15 @@ snapshots: '@lix-js/server-protocol-schema@0.1.1': {} - '@lucide/svelte@1.17.0(svelte@5.55.10(@typescript-eslint/types@8.60.0))': + '@lucide/svelte@1.17.0(svelte@5.56.1(@typescript-eslint/types@8.60.1))': dependencies: - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) - '@nanoforge-dev/actions@2.0.0': + '@nanoforge-dev/actions@2.1.3': dependencies: '@actions/core': 3.0.1 '@actions/github': 9.1.1 - commander: 14.0.3 + commander: 15.0.0 semver: 7.8.1 '@nanoforge-dev/common@1.3.0': {} @@ -4083,16 +3854,24 @@ snapshots: dependencies: '@nanoforge-dev/common': 1.3.0 - '@nanoforge-dev/utils-eslint-config@1.0.2(@types/eslint@9.6.1)(eslint@10.4.0(jiti@2.7.0))(prettier@3.8.3)(typescript@6.0.3)': + '@nanoforge-dev/schematics@2.1.3(chokidar@5.0.0)': + dependencies: + '@angular-devkit/core': 21.2.14(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.14(chokidar@5.0.0) + rxjs: 7.8.2 + transitivePeerDependencies: + - chokidar + + '@nanoforge-dev/utils-eslint-config@1.0.2(@types/eslint@9.6.1)(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3)(typescript@6.0.3)': dependencies: '@eslint/js': 9.39.4 '@favware/cliff-jumper': 6.1.0 - eslint-config-prettier: 10.1.8(eslint@10.4.0(jiti@2.7.0)) + eslint-config-prettier: 10.1.8(eslint@10.4.1(jiti@2.7.0)) eslint-formatter-pretty: 7.1.0 - eslint-plugin-format: 1.5.0(eslint@10.4.0(jiti@2.7.0)) - eslint-plugin-prettier: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.0(jiti@2.7.0)))(eslint@10.4.0(jiti@2.7.0))(prettier@3.8.3) + eslint-plugin-format: 1.5.0(eslint@10.4.1(jiti@2.7.0)) + eslint-plugin-prettier: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3) globals: 16.5.0 - typescript-eslint: 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) + typescript-eslint: 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) transitivePeerDependencies: - '@types/eslint' - eslint @@ -4282,8 +4061,6 @@ snapshots: '@oxc-project/types@0.131.0': {} - '@oxc-project/types@0.132.0': {} - '@oxc-project/types@0.133.0': {} '@oxfmt/binding-android-arm-eabi@0.35.0': @@ -4351,8 +4128,6 @@ snapshots: '@polka/url@1.0.0-next.29': {} - '@popperjs/core@2.11.8': {} - '@poppinss/macroable@1.1.2': optional: true @@ -4360,85 +4135,42 @@ snapshots: dependencies: quansync: 1.0.0 - '@rolldown/binding-android-arm64@1.0.2': - optional: true - '@rolldown/binding-android-arm64@1.0.3': optional: true - '@rolldown/binding-darwin-arm64@1.0.2': - optional: true - '@rolldown/binding-darwin-arm64@1.0.3': optional: true - '@rolldown/binding-darwin-x64@1.0.2': - optional: true - '@rolldown/binding-darwin-x64@1.0.3': optional: true - '@rolldown/binding-freebsd-x64@1.0.2': - optional: true - '@rolldown/binding-freebsd-x64@1.0.3': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.2': - optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.3': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.2': - optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.3': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.2': - optional: true - '@rolldown/binding-linux-arm64-musl@1.0.3': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.2': - optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.3': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.2': - optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.3': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.2': - optional: true - '@rolldown/binding-linux-x64-gnu@1.0.3': optional: true - '@rolldown/binding-linux-x64-musl@1.0.2': - optional: true - '@rolldown/binding-linux-x64-musl@1.0.3': optional: true - '@rolldown/binding-openharmony-arm64@1.0.2': - optional: true - '@rolldown/binding-openharmony-arm64@1.0.3': optional: true - '@rolldown/binding-wasm32-wasi@1.0.2': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - optional: true - '@rolldown/binding-wasm32-wasi@1.0.3': dependencies: '@emnapi/core': 1.10.0 @@ -4446,34 +4178,14 @@ snapshots: '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.2': - optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.3': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.2': - optional: true - '@rolldown/binding-win32-x64-msvc@1.0.3': optional: true '@rolldown/pluginutils@1.0.1': {} - '@rollup/plugin-node-resolve@15.3.1': - dependencies: - '@rollup/pluginutils': 5.3.0 - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.12 - - '@rollup/pluginutils@5.3.0': - dependencies: - '@types/estree': 1.0.9 - estree-walker: 2.0.2 - picomatch: 4.0.4 - '@sapphire/result@2.8.0': {} '@sapphire/utilities@3.18.2': {} @@ -4509,11 +4221,11 @@ snapshots: dependencies: acorn: 8.16.0 - '@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': + '@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': dependencies: '@standard-schema/spec': 1.1.0 '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0) - '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) '@types/cookie': 0.6.0 acorn: 8.16.0 cookie: 0.6.0 @@ -4524,105 +4236,36 @@ snapshots: mrmime: 2.0.1 set-cookie-parser: 3.1.0 sirv: 3.0.2 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) - vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) + vite: 8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) optionalDependencies: typescript: 6.0.3 - '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': + '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 obug: 2.1.1 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) - vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) - vitefu: 1.1.3(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) + vite: 8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) '@swc/helpers@0.5.23': dependencies: tslib: 2.8.1 - '@tailwindcss/node@4.3.0': - dependencies: - '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.22.1 - jiti: 2.7.0 - lightningcss: 1.32.0 - magic-string: 0.30.21 - source-map-js: 1.2.1 - tailwindcss: 4.3.0 - - '@tailwindcss/oxide-android-arm64@4.3.0': - optional: true - - '@tailwindcss/oxide-darwin-arm64@4.3.0': - optional: true - - '@tailwindcss/oxide-darwin-x64@4.3.0': - optional: true - - '@tailwindcss/oxide-freebsd-x64@4.3.0': - optional: true - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0': - optional: true - - '@tailwindcss/oxide-linux-arm64-gnu@4.3.0': - optional: true - - '@tailwindcss/oxide-linux-arm64-musl@4.3.0': - optional: true - - '@tailwindcss/oxide-linux-x64-gnu@4.3.0': - optional: true - - '@tailwindcss/oxide-linux-x64-musl@4.3.0': - optional: true - - '@tailwindcss/oxide-wasm32-wasi@4.3.0': - optional: true - - '@tailwindcss/oxide-win32-arm64-msvc@4.3.0': - optional: true - - '@tailwindcss/oxide-win32-x64-msvc@4.3.0': - optional: true - - '@tailwindcss/oxide@4.3.0': - optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.3.0 - '@tailwindcss/oxide-darwin-arm64': 4.3.0 - '@tailwindcss/oxide-darwin-x64': 4.3.0 - '@tailwindcss/oxide-freebsd-x64': 4.3.0 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.0 - '@tailwindcss/oxide-linux-arm64-gnu': 4.3.0 - '@tailwindcss/oxide-linux-arm64-musl': 4.3.0 - '@tailwindcss/oxide-linux-x64-gnu': 4.3.0 - '@tailwindcss/oxide-linux-x64-musl': 4.3.0 - '@tailwindcss/oxide-wasm32-wasi': 4.3.0 - '@tailwindcss/oxide-win32-arm64-msvc': 4.3.0 - '@tailwindcss/oxide-win32-x64-msvc': 4.3.0 - - '@tailwindcss/postcss@4.3.0': - dependencies: - '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.3.0 - '@tailwindcss/oxide': 4.3.0 - postcss: 8.5.15 - tailwindcss: 4.3.0 - - '@tanstack/query-core@5.100.14': {} + '@tanstack/query-core@5.101.0': {} - '@tanstack/svelte-query@6.1.33(svelte@5.55.10(@typescript-eslint/types@8.60.0))': + '@tanstack/svelte-query@6.1.34(svelte@5.56.1(@typescript-eslint/types@8.60.1))': dependencies: - '@tanstack/query-core': 5.100.14 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + '@tanstack/query-core': 5.101.0 + svelte: 5.56.1(@typescript-eslint/types@8.60.1) - '@testing-library/svelte-core@1.0.0(svelte@5.55.10(@typescript-eslint/types@8.60.0))': + '@testing-library/svelte-core@1.0.0(svelte@5.56.1(@typescript-eslint/types@8.60.1))': dependencies: - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) - '@trivago/prettier-plugin-sort-imports@6.0.2(prettier-plugin-svelte@4.0.1(prettier@3.8.3)(svelte@5.55.10(@typescript-eslint/types@8.60.0)))(prettier@3.8.3)(svelte@5.55.10(@typescript-eslint/types@8.60.0))': + '@trivago/prettier-plugin-sort-imports@6.0.2(prettier-plugin-svelte@4.1.0(prettier@3.8.3)(svelte@5.56.1(@typescript-eslint/types@8.60.1)))(prettier@3.8.3)(svelte@5.56.1(@typescript-eslint/types@8.60.1))': dependencies: '@babel/generator': 7.29.7 '@babel/parser': 7.29.7 @@ -4634,8 +4277,8 @@ snapshots: parse-imports-exports: 0.2.4 prettier: 3.8.3 optionalDependencies: - prettier-plugin-svelte: 4.0.1(prettier@3.8.3)(svelte@5.55.10(@typescript-eslint/types@8.60.0)) - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + prettier-plugin-svelte: 4.1.0(prettier@3.8.3)(svelte@5.56.1(@typescript-eslint/types@8.60.1)) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) transitivePeerDependencies: - supports-color @@ -4674,8 +4317,6 @@ snapshots: dependencies: undici-types: 7.24.6 - '@types/resolve@1.20.2': {} - '@types/trusted-types@2.0.7': {} '@types/validator@13.15.10': @@ -4695,15 +4336,15 @@ snapshots: '@types/json-schema': 7.0.15 optional: true - '@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.60.1(@typescript-eslint/parser@8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/type-utils': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.60.0 - eslint: 10.4.0(jiti@2.7.0) + '@typescript-eslint/parser': 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.60.1 + '@typescript-eslint/type-utils': 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.60.1 + eslint: 10.4.1(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) @@ -4711,79 +4352,79 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/parser@8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.60.0 + '@typescript-eslint/scope-manager': 8.60.1 + '@typescript-eslint/types': 8.60.1 + '@typescript-eslint/typescript-estree': 8.60.1(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.60.1 debug: 4.4.3 - eslint: 10.4.0(jiti@2.7.0) + eslint: 10.4.1(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.60.0(typescript@6.0.3)': + '@typescript-eslint/project-service@8.60.1(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) - '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/tsconfig-utils': 8.60.1(typescript@6.0.3) + '@typescript-eslint/types': 8.60.1 debug: 4.4.3 typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.60.0': + '@typescript-eslint/scope-manager@8.60.1': dependencies: - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/visitor-keys': 8.60.0 + '@typescript-eslint/types': 8.60.1 + '@typescript-eslint/visitor-keys': 8.60.1 - '@typescript-eslint/tsconfig-utils@8.60.0(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.60.1(typescript@6.0.3)': dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/types': 8.60.1 + '@typescript-eslint/typescript-estree': 8.60.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) debug: 4.4.3 - eslint: 10.4.0(jiti@2.7.0) + eslint: 10.4.1(jiti@2.7.0) ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.60.0': {} + '@typescript-eslint/types@8.60.1': {} - '@typescript-eslint/typescript-estree@8.60.0(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.60.1(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.60.0(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/visitor-keys': 8.60.0 + '@typescript-eslint/project-service': 8.60.1(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.60.1(typescript@6.0.3) + '@typescript-eslint/types': 8.60.1 + '@typescript-eslint/visitor-keys': 8.60.1 debug: 4.4.3 minimatch: 10.2.5 semver: 7.8.1 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/utils@8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - eslint: 10.4.0(jiti@2.7.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) + '@typescript-eslint/scope-manager': 8.60.1 + '@typescript-eslint/types': 8.60.1 + '@typescript-eslint/typescript-estree': 8.60.1(typescript@6.0.3) + eslint: 10.4.1(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.60.0': + '@typescript-eslint/visitor-keys@8.60.1': dependencies: - '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/types': 8.60.1 eslint-visitor-keys: 5.0.1 '@unocss/cli@66.7.0': @@ -4801,7 +4442,7 @@ snapshots: magic-string: 0.30.21 pathe: 2.0.3 perfect-debounce: 2.1.0 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 unplugin-utils: 0.3.1 '@unocss/config@66.7.0': @@ -4921,7 +4562,7 @@ snapshots: dependencies: '@unocss/core': 66.7.0 - '@unocss/vite@66.7.0(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': + '@unocss/vite@66.7.0(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': dependencies: '@jridgewell/remapping': 2.3.5 '@unocss/config': 66.7.0 @@ -4930,9 +4571,9 @@ snapshots: chokidar: 5.0.0 magic-string: 0.30.21 pathe: 2.0.3 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 unplugin-utils: 0.3.1 - vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) '@valibot/to-json-schema@1.7.0(valibot@1.4.1(typescript@6.0.3))': dependencies: @@ -4954,29 +4595,29 @@ snapshots: validator: 13.15.35 optional: true - '@vitest/browser-playwright@4.1.7(playwright@1.60.0)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.7)': + '@vitest/browser-playwright@4.1.8(playwright@1.60.0)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8)': dependencies: - '@vitest/browser': 4.1.7(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.7) - '@vitest/mocker': 4.1.7(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@vitest/browser': 4.1.8(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8) + '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) playwright: 1.60.0 tinyrainbow: 3.1.0 - vitest: 4.1.7(@types/node@25.9.1)(@vitest/browser-playwright@4.1.7)(@vitest/coverage-v8@4.1.7)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + vitest: 4.1.8(@types/node@25.9.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser@4.1.7(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.7)': + '@vitest/browser@4.1.8(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8)': dependencies: '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.7(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) - '@vitest/utils': 4.1.7 + '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@vitest/utils': 4.1.8 magic-string: 0.30.21 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.1.0 - vitest: 4.1.7(@types/node@25.9.1)(@vitest/browser-playwright@4.1.7)(@vitest/coverage-v8@4.1.7)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + vitest: 4.1.8(@types/node@25.9.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) ws: 8.21.0 transitivePeerDependencies: - bufferutil @@ -4984,11 +4625,11 @@ snapshots: - utf-8-validate - vite - '@vitest/coverage-v8@4.1.7(@vitest/browser@4.1.7)(vitest@4.1.7)': + '@vitest/coverage-v8@4.1.8(@vitest/browser@4.1.8)(vitest@4.1.8)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.7 - ast-v8-to-istanbul: 1.0.2 + '@vitest/utils': 4.1.8 + ast-v8-to-istanbul: 1.0.3 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-reports: 3.2.0 @@ -4996,48 +4637,48 @@ snapshots: obug: 2.1.1 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.7(@types/node@25.9.1)(@vitest/browser-playwright@4.1.7)(@vitest/coverage-v8@4.1.7)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + vitest: 4.1.8(@types/node@25.9.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) optionalDependencies: - '@vitest/browser': 4.1.7(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.7) + '@vitest/browser': 4.1.8(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8) - '@vitest/expect@4.1.7': + '@vitest/expect@4.1.8': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.7 - '@vitest/utils': 4.1.7 + '@vitest/spy': 4.1.8 + '@vitest/utils': 4.1.8 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.7(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': + '@vitest/mocker@4.1.8(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.7 + '@vitest/spy': 4.1.8 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) - '@vitest/pretty-format@4.1.7': + '@vitest/pretty-format@4.1.8': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.7': + '@vitest/runner@4.1.8': dependencies: - '@vitest/utils': 4.1.7 + '@vitest/utils': 4.1.8 pathe: 2.0.3 - '@vitest/snapshot@4.1.7': + '@vitest/snapshot@4.1.8': dependencies: - '@vitest/pretty-format': 4.1.7 - '@vitest/utils': 4.1.7 + '@vitest/pretty-format': 4.1.8 + '@vitest/utils': 4.1.8 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.7': {} + '@vitest/spy@4.1.8': {} - '@vitest/utils@4.1.7': + '@vitest/utils@4.1.8': dependencies: - '@vitest/pretty-format': 4.1.7 + '@vitest/pretty-format': 4.1.8 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -5047,6 +4688,10 @@ snapshots: acorn@8.16.0: {} + ajv-formats@3.0.1(ajv@8.18.0): + optionalDependencies: + ajv: 8.18.0 + ajv@6.15.0: dependencies: fast-deep-equal: 3.1.3 @@ -5054,6 +4699,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@8.18.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.2 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 @@ -5069,8 +4721,6 @@ snapshots: ansi-styles@6.2.3: {} - apexcharts@5.13.0: {} - argparse@2.0.1: {} aria-query@5.3.1: {} @@ -5093,7 +4743,7 @@ snapshots: assertion-error@2.0.1: {} - ast-v8-to-istanbul@1.0.2: + ast-v8-to-istanbul@1.0.3: dependencies: '@jridgewell/trace-mapping': 0.3.31 estree-walker: 3.0.3 @@ -5107,15 +4757,15 @@ snapshots: before-after-hook@4.0.0: {} - bits-ui@2.18.1(@internationalized/date@3.12.2)(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + bits-ui@2.18.1(@internationalized/date@3.12.2)(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: '@floating-ui/core': 1.7.5 '@floating-ui/dom': 1.7.6 '@internationalized/date': 3.12.2 esm-env: 1.2.2 - runed: 0.35.1(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0)) - svelte: 5.55.10(@typescript-eslint/types@8.60.0) - svelte-toolbelt: 0.10.6(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + runed: 0.35.1(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1)) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) + svelte-toolbelt: 0.10.6(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1)) tabbable: 6.4.0 transitivePeerDependencies: - '@sveltejs/kit' @@ -5175,7 +4825,7 @@ snapshots: class-validator@0.14.4: dependencies: '@types/validator': 13.15.10 - libphonenumber-js: 1.13.3 + libphonenumber-js: 1.13.4 validator: 13.15.35 optional: true @@ -5183,6 +4833,8 @@ snapshots: dependencies: restore-cursor: 5.1.0 + cli-spinners@3.4.0: {} + cli-truncate@5.2.0: dependencies: slice-ansi: 8.0.0 @@ -5202,6 +4854,8 @@ snapshots: commander@14.0.3: {} + commander@15.0.0: {} + comment-json@4.6.2: dependencies: array-timsort: 1.0.3 @@ -5260,7 +4914,7 @@ snapshots: dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.1.1 + js-yaml: 4.2.0 parse-json: 5.2.0 optionalDependencies: typescript: 6.0.3 @@ -5278,8 +4932,6 @@ snapshots: cssesc@3.0.0: {} - date-fns@4.3.0: {} - dayjs@1.11.21: optional: true @@ -5326,11 +4978,6 @@ snapshots: emoji-regex@10.6.0: {} - enhanced-resolve@5.22.1: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.3 - env-paths@2.2.1: {} environment@1.1.0: {} @@ -5339,8 +4986,6 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-errors@1.3.0: {} - es-module-lexer@2.1.0: {} es-toolkit@1.47.0: {} @@ -5349,9 +4994,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.8(eslint@10.4.0(jiti@2.7.0)): + eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)): dependencies: - eslint: 10.4.0(jiti@2.7.0) + eslint: 10.4.1(jiti@2.7.0) eslint-formatter-pretty@7.1.0: dependencies: @@ -5364,41 +5009,41 @@ snapshots: string-width: 8.2.1 supports-hyperlinks: 4.4.0 - eslint-formatting-reporter@0.0.0(eslint@10.4.0(jiti@2.7.0)): + eslint-formatting-reporter@0.0.0(eslint@10.4.1(jiti@2.7.0)): dependencies: - eslint: 10.4.0(jiti@2.7.0) + eslint: 10.4.1(jiti@2.7.0) prettier-linter-helpers: 1.0.1 eslint-parser-plain@0.1.1: {} - eslint-plugin-format@1.5.0(eslint@10.4.0(jiti@2.7.0)): + eslint-plugin-format@1.5.0(eslint@10.4.1(jiti@2.7.0)): dependencies: '@dprint/formatter': 0.5.1 '@dprint/markdown': 0.21.1 '@dprint/toml': 0.7.0 - eslint: 10.4.0(jiti@2.7.0) - eslint-formatting-reporter: 0.0.0(eslint@10.4.0(jiti@2.7.0)) + eslint: 10.4.1(jiti@2.7.0) + eslint-formatting-reporter: 0.0.0(eslint@10.4.1(jiti@2.7.0)) eslint-parser-plain: 0.1.1 ohash: 2.0.11 oxfmt: 0.35.0 prettier: 3.8.3 synckit: 0.11.13 - eslint-plugin-prettier@5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.0(jiti@2.7.0)))(eslint@10.4.0(jiti@2.7.0))(prettier@3.8.3): + eslint-plugin-prettier@5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)))(eslint@10.4.1(jiti@2.7.0))(prettier@3.8.3): dependencies: - eslint: 10.4.0(jiti@2.7.0) + eslint: 10.4.1(jiti@2.7.0) prettier: 3.8.3 prettier-linter-helpers: 1.0.1 synckit: 0.11.13 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.8(eslint@10.4.0(jiti@2.7.0)) + eslint-config-prettier: 10.1.8(eslint@10.4.1(jiti@2.7.0)) - eslint-plugin-svelte@3.18.0(eslint@10.4.0(jiti@2.7.0))(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + eslint-plugin-svelte@3.19.0(eslint@10.4.1(jiti@2.7.0))(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.7.0)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) '@jridgewell/sourcemap-codec': 1.5.5 - eslint: 10.4.0(jiti@2.7.0) + eslint: 10.4.1(jiti@2.7.0) esutils: 2.0.3 globals: 16.5.0 known-css-properties: 0.37.0 @@ -5406,9 +5051,9 @@ snapshots: postcss-load-config: 3.1.4(postcss@8.5.15) postcss-safe-parser: 7.0.1(postcss@8.5.15) semver: 7.8.1 - svelte-eslint-parser: 1.6.1(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + svelte-eslint-parser: 1.7.1(svelte@5.56.1(@typescript-eslint/types@8.60.1)) optionalDependencies: - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) transitivePeerDependencies: - ts-node @@ -5432,14 +5077,14 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.4.0(jiti@2.7.0): + eslint@10.4.1(jiti@2.7.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.7.0)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.6.0 '@eslint/core': 1.2.1 - '@eslint/plugin-kit': 0.7.1 + '@eslint/plugin-kit': 0.7.2 '@humanfs/node': 0.16.8 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -5489,11 +5134,11 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.9(@typescript-eslint/types@8.60.0): + esrap@2.2.10(@typescript-eslint/types@8.60.1): dependencies: '@jridgewell/sourcemap-codec': 1.5.5 optionalDependencies: - '@typescript-eslint/types': 8.60.0 + '@typescript-eslint/types': 8.60.1 esrecurse@4.3.0: dependencies: @@ -5501,8 +5146,6 @@ snapshots: estraverse@5.3.0: {} - estree-walker@2.0.2: {} - estree-walker@3.0.3: dependencies: '@types/estree': 1.0.9 @@ -5567,68 +5210,11 @@ snapshots: flatted@3.4.2: {} - flowbite-datepicker@1.3.2: - dependencies: - '@rollup/plugin-node-resolve': 15.3.1 - flowbite: 2.5.2 - transitivePeerDependencies: - - rollup - - flowbite-datepicker@2.0.0: - dependencies: - '@rollup/plugin-node-resolve': 15.3.1 - '@tailwindcss/postcss': 4.3.0 - transitivePeerDependencies: - - rollup - - flowbite-svelte@1.33.1(svelte@5.55.10(@typescript-eslint/types@8.60.0))(tailwindcss@4.3.0): - dependencies: - '@floating-ui/dom': 1.7.6 - '@floating-ui/utils': 0.2.11 - apexcharts: 5.13.0 - clsx: 2.1.1 - date-fns: 4.3.0 - esm-env: 1.2.2 - flowbite: 3.1.2 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) - tailwind-merge: 3.6.0 - tailwind-variants: 3.2.2(tailwind-merge@3.6.0)(tailwindcss@4.3.0) - tailwindcss: 4.3.0 - transitivePeerDependencies: - - rollup - - flowbite@2.5.2: - dependencies: - '@popperjs/core': 2.11.8 - flowbite-datepicker: 1.3.2 - mini-svg-data-uri: 1.4.4 - transitivePeerDependencies: - - rollup - - flowbite@3.1.2: - dependencies: - '@popperjs/core': 2.11.8 - flowbite-datepicker: 1.3.2 - mini-svg-data-uri: 1.4.4 - postcss: 8.5.15 - transitivePeerDependencies: - - rollup - - flowbite@4.0.2: + formsnap@2.0.1(svelte@5.56.1(@typescript-eslint/types@8.60.1))(sveltekit-superforms@2.30.1(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)): dependencies: - '@popperjs/core': 2.11.8 - flowbite-datepicker: 2.0.0 - mini-svg-data-uri: 1.4.4 - postcss: 8.5.15 - tailwindcss: 4.3.0 - transitivePeerDependencies: - - rollup - - formsnap@2.0.1(svelte@5.55.10(@typescript-eslint/types@8.60.0))(sveltekit-superforms@2.30.1(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)): - dependencies: - svelte: 5.55.10(@typescript-eslint/types@8.60.0) - svelte-toolbelt: 0.5.0(svelte@5.55.10(@typescript-eslint/types@8.60.0)) - sveltekit-superforms: 2.30.1(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) + svelte-toolbelt: 0.5.0(svelte@5.56.1(@typescript-eslint/types@8.60.1)) + sveltekit-superforms: 2.30.1(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3) fsevents@2.3.2: optional: true @@ -5636,8 +5222,6 @@ snapshots: fsevents@2.3.3: optional: true - function-bind@1.1.2: {} - get-caller-file@2.0.5: {} get-east-asian-width@1.6.0: {} @@ -5696,8 +5280,6 @@ snapshots: globals@17.6.0: {} - graceful-fs@4.2.11: {} - gzip-size@6.0.0: dependencies: duplexer: 0.1.2 @@ -5706,10 +5288,6 @@ snapshots: has-flag@5.0.1: {} - hasown@2.0.4: - dependencies: - function-bind: 1.1.2 - html-escaper@2.0.2: {} human-id@4.1.3: {} @@ -5744,10 +5322,6 @@ snapshots: is-arrayish@0.2.1: {} - is-core-module@2.16.2: - dependencies: - hasown: 2.0.4 - is-extglob@2.1.1: {} is-fullwidth-code-point@5.1.0: @@ -5758,7 +5332,7 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-module@1.0.0: {} + is-interactive@2.0.0: {} is-obj@2.0.0: {} @@ -5808,7 +5382,7 @@ snapshots: js-tokens@4.0.0: {} - js-yaml@4.1.1: + js-yaml@4.2.0: dependencies: argparse: 2.0.1 @@ -5834,6 +5408,8 @@ snapshots: json5@2.2.3: {} + jsonc-parser@3.3.1: {} + keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -5849,7 +5425,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - libphonenumber-js@1.13.3: + libphonenumber-js@1.13.4: optional: true lightningcss-android-arm64@1.32.0: @@ -5905,12 +5481,12 @@ snapshots: lines-and-columns@1.2.4: {} - lint-staged@17.0.5: + lint-staged@17.0.7: dependencies: listr2: 10.2.1 picomatch: 4.0.4 string-argv: 0.3.2 - tinyexec: 1.2.2 + tinyexec: 1.2.4 optionalDependencies: yaml: 2.9.0 @@ -5979,8 +5555,6 @@ snapshots: mimic-function@5.0.1: {} - mini-svg-data-uri@1.4.4: {} - minimatch@10.2.5: dependencies: brace-expansion: 5.0.6 @@ -5996,11 +5570,11 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.4 - mode-watcher@1.1.0(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + mode-watcher@1.1.0(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: - runed: 0.25.0(svelte@5.55.10(@typescript-eslint/types@8.60.0)) - svelte: 5.55.10(@typescript-eslint/types@8.60.0) - svelte-toolbelt: 0.7.1(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + runed: 0.25.0(svelte@5.56.1(@typescript-eslint/types@8.60.1)) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) + svelte-toolbelt: 0.7.1(svelte@5.56.1(@typescript-eslint/types@8.60.1)) monaco-editor@0.55.1: dependencies: @@ -6050,6 +5624,17 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + ora@9.3.0: + dependencies: + chalk: 5.6.2 + cli-cursor: 5.0.0 + cli-spinners: 3.4.0 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 7.0.1 + stdin-discarder: 0.3.2 + string-width: 8.2.1 + oxc-parser@0.131.0: dependencies: '@oxc-project/types': 0.131.0 @@ -6139,8 +5724,6 @@ snapshots: path-key@4.0.0: {} - path-parse@1.0.7: {} - pathe@2.0.3: {} perfect-debounce@2.1.0: {} @@ -6201,10 +5784,10 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier-plugin-svelte@4.0.1(prettier@3.8.3)(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + prettier-plugin-svelte@4.1.0(prettier@3.8.3)(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: prettier: 3.8.3 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) prettier@2.5.1: {} @@ -6236,13 +5819,6 @@ snapshots: resolve-from@5.0.0: {} - resolve@1.22.12: - dependencies: - es-errors: 1.3.0 - is-core-module: 2.16.2 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@5.1.0: dependencies: onetime: 7.0.0 @@ -6250,27 +5826,6 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.0.2: - dependencies: - '@oxc-project/types': 0.132.0 - '@rolldown/pluginutils': 1.0.1 - optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.2 - '@rolldown/binding-darwin-arm64': 1.0.2 - '@rolldown/binding-darwin-x64': 1.0.2 - '@rolldown/binding-freebsd-x64': 1.0.2 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.2 - '@rolldown/binding-linux-arm64-gnu': 1.0.2 - '@rolldown/binding-linux-arm64-musl': 1.0.2 - '@rolldown/binding-linux-ppc64-gnu': 1.0.2 - '@rolldown/binding-linux-s390x-gnu': 1.0.2 - '@rolldown/binding-linux-x64-gnu': 1.0.2 - '@rolldown/binding-linux-x64-musl': 1.0.2 - '@rolldown/binding-openharmony-arm64': 1.0.2 - '@rolldown/binding-wasm32-wasi': 1.0.2 - '@rolldown/binding-win32-arm64-msvc': 1.0.2 - '@rolldown/binding-win32-x64-msvc': 1.0.2 - rolldown@1.0.3: dependencies: '@oxc-project/types': 0.133.0 @@ -6292,29 +5847,33 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.3 '@rolldown/binding-win32-x64-msvc': 1.0.3 - runed@0.23.4(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + runed@0.23.4(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: esm-env: 1.2.2 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) - runed@0.25.0(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + runed@0.25.0(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: esm-env: 1.2.2 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) - runed@0.28.0(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + runed@0.28.0(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: esm-env: 1.2.2 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) - runed@0.35.1(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + runed@0.35.1(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: dequal: 2.0.3 esm-env: 1.2.2 lz-string: 1.5.0 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) optionalDependencies: - '@sveltejs/kit': 2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@sveltejs/kit': 2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 sade@1.8.1: dependencies: @@ -6354,6 +5913,8 @@ snapshots: source-map-js@1.2.1: {} + source-map@0.7.6: {} + sqlite-wasm-kysely@0.3.0(kysely@0.28.17): dependencies: '@sqlite.org/sqlite-wasm': 3.48.0-build4 @@ -6363,6 +5924,8 @@ snapshots: std-env@4.1.0: {} + stdin-discarder@0.3.2: {} + string-argv@0.3.2: {} string-width@7.2.0: @@ -6400,27 +5963,25 @@ snapshots: has-flag: 5.0.1 supports-color: 10.2.2 - supports-preserve-symlinks-flag@1.0.0: {} - - svelte-adapter-bun@1.0.1(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(typescript@6.0.3): + svelte-adapter-bun@1.0.1(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(typescript@6.0.3): dependencies: - '@sveltejs/kit': 2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@sveltejs/kit': 2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) rolldown: 1.0.3 typescript: 6.0.3 - svelte-check@4.4.8(picomatch@4.0.4)(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3): + svelte-check@4.5.0(picomatch@4.0.4)(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 chokidar: 4.0.3 fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) typescript: 6.0.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.6.1(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + svelte-eslint-parser@1.7.1(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -6430,42 +5991,42 @@ snapshots: postcss-selector-parser: 7.1.1 semver: 7.8.1 optionalDependencies: - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) - svelte-kit-sessions@0.4.0(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + svelte-kit-sessions@0.4.0(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: '@isaacs/ttlcache': 1.4.1 - '@sveltejs/kit': 2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + '@sveltejs/kit': 2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) - svelte-sonner@1.1.1(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + svelte-sonner@1.1.1(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: - runed: 0.28.0(svelte@5.55.10(@typescript-eslint/types@8.60.0)) - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + runed: 0.28.0(svelte@5.56.1(@typescript-eslint/types@8.60.1)) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) - svelte-toolbelt@0.10.6(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + svelte-toolbelt@0.10.6(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: clsx: 2.1.1 - runed: 0.35.1(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + runed: 0.35.1(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1)) style-to-object: 1.0.14 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) transitivePeerDependencies: - '@sveltejs/kit' - svelte-toolbelt@0.5.0(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + svelte-toolbelt@0.5.0(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: clsx: 2.1.1 style-to-object: 1.0.14 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) - svelte-toolbelt@0.7.1(svelte@5.55.10(@typescript-eslint/types@8.60.0)): + svelte-toolbelt@0.7.1(svelte@5.56.1(@typescript-eslint/types@8.60.1)): dependencies: clsx: 2.1.1 - runed: 0.23.4(svelte@5.55.10(@typescript-eslint/types@8.60.0)) + runed: 0.23.4(svelte@5.56.1(@typescript-eslint/types@8.60.1)) style-to-object: 1.0.14 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) - svelte@5.55.10(@typescript-eslint/types@8.60.0): + svelte@5.56.1(@typescript-eslint/types@8.60.1): dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 @@ -6478,7 +6039,7 @@ snapshots: clsx: 2.1.1 devalue: 5.8.1 esm-env: 1.2.2 - esrap: 2.2.9(@typescript-eslint/types@8.60.0) + esrap: 2.2.10(@typescript-eslint/types@8.60.1) is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 @@ -6486,12 +6047,12 @@ snapshots: transitivePeerDependencies: - '@typescript-eslint/types' - sveltekit-superforms@2.30.1(@sveltejs/kit@2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3): + sveltekit-superforms@2.30.1(@sveltejs/kit@2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3): dependencies: - '@sveltejs/kit': 2.61.1(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.55.10(@typescript-eslint/types@8.60.0))(typescript@6.0.3)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@sveltejs/kit': 2.62.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.1(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) devalue: 5.8.1 memoize-weak: 1.0.2 - svelte: 5.55.10(@typescript-eslint/types@8.60.0) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) ts-deepmerge: 7.0.3 optionalDependencies: '@exodus/schemasafe': 1.3.0 @@ -6530,16 +6091,14 @@ snapshots: tailwindcss@4.3.0: {} - tapable@2.3.3: {} - tiny-case@1.0.3: optional: true tinybench@2.9.0: {} - tinyexec@1.2.2: {} + tinyexec@1.2.4: {} - tinyglobby@0.2.16: + tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 @@ -6578,13 +6137,13 @@ snapshots: typebox@1.1.39: optional: true - typescript-eslint@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3): + typescript-eslint@8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.60.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3) - eslint: 10.4.0(jiti@2.7.0) + '@typescript-eslint/eslint-plugin': 8.60.1(@typescript-eslint/parser@8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3))(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.60.1(typescript@6.0.3) + '@typescript-eslint/utils': 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.4.1(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -6614,7 +6173,7 @@ snapshots: universal-user-agent@7.0.3: {} - unocss@66.7.0(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)): + unocss@66.7.0(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)): dependencies: '@unocss/cli': 66.7.0 '@unocss/core': 66.7.0 @@ -6632,7 +6191,7 @@ snapshots: '@unocss/transformer-compile-class': 66.7.0 '@unocss/transformer-directives': 66.7.0 '@unocss/transformer-variant-group': 66.7.0 - '@unocss/vite': 66.7.0(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@unocss/vite': 66.7.0(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) transitivePeerDependencies: - vite @@ -6666,38 +6225,38 @@ snapshots: validator@13.15.35: optional: true - vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0): + vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 postcss: 8.5.15 - rolldown: 1.0.2 - tinyglobby: 0.2.16 + rolldown: 1.0.3 + tinyglobby: 0.2.17 optionalDependencies: '@types/node': 25.9.1 fsevents: 2.3.3 jiti: 2.7.0 yaml: 2.9.0 - vitefu@1.1.3(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)): + vitefu@1.1.3(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)): optionalDependencies: - vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) - vitest-browser-svelte@2.1.1(svelte@5.55.10(@typescript-eslint/types@8.60.0))(vitest@4.1.7): + vitest-browser-svelte@2.1.1(svelte@5.56.1(@typescript-eslint/types@8.60.1))(vitest@4.1.8): dependencies: - '@testing-library/svelte-core': 1.0.0(svelte@5.55.10(@typescript-eslint/types@8.60.0)) - svelte: 5.55.10(@typescript-eslint/types@8.60.0) - vitest: 4.1.7(@types/node@25.9.1)(@vitest/browser-playwright@4.1.7)(@vitest/coverage-v8@4.1.7)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@testing-library/svelte-core': 1.0.0(svelte@5.56.1(@typescript-eslint/types@8.60.1)) + svelte: 5.56.1(@typescript-eslint/types@8.60.1) + vitest: 4.1.8(@types/node@25.9.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) - vitest@4.1.7(@types/node@25.9.1)(@vitest/browser-playwright@4.1.7)(@vitest/coverage-v8@4.1.7)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)): + vitest@4.1.8(@types/node@25.9.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.7 - '@vitest/mocker': 4.1.7(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.7 - '@vitest/runner': 4.1.7 - '@vitest/snapshot': 4.1.7 - '@vitest/spy': 4.1.7 - '@vitest/utils': 4.1.7 + '@vitest/expect': 4.1.8 + '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.8 + '@vitest/runner': 4.1.8 + '@vitest/snapshot': 4.1.8 + '@vitest/spy': 4.1.8 + '@vitest/utils': 4.1.8 es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -6706,15 +6265,15 @@ snapshots: picomatch: 4.0.4 std-env: 4.1.0 tinybench: 2.9.0 - tinyexec: 1.2.2 - tinyglobby: 0.2.16 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 25.9.1 - '@vitest/browser-playwright': 4.1.7(playwright@1.60.0)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.7) - '@vitest/coverage-v8': 4.1.7(@vitest/browser@4.1.7)(vitest@4.1.7) + '@vitest/browser-playwright': 4.1.8(playwright@1.60.0)(vite@8.0.16(@types/node@25.9.1)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8) + '@vitest/coverage-v8': 4.1.8(@vitest/browser@4.1.8)(vitest@4.1.8) transitivePeerDependencies: - msw diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 872da56..dea645d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -7,29 +7,27 @@ catalogs: 'svelte-adapter-bun': ^1.0.1 typescript: ^6.0.3 ci: - '@commitlint/cli': ^21.0.1 - '@commitlint/config-conventional': ^21.0.1 + '@commitlint/cli': ^21.0.2 + '@commitlint/config-conventional': ^21.0.2 '@favware/cliff-jumper': ^6.1.0 - '@nanoforge-dev/actions': ^2.0.0 + '@nanoforge-dev/actions': ^2.1.3 husky: ^9.1.7 - lint-staged: ^17.0.5 + lint-staged: ^17.0.7 components: bits-ui: ^2.18.1 - flowbite: ^4.0.2 - flowbite-svelte: ^1.33.1 monaco-editor: ^0.55.1 svelte-sonner: ^1.1.1 core: '@nanoforge-dev/ecs-lib': ^1.3.0 '@sveltejs/adapter-auto': ^7.0.1 - '@sveltejs/kit': ^2.61.1 + '@sveltejs/kit': ^2.62.0 '@sveltejs/vite-plugin-svelte': ^7.1.2 '@types/bun': ^1.3.14 bun: ^1.3.14 - svelte: ^5.55.9 - svelte-check: ^4.4.8 + svelte: ^5.56.1 + svelte-check: ^4.5.0 svelte-kit-sessions: ^0.4.0 - vite: ^8.0.14 + vite: ^8.0.16 css: '@alexanderniebuhr/prettier-plugin-unocss': ^0.0.4 '@unocss/extractor-svelte': ^66.7.0 @@ -42,19 +40,19 @@ catalogs: tailwindcss: ^4.3.0 unocss: ^66.7.0 i18n: - '@inlang/paraglide-js': ^2.18.1 + '@inlang/paraglide-js': ^2.18.2 icons: '@iconify-json/clarity': ^1.2.4 '@iconify-json/ic': ^1.2.4 '@iconify-json/icomoon-free': ^1.2.1 - '@iconify-json/material-icon-theme': ^1.2.66 + '@iconify-json/material-icon-theme': ^1.2.67 '@iconify-json/solar': ^1.2.5 - '@lucide/svelte': ^1.16.0 + '@lucide/svelte': ^1.17.0 libs-back: dotenv: ^17.4.2 libs-front: - '@internationalized/date': ^3.12.1 - '@tanstack/svelte-query': ^6.1.33 + '@internationalized/date': ^3.12.2 + '@tanstack/svelte-query': ^6.1.34 formsnap: ^2.0.1 mode-watcher: ^1.1.0 svelte-sonner: ^1.1.1 @@ -64,16 +62,19 @@ catalogs: '@nanoforge-dev/utils-eslint-config': ^1.0.2 '@nanoforge-dev/utils-prettier-config': ^1.0.2 '@trivago/prettier-plugin-sort-imports': ^6.0.2 - eslint: ^10.4.0 - eslint-plugin-svelte: ^3.17.1 + eslint: ^10.4.1 + eslint-plugin-svelte: ^3.19.0 globals: ^17.6.0 prettier: ^3.8.3 - prettier-plugin-svelte: ^4.0.1 - typescript-eslint: ^8.60.0 + prettier-plugin-svelte: ^4.1.0 + typescript-eslint: ^8.60.1 test: '@playwright/test': ^1.60.0 - '@vitest/browser-playwright': ^4.1.7 - '@vitest/coverage-v8': ^4.1.7 + '@vitest/browser-playwright': ^4.1.8 + '@vitest/coverage-v8': ^4.1.8 playwright: ^1.60.0 - vitest: ^4.1.7 + vitest: ^4.1.8 vitest-browser-svelte: ^2.1.1 + +minimumReleaseAgeExclude: + - '@nanoforge-dev/actions@2.1.3' diff --git a/src/app.css b/src/app.css index 8c7e6e2..591fee1 100644 --- a/src/app.css +++ b/src/app.css @@ -1,8 +1,3 @@ -@plugin 'flowbite/plugin'; - -@source "../node_modules/flowbite-svelte/dist"; -@source "../node_modules/flowbite-svelte-icons/dist"; - @layer base { /* disable chrome cancel button */ input[type='search']::-webkit-search-cancel-button { diff --git a/src/hooks.server.ts b/src/hooks.server.ts index 2b5b4b4..310fe4f 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -1,4 +1,4 @@ -import { type Handle } from '@sveltejs/kit'; +import type { Handle } from '@sveltejs/kit'; import { sequence } from '@sveltejs/kit/hooks'; import { paraglideMiddleware } from '$lib/paraglide/server'; diff --git a/src/lib/client/action/repositories/package.repository.ts b/src/lib/client/action/repositories/package.repository.ts index daeb816..ac5de77 100644 --- a/src/lib/client/action/repositories/package.repository.ts +++ b/src/lib/client/action/repositories/package.repository.ts @@ -1,4 +1,4 @@ -import type { EditorComponentManifest, EditorSystemManifest } from '@nanoforge-dev/ecs-lib'; +import type { ComponentManifest, SystemManifest } from '$lib/server/project/package'; import { BaseRepository } from '../base.repository'; import type { @@ -29,13 +29,11 @@ export class ProjectPackageRepository extends BaseRepository { return this.run(`/actions/project/package?/create-system`, input); } - getComponentsManifests( - input: GetComponentsManifestsActionInput, - ): Promise { + getComponentsManifests(input: GetComponentsManifestsActionInput): Promise { return this.run(`/actions/project/package?/get-components-manifests`, input); } - getSystemsManifests(input: GetSystemsManifestsActionInput): Promise { + getSystemsManifests(input: GetSystemsManifestsActionInput): Promise { return this.run(`/actions/project/package?/get-systems-manifests`, input); } diff --git a/src/lib/client/action/repositories/project.repository.ts b/src/lib/client/action/repositories/project.repository.ts index 068795b..959b514 100644 --- a/src/lib/client/action/repositories/project.repository.ts +++ b/src/lib/client/action/repositories/project.repository.ts @@ -1,6 +1,7 @@ import { BaseRepository } from '../base.repository'; import type { ActionProject, + CompleteProjectActionInput, CreateProjectActionInput, GatewayProjectResult, InfoProjectInput, @@ -17,6 +18,10 @@ export class ProjectRepository extends BaseRepository { return this.run(`/actions/project?/new`, input); } + complete(input: CompleteProjectActionInput): Promise { + return this.run(`/actions/project?/complete`, input); + } + getInfo(): Promise { return this.run(`/actions/project?/get-info`); } diff --git a/src/lib/client/action/types/project.type.ts b/src/lib/client/action/types/project.type.ts index 67c7660..50a1e50 100644 --- a/src/lib/client/action/types/project.type.ts +++ b/src/lib/client/action/types/project.type.ts @@ -1,3 +1,4 @@ +import type { CompleteProjectBody } from '$lib/server/actions/project/complete.action'; import type { GatewayProject } from '$lib/server/actions/project/gateway.action'; import type { InfoProject, InfoProjectBody } from '$lib/server/actions/project/info.action'; import type { LoadProjectBody } from '$lib/server/actions/project/load.action'; @@ -9,6 +10,7 @@ export type ActionProject = Project; export type LoadProjectActionInput = LoadProjectBody; export type CreateProjectActionInput = CreateProjectBody; +export type CompleteProjectActionInput = CompleteProjectBody; export type InfoProjectResult = InfoProject; export type InfoProjectInput = InfoProjectBody; diff --git a/src/lib/client/config/config.ts b/src/lib/client/config/config.ts index 03da139..ef1d498 100644 --- a/src/lib/client/config/config.ts +++ b/src/lib/client/config/config.ts @@ -4,6 +4,6 @@ import type { Config } from './config.type'; export const getConfig = (): Config => { return { - mode: PUBLIC_MODE === 'online' ? 'online' : 'offline', + mode: PUBLIC_MODE === 'ONLINE' ? 'online' : 'offline', }; }; diff --git a/src/lib/client/ecs/component/component.type.ts b/src/lib/client/ecs/component/component.type.ts index cd70660..168c522 100644 --- a/src/lib/client/ecs/component/component.type.ts +++ b/src/lib/client/ecs/component/component.type.ts @@ -1,6 +1,6 @@ -import type { EditorComponentManifest } from '@nanoforge-dev/ecs-lib'; +import type { ComponentManifest } from '$lib/server/project/package'; -export type ComponentParam = EditorComponentManifest['params'][number]; +export type ComponentParam = ComponentManifest['params'][number]; export interface Component { id: string; diff --git a/src/lib/client/ecs/transformers.ts b/src/lib/client/ecs/transformers.ts index 031dceb..e85cc43 100644 --- a/src/lib/client/ecs/transformers.ts +++ b/src/lib/client/ecs/transformers.ts @@ -5,7 +5,7 @@ import type { Save } from '@utils/types'; export const componentsTransformer = (components: ComponentPackage[]): Component[] => components.map((component) => ({ - id: component.manifest.name, + id: component.manifest.id, name: component.manifest.name, path: component.save.path, params: component.manifest.params, @@ -13,7 +13,7 @@ export const componentsTransformer = (components: ComponentPackage[]): Component export const systemsTransformer = (systems: SystemPackage[]): System[] => systems.map((system) => ({ - id: system.manifest.name, + id: system.manifest.id, name: system.manifest.name, path: system.save.path, })); @@ -27,7 +27,7 @@ export const librariesTransformer = (save: Save): Library[] => export const scenesTransformer = (save: Save): Scene[] => [ { id: 'default', - name: 'Default', + name: 'Default Scene', path: 'unknown', subScenes: [], assets: [], diff --git a/src/lib/client/event/event-handler.ts b/src/lib/client/event/event-handler.ts index 27af05d..7da6483 100644 --- a/src/lib/client/event/event-handler.ts +++ b/src/lib/client/event/event-handler.ts @@ -1,6 +1,6 @@ import { EventEmitter } from './event-emitter'; -import { type CoreEvents, type CoreEventsMap } from './events/core-events'; -import { type EditorEvents, type EditorEventsMap } from './events/editor-events'; +import type { CoreEvents, CoreEventsMap } from './events/core-events'; +import type { EditorEvents, EditorEventsMap } from './events/editor-events'; import type { ListenerType } from './types'; export class EventHandler { diff --git a/src/lib/client/info/info.ts b/src/lib/client/info/info.ts index e2093a3..b8d7556 100644 --- a/src/lib/client/info/info.ts +++ b/src/lib/client/info/info.ts @@ -1,6 +1,6 @@ import { get } from 'svelte/store'; -import { type Project } from '$lib/client/project'; +import type { Project } from '$lib/client/project'; import { infoStore } from './info.store'; import type { ProjectInfo, ProjectInfoInput } from './info.type'; diff --git a/src/lib/client/project/index.ts b/src/lib/client/project/index.ts index 64cf9e3..0f0852c 100644 --- a/src/lib/client/project/index.ts +++ b/src/lib/client/project/index.ts @@ -1,3 +1,4 @@ export { Project } from './project'; export { ProjectCache, type ProjectDataCache } from './project-loader/project-cache'; export { ProjectLoader, useProject, getProject } from './project-loader/project-loader'; +export { PLErrors, PLException } from './project-loader/exceptions'; diff --git a/src/lib/client/project/package-handler.ts b/src/lib/client/project/package-handler.ts index e69fc51..52ac77f 100644 --- a/src/lib/client/project/package-handler.ts +++ b/src/lib/client/project/package-handler.ts @@ -1,12 +1,11 @@ -import type { EditorComponentManifest, EditorSystemManifest } from '@nanoforge-dev/ecs-lib'; - import type { Project } from '$lib/client/project'; +import type { ComponentManifest, SystemManifest } from '$lib/server/project/package'; export class PackageHandler { private readonly _project: Project; - private _componentsManifests: Map = new Map(); - private _systemsManifests: Map = new Map(); + private _componentsManifests: Map = new Map(); + private _systemsManifests: Map = new Map(); constructor(project: Project) { this._project = project; @@ -40,11 +39,11 @@ export class PackageHandler { // } } - getComponentManifest(componentName: string): EditorComponentManifest | undefined { + getComponentManifest(componentName: string): ComponentManifest | undefined { return this._componentsManifests.get(componentName); } - getSystemManifest(systemName: string): EditorSystemManifest | undefined { + getSystemManifest(systemName: string): SystemManifest | undefined { return this._systemsManifests.get(systemName); } @@ -64,11 +63,11 @@ export class PackageHandler { this._systemsManifests.set(newSystem.save.name, newSystem.manifest); } - addComponentManifest(componentName: string, component: EditorComponentManifest) { + addComponentManifest(componentName: string, component: ComponentManifest) { this._componentsManifests.set(componentName, component); } - addSystemManifest(systemName: string, system: EditorSystemManifest) { + addSystemManifest(systemName: string, system: SystemManifest) { this._systemsManifests.set(systemName, system); } } diff --git a/src/lib/client/project/project-loader/exceptions.ts b/src/lib/client/project/project-loader/exceptions.ts new file mode 100644 index 0000000..389f89e --- /dev/null +++ b/src/lib/client/project/project-loader/exceptions.ts @@ -0,0 +1,74 @@ +import { goto } from '$app/navigation'; +import { resolve } from '$app/paths'; + +import { getConfig } from '$lib/client/config'; +import { ProjectLoader } from '$lib/client/project'; + +import { toastError } from '@utils-client/toasts'; + +const config = getConfig(); + +export enum PLErrors { + No_Project = 'no_project', + No_Init_Project = 'no_init_project', + Invalid_Create_Action = 'invalid_create_action', + Invalid_Complete_Action = 'invalid_complete_action', + Empty_Project = 'empty_project', +} + +const traces: Record = { + [PLErrors.No_Project]: 'No project found', + [PLErrors.No_Init_Project]: 'Project not initialized', + [PLErrors.Invalid_Create_Action]: 'Unable to create project', + [PLErrors.Invalid_Complete_Action]: 'Unable to complete project', + [PLErrors.Empty_Project]: 'Empty project', +}; + +const fallbacks = { + [PLErrors.No_Project]: () => async () => { + await goto(resolve('/')); + toastError('No project found', 'Select a project or create a new one'); + }, + [PLErrors.No_Init_Project]: (id: string) => async () => { + await goto(resolve(`/load?id=${id}`)); + }, + [PLErrors.Invalid_Create_Action]: (error: any) => async () => { + toastError('Unable to create project', error.message ?? 'Unknown error'); + }, + [PLErrors.Invalid_Complete_Action]: (error: any) => async () => { + toastError('Unable to init project', error.message ?? 'Unknown error'); + }, + [PLErrors.Empty_Project]: (id: string, resolvable: string) => async () => { + if (config.mode === 'offline') { + ProjectLoader.unload(); + await goto(resolve('/')); + toastError('Invalid project', 'Select another project or create a new one'); + } + await goto(resolve(`/load?id=${id}&gatewayId=${resolvable}`)); + }, +}; + +export class PLException extends Error { + public readonly reason: T; + public readonly fb: () => Promise; + public readonly args: Parameters<(typeof fallbacks)[T]>; + + constructor(reason: T, ...args: Parameters<(typeof fallbacks)[T]>) { + super(`Failed to load project: ${traces[reason]}`); + this.reason = reason; + this.fb = (fallbacks[reason] as any)(...(args as [])); + this.args = args; + } +} + +export const runPLSafe = async ( + cb: () => Promise, + fb: (e: unknown) => PLException, +): Promise => { + try { + return await cb(); + } catch (e) { + if (e instanceof PLException) throw e; + throw fb(e); + } +}; diff --git a/src/lib/client/project/project-loader/project-loader.ts b/src/lib/client/project/project-loader/project-loader.ts index 2474e24..a289735 100644 --- a/src/lib/client/project/project-loader/project-loader.ts +++ b/src/lib/client/project/project-loader/project-loader.ts @@ -2,20 +2,36 @@ import { get, writable } from 'svelte/store'; import { type ActionProject, + type CompleteProjectActionInput, type CreateProjectActionInput, noProjectActions, } from '$lib/client/action'; import { getConfig } from '$lib/client/config/config'; import { Project, ProjectCache, type ProjectDataCache } from '$lib/client/project'; +import { PLErrors, PLException, runPLSafe } from '$lib/client/project/project-loader/exceptions'; import { SfsTreeCache } from '$lib/client/sync-file-system'; import { FileSystemManager } from '@utils-client/file-system'; +type ProjectCacheResolvable = ActionProject; + const projectStore = writable(null); export class ProjectLoader { static async create(input: CreateProjectActionInput) { - const res = await noProjectActions.project.new(input); + const res = await runPLSafe( + () => noProjectActions.project.new(input), + (e) => new PLException(PLErrors.Invalid_Create_Action, e), + ); + + return ProjectLoader.init(res); + } + + static async complete(input: CompleteProjectActionInput) { + const res = await runPLSafe( + () => noProjectActions.project.complete(input), + (e) => new PLException(PLErrors.Invalid_Complete_Action, e), + ); return ProjectLoader.init(res); } @@ -58,7 +74,7 @@ export class ProjectLoader { const dir = await fs.getDirectory(cache.id); await dir.rename(res.id); - return ProjectLoader.init(res); + return await ProjectLoader.init(res); } static async loadFromPath(path: string) { @@ -67,25 +83,28 @@ export class ProjectLoader { return ProjectLoader.init(res); } - static async loadFromId(id: string) { - const res = await noProjectActions.project.load({ id }); + static async loadFromGatewayId(gatewayId: string) { + const res = await noProjectActions.project.load({ gatewayId }); return ProjectLoader.init(res); } - static unload() { - projectStore.set(null); - Project.reset(); + static async loadFromId(id: string) { + const res = await noProjectActions.project.load({ id }); + + return ProjectLoader.init(res); } - static async init(input: ActionProject): Promise { + static async init(input: ProjectCacheResolvable): Promise { Project.reset(); const project = new Project(input.id); - // @todo add a route to check if the project is valid projectStore.set(project); - const infos = await project.info.get(); + const infos = await runPLSafe( + () => project.info.get(), + () => new PLException(PLErrors.Empty_Project, input.id, input.cacheResolvable), + ); await ProjectCache.addOrUpdateProject({ id: input.id, @@ -95,11 +114,27 @@ export class ProjectLoader { }); return project; } + + static unload() { + projectStore.set(null); + Project.reset(); + } } export const useProject = () => { const project = get(projectStore); - if (!project) throw new Error('Project not loaded'); + if (!project) { + const error = new PLException(PLErrors.No_Project); + void error.fb(); + throw error; + } + + if (!project.isReady()) { + const error = new PLException(PLErrors.No_Init_Project, project.id); + void error.fb(); + throw error; + } + return project; }; diff --git a/src/lib/client/project/save-handler.ts b/src/lib/client/project/save-handler.ts index 76c5425..f1ae48a 100644 --- a/src/lib/client/project/save-handler.ts +++ b/src/lib/client/project/save-handler.ts @@ -68,7 +68,7 @@ export class SaveHandler { this._save.set({ ...this.save, components: components.map((component) => ({ - name: component.name, + name: component.id, path: component.path, paramsNames: component.params.map((p) => p.name), })), @@ -79,10 +79,10 @@ export class SaveHandler { this._project.ecs.scenes.activeData.systems.store.subscribe((systems) => { this._save.set({ ...this.save, - systems: systems.map((name) => { - const system = this._project.ecs.systems.get(name).data; + systems: systems.map((id) => { + const system = this._project.ecs.systems.get(id).data; return { - name: system.name, + name: system.id, path: system.path, }; }), diff --git a/src/lib/client/sync-file-system/sfs-directory.ts b/src/lib/client/sync-file-system/sfs-directory.ts index c8a54f5..2b948d2 100644 --- a/src/lib/client/sync-file-system/sfs-directory.ts +++ b/src/lib/client/sync-file-system/sfs-directory.ts @@ -1,7 +1,7 @@ -import { type SyncFileSystem } from '$lib/client/sync-file-system/sfs'; +import type { SyncFileSystem } from '$lib/client/sync-file-system/sfs'; import type { DirectoryContent } from '$lib/server/file-system/project-directory'; -import { type FileSystemDirectory } from '@utils-client/file-system'; +import type { FileSystemDirectory } from '@utils-client/file-system'; import { SfsFile } from './sfs-file'; diff --git a/src/lib/client/sync-file-system/sfs-file.ts b/src/lib/client/sync-file-system/sfs-file.ts index 83ab34f..0bc3f16 100644 --- a/src/lib/client/sync-file-system/sfs-file.ts +++ b/src/lib/client/sync-file-system/sfs-file.ts @@ -2,7 +2,7 @@ import type { SyncFileSystem } from '$lib/client/sync-file-system/sfs'; import { SESSION_PROJECT_HEADER } from '@utils/const'; -import { type FileSystemFile } from '@utils-client/file-system'; +import type { FileSystemFile } from '@utils-client/file-system'; export class SfsFile { private readonly _route: string; diff --git a/src/lib/client/sync-file-system/sfs-tree-cache.ts b/src/lib/client/sync-file-system/sfs-tree-cache.ts index a27d6dc..e2d4759 100644 --- a/src/lib/client/sync-file-system/sfs-tree-cache.ts +++ b/src/lib/client/sync-file-system/sfs-tree-cache.ts @@ -1,6 +1,6 @@ import { IndexedDB } from '@utils-client/indexed-db'; -import { type SfsDirectoryMap } from './sfs-directory'; +import type { SfsDirectoryMap } from './sfs-directory'; export const SFS_DB_STORE_NAME = 'fs-project-tree'; diff --git a/src/lib/client/utils/error.ts b/src/lib/client/utils/error.ts index 5402375..989506e 100644 --- a/src/lib/client/utils/error.ts +++ b/src/lib/client/utils/error.ts @@ -1,3 +1,5 @@ +import { PLException } from '$lib/client/project'; + import { Exception } from '@utils/exception'; import type { MaybePromise } from '@utils/types'; @@ -22,6 +24,10 @@ export const runSafe = async ( try { return await cb(); } catch (error) { + if (error instanceof PLException) { + error.fb(); + return null; + } handleError(error, context); } fallback?.(); diff --git a/src/lib/components/Menu/MenuButton.svelte b/src/lib/components/Menu/MenuButton.svelte index 8ed942d..9bcb9f3 100644 --- a/src/lib/components/Menu/MenuButton.svelte +++ b/src/lib/components/Menu/MenuButton.svelte @@ -1,6 +1,11 @@
- - - {@render children?.()} - + + + + + + {@render children?.()} + +
diff --git a/src/lib/components/Menu/MenuItem.svelte b/src/lib/components/Menu/MenuItem.svelte index ee24f35..360a8a8 100644 --- a/src/lib/components/Menu/MenuItem.svelte +++ b/src/lib/components/Menu/MenuItem.svelte @@ -1,6 +1,6 @@
- + - +
diff --git a/src/lib/components/Widget/EditorGame/EditorGame.svelte b/src/lib/components/Widget/EditorGame/EditorGame.svelte index a99e88a..d3a50c3 100644 --- a/src/lib/components/Widget/EditorGame/EditorGame.svelte +++ b/src/lib/components/Widget/EditorGame/EditorGame.svelte @@ -1,5 +1,5 @@
- + + {#if selected} diff --git a/src/lib/components/Widget/ecs-tree/scenes/systems/scene-systems-list.svelte b/src/lib/components/Widget/ecs-tree/scenes/systems/scene-system-list.svelte similarity index 97% rename from src/lib/components/Widget/ecs-tree/scenes/systems/scene-systems-list.svelte rename to src/lib/components/Widget/ecs-tree/scenes/systems/scene-system-list.svelte index acfe1ba..60636e9 100644 --- a/src/lib/components/Widget/ecs-tree/scenes/systems/scene-systems-list.svelte +++ b/src/lib/components/Widget/ecs-tree/scenes/systems/scene-system-list.svelte @@ -8,6 +8,7 @@ } from '$lib/components/ui/context-menu'; import { Button } from '$lib/components/ui/button'; import DialogAddSceneSystem from './dialog-add-scene-system.svelte'; + import SceneSystemRow from './scene-system-row.svelte'; import type { SceneSystemManager, System } from '$lib/client/ecs'; import { useProject } from '$lib/client/project'; import type { Writable } from 'svelte/store'; @@ -97,6 +98,7 @@ dropTarget.pos === 'before'} {@const isDropAfter = !isNext(dragId, sysName, 'after') && dropTarget?.id === sysName && dropTarget.pos === 'after'} + {@const handle = manager.get(sysName)} @@ -138,8 +140,7 @@ handleDrop(sysName); }} > - - {sysName} + + import type { SceneSystemHandle } from '$lib/client/ecs'; + + interface Props { + handle: SceneSystemHandle; + } + + const { handle }: Props = $props(); + + const system = $derived(handle.store); + + + +{$system.name} diff --git a/src/lib/components/project-loader/full-page-project-spinner.svelte b/src/lib/components/project-loader/full-page-project-spinner.svelte new file mode 100644 index 0000000..7e400d0 --- /dev/null +++ b/src/lib/components/project-loader/full-page-project-spinner.svelte @@ -0,0 +1,7 @@ + + +
+ +
diff --git a/src/lib/components/project-loader/index.ts b/src/lib/components/project-loader/index.ts new file mode 100644 index 0000000..ae20eda --- /dev/null +++ b/src/lib/components/project-loader/index.ts @@ -0,0 +1,5 @@ +import FullPageProjectSpinner from './full-page-project-spinner.svelte'; +import ProgressBar from './progress-bar.svelte'; +import ProjectSpinner from './project-spinner.svelte'; + +export { ProgressBar, ProjectSpinner, FullPageProjectSpinner }; diff --git a/src/lib/components/ProjectLoader/ProgressBar.svelte b/src/lib/components/project-loader/progress-bar.svelte similarity index 89% rename from src/lib/components/ProjectLoader/ProgressBar.svelte rename to src/lib/components/project-loader/progress-bar.svelte index 8f4067c..88c692a 100644 --- a/src/lib/components/ProjectLoader/ProgressBar.svelte +++ b/src/lib/components/project-loader/progress-bar.svelte @@ -1,5 +1,5 @@ + + + + + Project loading... + Retrieving save + + + + + + diff --git a/src/lib/components/ui/progress/index.ts b/src/lib/components/ui/progress/index.ts new file mode 100644 index 0000000..c965294 --- /dev/null +++ b/src/lib/components/ui/progress/index.ts @@ -0,0 +1,7 @@ +import Root from './progress.svelte'; + +export { + Root, + // + Root as Progress, +}; diff --git a/src/lib/components/ui/progress/progress.svelte b/src/lib/components/ui/progress/progress.svelte new file mode 100644 index 0000000..0266042 --- /dev/null +++ b/src/lib/components/ui/progress/progress.svelte @@ -0,0 +1,30 @@ + + + +
+
diff --git a/src/lib/server/actions/project/complete.action.ts b/src/lib/server/actions/project/complete.action.ts new file mode 100644 index 0000000..844bacb --- /dev/null +++ b/src/lib/server/actions/project/complete.action.ts @@ -0,0 +1,45 @@ +import { resolveSessionFunctions } from '$lib/server/actions/project/load.action'; +import { loadProject } from '$lib/server/project'; + +import { useActionHandler } from '@utils-server/request-handler'; + +export class CompleteProjectBody { + gatewayId!: string; + + language?: 'js' | 'ts'; + multiplayerServer?: boolean; +} + +export const completeProjectAction = useActionHandler( + async (handler) => { + const { body, cli, api } = handler; + + const project = await api.projects.getProject(body.gatewayId); + const resolver = await resolveSessionFunctions.gatewayId(body.gatewayId, handler); + + const parts = resolver.path.split('/'); + const end = parts.pop(); + + cli.new({ + editor: true, + directory: parts.join('/'), + name: project.name, + path: end, + packageManager: 'bun', + language: body.language, + server: body.multiplayerServer, + docker: false, + lint: false, + initFunctions: true, + strict: false, + git: false, + }); + + return await loadProject(resolver, handler); + }, + { + body: CompleteProjectBody, + onlineOnly: true, + projectOptional: true, + }, +); diff --git a/src/lib/server/actions/project/load.action.ts b/src/lib/server/actions/project/load.action.ts index 604101d..233797f 100644 --- a/src/lib/server/actions/project/load.action.ts +++ b/src/lib/server/actions/project/load.action.ts @@ -52,7 +52,7 @@ const resolveSessionFromPath = async ( return { path }; }; -const resolveSessionFunctions: Record< +export const resolveSessionFunctions: Record< keyof Omit, (el: string, options: Handler) => Promise > = { diff --git a/src/lib/server/actions/project/package/get-components-manifests.action.ts b/src/lib/server/actions/project/package/get-components-manifests.action.ts index 679bded..d62e7a4 100644 --- a/src/lib/server/actions/project/package/get-components-manifests.action.ts +++ b/src/lib/server/actions/project/package/get-components-manifests.action.ts @@ -1,4 +1,4 @@ -import type { EditorComponentManifest } from '@nanoforge-dev/ecs-lib'; +import type { ComponentManifest } from '$lib/server/project/package'; import { useActionHandler } from '@utils-server/request-handler'; @@ -7,7 +7,7 @@ export class GetComponentManifestBody { } export const getComponentsManifestsAction = useActionHandler( - async ({ body, project }): Promise => { + async ({ body, project }): Promise => { return await Promise.all( body.componentPaths.map((path) => project.client.package.getComponentManifest(path)), ); diff --git a/src/lib/server/actions/project/package/get-systems-manifests.action.ts b/src/lib/server/actions/project/package/get-systems-manifests.action.ts index 78bbbdd..bd1eef9 100644 --- a/src/lib/server/actions/project/package/get-systems-manifests.action.ts +++ b/src/lib/server/actions/project/package/get-systems-manifests.action.ts @@ -1,4 +1,4 @@ -import type { EditorSystemManifest } from '@nanoforge-dev/ecs-lib'; +import type { SystemManifest } from '$lib/server/project/package'; import { useActionHandler } from '@utils-server/request-handler'; @@ -7,7 +7,7 @@ export class GetSystemManifestBody { } export const getSystemsManifestsAction = useActionHandler( - async ({ body, project }): Promise => { + async ({ body, project }): Promise => { return await Promise.all( body.systemPaths.map((path) => project.client.package.getSystemManifest(path)), ); diff --git a/src/lib/server/actions/project/save/set-save.action.ts b/src/lib/server/actions/project/save/set-save.action.ts index ee46390..b553fd6 100644 --- a/src/lib/server/actions/project/save/set-save.action.ts +++ b/src/lib/server/actions/project/save/set-save.action.ts @@ -1,4 +1,4 @@ -import { type Save } from '@utils/types'; +import type { Save } from '@utils/types'; import { useActionHandler } from '@utils-server/request-handler'; diff --git a/src/lib/server/api/base.repository.ts b/src/lib/server/api/base.repository.ts index bd48cd9..a5e5ee8 100644 --- a/src/lib/server/api/base.repository.ts +++ b/src/lib/server/api/base.repository.ts @@ -60,7 +60,7 @@ export class BaseRepository { const res = await this._client[request](path, options); if (!res.ok) throw new Error(`Request failed with status code ${res.status}`, { - cause: res, + cause: await res.json(), }); return (await res.json()) as R; } diff --git a/src/lib/server/api/client.ts b/src/lib/server/api/client.ts index d92da89..21bcb10 100644 --- a/src/lib/server/api/client.ts +++ b/src/lib/server/api/client.ts @@ -1,6 +1,7 @@ import type { Cookies } from '@sveltejs/kit'; import { env } from '$env/dynamic/private'; +import { PUBLIC_MODE } from '$env/static/public'; import { HttpClient } from '@utils/http'; @@ -23,7 +24,7 @@ export const getNoAuthApi = (): Api => { 'Content-Type': 'application/json', }, }); - const isOnline = env.PUBLIC_MODE === 'ONLINE'; + const isOnline = PUBLIC_MODE === 'ONLINE'; return { auth: new AuthRepository(client, isOnline), @@ -32,7 +33,7 @@ export const getNoAuthApi = (): Api => { }; export const getApi = (cookies: Cookies): Api => { - if (env.PUBLIC_MODE !== 'ONLINE') throw new Error('API is only available in online mode'); + if (PUBLIC_MODE !== 'ONLINE') throw new Error('API is only available in online mode'); if (!env.API_KEY) throw new Error('API_KEY is not defined'); const client = new HttpClient(env.API_URL ?? DEFAULT_API_URL, { headers: { diff --git a/src/lib/server/api/repositories/projects.repository.ts b/src/lib/server/api/repositories/projects.repository.ts index 01c6de6..33ffe22 100644 --- a/src/lib/server/api/repositories/projects.repository.ts +++ b/src/lib/server/api/repositories/projects.repository.ts @@ -7,6 +7,6 @@ export class ProjectRepository extends BaseRepository { } getProjects(): Promise { - return this.get(`/projects}`); + return this.get(`/projects`); } } diff --git a/src/lib/server/file-system/index.ts b/src/lib/server/file-system/index.ts index a4b242d..2b2f418 100644 --- a/src/lib/server/file-system/index.ts +++ b/src/lib/server/file-system/index.ts @@ -1,3 +1,3 @@ export { FileSystem } from './file-system'; export { directoryContentToFileEntries, type ProjectDirectory } from './project-directory'; -export { type ProjectFile } from './project-file'; +export type { ProjectFile } from './project-file'; diff --git a/src/lib/server/git/git.ts b/src/lib/server/git/git.ts index b99ce7b..303f126 100644 --- a/src/lib/server/git/git.ts +++ b/src/lib/server/git/git.ts @@ -1,4 +1,5 @@ import { $ } from 'bun'; +import { existsSync } from 'fs'; import { resolve } from 'path'; import { env } from '$env/dynamic/private'; @@ -14,24 +15,29 @@ export class Git { async clone(url: string, options?: { sshKey?: string }): Promise { const path = await this.resolvePath(url); - await this.runCommand('clone', `${url} ${path}`, { ...options }); + if (existsSync(path)) return path; + await this.runCommand('clone', [url, path], { ...options }); return path; } private async runCommand( command: string, - params: string, + params: string[], options?: { path?: string; sshKey?: string }, ) { - let sshPath = undefined; + let sshPath: string | undefined; if (options?.sshKey) { sshPath = await this.createSshKeyFile(options.sshKey); } - const sshConfig = sshPath ? `-c core.sshCommand="ssh -i ${sshPath}" ` : ''; + const cwd = resolve(this._rootPath, options?.path ?? ''); + const sshEnv = sshPath ? { GIT_SSH_COMMAND: `ssh -i ${sshPath}` } : {}; - await $`git ${command} ${sshConfig}${params}`.cwd(cwd); - if (sshPath) await this.deleteSshKeyFile(sshPath); + try { + await $`git ${command} ${params}`.cwd(cwd).env({ ...process.env, ...sshEnv }); + } finally { + if (sshPath) await this.deleteSshKeyFile(sshPath); + } } private async createSshKeyFile(sshKey: string): Promise { diff --git a/src/lib/server/project/library/library-handler.ts b/src/lib/server/project/library/library-handler.ts index 7373816..5eaebad 100644 --- a/src/lib/server/project/library/library-handler.ts +++ b/src/lib/server/project/library/library-handler.ts @@ -1,8 +1,8 @@ -import { type ProjectHandler } from '$lib/server/project'; +import type { ProjectHandler } from '$lib/server/project'; import { formatFrom } from '@utils/format'; -import { type LibraryPackage } from './library.type'; +import type { LibraryPackage } from './library.type'; export class LibraryHandler { private readonly handler: ProjectHandler; diff --git a/src/lib/server/project/load-project.ts b/src/lib/server/project/load-project.ts index a387c8d..dc28a3e 100644 --- a/src/lib/server/project/load-project.ts +++ b/src/lib/server/project/load-project.ts @@ -8,7 +8,7 @@ import { getProject } from '$lib/server/session/project/project-functions'; import { Exception } from '@utils/exception'; -import { type Handler } from '@utils-server/request-handler'; +import type { Handler } from '@utils-server/request-handler'; import type { Project } from './project.type'; diff --git a/src/lib/server/project/loader/loader.ts b/src/lib/server/project/loader/loader.ts index 2ec3b53..f06f669 100644 --- a/src/lib/server/project/loader/loader.ts +++ b/src/lib/server/project/loader/loader.ts @@ -6,7 +6,7 @@ import { directoryContentToFileEntries, } from '$lib/server/file-system'; -import { type ProjectHandler } from '../project-handler'; +import type { ProjectHandler } from '../project-handler'; import { resolveEnv } from './env'; import type { Manifest } from './types'; diff --git a/src/lib/server/project/package/manifest-resolver.ts b/src/lib/server/project/package/manifest-resolver.ts index 74f666e..40d7353 100644 --- a/src/lib/server/project/package/manifest-resolver.ts +++ b/src/lib/server/project/package/manifest-resolver.ts @@ -19,6 +19,20 @@ const findManifestNode = (title: string, source: ts.SourceFile): ts.VariableDecl return res; }; +const getName = (source: ts.SourceFile): string | null => { + let res = null; + source.forEachChild((node) => { + if (!ts.isExportAssignment(node)) return; + if ( + !node.getChildren().some((n) => n.getText() === 'export') || + !node.getChildren().some((n) => n.getText() === 'default') + ) + return; + res = node.expression.getFirstToken()?.getText(); + }); + return res; +}; + const parseProperty = (prop: ObjectLiteralElementLike): any => { if (!ts.isPropertyAssignment(prop)) return {}; @@ -58,7 +72,10 @@ const getManifestFromNode = (source: ts.VariableDeclaration | null): any | null }; const parseManifest = (title: string, source: ts.SourceFile): any | null => { - return getManifestFromNode(findManifestNode(title, source)); + const id = getName(source); + const manifest = getManifestFromNode(findManifestNode(title, source)); + if (!id || !manifest) return null; + return { id, ...manifest }; }; export const resolveManifest = (type: PackageTypeEnum, content: string): any | null => { diff --git a/src/lib/server/project/package/package-handler.ts b/src/lib/server/project/package/package-handler.ts index b751f8c..e9c4a46 100644 --- a/src/lib/server/project/package/package-handler.ts +++ b/src/lib/server/project/package/package-handler.ts @@ -1,14 +1,19 @@ -import type { EditorComponentManifest, EditorSystemManifest } from '@nanoforge-dev/ecs-lib'; import { join } from 'path'; import { FileSystemError } from '$lib/server/file-system/file-system-error'; import type { DirectoryContent } from '$lib/server/file-system/project-directory'; -import { type ProjectHandler } from '$lib/server/project'; +import type { ProjectHandler } from '$lib/server/project'; import { formatFrom } from '@utils/format'; import { resolveManifest } from './manifest-resolver'; -import { type ComponentPackage, PackageTypeEnum, type SystemPackage } from './package.type'; +import { + type ComponentManifest, + type ComponentPackage, + PackageTypeEnum, + type SystemManifest, + type SystemPackage, +} from './package.type'; export class PackageHandler { private readonly handler: ProjectHandler; @@ -69,7 +74,7 @@ export class PackageHandler { * * @returns Manifest of the component */ - getComponentManifest(path: string): EditorComponentManifest { + getComponentManifest(path: string): ComponentManifest { return this._getPackageManifest(PackageTypeEnum.COMPONENT, path); } @@ -81,7 +86,7 @@ export class PackageHandler { * * @returns Manifest of the system */ - getSystemManifest(path: string): EditorSystemManifest { + getSystemManifest(path: string): SystemManifest { return this._getPackageManifest(PackageTypeEnum.SYSTEM, path); } @@ -111,7 +116,7 @@ export class PackageHandler { const res: any = { manifest, save: { - name: manifest.name, + name: manifest.id, path, }, }; diff --git a/src/lib/server/project/package/package.type.ts b/src/lib/server/project/package/package.type.ts index 6858487..3fdfcb3 100644 --- a/src/lib/server/project/package/package.type.ts +++ b/src/lib/server/project/package/package.type.ts @@ -7,12 +7,15 @@ export enum PackageTypeEnum { SYSTEM = 'system', } +export type ComponentManifest = EditorComponentManifest & { id: string }; +export type SystemManifest = EditorSystemManifest & { id: string }; + export interface ComponentPackage { - manifest: EditorComponentManifest; + manifest: ComponentManifest; save: SaveComponent; } export interface SystemPackage { - manifest: EditorSystemManifest; + manifest: SystemManifest; save: SaveSystem; } diff --git a/src/lib/server/project/project-handler.ts b/src/lib/server/project/project-handler.ts index dc3cdd2..1213a0f 100644 --- a/src/lib/server/project/project-handler.ts +++ b/src/lib/server/project/project-handler.ts @@ -1,13 +1,13 @@ import { join } from 'path'; -import { type Api } from '$lib/server/api'; -import { type Cli } from '$lib/server/cli'; +import type { Api } from '$lib/server/api'; +import type { Cli } from '$lib/server/cli'; import { FileSystem } from '$lib/server/file-system'; import { Exception } from '@utils/exception'; import type { Part } from '@utils/types'; -import { type Context, type Handler } from '@utils-server/request-handler'; +import type { Context, Handler } from '@utils-server/request-handler'; import { LibraryHandler } from './library/library-handler'; import { Loader } from './loader'; diff --git a/src/lib/server/project/save/save-handler.ts b/src/lib/server/project/save/save-handler.ts index 53af39b..3954049 100644 --- a/src/lib/server/project/save/save-handler.ts +++ b/src/lib/server/project/save/save-handler.ts @@ -1,4 +1,4 @@ -import { type ProjectHandler } from '$lib/server/project'; +import type { ProjectHandler } from '$lib/server/project'; import type { Save } from '@utils/types'; diff --git a/src/lib/server/session/session-functions.ts b/src/lib/server/session/session-functions.ts index ab417d4..5332e5e 100644 --- a/src/lib/server/session/session-functions.ts +++ b/src/lib/server/session/session-functions.ts @@ -1,4 +1,4 @@ -import { type Session as SvelteSession } from 'svelte-kit-sessions'; +import type { Session as SvelteSession } from 'svelte-kit-sessions'; import { Exception } from '@utils/exception'; diff --git a/src/lib/server/utils/request-handler/context.ts b/src/lib/server/utils/request-handler/context.ts index 2163d91..39f00ab 100644 --- a/src/lib/server/utils/request-handler/context.ts +++ b/src/lib/server/utils/request-handler/context.ts @@ -1,6 +1,6 @@ import type { RequestEvent } from '@sveltejs/kit'; -import { env } from '$env/dynamic/private'; +import { PUBLIC_MODE } from '$env/static/public'; import { type Session, @@ -20,7 +20,7 @@ export const getContext = async (event: RequestEvent): Promise => { const project = resolveProject(event.request.headers, session) as SessionProject; return { - online: env.PUBLIC_MODE === 'ONLINE', + online: PUBLIC_MODE === 'ONLINE', session, project, }; diff --git a/src/lib/server/utils/request-handler/types.ts b/src/lib/server/utils/request-handler/types.ts index 945b41f..e660e66 100644 --- a/src/lib/server/utils/request-handler/types.ts +++ b/src/lib/server/utils/request-handler/types.ts @@ -1,6 +1,6 @@ import type { ClassType, MaybePromise } from '@utils/types'; -import { type Handler } from './handler'; +import type { Handler } from './handler'; export type Callback = (opts: Handler) => MaybePromise; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index d9cabb8..7c4dd29 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -2,7 +2,12 @@ import { createQuery } from '@tanstack/svelte-query'; import { getConfig } from '$lib/client/config'; - import { ProjectCache, type ProjectDataCache, ProjectLoader } from '$lib/client/project'; + import { + ProjectCache, + type ProjectDataCache, + ProjectLoader, + PLException, + } from '$lib/client/project'; import { Button } from '$lib/components/ui/button'; import * as Card from '$lib/components/ui/card'; import { Separator } from '$lib/components/ui/separator'; @@ -39,6 +44,10 @@ await goto(`/dashboard?id=${project.id}`); cacheProjectLoading = null; } catch (error) { + if (error instanceof PLException) { + await error.fb(); + return; + } console.error(`Error loading project ${cache.id} (${cache.resolvable}) from cache:`, error); await ProjectCache.invalidateProject(cache.id); await cacheQuery.refetch(); @@ -61,6 +70,9 @@ }; + + +
@@ -75,9 +87,6 @@ {:else} {/if} - - -
diff --git a/src/routes/actions/project/+page.server.ts b/src/routes/actions/project/+page.server.ts index cd017b8..35186f1 100644 --- a/src/routes/actions/project/+page.server.ts +++ b/src/routes/actions/project/+page.server.ts @@ -1,3 +1,4 @@ +import { completeProjectAction } from '$lib/server/actions/project/complete.action'; import { getGatewayProjectsAction } from '$lib/server/actions/project/gateway.action'; import { getInfoProjectAction, @@ -9,6 +10,7 @@ import { createProjectAction } from '$lib/server/actions/project/new.action'; export const actions = { load: loadProjectAction, new: createProjectAction, + complete: completeProjectAction, 'get-info': getInfoProjectAction, 'set-info': setInfoProjectAction, 'get-gateway-projects': getGatewayProjectsAction, diff --git a/src/routes/dashboard/+page.svelte b/src/routes/dashboard/+page.svelte index 7f9dc37..55dce67 100644 --- a/src/routes/dashboard/+page.svelte +++ b/src/routes/dashboard/+page.svelte @@ -5,9 +5,6 @@ import { tabsStore } from '$lib/components/Tabs/store'; import { tabRegistry } from '$lib/components/Tabs/registry'; - import { Spinner } from '$lib/components/ui/spinner'; - import { Button } from '$lib/components/ui/button'; - import * as Card from '$lib/components/ui/card'; import { ProjectLoader, getProject } from '$lib/client/project'; import { resolve } from '$app/paths'; @@ -15,6 +12,7 @@ import { onMount } from 'svelte'; import { page } from '$app/state'; import { runSafe } from '@utils-client/error'; + import { FullPageProjectSpinner } from '$lib/components/project-loader'; let tab = $derived($tabsStore.tabs.find((t) => t.id === $tabsStore.selectedTabId)); let Component = $derived(tab ? tabRegistry[tab.type]?.component : null); @@ -106,25 +104,5 @@ {:else} -
- - - - Project loading... - Retrieving save - - - - - - -
+ {/if} diff --git a/src/routes/load/+page.svelte b/src/routes/load/+page.svelte new file mode 100644 index 0000000..f6d313c --- /dev/null +++ b/src/routes/load/+page.svelte @@ -0,0 +1,87 @@ + + +{#if query.isFetched && !query.isLoading && query.data} +
+ +
+{:else} + +{/if} diff --git a/src/routes/load/components/complete-project-form.svelte b/src/routes/load/components/complete-project-form.svelte new file mode 100644 index 0000000..7e8c45b --- /dev/null +++ b/src/routes/load/components/complete-project-form.svelte @@ -0,0 +1,95 @@ + + + +
+ + + + + +
+
diff --git a/vite.config.ts b/vite.config.ts index fe8a972..c1d308a 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -2,12 +2,24 @@ import { paraglideVitePlugin } from '@inlang/paraglide-js'; import { sveltekit } from '@sveltejs/kit/vite'; import extractorSvelte from '@unocss/extractor-svelte'; import { playwright } from '@vitest/browser-playwright'; +import { builtinModules } from 'module'; import UnoCSS from 'unocss/vite'; import { defineConfig } from 'vitest/config'; +const ssrNodeBuiltinsPlugin = { + name: 'ssr-node-builtins', + enforce: 'pre', + resolveId(id: string, _importer: string | undefined, options: { ssr?: boolean }) { + if (options?.ssr && builtinModules.includes(id) && !id.startsWith('bun')) { + return { id: `node:${id}`, external: true }; + } + }, +}; + // https://vite.dev/config/ export default defineConfig({ plugins: [ + ssrNodeBuiltinsPlugin, UnoCSS({ extractors: [extractorSvelte()], }),