diff --git a/.env.example b/.env.example index 8cd609d..296d687 100644 --- a/.env.example +++ b/.env.example @@ -15,6 +15,9 @@ API_KEY=test # Fs root dir read/write projects (leave empty to select current directory) (if you use relative path, it will be /) FS_ROOT= +# Archive root dir read/write archive (leave empty to select current directory) (if you use relative path, it will be /) +# Shouldn't be in FS_ROOT to avoid name conflicts +ARCHIVE_ROOT= # Leaving this empty will generate a new unique random session secret at start SESSION_SECRET= diff --git a/package.json b/package.json index 044b51a..8a773ea 100644 --- a/package.json +++ b/package.json @@ -53,11 +53,12 @@ "prepare": "husky" }, "dependencies": { - "@nanoforge-dev/schematics": "^2.1.3", "bun": "catalog:core", "class-transformer": "catalog:libs-back", "class-validator": "catalog:libs-back", "dotenv": "catalog:libs-back", + "micromatch": "catalog:libs-back", + "tar": "catalog:libs-back", "typescript": "catalog:build" }, "devDependencies": { @@ -84,6 +85,7 @@ "@trivago/prettier-plugin-sort-imports": "catalog:lint", "@tsconfig/svelte": "catalog:build", "@types/bun": "catalog:core", + "@types/micromatch": "^4.0.10", "@unocss/extractor-svelte": "catalog:css", "@unocss/preset-icons": "catalog:css", "@unocss/preset-web-fonts": "catalog:css", @@ -119,7 +121,7 @@ "vitest-browser-svelte": "catalog:test", "zod": "catalog:libs-front" }, - "packageManager": "pnpm@11.5.1", + "packageManager": "pnpm@11.6.0", "engines": { "node": "25" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 302196a..9a17a8c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,8 +26,8 @@ catalogs: specifier: ^6.1.0 version: 6.1.0 '@nanoforge-dev/actions': - specifier: ^2.1.3 - version: 2.1.3 + specifier: ^2.1.4 + version: 2.1.4 husky: specifier: ^9.1.7 version: 9.1.7 @@ -46,8 +46,8 @@ catalogs: specifier: ^1.3.1 version: 1.3.1 '@sveltejs/kit': - specifier: ^2.63.0 - version: 2.63.0 + specifier: ^2.65.0 + version: 2.65.0 '@sveltejs/vite-plugin-svelte': specifier: ^7.1.2 version: 7.1.2 @@ -58,8 +58,8 @@ catalogs: specifier: ^1.3.14 version: 1.3.14 svelte: - specifier: ^5.56.2 - version: 5.56.2 + specifier: ^5.56.3 + version: 5.56.3 svelte-check: specifier: ^4.6.0 version: 4.6.0 @@ -74,17 +74,17 @@ catalogs: specifier: ^0.0.4 version: 0.0.4 '@unocss/extractor-svelte': - specifier: ^66.7.0 - version: 66.7.0 + specifier: ^66.7.2 + version: 66.7.2 '@unocss/preset-icons': - specifier: ^66.7.0 - version: 66.7.0 + specifier: ^66.7.2 + version: 66.7.2 '@unocss/preset-web-fonts': - specifier: ^66.7.0 - version: 66.7.0 + specifier: ^66.7.2 + version: 66.7.2 '@unocss/preset-wind4': - specifier: ^66.7.0 - version: 66.7.0 + specifier: ^66.7.2 + version: 66.7.2 clsx: specifier: ^2.1.1 version: 2.1.1 @@ -95,15 +95,15 @@ catalogs: specifier: ^3.2.2 version: 3.2.2 tailwindcss: - specifier: ^4.3.0 - version: 4.3.0 + specifier: ^4.3.1 + version: 4.3.1 unocss: - specifier: ^66.7.0 - version: 66.7.0 + specifier: ^66.7.2 + version: 66.7.2 i18n: '@inlang/paraglide-js': - specifier: ^2.18.2 - version: 2.18.2 + specifier: ^2.19.0 + version: 2.19.0 icons: '@iconify-json/clarity': specifier: ^1.2.4 @@ -118,8 +118,8 @@ catalogs: specifier: ^1.2.5 version: 1.2.5 '@lucide/svelte': - specifier: ^1.17.0 - version: 1.17.0 + specifier: ^1.18.0 + version: 1.18.0 libs-back: class-transformer: specifier: ^0.5.1 @@ -130,6 +130,12 @@ catalogs: dotenv: specifier: ^17.4.2 version: 17.4.2 + micromatch: + specifier: ^4.0.8 + version: 4.0.8 + tar: + specifier: ^7.5.16 + version: 7.5.16 libs-front: '@internationalized/date': specifier: ^3.12.2 @@ -163,8 +169,8 @@ catalogs: specifier: ^6.0.2 version: 6.0.2 eslint: - specifier: ^10.4.1 - version: 10.4.1 + specifier: ^10.5.0 + version: 10.5.0 eslint-plugin-svelte: specifier: ^3.19.0 version: 3.19.0 @@ -172,14 +178,14 @@ catalogs: specifier: ^17.6.0 version: 17.6.0 prettier: - specifier: ^3.8.3 - version: 3.8.3 + specifier: ^3.8.4 + version: 3.8.4 prettier-plugin-svelte: specifier: ^4.1.0 version: 4.1.0 typescript-eslint: - specifier: ^8.60.1 - version: 8.60.1 + specifier: ^8.61.0 + version: 8.61.0 test: '@playwright/test': specifier: ^1.60.0 @@ -204,9 +210,6 @@ 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 @@ -219,6 +222,12 @@ importers: dotenv: specifier: catalog:libs-back version: 17.4.2 + micromatch: + specifier: catalog:libs-back + version: 4.0.8 + tar: + specifier: catalog:libs-back + version: 7.5.16 typescript: specifier: catalog:build version: 6.0.3 @@ -228,7 +237,7 @@ importers: version: 0.0.4 '@commitlint/cli': specifier: catalog:ci - version: 21.0.2(@types/node@25.9.2)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.3) + version: 21.0.2(@types/node@25.9.3)(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.2 @@ -252,22 +261,22 @@ importers: version: 1.2.5 '@inlang/paraglide-js': specifier: catalog:i18n - version: 2.18.2(typescript@6.0.3) + version: 2.19.0(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.56.2(@typescript-eslint/types@8.60.1)) + version: 1.18.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)) '@nanoforge-dev/actions': specifier: catalog:ci - version: 2.1.3 + version: 2.1.4 '@nanoforge-dev/ecs-lib': specifier: catalog:core version: 1.3.1 '@nanoforge-dev/utils-eslint-config': specifier: catalog:lint - 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) + version: 1.0.2(@types/eslint@9.6.1)(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4)(typescript@6.0.3) '@nanoforge-dev/utils-prettier-config': specifier: catalog:lint version: 1.0.2 @@ -276,55 +285,58 @@ importers: version: 1.60.0 '@sveltejs/kit': specifier: catalog:core - version: 2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + version: 2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) '@sveltejs/vite-plugin-svelte': specifier: catalog:core - version: 7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + version: 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) '@tanstack/svelte-query': specifier: catalog:libs-front - version: 6.1.34(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + version: 6.1.34(svelte@5.56.3(@typescript-eslint/types@8.61.0)) '@trivago/prettier-plugin-sort-imports': specifier: catalog:lint - version: 6.0.2(prettier-plugin-svelte@4.1.0(prettier@3.8.3)(svelte@5.56.2(@typescript-eslint/types@8.60.1)))(prettier@3.8.3)(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + version: 6.0.2(prettier-plugin-svelte@4.1.0(prettier@3.8.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0)))(prettier@3.8.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0)) '@tsconfig/svelte': specifier: catalog:build version: 5.0.8 '@types/bun': specifier: catalog:core version: 1.3.14 + '@types/micromatch': + specifier: ^4.0.10 + version: 4.0.10 '@unocss/extractor-svelte': specifier: catalog:css - version: 66.7.0 + version: 66.7.2 '@unocss/preset-icons': specifier: catalog:css - version: 66.7.0 + version: 66.7.2 '@unocss/preset-web-fonts': specifier: catalog:css - version: 66.7.0 + version: 66.7.2 '@unocss/preset-wind4': specifier: catalog:css - version: 66.7.0 + version: 66.7.2 '@vitest/browser-playwright': specifier: catalog:test - version: 4.1.8(playwright@1.60.0)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8) + version: 4.1.8(playwright@1.60.0)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8) '@vitest/coverage-v8': specifier: catalog:test 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.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + version: 2.18.1(@internationalized/date@3.12.2)(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0)) clsx: specifier: catalog:css version: 2.1.1 eslint: specifier: catalog:lint - version: 10.4.1(jiti@2.7.0) + version: 10.5.0(jiti@2.7.0) eslint-plugin-svelte: specifier: catalog:lint - version: 3.19.0(eslint@10.4.1(jiti@2.7.0))(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + version: 3.19.0(eslint@10.5.0(jiti@2.7.0))(svelte@5.56.3(@typescript-eslint/types@8.61.0)) formsnap: specifier: catalog:libs-front - version: 2.0.1(svelte@5.56.2(@typescript-eslint/types@8.60.1))(sveltekit-superforms@2.30.1(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)) + version: 2.0.1(svelte@5.56.3(@typescript-eslint/types@8.61.0))(sveltekit-superforms@2.30.1(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)) globals: specifier: catalog:lint version: 17.6.0 @@ -336,7 +348,7 @@ importers: version: 17.0.7 mode-watcher: specifier: catalog:libs-front - version: 1.1.0(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + version: 1.1.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)) monaco-editor: specifier: catalog:components version: 0.55.1 @@ -345,52 +357,52 @@ importers: version: 1.60.0 prettier: specifier: catalog:lint - version: 3.8.3 + version: 3.8.4 prettier-plugin-svelte: specifier: catalog:lint - version: 4.1.0(prettier@3.8.3)(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + version: 4.1.0(prettier@3.8.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0)) svelte: specifier: catalog:core - version: 5.56.2(@typescript-eslint/types@8.60.1) + version: 5.56.3(@typescript-eslint/types@8.61.0) svelte-adapter-bun: specifier: catalog:build - version: 1.0.1(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(typescript@6.0.3) + version: 1.0.1(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(typescript@6.0.3) svelte-check: specifier: catalog:core - version: 4.6.0(picomatch@4.0.4)(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3) + version: 4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3) svelte-kit-sessions: specifier: catalog:core - version: 0.4.0(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + version: 0.4.0(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0)) svelte-sonner: specifier: catalog:libs-front - version: 1.1.1(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + version: 1.1.1(svelte@5.56.3(@typescript-eslint/types@8.61.0)) sveltekit-superforms: specifier: catalog:libs-front - version: 2.30.1(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3) + version: 2.30.1(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3) tailwind-merge: specifier: catalog:css version: 3.6.0 tailwind-variants: specifier: catalog:css - version: 3.2.2(tailwind-merge@3.6.0)(tailwindcss@4.3.0) + version: 3.2.2(tailwind-merge@3.6.0)(tailwindcss@4.3.1) tailwindcss: specifier: catalog:css - version: 4.3.0 + version: 4.3.1 typescript-eslint: specifier: catalog:lint - version: 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + version: 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) unocss: specifier: catalog:css - version: 66.7.0(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + version: 66.7.2(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) vite: specifier: catalog:core - version: 8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0) + version: 8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0) vitest: specifier: catalog:test - version: 4.1.8(@types/node@25.9.2)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + version: 4.1.8(@types/node@25.9.3)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) vitest-browser-svelte: specifier: catalog:test - version: 2.1.1(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vitest@4.1.8) + version: 2.1.1(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vitest@4.1.8) zod: specifier: catalog:libs-front version: 4.4.3 @@ -418,19 +430,6 @@ packages: '@alexanderniebuhr/prettier-plugin-unocss@0.0.4': resolution: {integrity: sha512-uuuNFjp+WNGsP7V5C7F7uot4a8imccsRf9DYXuQquzXzxLEfzWfqYy/cZUNUk4+fOpLbXGlPUxrJvPAcPau0Ow==} - '@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==} @@ -581,12 +580,21 @@ packages: '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + '@emnapi/core@1.11.0': + resolution: {integrity: sha512-l9Oo58x0HOP5znGzVhYW9U3e5wVuA4LAZU2AGezTmkhO1CgQRFDhDg4nneHsu/t3WniXg9QrG2nIXL/ZS8ln8Q==} + '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + '@emnapi/runtime@1.11.0': + resolution: {integrity: sha512-55coeOFKHv1ywEcUXJtWU5f+Jr/W5tZDvZig8DLKSwUN1JpROQ4rk/SNOQiFWmaR/VKF4zuFyW1B8JduOSv6Pg==} + '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@emnapi/wasi-threads@1.2.2': + resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} + '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -689,8 +697,8 @@ packages: '@iconify/utils@3.1.3': resolution: {integrity: sha512-LPKOXPn/zV+zis1oOfGWogaXVpqUybF3ZS6SCZIsz8vg0ivVp9+fVqyYB7xq0aiST/VhUQYGO1qo6uoYSiEJqw==} - '@inlang/paraglide-js@2.18.2': - resolution: {integrity: sha512-H2ksOE2dy9M4iJ+oDu8VPgk+B52C+OCFQpuJHBol0ZYLs3H17PCewVWIppkJNC36ClmLZnGhF+URjbcglTM8XQ==} + '@inlang/paraglide-js@2.19.0': + resolution: {integrity: sha512-aZOn6gM+shvWy24fiDUBZXL+rBLZ+IutSnnZd6WxFyJRaqFCgN/vqnDjWUSUZqBTRDhYiM9rGvOhpPV6r+cThA==} hasBin: true peerDependencies: typescript: '>=5.6' @@ -701,13 +709,17 @@ packages: '@inlang/recommend-sherlock@0.2.1': resolution: {integrity: sha512-ckv8HvHy/iTqaVAEKrr+gnl+p3XFNwe5D2+6w6wJk2ORV2XkcRkKOJ/XsTUJbPSiyi4PI+p+T3bqbmNx/rDUlg==} - '@inlang/sdk@2.9.3': - resolution: {integrity: sha512-E/SxcSji8WIt4DqQG9APlOs6tVtJxrrOUS3dE4ho3pWRCLLIY0PIVzgNwSukuFT+m8LuJDFwpRY5VY3ryzyGWQ==} + '@inlang/sdk@2.10.0': + resolution: {integrity: sha512-xLVRHAI9Jw6L/NrlK6s1mXCvbFwzk5INEL4i3By4jW9yjIMchJ+JGSw4WgFpiLlcoBuR/qIMmSn6te/Jozuybg==} engines: {node: '>=20.0.0'} '@internationalized/date@3.12.2': resolution: {integrity: sha512-FY1Y+H64NDs+HAF6omlnWxm3mEpfgaCSWtL5l551ZZfImA+kGjPFgrnJrGjH6lfmLL0g8Z/mBu1R3kufeCp6Jw==} + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + '@isaacs/ttlcache@1.4.1': resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} engines: {node: '>=12'} @@ -735,13 +747,13 @@ packages: '@lix-js/server-protocol-schema@0.1.1': resolution: {integrity: sha512-jBeALB6prAbtr5q4vTuxnRZZv1M2rKe8iNqRQhFJ4Tv7150unEa0vKyz0hs8Gl3fUGsWaNJBh3J8++fpbrpRBQ==} - '@lucide/svelte@1.17.0': - resolution: {integrity: sha512-q06YCFBN5CO8cd1ADmLCxWRVMVb7xxvHzqC0lvNoxGa+FLW6Cd1Y1AOxgbQk4Iwe68vkAMCRveNHint4WoaVKg==} + '@lucide/svelte@1.18.0': + resolution: {integrity: sha512-S1cjiJflMLIirDZtZ8ou2Vy0xMrOqEQzYzDo29AUxoJiOjUfMHUeClvprJsGUEr60RYDJzEgkjSkWm1nlN9iyQ==} peerDependencies: svelte: ^5 - '@nanoforge-dev/actions@2.1.3': - resolution: {integrity: sha512-eOuQ5q0gFylFrj//77c7PWCKAcX0GRKM7fAQiiExOnUxnuYWQGu4DIL3LMXsjDNAVMRgK3BMk0C1QivEPUN5Dg==} + '@nanoforge-dev/actions@2.1.4': + resolution: {integrity: sha512-Q7yydZ6yhEOeeP6wgcfjadtpRXA1yBF7KSYFqjX7HKe+wQhRBtIV8W6bdcSmesHUfhTHzTgY2xJeH7f1qVZHIw==} engines: {node: '25'} '@nanoforge-dev/common@1.3.1': @@ -752,10 +764,6 @@ packages: resolution: {integrity: sha512-js4VQOri4S6w1Fh1Lk2O5ruxciP/QZCPppOx6YnF/VqgjYgn1GgHfqcxiBE9NxJT4SDi5O8KS4kd65Pj/0oc0A==} 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'} @@ -764,8 +772,8 @@ packages: resolution: {integrity: sha512-dTa2ixPJmWVD+L13Iuxx51JIm3gaX+gnRCe8jA0PFw0xjMjLYv+0ZgbWSSVlNmowp6fqpOzfPdWADkkPNQs8LQ==} engines: {node: '25'} - '@napi-rs/wasm-runtime@1.1.4': - resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + '@napi-rs/wasm-runtime@1.1.5': + resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 @@ -1031,8 +1039,8 @@ packages: '@oxc-project/types@0.133.0': resolution: {integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==} - '@oxc-project/types@0.134.0': - resolution: {integrity: sha512-T0xuRRKrQFmocH8y+jGfpmSkGcheaJExY9lEihmR1Gm2aH+75B8CzgU2rABRQSzzDxLjZ15Sc0bRVLj5lVeNXQ==} + '@oxc-project/types@0.135.0': + resolution: {integrity: sha512-wR+xRdFkUBMvcAjBJ2q2kcZM6d+DKu2NgoOyxZgYwZdLhmiv6+rnO8PZ/P68kMiZtIKm+pW7zyEJ4kSOs0vo+Q==} '@oxfmt/binding-android-arm-eabi@0.35.0': resolution: {integrity: sha512-BaRKlM3DyG81y/xWTsE6gZiv89F/3pHe2BqX2H4JbiB8HNVlWWtplzgATAE5IDSdwChdeuWLDTQzJ92Lglw3ZA==} @@ -1180,8 +1188,8 @@ packages: cpu: [arm64] os: [android] - '@rolldown/binding-android-arm64@1.1.0': - resolution: {integrity: sha512-gCYzGOSkYY6Z034suzd20euvds7lPzMEEla62DJGE/ZAlR4OMBnNbvnBSsIGUCAr52gaWMsloGxP4tVGtN5aCA==} + '@rolldown/binding-android-arm64@1.1.1': + resolution: {integrity: sha512-BLf9Wak/gfwVb7NQTQW4wBgL3oAfPy7ArEkhwV543OVw/uY6B47z5xYsqPSZ9PDOorvURPinws6ThaFuNgGLgA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] @@ -1192,8 +1200,8 @@ packages: cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.1.0': - resolution: {integrity: sha512-JQBD77MNgu+4Z6RAyg69acugdrhhVoWesr3l47zohYZ2YV2fwkWMArkN/2p4l6Ei+Sno7W5q+UsKdVWq5Ens0w==} + '@rolldown/binding-darwin-arm64@1.1.1': + resolution: {integrity: sha512-rRZRPy/Ynb+Mxu0O6tfPldHeDgAn0sRij+IOUy6sFdUlv3hArGW/DloE3GfAxtqpOJuRNgF74Nr5gM4xBeU2jQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] @@ -1204,8 +1212,8 @@ packages: cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.1.0': - resolution: {integrity: sha512-p/8cXUTK4Sob604e+xxPhVSbDFf29E6J0l/xESM9rdCfn3aDai3nEs6TnMHUsdD5aNlFz0+gDbiGlozLKGa2YA==} + '@rolldown/binding-darwin-x64@1.1.1': + resolution: {integrity: sha512-/MtefPxhKPyWWFM8L45OWiEqRf+eSU2Qv9ZAyTaoZOoGcoPKxbbhjTJO2/U2IThv0uDZ4NWHc3/oTsR6IEOtww==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] @@ -1216,8 +1224,8 @@ packages: cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.1.0': - resolution: {integrity: sha512-KbtOSlVv6fElujiZWMcC3aQYhEwLVVf073RcwlSmpGQvIsKZFUqc0ef4sjUuurRwfbiI6JJXji9DQn+86hawmQ==} + '@rolldown/binding-freebsd-x64@1.1.1': + resolution: {integrity: sha512-202K+cpIi1kx/Zn7AtxBi4LTXSY67Aszb2K9rNsuW7FeBeh0nqoNmYLOSZidV0p88VPBzMmTZcHAdPNo3kRYzQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] @@ -1228,8 +1236,8 @@ packages: cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.1.0': - resolution: {integrity: sha512-9fZ9i0o0/MQaw7om6Z6TsT7tfCk0jtbEFtC+aPqZL5RNsGWNcHvn6EHgL3dAprjq+AZzPTAQjg2JtpJaMt+6pg==} + '@rolldown/binding-linux-arm-gnueabihf@1.1.1': + resolution: {integrity: sha512-wl9NfeXNUwrXtUc063tddmZFUI6qiNs1CNOwni0OL4vC7MqVSYugra3ZgtDmtVy8e0DluJTENmzIv2BwqLzT4Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] @@ -1241,8 +1249,8 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.1.0': - resolution: {integrity: sha512-+tog7T66i+yFyIuuAnjL6xmW182W/qTBOUt6BtQ6lBIM1Eikh/fSMz4HGgvuCp5uU0zuIVWng7kDYthjCMOHcg==} + '@rolldown/binding-linux-arm64-gnu@1.1.1': + resolution: {integrity: sha512-at2EO4o7D/PJLC4Xik16bU4CcjQE2tSv1LfqMA0TRYQYQihRm3gZeDB8xaX28A9SFedibcAk5DeMCKt4REKG0A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -1255,8 +1263,8 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.1.0': - resolution: {integrity: sha512-4b7yruLIIj/oZ3GpcLOvxcLCLDMraohn3IhQfN2hBP4w9UekG0DTIajWguJosRGfySf/+h/NwRUiMKoCpxCrqQ==} + '@rolldown/binding-linux-arm64-musl@1.1.1': + resolution: {integrity: sha512-5PUjZx366h9tkJTPJF5eibxOlK3sGoeRiBJLLjjEB5/kLDuhr6qB3LkhqLz1smXNgsX+pBhnbcJBrPE30HznAA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -1269,8 +1277,8 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.1.0': - resolution: {integrity: sha512-QRDOVZd0bhQ5jLsUsCC3dUxDWdTSVY9WMznowZgCGOrZfLLgctWpelhUASEiBwsXfat/JwYnVd1EaxMhqyT+UQ==} + '@rolldown/binding-linux-ppc64-gnu@1.1.1': + resolution: {integrity: sha512-1WK84XPeio3tjP1sM/TMXiC0G1i1iq1qGZ71KfNQjEFLU1kwD+Cv5T8nGySg/JUFwLbaScu6ve9DmeXlmqpkFA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] @@ -1283,8 +1291,8 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.1.0': - resolution: {integrity: sha512-ypxT+Hq76NFG7woFbNbySnGEajFuYuIXeKz/jfCU+lXUoxfi3zLE6OG/ZQNeK3RpZSYJlAe2bokpsQ046CaieQ==} + '@rolldown/binding-linux-s390x-gnu@1.1.1': + resolution: {integrity: sha512-1nS1X5z1uMJ369RU25hTpKCFvUwXZp12dIzlzk4S+UxCTcSVGsAE6tzkOSufv/7jnmAtK0ZlrsJxh2fGmsnVSw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] @@ -1297,8 +1305,8 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.1.0': - resolution: {integrity: sha512-IdovCmfROFmpTLahdecTDFL74aLERVYN68F/mLZjfVh6LfoplPfI6deyHNMTcVujbokDV5k05XrFO22zfv+qjg==} + '@rolldown/binding-linux-x64-gnu@1.1.1': + resolution: {integrity: sha512-NwX/wspnq4vYyMFsqbYvzums3ki/Tk8FZbMzMAovPDp3OfLeYKby/D+9osokadXuYEV3OvpeHlwnr/bG8QMixA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -1311,8 +1319,8 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-x64-musl@1.1.0': - resolution: {integrity: sha512-pcA8xlFp2tyk9T2R6Fi/rPe3bQ1MA+sSMDNUU5Ogu80GHOatkE4P8YCreGAvZErm5Ho2YRXnyvNrWiRncfVysQ==} + '@rolldown/binding-linux-x64-musl@1.1.1': + resolution: {integrity: sha512-+n46LhDrJFQM+229y4oXtVpj1G50U/+XuHMlpnisFTEXhrg9f/YIjp/HymX+PVJjBEr7XHRs3CFLelV464pqwA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -1324,8 +1332,8 @@ packages: cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.1.0': - resolution: {integrity: sha512-4+fexHayrLCWpriPh4c6dNvL4an34DEZCG7zOM/FD5QNF6h8DT+bDXzyB/kfC8lDJbaFb7jKShtnjDQFXVQEjg==} + '@rolldown/binding-openharmony-arm64@1.1.1': + resolution: {integrity: sha512-qGwEu47zOWYo7LdRHhCWTNhzwGtxXpdY6CERs8QEOqC0PXGGics/e3vHnyEUKt8xK6YkbZXFUCeklrpB6js8ag==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] @@ -1335,8 +1343,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.1.0': - resolution: {integrity: sha512-SbL++MNmOw6QamrwIGDMSSfM4ceTzFr+RjbOExJSLLBinScU4WI5OdA413h1qwPw2yH7lVF1+H4svQ+6mSXKTQ==} + '@rolldown/binding-wasm32-wasi@1.1.1': + resolution: {integrity: sha512-qczfgEH8u0wHGGOXtA7UMAybNKuQjjEXairyQaw4WzjiMztfbgatG1h4OKays/smhtwbWltpKCRGtVhU6h40Sg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] @@ -1346,8 +1354,8 @@ packages: cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.1.0': - resolution: {integrity: sha512-+xTE6XC7wBgk0VKRXGG+QAnyW5S9b8vfsFpiMjf0waQTmSQSU8onsH/beyZ8X4aXVveJnotiy7VDjLOaW8bTrg==} + '@rolldown/binding-win32-arm64-msvc@1.1.1': + resolution: {integrity: sha512-4psXSh63mSbwJF+mB8/9yfUUEzBiHYcUjxa32EO9ZwKy0Ypwjcg4F10D8SvVXgd+isy2UUUjF9HJJnDu1T/4Gg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] @@ -1358,8 +1366,8 @@ packages: cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.1.0': - resolution: {integrity: sha512-Ogji1TQNqH3ACLnYr+1Ns1nyrJ0CO2P585u9Hsh02pXvtFiFpgtgT2b3P4PnCOU86VVCvqtAeCN4OftMT8KU4w==} + '@rolldown/binding-win32-x64-msvc@1.1.1': + resolution: {integrity: sha512-MUvC/HLXVjzkQkWiExdVTEEWf0py+GfWm8WKSZsekG3ih6a21iy0BHPF07X3JIf3ifoklZXTIaHTLPBgH1C3dw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -1414,8 +1422,8 @@ packages: peerDependencies: acorn: ^8.9.0 - '@sveltejs/kit@2.63.0': - resolution: {integrity: sha512-1DrR7vQ9brXLrNE2sLtFXApwr7AUXPfpbIFYc+CQRf2+iURaZbXGU+7TG/RLr+9fdFkoRdyCAVUOHCChw11LFA==} + '@sveltejs/kit@2.65.0': + resolution: {integrity: sha512-nUWJ4dSKNo8mIOh+HTL+XyRj8FX9Dyb1ayBxj4q9+WrTJfn4jfTt21p3WUFTnnmdnt9xAXpBKLQ+H9y41x0X7Q==} engines: {node: '>=18.13'} hasBin: true peerDependencies: @@ -1483,6 +1491,9 @@ packages: '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} + '@types/braces@3.0.5': + resolution: {integrity: sha512-SQFof9H+LXeWNz8wDe7oN5zu7ket0qwMu5vZubW4GCJ8Kkeh6nBWUz87+KTz/G3Kqsrp0j/W253XJb3KMEeg3w==} + '@types/bun@1.3.14': resolution: {integrity: sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw==} @@ -1507,8 +1518,11 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@25.9.2': - resolution: {integrity: sha512-G05zqtJhcDLb8uslf5EjCxXg9G1KQxiV8OS0R26IC//Eoyitzqe8z37I7cqvnZlrlSfgocQRfSn/AHBZJJFyGw==} + '@types/micromatch@4.0.10': + resolution: {integrity: sha512-5jOhFDElqr4DKTrTEbnW8DZ4Hz5LRUEmyrGpCMrD/NphYv3nUnaF08xmSLx1rGGnyEs/kFnhiw6dCgcDqMr5PQ==} + + '@types/node@25.9.3': + resolution: {integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -1532,148 +1546,148 @@ packages: '@types/json-schema': optional: true - '@typescript-eslint/eslint-plugin@8.60.1': - resolution: {integrity: sha512-JQ4S5GB0tfjO8BuJ4fcX+HodkzJjYBV+7OJ+wLygaX7OGQ7FudyHL4NSCA6ob+w3Yn+5MkKIozOwQhXeM7opVg==} + '@typescript-eslint/eslint-plugin@8.61.0': + resolution: {integrity: sha512-bFNvl9ZczlVb+wR2Akszf3gHfKVj/8WanXaGJ3UstTA7brNKg0cNdk6X1Psu5V7MZ2oQtzZKOEzIUehaoxbDGw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.60.1 + '@typescript-eslint/parser': ^8.61.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.60.1': - resolution: {integrity: sha512-A0M6ua6H252bVjPvvtSgl2QA4+ET9S5Mtkb2GDyTxIhH/C4qDItT7RQNO5PhMC6NXGYXOR9dIalcDDgBKT7oFA==} + '@typescript-eslint/parser@8.61.0': + resolution: {integrity: sha512-5B7PfA2e1NQGCnDHd/0lW7W3gvp3d59Ryw54FYO8Uswxo9f6ikw3AZV+Xj/TvpImmpsiYyUqAfhC6kJID1jF6w==} 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.1': - resolution: {integrity: sha512-eXkTH2bxmXlqD1RnOPmLZ9ZM9D3VwSx04JOwBnP9RQ+yUA5a2Mu7SfW8uaV2Aon53NJzZlZYuX7tn91Izf+xaw==} + '@typescript-eslint/project-service@8.61.0': + resolution: {integrity: sha512-DV42F7MLJO6Rax7SK1yg43tcnEfGUrurSpSxKuVX+a3RCTzBlH3fuxprrOJXKCJGAaw82xXocikJ0uQaqwXgGA==} 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.1': - resolution: {integrity: sha512-gvI5OQoptnxQnchOirukCuQ55svJSTuD/4k5+pC267xyBtYry748R9/c3tYUzb/iE6RZfllRz2lVulLCHkTm4w==} + '@typescript-eslint/scope-manager@8.61.0': + resolution: {integrity: sha512-IWdXFHFSb6mlC3HPc7QsLDm5zYEbUla6trDEHf32D3/dnuUyXd87plScSNXSbm0/RxMvObpI17sv/EDTGrGZkA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.60.1': - resolution: {integrity: sha512-nh8w4qAteiKuZu3pSSzG/yGKpw0OlkrKnzFmbVRenKaD4qc+7i1GrmZaLVkr8rk4uipiPGMOW4YsM6WmKZ5CvA==} + '@typescript-eslint/tsconfig-utils@8.61.0': + resolution: {integrity: sha512-O5Amvdv9ztMpxpf+vmFULGG78IE6Qwdr3bCGvqwG4nwc9H2qXkOYJJnRbRHyMkQTjv1d03olqwwwzHLMqpFePQ==} 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.1': - resolution: {integrity: sha512-sdwTrpjosW7ANQYJ39ZBF1ZyEMEGVB2UsikrserVM/30a/F1dTLnu9bGxEdosugyu5caigjLrR2qiD11asjI1A==} + '@typescript-eslint/type-utils@8.61.0': + resolution: {integrity: sha512-TuBiQYIkd97yBfInHCTKVYMbX4kvEmpOEuixIuzCU9p8BGT1SfyyO0d0IfDMbPIHcjn/hWnusUX5e8v5Xg+X8A==} 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.1': - resolution: {integrity: sha512-4h0tY8ppCkdCzcrl2YM5M3my0xsE1Tf8om3owEu5oPWmXwkKRmk0j0LGDzYBGUcAlesEbxBhazqu/K4cu3Ug7w==} + '@typescript-eslint/types@8.61.0': + resolution: {integrity: sha512-9QTQpZ5Iin4CdIodfbDQFSeiSJKidgYJYug1P9CC2xWgUTvlmixViqDZNciMjwLBZyJnG4tGmPl97rVAFb1AJg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.60.1': - resolution: {integrity: sha512-alpRkfG8hlVE5kdJW2GkfgDgXxold3e8e4l6EnmhRmRLbekgAPCCGDVD++sABy9FcgPFroq+uFcCSM1vR57Cew==} + '@typescript-eslint/typescript-estree@8.61.0': + resolution: {integrity: sha512-42zatd5qSvvcV1JdDBCLxYRznvP4eIHpPoZXdkPFnAmanA4FuZ5dibSnCBggY8hQnqajPpoGjXFdZ7fIJKQnlA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.60.1': - resolution: {integrity: sha512-h2MPBLoNtjc3qZWfY3Tl51yPorQ2McHn8pJfcMNTcIvrrZrr90Ykffit0yjrPFWQcRcUxzH20+6OcVdW4yHtUg==} + '@typescript-eslint/utils@8.61.0': + resolution: {integrity: sha512-3bzFt7ImFMW/jVYwJamDoe/dMOdFLSC6pom6rRjdh4SZJEYupyMzem8e7vKZLclLfpHjlwSAXOUxtKxGXUiLqA==} 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.1': - resolution: {integrity: sha512-EbGRQg4FhrmwLodl+t3JNAnXHWVr9Vp+Zl1QBZVPY4ByfkzIT8cX3K6QWODHtkIZqqJVEWvhHSx3v5PDHsaQag==} + '@typescript-eslint/visitor-keys@8.61.0': + resolution: {integrity: sha512-QVLZu3ZPQEE+HICQyAMZ2yLQhxf0meY/wx6Hx14YcTNj13JB3qHlX3lJ02L3fLGHgERRH71kvYDwiXIguT3AjQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unocss/cli@66.7.0': - resolution: {integrity: sha512-Pkd/R+WDs8gc1i9fI5XDW8N5r7aoCWjNzt8wGGj5FWTbmsEzewueaL5LQTH4ymv/BhSHFcYpL7geQ5vYont+BA==} + '@unocss/cli@66.7.2': + resolution: {integrity: sha512-50vBptZyiyYzm5CBNSVs1WYIFX+7IKYFwLNrm6pVCOjHfrBmmpfvyCznPMzUcGEFKvP2VsyB2hf3k57GBCSS9Q==} hasBin: true - '@unocss/config@66.7.0': - resolution: {integrity: sha512-C6waL+xzqAPzz5n47qnrs4GbyAtlusNYYmcV6DKYh1MgUP4EFhMnEMyuR2mw3M3tsBpyGuehLdRK5+ECF5yLkA==} + '@unocss/config@66.7.2': + resolution: {integrity: sha512-m8LZUZOFHBesViFOnC1MzMMQ1ovYbZ/F2ntkKSIWzLO/VvEYo2/HK8qhBhtI/FyL27+gvePL4sZ6a5ZChyl0Ug==} '@unocss/core@0.25.1': resolution: {integrity: sha512-YYX40KA2rhsm6aTKTGpE0bi9E7RoAcuqMo/L+f6DmBSwtTXdflckoa903rxgOa6HOLH9fXgOJP9jHt3O/5ysPA==} - '@unocss/core@66.7.0': - resolution: {integrity: sha512-j6MFMx5C3iIwW4T4hVbh+30fKWgSGkmS3bCcdjlfqM88lRT+dHFBN9nkfNOBJT6e6IHN9415nexuzcQvTjJXxw==} + '@unocss/core@66.7.2': + resolution: {integrity: sha512-NNnhm9IVPEZ34drwztREP+mq1rio0L4Tp0u247qBKxJJWYec1+I+FTRsw7EvtukZKvr56YAxFA1qbBV+LjyV+Q==} - '@unocss/extractor-arbitrary-variants@66.7.0': - resolution: {integrity: sha512-iHMlXmb8aGtYgPQ8o3D4rMz9DKOqSp8g/LWvEoiM7arSjJF9jMpcpYlqZXzkg1mSQX23TRW76Qxj1gyI4lRd9w==} + '@unocss/extractor-arbitrary-variants@66.7.2': + resolution: {integrity: sha512-1R+ntws4zhi9gCsyovYeNCiAYGSceN6Rsy/4kyaw3npr1UBWhBJdQZtacxvqOssPfbbqq2vpatcuQ4rfZZYWFQ==} - '@unocss/extractor-svelte@66.7.0': - resolution: {integrity: sha512-5T0FQdM2lNv6Q2BTynbsHX9dZ2gRkdnwmc43h+sDobdEOo9oBUiOzVsmez1AAyMvh/UPZF9Bz/UM4qKBuWZr2Q==} + '@unocss/extractor-svelte@66.7.2': + resolution: {integrity: sha512-Mu2Mtd+EII2Wr1yybCuNlrq1yOx58Imy+vpF0KTab2wT5OGOjam0PraH5is/Gf5lzYVl94lv7M4i+VYAzYdaUA==} - '@unocss/inspector@66.7.0': - resolution: {integrity: sha512-W1MOO2d/1ZHwFR8+mrUUW6KW3MgJ6FdrSWfWeQ1+fgb0TVj8CweNzeSh46sTEXEcpvlui5mnGYFxanpLMoyOtA==} + '@unocss/inspector@66.7.2': + resolution: {integrity: sha512-fvZ8w9dTnu61ZwbXjVMQopxxrQOnFOBN2I6KVPJtoUSMsatrpEYyJHDA9pfLes1a3C4eEJZaSADURHKkON09CA==} - '@unocss/preset-attributify@66.7.0': - resolution: {integrity: sha512-n8ikthHHkAOeHWUwqRNIMGijV6LuIhiZb3D6kreV3oK98wJYupGNGYMByx7R9gQD9uBNLGs0f1jsaAScV3S2Sw==} + '@unocss/preset-attributify@66.7.2': + resolution: {integrity: sha512-JnnoRUgOL4O565+jNi8BfzTQDElEny1reaMhrdYQR4P4I7cfdRV89R5DsmND0H2mGtwJjP/gL4cWd1FSX9ShrA==} - '@unocss/preset-icons@66.7.0': - resolution: {integrity: sha512-y6I2qZ2cwNAS2XRBig1lHzdFG9qTnZM/mx3fL3XnURnEYZird4uidLyWOyUGcdy1kMot1QcYVb0D/s9NgrEOgQ==} + '@unocss/preset-icons@66.7.2': + resolution: {integrity: sha512-C05oM7j8jFuxjbPaRFUbcwxHPXvBtmJOhaE2M3YstVR/L9IBsQ6Ts/PT1vxVAVDmX19MudRRTnQ0x5XzUM3P7A==} '@unocss/preset-mini@0.25.1': resolution: {integrity: sha512-NBfa2/t0TIAT//L8OVskDDQJ3OREjLwDzWMBNO86rvM0VPCIBvCmkKuFR3zxQcWK+aegISeScJA9Zcdk3qJjHA==} - '@unocss/preset-mini@66.7.0': - resolution: {integrity: sha512-+YtRlr1Fjd24GYWhPB93r6fjefTBCnFUsZCASncSEU29u2Mi8MYINjefLfKlSJFMKg6AKzWbelKMCQfoKlUkbg==} + '@unocss/preset-mini@66.7.2': + resolution: {integrity: sha512-2DLS20vj+eoZI/r7U8eTxd+HTfMYamhx03mJyeadNu+efVJZrfEEMwjILgFywVAthYINmdeB4sYpc8Qfef4Vww==} - '@unocss/preset-tagify@66.7.0': - resolution: {integrity: sha512-MaM07ChHsX8XZM3tlMPuRsZxbNvRVTbmIncOj9cCCrFpeOu8hy2ggRAgGOalWIwnIHc+5KQIkqucbgmXN7KBdA==} + '@unocss/preset-tagify@66.7.2': + resolution: {integrity: sha512-46V3ibNqKEyeSNnplsOKiYiBdNZ348JgjhnGDWHigVYIfZkEqn6WJdGAX9tVZpjI/rS9px8jQA0lm6ubKoc8iQ==} - '@unocss/preset-typography@66.7.0': - resolution: {integrity: sha512-Ekdz7jw/TYTiH+QFqMWcWNMnvBnUZ/XPUF938C8DfqD79hZyLdRPo0kQaZh62cit13xNRAb49QP3HIUJIUxoGA==} + '@unocss/preset-typography@66.7.2': + resolution: {integrity: sha512-6nTRoZiHTkDV87omRlEn8RZhakMYrIJtzazfj0rdF8msvjM1LnTT6K6qDlmxqb6NBIakljNb0bryubr6bWzK9A==} '@unocss/preset-uno@0.25.1': resolution: {integrity: sha512-e5lvCF5GD52nD/7l/k4TJedw5AgsVGTs/6rKxE9DP0G5oGszKjx+oHLzoYvCP2aQAcallnZ/CxXTbOvqCQCVxQ==} - '@unocss/preset-uno@66.7.0': - resolution: {integrity: sha512-fcLTj5Wax3QydCSdJq9yQHhqKph6Mx9exwNnkaBCXtmBvrSBd2O6O9ZAylcISnACeXJkjSverU8qVu1X2tITdA==} + '@unocss/preset-uno@66.7.2': + resolution: {integrity: sha512-XiSGtnh04sGHCRUnlxhePBhRF8zfOQlCfYkKByQcp/pvhmFMIWwzVL68R5LwxBmBwBVY4hfQAIx0Sz/FbA3Ojg==} - '@unocss/preset-web-fonts@66.7.0': - resolution: {integrity: sha512-jpNLjo/2X/J2J+G/M9W+y6VuiIhjZ9AyOnyNJHsdhmSJYCsnMuaYtP9eFn4d9+oe3Sz2lVNPV0A9RiqQ+xVAyQ==} + '@unocss/preset-web-fonts@66.7.2': + resolution: {integrity: sha512-Tx6YJWxD29NoG6t8hpbnectdL8KkBVEzEYwBcJlEa200O6/KXNpGJ8tk4l5+EK1dwTxWkUqsG+60fzXzTpe5Gg==} - '@unocss/preset-wind3@66.7.0': - resolution: {integrity: sha512-1xxHBV4TtUHXPpYnWH8J2UHhxaMF84fTvadVzRRaXkyVrXD86Hveh/lfbXHXnCyf0JxwqsleOq8CnCTT8AgoAg==} + '@unocss/preset-wind3@66.7.2': + resolution: {integrity: sha512-3WUmNZ3ibNotel6PAm1AgdK8BP2RqThRvEYU+svZgxsCX8E/RtVM68BFPOwzsEtuMD/R3Up6rHXqZsJvUQsg+A==} - '@unocss/preset-wind4@66.7.0': - resolution: {integrity: sha512-5o3y2BcImLbkxa0fNtwaH8iB47FrOKzT7Xogni5PIDOX/DsoHfDLNiNBRrHHHHBeZ3jqvjv2T9T5kEkD5/WtYQ==} + '@unocss/preset-wind4@66.7.2': + resolution: {integrity: sha512-yP1Np15QKm+zh945lBmpNC2FnD4oyd0eq9qA6j8r15uvhz7AF98t9dGqqzV5WrjX+IZpwg08nP3son1IjAerLw==} '@unocss/preset-wind@0.25.1': resolution: {integrity: sha512-y5gkCCNiGsonqI8OOmtMVXgEMjPDtr+ihxnS3oDptYR4CcBE1cREhLgZocChHHQNEMN9Qx2GsoMN9l6RsoExiA==} - '@unocss/preset-wind@66.7.0': - resolution: {integrity: sha512-K2cCgQawl4GzFyI9almN4jZ33OJNI6U7WxZ9s7D5bivZYfHPaStLTPffNxWlmawwUZF0qpH0S+S7H745ZzgajQ==} + '@unocss/preset-wind@66.7.2': + resolution: {integrity: sha512-porNxph4xfr67e0LpFis813rKk9+psUJMw0nPL4sZoHovhmR/hA5XlWb6fLCl7t4Lls20I/n8F8KKgkqkxnk8Q==} - '@unocss/rule-utils@66.7.0': - resolution: {integrity: sha512-DMJIiey/m+xr0hpSbxFhSbKlC3e7QsuwdAEdgMmIM7pEcu/AEMl7oH198QYX9880P2X0hy5iFE6UCWx9CwGAXQ==} + '@unocss/rule-utils@66.7.2': + resolution: {integrity: sha512-EGi2m9I87hluz2zgjVpXM4PWFn996RInNcx4PGF6Qw9Z0W78ROXEto0SM1IltpJ4R7+at4EhssU0IbHiT0snEw==} - '@unocss/transformer-attributify-jsx@66.7.0': - resolution: {integrity: sha512-mmsAUluRprSyejbzeQnC3ST056EUj2IxD2hMpPJPtnA4QkkyIgBNCmi2OSeVcEWMat1s3r4LcYSTqN88EcX5Kg==} + '@unocss/transformer-attributify-jsx@66.7.2': + resolution: {integrity: sha512-lb5y4lwHCjZm+9L3k6c/fq9O75+mQcxBp2Dq+a3DS+vOQpPce+hOyLFFkiHVRNKp9chEHS9gnq58SBVxJbhR2A==} - '@unocss/transformer-compile-class@66.7.0': - resolution: {integrity: sha512-Z3K/s3TmUqUBGgB2SThWbUAP5E9VIFacbs2+bNJNn+53y1kqdLA1MIje3xlU5hig3OzGk8newwiMflh3s3Jzhg==} + '@unocss/transformer-compile-class@66.7.2': + resolution: {integrity: sha512-/vdgxgUI9vp7NOGfuOCY44/Ja2YbR0m+sWCGHq8K8/53a3Dk+4AvXPePv/EI/Oo6z8bhSGZHCSes8pBEY8Mr8A==} - '@unocss/transformer-directives@66.7.0': - resolution: {integrity: sha512-6T9JxrPfLQlJFNLv7paG4yGiIgGrJY30268HWLkBFwgsldNPtQ+GeQJOzfemCH19UXXqqXMP0WnvbsFucdclmg==} + '@unocss/transformer-directives@66.7.2': + resolution: {integrity: sha512-9xr5Tiy+urutRBcyKJUAOOpW3LSuSM59sKowdTStzZdBUMs/L9cmjfsjNFt8rm5tptUR25wGZ8xLR5hhVDAiBQ==} - '@unocss/transformer-variant-group@66.7.0': - resolution: {integrity: sha512-2TXYLowPMXszGNYRXAWzQ1G9nGP6EYv9XeJvwNvnf0w9J6qOQVVtW/ZViIz61Kk083c06cZ6nai8pCBnc8aPAw==} + '@unocss/transformer-variant-group@66.7.2': + resolution: {integrity: sha512-CO0CoYRn96wLm+cIICuNrv96cfzEkBHc/OmTYcHzlheyZRfGWPWlPpazMr2rlm5bve986akAxe2HSBqdaRf04w==} - '@unocss/vite@66.7.0': - resolution: {integrity: sha512-7J8Mk9M1j55S3bXL87/yHOspnuAaftQWbc3HjCH0/sXNLZJZnlpmUue3EtT5Ez+PE01T3DK1D9Xxn/MvtdvXtA==} + '@unocss/vite@66.7.2': + resolution: {integrity: sha512-KZL8LFNcoOjAaF8AKSUJznxrjcmuQKPSAmwvndL5RjEWtbyunV66YvOuoBPN3F0tR7MhY5NWKJjwmaYyetcM1Q==} peerDependencies: vite: ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0-0 - '@valibot/to-json-schema@1.7.0': - resolution: {integrity: sha512-Y3pPVibbIOHzohrlxSINvO7w/bvXkoYS3BQHoImV9ynE+bXKf171bdMucPurV2zp7gdmt0L1HCcNAsbo7cFRQw==} + '@valibot/to-json-schema@1.7.1': + resolution: {integrity: sha512-3qkmU6KXWh8GIThEAW3kuRHPQBMjWkKy+Ppz3WkUucx53DTpOa6siMn4xDGSOhlVyMrDaJTCTMLYPZVAIk1P0A==} peerDependencies: valibot: ^1.4.0 @@ -1739,25 +1753,14 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.16.0: - resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + acorn@8.17.0: + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} 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==} @@ -1796,8 +1799,8 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - ast-v8-to-istanbul@1.0.3: - resolution: {integrity: sha512-jCMQ6ZylLPudp0CDfBmQBZUsrh1/8psbmu9ibeVWKuHWD0YrH9YABwlKu5kVEFoT0GCQQW9Z/SxfuEbbkGQCRg==} + ast-v8-to-istanbul@1.0.4: + resolution: {integrity: sha512-0bC0/4bTSrnwdhU3IsZDwEdojvuPrSg59OYZfKsLRtJZ0u8VBx9DebfqqG8bRdCC0I7vjgxmPi41P0lpkhJHtA==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -1830,6 +1833,10 @@ packages: resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} engines: {node: 18 || 20 || >=22} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + bun-types@1.3.14: resolution: {integrity: sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ==} @@ -1867,6 +1874,10 @@ packages: resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} engines: {node: '>= 20.19.0'} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + class-transformer@0.5.1: resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==} @@ -1880,10 +1891,6 @@ 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'} @@ -1974,8 +1981,8 @@ packages: cosmiconfig: '>=9' typescript: '>=5' - cosmiconfig@9.0.1: - resolution: {integrity: sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==} + cosmiconfig@9.0.2: + resolution: {integrity: sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -2077,8 +2084,8 @@ packages: es-module-lexer@2.1.0: resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} - es-toolkit@1.47.0: - resolution: {integrity: sha512-n1GuoD0WEQZMBk5tttoZSqwgyLx01oqa5XsBmCHwPyNe1S9jPBEmtR2pSgp2kJuWE3ciFZ6yRHmY4pM4C3OOkw==} + es-toolkit@1.47.1: + resolution: {integrity: sha512-5RAqEwf4P4E17p+W75KLOWw/nOvKZzSQpxM32IpI2KZLaVonjTrZ0Ai5ghMaVI9eKC2p8eoQgcBdkEDgzFk6+Q==} escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} @@ -2158,8 +2165,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.4.1: - resolution: {integrity: sha512-AyIKhnOBuOAdueD7RB3xB+YeAWScb9jHsJBgH2Hcde8InP5JYhqrRR6iTMHyTEwgENK54Cp44e4v8BwNhsuHuw==} + eslint@10.5.0: + resolution: {integrity: sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -2258,6 +2265,10 @@ packages: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -2431,9 +2442,9 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} @@ -2480,8 +2491,8 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true - joi@17.13.3: - resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + joi@17.13.4: + resolution: {integrity: sha512-1RuuER6kmt8K8I3nIWvPZKi5RQCb568ZPyY4Pwjlua+yo+63ZTmIwxLZH0heBmiKN4uxjvCiarDrjaeH84xicQ==} js-sha256@0.11.1: resolution: {integrity: sha512-o6WSo/LUvY2uC4j7mO50a2ms7E/EAdbP0swigLV+nzHKTTaYnaLIWJ02VdXrsJX0vGedDESQnLsOekr94ryfjg==} @@ -2528,9 +2539,6 @@ 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==} @@ -2692,6 +2700,10 @@ packages: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + mimic-function@5.0.1: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} @@ -2704,6 +2716,14 @@ packages: resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + mlly@1.8.2: resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} @@ -2745,8 +2765,8 @@ packages: resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} engines: {node: '>=18'} - obug@2.1.2: - resolution: {integrity: sha512-AWGB9WFcRXOQs48Z/udjI5ZcZMHXwX8XPByNpOydgcGsDLIzjGizhoMWJyKAWze7AVW/2W1i+/gPX4YtKe5cyg==} + obug@2.1.3: + resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} engines: {node: '>=12.20.0'} ofetch@1.5.1: @@ -2763,10 +2783,6 @@ 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} @@ -2831,6 +2847,10 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} @@ -2880,8 +2900,8 @@ packages: peerDependencies: postcss: ^8.4.29 - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} + postcss-selector-parser@7.1.4: + resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} engines: {node: '>=4'} postcss@8.5.15: @@ -2908,8 +2928,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.8.3: - resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==} + prettier@3.8.4: + resolution: {integrity: sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==} engines: {node: '>=14'} hasBin: true @@ -2966,8 +2986,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rolldown@1.1.0: - resolution: {integrity: sha512-zpMvlJhs5PkXRTtKc0CaLBVI9AR/VDiJFpM+kx//hgToEca7FgMlGjaRIisXBcb19T76LswgmKECSQ96hjWr5A==} + rolldown@1.1.1: + resolution: {integrity: sha512-IN750c0p+s3jqJIsFLRZrQazmbAB1kkQDTtQjSt/gbS2ywLhlv4R5Shazer0FZKmuo/BsO3/w2UoYnUjuOZqHg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -2995,15 +3015,12 @@ 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'} - semver@7.8.2: - resolution: {integrity: sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==} + semver@7.8.4: + resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} engines: {node: '>=10'} hasBin: true @@ -3045,10 +3062,6 @@ 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: @@ -3060,10 +3073,6 @@ 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'} @@ -3155,8 +3164,8 @@ packages: peerDependencies: svelte: ^5.0.0 - svelte@5.56.2: - resolution: {integrity: sha512-1lDf8TLqpxyAt3xgybfytWPJQbaUD6TiDgpiCLH0BKrKEwzecB9pjuNVnEJMpzH018xUzo6oxheK2HT0oa2RoQ==} + svelte@5.56.3: + resolution: {integrity: sha512-w7JvrM5IFl5cmfbY0TLik9o7mjRUJmRMhOR51tBPu708Gr/MjbGs7VnJnr/B0CaXeI4vtnOh7RKxDr0cwhMdDA==} engines: {node: '>=18'} sveltekit-superforms@2.30.1: @@ -3185,8 +3194,12 @@ packages: tailwind-merge: optional: true - tailwindcss@4.3.0: - resolution: {integrity: sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==} + tailwindcss@4.3.1: + resolution: {integrity: sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==} + + tar@7.5.16: + resolution: {integrity: sha512-56adEpPMouktRlBLXiaYFFzZ/3+JXa8P9n7WbR+ibIjtviN55mEaOkiysCnPnWm+7kkui1Dn8J9l+g6zV8731w==} + engines: {node: '>=18'} tiny-case@1.0.3: resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} @@ -3210,6 +3223,10 @@ packages: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + toposort@2.0.2: resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} @@ -3248,11 +3265,11 @@ packages: type-level-regexp@0.1.17: resolution: {integrity: sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==} - typebox@1.2.1: - resolution: {integrity: sha512-0upGv6+mxJR7/Wc7yoxjc/U6SjOk2aNDNzbihYacSHh+JfOsf28IJ8ggW4/3tRlDKfbInvEDPVneEywjOWYCzw==} + typebox@1.2.8: + resolution: {integrity: sha512-rlsKhsd7L3082m9nxhFIB4Gl8jizLd/6YlFAWaz96hdV8+VJRjwYaYmDlT0jlTRwkb48SxCSSirqUtrg/HilNw==} - typescript-eslint@8.60.1: - resolution: {integrity: sha512-6m5hkkRAp8lKvhVpcprAIn5KkehQEh+47oHH2VGnExEh7dhNxXlg6GPAOIu6TxbVQxhebrJDvjl3020ooiWCMA==} + typescript-eslint@8.61.0: + resolution: {integrity: sha512-8y31Rd0eGTrDKqhy6vT0HtzhN+YLjQizwX3aA3hPXP/ynSfnrBXcQY5IzsP9/DM7+klX4IUncZZjkchP0z+rUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -3286,12 +3303,12 @@ packages: universal-user-agent@7.0.3: resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==} - unocss@66.7.0: - resolution: {integrity: sha512-dVfkL7SQv3fOiZdqeRX1PdpQqXlB+wHcEQjVR0D/2nXsuqmUqTVnX3EUUWFjqVR83Z51zQ0EyVgym8ooDfcVvw==} + unocss@66.7.2: + resolution: {integrity: sha512-yB0yOpJTtlyGH/HAe4QdnjgjSP6z9ItTdrObvagc8ZEwRY1D2GbfUABwDKyZzXs19gXebqThMG9f+W0hPhDIPA==} peerDependencies: - '@unocss/astro': 66.7.0 - '@unocss/postcss': 66.7.0 - '@unocss/webpack': 66.7.0 + '@unocss/astro': 66.7.2 + '@unocss/postcss': 66.7.2 + '@unocss/webpack': 66.7.2 peerDependenciesMeta: '@unocss/astro': optional: true @@ -3472,6 +3489,10 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yaml@1.10.3: resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} engines: {node: '>= 6'} @@ -3550,27 +3571,6 @@ snapshots: import-fresh: 3.3.0 prettier: 2.5.1 - '@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 @@ -3638,11 +3638,11 @@ snapshots: '@blazediff/core@1.9.1': {} - '@commitlint/cli@21.0.2(@types/node@25.9.2)(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.3)(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.2 - '@commitlint/load': 21.0.2(@types/node@25.9.2)(typescript@6.0.3) + '@commitlint/load': 21.0.2(@types/node@25.9.3)(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.4 @@ -3666,7 +3666,7 @@ snapshots: '@commitlint/ensure@21.0.1': dependencies: '@commitlint/types': 21.0.1 - es-toolkit: 1.47.0 + es-toolkit: 1.47.1 '@commitlint/execute-rule@21.0.1': {} @@ -3678,7 +3678,7 @@ snapshots: '@commitlint/is-ignored@21.0.2': dependencies: '@commitlint/types': 21.0.1 - semver: 7.8.2 + semver: 7.8.4 '@commitlint/lint@21.0.2': dependencies: @@ -3687,15 +3687,15 @@ snapshots: '@commitlint/rules': 21.0.2 '@commitlint/types': 21.0.1 - '@commitlint/load@21.0.2(@types/node@25.9.2)(typescript@6.0.3)': + '@commitlint/load@21.0.2(@types/node@25.9.3)(typescript@6.0.3)': dependencies: '@commitlint/config-validator': 21.0.1 '@commitlint/execute-rule': 21.0.1 '@commitlint/resolve-extends': 21.0.1 '@commitlint/types': 21.0.1 - cosmiconfig: 9.0.1(typescript@6.0.3) - cosmiconfig-typescript-loader: 6.3.0(@types/node@25.9.2)(cosmiconfig@9.0.1(typescript@6.0.3))(typescript@6.0.3) - es-toolkit: 1.47.0 + cosmiconfig: 9.0.2(typescript@6.0.3) + cosmiconfig-typescript-loader: 6.3.0(@types/node@25.9.3)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3) + es-toolkit: 1.47.1 is-plain-obj: 4.1.0 picocolors: 1.1.1 transitivePeerDependencies: @@ -3724,7 +3724,7 @@ snapshots: dependencies: '@commitlint/config-validator': 21.0.1 '@commitlint/types': 21.0.1 - es-toolkit: 1.47.0 + es-toolkit: 1.47.1 global-directory: 5.0.0 resolve-from: 5.0.0 @@ -3750,7 +3750,7 @@ snapshots: dependencies: '@simple-libs/child-process-utils': 1.0.2 '@simple-libs/stream-utils': 1.2.0 - semver: 7.8.2 + semver: 7.8.4 optionalDependencies: conventional-commits-filter: 5.0.0 conventional-commits-parser: 6.4.0 @@ -3767,19 +3767,35 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/core@1.11.0': + dependencies: + '@emnapi/wasi-threads': 1.2.2 + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.11.0': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.4.1(jiti@2.7.0))': + '@emnapi/wasi-threads@1.2.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@10.5.0(jiti@2.7.0))': dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -3826,7 +3842,7 @@ snapshots: execa: 9.6.1 git-cliff: 2.13.1 js-yaml: 4.2.0 - semver: 7.8.2 + semver: 7.8.4 smol-toml: 1.6.1 '@favware/colorette-spinner@1.0.1': @@ -3896,10 +3912,10 @@ snapshots: '@iconify/types': 2.0.0 import-meta-resolve: 4.2.0 - '@inlang/paraglide-js@2.18.2(typescript@6.0.3)': + '@inlang/paraglide-js@2.19.0(typescript@6.0.3)': dependencies: '@inlang/recommend-sherlock': 0.2.1 - '@inlang/sdk': 2.9.3 + '@inlang/sdk': 2.10.0 commander: 11.1.0 consola: 3.4.0 json5: 2.2.3 @@ -3914,7 +3930,7 @@ snapshots: dependencies: comment-json: 4.6.2 - '@inlang/sdk@2.9.3': + '@inlang/sdk@2.10.0': dependencies: '@lix-js/sdk': 0.4.10 '@sinclair/typebox': 0.31.28 @@ -3928,6 +3944,10 @@ snapshots: dependencies: '@swc/helpers': 0.5.23 + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.3 + '@isaacs/ttlcache@1.4.1': {} '@jridgewell/gen-mapping@0.3.13': @@ -3963,16 +3983,16 @@ snapshots: '@lix-js/server-protocol-schema@0.1.1': {} - '@lucide/svelte@1.17.0(svelte@5.56.2(@typescript-eslint/types@8.60.1))': + '@lucide/svelte@1.18.0(svelte@5.56.3(@typescript-eslint/types@8.61.0))': dependencies: - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) - '@nanoforge-dev/actions@2.1.3': + '@nanoforge-dev/actions@2.1.4': dependencies: '@actions/core': 3.0.1 '@actions/github': 9.1.1 commander: 15.0.0 - semver: 7.8.2 + semver: 7.8.4 '@nanoforge-dev/common@1.3.1': {} @@ -3980,24 +4000,16 @@ snapshots: dependencies: '@nanoforge-dev/common': 1.3.1 - '@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)': + '@nanoforge-dev/utils-eslint-config@1.0.2(@types/eslint@9.6.1)(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4)(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.1(jiti@2.7.0)) + eslint-config-prettier: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-formatter-pretty: 7.1.0 - 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) + eslint-plugin-format: 1.5.0(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-prettier: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) globals: 16.5.0 - typescript-eslint: 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3) + typescript-eslint: 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) transitivePeerDependencies: - '@types/eslint' - eslint @@ -4007,13 +4019,20 @@ snapshots: '@nanoforge-dev/utils-prettier-config@1.0.2': {} - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 '@tybys/wasm-util': 0.10.2 optional: true + '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0)': + dependencies: + '@emnapi/core': 1.11.0 + '@emnapi/runtime': 1.11.0 + '@tybys/wasm-util': 0.10.2 + optional: true + '@octokit/auth-token@6.0.0': {} '@octokit/core@7.0.6': @@ -4173,7 +4192,7 @@ snapshots: 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) + '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true '@oxc-parser/binding-win32-arm64-msvc@0.131.0': @@ -4189,7 +4208,7 @@ snapshots: '@oxc-project/types@0.133.0': {} - '@oxc-project/types@0.134.0': {} + '@oxc-project/types@0.135.0': {} '@oxfmt/binding-android-arm-eabi@0.35.0': optional: true @@ -4266,99 +4285,99 @@ snapshots: '@rolldown/binding-android-arm64@1.0.3': optional: true - '@rolldown/binding-android-arm64@1.1.0': + '@rolldown/binding-android-arm64@1.1.1': optional: true '@rolldown/binding-darwin-arm64@1.0.3': optional: true - '@rolldown/binding-darwin-arm64@1.1.0': + '@rolldown/binding-darwin-arm64@1.1.1': optional: true '@rolldown/binding-darwin-x64@1.0.3': optional: true - '@rolldown/binding-darwin-x64@1.1.0': + '@rolldown/binding-darwin-x64@1.1.1': optional: true '@rolldown/binding-freebsd-x64@1.0.3': optional: true - '@rolldown/binding-freebsd-x64@1.1.0': + '@rolldown/binding-freebsd-x64@1.1.1': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.3': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.1.0': + '@rolldown/binding-linux-arm-gnueabihf@1.1.1': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.3': optional: true - '@rolldown/binding-linux-arm64-gnu@1.1.0': + '@rolldown/binding-linux-arm64-gnu@1.1.1': optional: true '@rolldown/binding-linux-arm64-musl@1.0.3': optional: true - '@rolldown/binding-linux-arm64-musl@1.1.0': + '@rolldown/binding-linux-arm64-musl@1.1.1': optional: true '@rolldown/binding-linux-ppc64-gnu@1.0.3': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.1.0': + '@rolldown/binding-linux-ppc64-gnu@1.1.1': optional: true '@rolldown/binding-linux-s390x-gnu@1.0.3': optional: true - '@rolldown/binding-linux-s390x-gnu@1.1.0': + '@rolldown/binding-linux-s390x-gnu@1.1.1': optional: true '@rolldown/binding-linux-x64-gnu@1.0.3': optional: true - '@rolldown/binding-linux-x64-gnu@1.1.0': + '@rolldown/binding-linux-x64-gnu@1.1.1': optional: true '@rolldown/binding-linux-x64-musl@1.0.3': optional: true - '@rolldown/binding-linux-x64-musl@1.1.0': + '@rolldown/binding-linux-x64-musl@1.1.1': optional: true '@rolldown/binding-openharmony-arm64@1.0.3': optional: true - '@rolldown/binding-openharmony-arm64@1.1.0': + '@rolldown/binding-openharmony-arm64@1.1.1': optional: true '@rolldown/binding-wasm32-wasi@1.0.3': 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) + '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-wasm32-wasi@1.1.0': + '@rolldown/binding-wasm32-wasi@1.1.1': 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) + '@emnapi/core': 1.11.0 + '@emnapi/runtime': 1.11.0 + '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0) optional: true '@rolldown/binding-win32-arm64-msvc@1.0.3': optional: true - '@rolldown/binding-win32-arm64-msvc@1.1.0': + '@rolldown/binding-win32-arm64-msvc@1.1.1': optional: true '@rolldown/binding-win32-x64-msvc@1.0.3': optional: true - '@rolldown/binding-win32-x64-msvc@1.1.0': + '@rolldown/binding-win32-x64-msvc@1.1.1': optional: true '@rolldown/pluginutils@1.0.1': {} @@ -4394,17 +4413,17 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@sveltejs/acorn-typescript@1.0.10(acorn@8.16.0)': + '@sveltejs/acorn-typescript@1.0.10(acorn@8.17.0)': dependencies: - acorn: 8.16.0 + acorn: 8.17.0 - '@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0))': + '@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(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.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + '@sveltejs/acorn-typescript': 1.0.10(acorn@8.17.0) + '@sveltejs/vite-plugin-svelte': 7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) '@types/cookie': 0.6.0 - acorn: 8.16.0 + acorn: 8.17.0 cookie: 0.6.0 devalue: 5.8.1 esm-env: 1.2.2 @@ -4413,21 +4432,21 @@ snapshots: mrmime: 2.0.1 set-cookie-parser: 3.1.0 sirv: 3.0.2 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) - vite: 8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) + vite: 8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0) optionalDependencies: typescript: 6.0.3 '@sveltejs/load-config@0.1.1': {} - '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0))': + '@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0))': dependencies: deepmerge: 4.3.1 magic-string: 0.30.21 - obug: 2.1.2 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) - vite: 8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0) - vitefu: 1.1.3(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + obug: 2.1.3 + svelte: 5.56.3(@typescript-eslint/types@8.61.0) + vite: 8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) '@swc/helpers@0.5.23': dependencies: @@ -4435,16 +4454,16 @@ snapshots: '@tanstack/query-core@5.101.0': {} - '@tanstack/svelte-query@6.1.34(svelte@5.56.2(@typescript-eslint/types@8.60.1))': + '@tanstack/svelte-query@6.1.34(svelte@5.56.3(@typescript-eslint/types@8.61.0))': dependencies: '@tanstack/query-core': 5.101.0 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) - '@testing-library/svelte-core@1.0.0(svelte@5.56.2(@typescript-eslint/types@8.60.1))': + '@testing-library/svelte-core@1.0.0(svelte@5.56.3(@typescript-eslint/types@8.61.0))': dependencies: - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) - '@trivago/prettier-plugin-sort-imports@6.0.2(prettier-plugin-svelte@4.1.0(prettier@3.8.3)(svelte@5.56.2(@typescript-eslint/types@8.60.1)))(prettier@3.8.3)(svelte@5.56.2(@typescript-eslint/types@8.60.1))': + '@trivago/prettier-plugin-sort-imports@6.0.2(prettier-plugin-svelte@4.1.0(prettier@3.8.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0)))(prettier@3.8.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0))': dependencies: '@babel/generator': 7.29.7 '@babel/parser': 7.29.7 @@ -4454,10 +4473,10 @@ snapshots: lodash-es: 4.18.1 minimatch: 9.0.9 parse-imports-exports: 0.2.4 - prettier: 3.8.3 + prettier: 3.8.4 optionalDependencies: - prettier-plugin-svelte: 4.1.0(prettier@3.8.3)(svelte@5.56.2(@typescript-eslint/types@8.60.1)) - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + prettier-plugin-svelte: 4.1.0(prettier@3.8.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0)) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) transitivePeerDependencies: - supports-color @@ -4468,6 +4487,8 @@ snapshots: tslib: 2.8.1 optional: true + '@types/braces@3.0.5': {} + '@types/bun@1.3.14': dependencies: bun-types: 1.3.14 @@ -4492,7 +4513,11 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@25.9.2': + '@types/micromatch@4.0.10': + dependencies: + '@types/braces': 3.0.5 + + '@types/node@25.9.3': dependencies: undici-types: 7.24.6 @@ -4514,15 +4539,15 @@ snapshots: '@types/json-schema': 7.0.15 optional: true - '@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/eslint-plugin@8.61.0(@typescript-eslint/parser@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@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) + '@typescript-eslint/parser': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.61.0 + '@typescript-eslint/type-utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.61.0 + eslint: 10.5.0(jiti@2.7.0) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) @@ -4530,89 +4555,89 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/parser@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: - '@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 + '@typescript-eslint/scope-manager': 8.61.0 + '@typescript-eslint/types': 8.61.0 + '@typescript-eslint/typescript-estree': 8.61.0(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.61.0 debug: 4.4.3 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.60.1(typescript@6.0.3)': + '@typescript-eslint/project-service@8.61.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.1(typescript@6.0.3) - '@typescript-eslint/types': 8.60.1 + '@typescript-eslint/tsconfig-utils': 8.61.0(typescript@6.0.3) + '@typescript-eslint/types': 8.61.0 debug: 4.4.3 typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.60.1': + '@typescript-eslint/scope-manager@8.61.0': dependencies: - '@typescript-eslint/types': 8.60.1 - '@typescript-eslint/visitor-keys': 8.60.1 + '@typescript-eslint/types': 8.61.0 + '@typescript-eslint/visitor-keys': 8.61.0 - '@typescript-eslint/tsconfig-utils@8.60.1(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.61.0(typescript@6.0.3)': dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: - '@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) + '@typescript-eslint/types': 8.61.0 + '@typescript-eslint/typescript-estree': 8.61.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) debug: 4.4.3 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(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.1': {} + '@typescript-eslint/types@8.61.0': {} - '@typescript-eslint/typescript-estree@8.60.1(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.61.0(typescript@6.0.3)': dependencies: - '@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 + '@typescript-eslint/project-service': 8.61.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.61.0(typescript@6.0.3) + '@typescript-eslint/types': 8.61.0 + '@typescript-eslint/visitor-keys': 8.61.0 debug: 4.4.3 minimatch: 10.2.5 - semver: 7.8.2 + semver: 7.8.4 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.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/utils@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3)': dependencies: - '@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) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0)) + '@typescript-eslint/scope-manager': 8.61.0 + '@typescript-eslint/types': 8.61.0 + '@typescript-eslint/typescript-estree': 8.61.0(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.60.1': + '@typescript-eslint/visitor-keys@8.61.0': dependencies: - '@typescript-eslint/types': 8.60.1 + '@typescript-eslint/types': 8.61.0 eslint-visitor-keys: 5.0.1 - '@unocss/cli@66.7.0': + '@unocss/cli@66.7.2': dependencies: '@jridgewell/remapping': 2.3.5 - '@unocss/config': 66.7.0 - '@unocss/core': 66.7.0 - '@unocss/preset-wind3': 66.7.0 - '@unocss/preset-wind4': 66.7.0 - '@unocss/transformer-directives': 66.7.0 + '@unocss/config': 66.7.2 + '@unocss/core': 66.7.2 + '@unocss/preset-wind3': 66.7.2 + '@unocss/preset-wind4': 66.7.2 + '@unocss/transformer-directives': 66.7.2 cac: 7.0.0 chokidar: 5.0.0 colorette: 2.0.20 @@ -4623,59 +4648,59 @@ snapshots: tinyglobby: 0.2.17 unplugin-utils: 0.3.1 - '@unocss/config@66.7.0': + '@unocss/config@66.7.2': dependencies: - '@unocss/core': 66.7.0 + '@unocss/core': 66.7.2 colorette: 2.0.20 consola: 3.4.2 unconfig: 7.5.0 '@unocss/core@0.25.1': {} - '@unocss/core@66.7.0': {} + '@unocss/core@66.7.2': {} - '@unocss/extractor-arbitrary-variants@66.7.0': + '@unocss/extractor-arbitrary-variants@66.7.2': dependencies: - '@unocss/core': 66.7.0 + '@unocss/core': 66.7.2 - '@unocss/extractor-svelte@66.7.0': {} + '@unocss/extractor-svelte@66.7.2': {} - '@unocss/inspector@66.7.0': + '@unocss/inspector@66.7.2': dependencies: - '@unocss/core': 66.7.0 - '@unocss/rule-utils': 66.7.0 + '@unocss/core': 66.7.2 + '@unocss/rule-utils': 66.7.2 colorette: 2.0.20 gzip-size: 6.0.0 sirv: 3.0.2 - '@unocss/preset-attributify@66.7.0': + '@unocss/preset-attributify@66.7.2': dependencies: - '@unocss/core': 66.7.0 + '@unocss/core': 66.7.2 - '@unocss/preset-icons@66.7.0': + '@unocss/preset-icons@66.7.2': dependencies: '@iconify/utils': 3.1.3 - '@unocss/core': 66.7.0 + '@unocss/core': 66.7.2 ofetch: 1.5.1 '@unocss/preset-mini@0.25.1': dependencies: '@unocss/core': 0.25.1 - '@unocss/preset-mini@66.7.0': + '@unocss/preset-mini@66.7.2': dependencies: - '@unocss/core': 66.7.0 - '@unocss/extractor-arbitrary-variants': 66.7.0 - '@unocss/rule-utils': 66.7.0 + '@unocss/core': 66.7.2 + '@unocss/extractor-arbitrary-variants': 66.7.2 + '@unocss/rule-utils': 66.7.2 - '@unocss/preset-tagify@66.7.0': + '@unocss/preset-tagify@66.7.2': dependencies: - '@unocss/core': 66.7.0 + '@unocss/core': 66.7.2 - '@unocss/preset-typography@66.7.0': + '@unocss/preset-typography@66.7.2': dependencies: - '@unocss/core': 66.7.0 - '@unocss/rule-utils': 66.7.0 + '@unocss/core': 66.7.2 + '@unocss/rule-utils': 66.7.2 '@unocss/preset-uno@0.25.1': dependencies: @@ -4683,77 +4708,77 @@ snapshots: '@unocss/preset-mini': 0.25.1 '@unocss/preset-wind': 0.25.1 - '@unocss/preset-uno@66.7.0': + '@unocss/preset-uno@66.7.2': dependencies: - '@unocss/core': 66.7.0 - '@unocss/preset-wind3': 66.7.0 + '@unocss/core': 66.7.2 + '@unocss/preset-wind3': 66.7.2 - '@unocss/preset-web-fonts@66.7.0': + '@unocss/preset-web-fonts@66.7.2': dependencies: - '@unocss/core': 66.7.0 + '@unocss/core': 66.7.2 ofetch: 1.5.1 - '@unocss/preset-wind3@66.7.0': + '@unocss/preset-wind3@66.7.2': dependencies: - '@unocss/core': 66.7.0 - '@unocss/preset-mini': 66.7.0 - '@unocss/rule-utils': 66.7.0 + '@unocss/core': 66.7.2 + '@unocss/preset-mini': 66.7.2 + '@unocss/rule-utils': 66.7.2 - '@unocss/preset-wind4@66.7.0': + '@unocss/preset-wind4@66.7.2': dependencies: - '@unocss/core': 66.7.0 - '@unocss/extractor-arbitrary-variants': 66.7.0 - '@unocss/rule-utils': 66.7.0 + '@unocss/core': 66.7.2 + '@unocss/extractor-arbitrary-variants': 66.7.2 + '@unocss/rule-utils': 66.7.2 '@unocss/preset-wind@0.25.1': dependencies: '@unocss/core': 0.25.1 '@unocss/preset-mini': 0.25.1 - '@unocss/preset-wind@66.7.0': + '@unocss/preset-wind@66.7.2': dependencies: - '@unocss/core': 66.7.0 - '@unocss/preset-wind3': 66.7.0 + '@unocss/core': 66.7.2 + '@unocss/preset-wind3': 66.7.2 - '@unocss/rule-utils@66.7.0': + '@unocss/rule-utils@66.7.2': dependencies: - '@unocss/core': 66.7.0 + '@unocss/core': 66.7.2 magic-string: 0.30.21 - '@unocss/transformer-attributify-jsx@66.7.0': + '@unocss/transformer-attributify-jsx@66.7.2': dependencies: - '@unocss/core': 66.7.0 + '@unocss/core': 66.7.2 oxc-parser: 0.131.0 oxc-walker: 0.7.0(oxc-parser@0.131.0) - '@unocss/transformer-compile-class@66.7.0': + '@unocss/transformer-compile-class@66.7.2': dependencies: - '@unocss/core': 66.7.0 + '@unocss/core': 66.7.2 - '@unocss/transformer-directives@66.7.0': + '@unocss/transformer-directives@66.7.2': dependencies: - '@unocss/core': 66.7.0 - '@unocss/rule-utils': 66.7.0 + '@unocss/core': 66.7.2 + '@unocss/rule-utils': 66.7.2 css-tree: 3.2.1 - '@unocss/transformer-variant-group@66.7.0': + '@unocss/transformer-variant-group@66.7.2': dependencies: - '@unocss/core': 66.7.0 + '@unocss/core': 66.7.2 - '@unocss/vite@66.7.0(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0))': + '@unocss/vite@66.7.2(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0))': dependencies: '@jridgewell/remapping': 2.3.5 - '@unocss/config': 66.7.0 - '@unocss/core': 66.7.0 - '@unocss/inspector': 66.7.0 + '@unocss/config': 66.7.2 + '@unocss/core': 66.7.2 + '@unocss/inspector': 66.7.2 chokidar: 5.0.0 magic-string: 0.30.21 pathe: 2.0.3 tinyglobby: 0.2.17 unplugin-utils: 0.3.1 - vite: 8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0) - '@valibot/to-json-schema@1.7.0(valibot@1.4.1(typescript@6.0.3))': + '@valibot/to-json-schema@1.7.1(valibot@1.4.1(typescript@6.0.3))': dependencies: valibot: 1.4.1(typescript@6.0.3) optional: true @@ -4773,29 +4798,29 @@ snapshots: validator: 13.15.35 optional: true - '@vitest/browser-playwright@4.1.8(playwright@1.60.0)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8)': + '@vitest/browser-playwright@4.1.8(playwright@1.60.0)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8)': dependencies: - '@vitest/browser': 4.1.8(vite@8.0.16(@types/node@25.9.2)(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.2)(jiti@2.7.0)(yaml@2.9.0)) + '@vitest/browser': 4.1.8(vite@8.0.16(@types/node@25.9.3)(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.3)(jiti@2.7.0)(yaml@2.9.0)) playwright: 1.60.0 tinyrainbow: 3.1.0 - vitest: 4.1.8(@types/node@25.9.2)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + vitest: 4.1.8(@types/node@25.9.3)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser@4.1.8(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8)': + '@vitest/browser@4.1.8(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8)': dependencies: '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@25.9.3)(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.8(@types/node@25.9.2)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + vitest: 4.1.8(@types/node@25.9.3)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) ws: 8.21.0 transitivePeerDependencies: - bufferutil @@ -4807,17 +4832,17 @@ snapshots: dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.1.8 - ast-v8-to-istanbul: 1.0.3 + ast-v8-to-istanbul: 1.0.4 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-reports: 3.2.0 magicast: 0.5.3 - obug: 2.1.2 + obug: 2.1.3 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.8(@types/node@25.9.2)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + vitest: 4.1.8(@types/node@25.9.3)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) optionalDependencies: - '@vitest/browser': 4.1.8(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8) + '@vitest/browser': 4.1.8(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8) '@vitest/expect@4.1.8': dependencies: @@ -4828,13 +4853,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.8(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0))': + '@vitest/mocker@4.1.8(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.8 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0) '@vitest/pretty-format@4.1.8': dependencies: @@ -4860,15 +4885,11 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.0 - acorn-jsx@5.3.2(acorn@8.16.0): + acorn-jsx@5.3.2(acorn@8.17.0): dependencies: - acorn: 8.16.0 + acorn: 8.17.0 - acorn@8.16.0: {} - - ajv-formats@3.0.1(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 + acorn@8.17.0: {} ajv@6.15.0: dependencies: @@ -4877,13 +4898,6 @@ 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 @@ -4921,7 +4935,7 @@ snapshots: assertion-error@2.0.1: {} - ast-v8-to-istanbul@1.0.3: + ast-v8-to-istanbul@1.0.4: dependencies: '@jridgewell/trace-mapping': 0.3.31 estree-walker: 3.0.3 @@ -4935,15 +4949,15 @@ snapshots: before-after-hook@4.0.0: {} - bits-ui@2.18.1(@internationalized/date@3.12.2)(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + bits-ui@2.18.1(@internationalized/date@3.12.2)(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0)): 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.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1)) - svelte: 5.56.2(@typescript-eslint/types@8.60.1) - svelte-toolbelt: 0.10.6(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + runed: 0.35.1(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0)) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) + svelte-toolbelt: 0.10.6(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0)) tabbable: 6.4.0 transitivePeerDependencies: - '@sveltejs/kit' @@ -4958,9 +4972,13 @@ snapshots: dependencies: balanced-match: 4.0.4 + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + bun-types@1.3.14: dependencies: - '@types/node': 25.9.2 + '@types/node': 25.9.3 bun@1.3.14: optionalDependencies: @@ -5000,6 +5018,8 @@ snapshots: dependencies: readdirp: 5.0.0 + chownr@3.0.0: {} + class-transformer@0.5.1: {} class-validator@0.14.4: @@ -5019,8 +5039,6 @@ snapshots: dependencies: restore-cursor: 5.1.0 - cli-spinners@3.4.0: {} - cli-truncate@5.2.0: dependencies: slice-ansi: 8.0.0 @@ -5089,14 +5107,14 @@ snapshots: cookie@0.6.0: {} - cosmiconfig-typescript-loader@6.3.0(@types/node@25.9.2)(cosmiconfig@9.0.1(typescript@6.0.3))(typescript@6.0.3): + cosmiconfig-typescript-loader@6.3.0(@types/node@25.9.3)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3): dependencies: - '@types/node': 25.9.2 - cosmiconfig: 9.0.1(typescript@6.0.3) + '@types/node': 25.9.3 + cosmiconfig: 9.0.2(typescript@6.0.3) jiti: 2.6.1 typescript: 6.0.3 - cosmiconfig@9.0.1(typescript@6.0.3): + cosmiconfig@9.0.2(typescript@6.0.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 @@ -5174,15 +5192,15 @@ snapshots: es-module-lexer@2.1.0: {} - es-toolkit@1.47.0: {} + es-toolkit@1.47.1: {} escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.8(eslint@10.4.1(jiti@2.7.0)): + eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) eslint-formatter-pretty@7.1.0: dependencies: @@ -5195,51 +5213,51 @@ snapshots: string-width: 8.2.1 supports-hyperlinks: 4.4.0 - eslint-formatting-reporter@0.0.0(eslint@10.4.1(jiti@2.7.0)): + eslint-formatting-reporter@0.0.0(eslint@10.5.0(jiti@2.7.0)): dependencies: - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(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.1(jiti@2.7.0)): + eslint-plugin-format@1.5.0(eslint@10.5.0(jiti@2.7.0)): dependencies: '@dprint/formatter': 0.5.1 '@dprint/markdown': 0.21.1 '@dprint/toml': 0.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: 10.5.0(jiti@2.7.0) + eslint-formatting-reporter: 0.0.0(eslint@10.5.0(jiti@2.7.0)) eslint-parser-plain: 0.1.1 ohash: 2.0.11 oxfmt: 0.35.0 - prettier: 3.8.3 + prettier: 3.8.4 synckit: 0.11.13 - 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): + eslint-plugin-prettier@5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4): dependencies: - eslint: 10.4.1(jiti@2.7.0) - prettier: 3.8.3 + eslint: 10.5.0(jiti@2.7.0) + prettier: 3.8.4 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.1(jiti@2.7.0)) + eslint-config-prettier: 10.1.8(eslint@10.5.0(jiti@2.7.0)) - eslint-plugin-svelte@3.19.0(eslint@10.4.1(jiti@2.7.0))(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + eslint-plugin-svelte@3.19.0(eslint@10.5.0(jiti@2.7.0))(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0)) '@jridgewell/sourcemap-codec': 1.5.5 - eslint: 10.4.1(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0) esutils: 2.0.3 globals: 16.5.0 known-css-properties: 0.37.0 postcss: 8.5.15 postcss-load-config: 3.1.4(postcss@8.5.15) postcss-safe-parser: 7.0.1(postcss@8.5.15) - semver: 7.8.2 - svelte-eslint-parser: 1.8.0(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + semver: 7.8.4 + svelte-eslint-parser: 1.8.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)) optionalDependencies: - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) transitivePeerDependencies: - ts-node @@ -5263,9 +5281,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.4.1(jiti@2.7.0): + eslint@10.5.0(jiti@2.7.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.1(jiti@2.7.0)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.6.0 @@ -5304,14 +5322,14 @@ snapshots: espree@10.4.0: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) eslint-visitor-keys: 4.2.1 espree@11.2.0: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.17.0 + acorn-jsx: 5.3.2(acorn@8.17.0) eslint-visitor-keys: 5.0.1 esprima@4.0.1: {} @@ -5320,11 +5338,11 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.11(@typescript-eslint/types@8.60.1): + esrap@2.2.11(@typescript-eslint/types@8.61.0): dependencies: '@jridgewell/sourcemap-codec': 1.5.5 optionalDependencies: - '@typescript-eslint/types': 8.60.1 + '@typescript-eslint/types': 8.61.0 esrecurse@4.3.0: dependencies: @@ -5384,6 +5402,10 @@ snapshots: dependencies: flat-cache: 4.0.1 + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -5396,11 +5418,11 @@ snapshots: flatted@3.4.2: {} - formsnap@2.0.1(svelte@5.56.2(@typescript-eslint/types@8.60.1))(sveltekit-superforms@2.30.1(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)): + formsnap@2.0.1(svelte@5.56.3(@typescript-eslint/types@8.61.0))(sveltekit-superforms@2.30.1(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)): dependencies: - svelte: 5.56.2(@typescript-eslint/types@8.60.1) - svelte-toolbelt: 0.5.0(svelte@5.56.2(@typescript-eslint/types@8.60.1)) - sveltekit-superforms: 2.30.1(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) + svelte-toolbelt: 0.5.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)) + sveltekit-superforms: 2.30.1(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3) fsevents@2.3.2: optional: true @@ -5518,7 +5540,7 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-interactive@2.0.0: {} + is-number@7.0.0: {} is-obj@2.0.0: {} @@ -5553,7 +5575,7 @@ snapshots: jiti@2.7.0: {} - joi@17.13.3: + joi@17.13.4: dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -5594,8 +5616,6 @@ snapshots: json5@2.2.3: {} - jsonc-parser@3.3.1: {} - keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -5728,7 +5748,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.8.2 + semver: 7.8.4 marked@14.0.0: {} @@ -5738,6 +5758,11 @@ snapshots: meow@13.2.0: {} + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + mimic-function@5.0.1: {} minimatch@10.2.5: @@ -5748,18 +5773,24 @@ snapshots: dependencies: brace-expansion: 2.1.1 + minipass@7.1.3: {} + + minizlib@3.1.0: + dependencies: + minipass: 7.1.3 + mlly@1.8.2: dependencies: - acorn: 8.16.0 + acorn: 8.17.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.4 - mode-watcher@1.1.0(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + mode-watcher@1.1.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: - runed: 0.25.0(svelte@5.56.2(@typescript-eslint/types@8.60.1)) - svelte: 5.56.2(@typescript-eslint/types@8.60.1) - svelte-toolbelt: 0.7.1(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + runed: 0.25.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) + svelte-toolbelt: 0.7.1(svelte@5.56.3(@typescript-eslint/types@8.61.0)) monaco-editor@0.55.1: dependencies: @@ -5786,7 +5817,7 @@ snapshots: path-key: 4.0.0 unicorn-magic: 0.3.0 - obug@2.1.2: {} + obug@2.1.3: {} ofetch@1.5.1: dependencies: @@ -5809,17 +5840,6 @@ 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 @@ -5915,6 +5935,8 @@ snapshots: picocolors@1.1.1: {} + picomatch@2.3.2: {} + picomatch@4.0.4: {} pkg-types@1.3.1: @@ -5952,7 +5974,7 @@ snapshots: dependencies: postcss: 8.5.15 - postcss-selector-parser@7.1.1: + postcss-selector-parser@7.1.4: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -5969,14 +5991,14 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier-plugin-svelte@4.1.0(prettier@3.8.3)(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + prettier-plugin-svelte@4.1.0(prettier@3.8.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: - prettier: 3.8.3 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + prettier: 3.8.4 + svelte: 5.56.3(@typescript-eslint/types@8.61.0) prettier@2.5.1: {} - prettier@3.8.3: {} + prettier@3.8.4: {} pretty-ms@9.3.0: dependencies: @@ -6032,60 +6054,56 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.3 '@rolldown/binding-win32-x64-msvc': 1.0.3 - rolldown@1.1.0: + rolldown@1.1.1: dependencies: - '@oxc-project/types': 0.134.0 + '@oxc-project/types': 0.135.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.1.0 - '@rolldown/binding-darwin-arm64': 1.1.0 - '@rolldown/binding-darwin-x64': 1.1.0 - '@rolldown/binding-freebsd-x64': 1.1.0 - '@rolldown/binding-linux-arm-gnueabihf': 1.1.0 - '@rolldown/binding-linux-arm64-gnu': 1.1.0 - '@rolldown/binding-linux-arm64-musl': 1.1.0 - '@rolldown/binding-linux-ppc64-gnu': 1.1.0 - '@rolldown/binding-linux-s390x-gnu': 1.1.0 - '@rolldown/binding-linux-x64-gnu': 1.1.0 - '@rolldown/binding-linux-x64-musl': 1.1.0 - '@rolldown/binding-openharmony-arm64': 1.1.0 - '@rolldown/binding-wasm32-wasi': 1.1.0 - '@rolldown/binding-win32-arm64-msvc': 1.1.0 - '@rolldown/binding-win32-x64-msvc': 1.1.0 - - runed@0.23.4(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + '@rolldown/binding-android-arm64': 1.1.1 + '@rolldown/binding-darwin-arm64': 1.1.1 + '@rolldown/binding-darwin-x64': 1.1.1 + '@rolldown/binding-freebsd-x64': 1.1.1 + '@rolldown/binding-linux-arm-gnueabihf': 1.1.1 + '@rolldown/binding-linux-arm64-gnu': 1.1.1 + '@rolldown/binding-linux-arm64-musl': 1.1.1 + '@rolldown/binding-linux-ppc64-gnu': 1.1.1 + '@rolldown/binding-linux-s390x-gnu': 1.1.1 + '@rolldown/binding-linux-x64-gnu': 1.1.1 + '@rolldown/binding-linux-x64-musl': 1.1.1 + '@rolldown/binding-openharmony-arm64': 1.1.1 + '@rolldown/binding-wasm32-wasi': 1.1.1 + '@rolldown/binding-win32-arm64-msvc': 1.1.1 + '@rolldown/binding-win32-x64-msvc': 1.1.1 + + runed@0.23.4(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: esm-env: 1.2.2 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) - runed@0.25.0(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + runed@0.25.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: esm-env: 1.2.2 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) - runed@0.28.0(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + runed@0.28.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: esm-env: 1.2.2 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) - runed@0.35.1(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + runed@0.35.1(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: dequal: 2.0.3 esm-env: 1.2.2 lz-string: 1.5.0 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) optionalDependencies: - '@sveltejs/kit': 2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) - - rxjs@7.8.2: - dependencies: - tslib: 2.8.1 + '@sveltejs/kit': 2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) sade@1.8.1: dependencies: mri: 1.2.0 - semver@7.8.2: {} + semver@7.8.4: {} set-cookie-parser@3.1.0: {} @@ -6119,8 +6137,6 @@ 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 @@ -6130,8 +6146,6 @@ snapshots: std-env@4.1.0: {} - stdin-discarder@0.3.2: {} - string-argv@0.3.2: {} string-width@7.2.0: @@ -6169,13 +6183,13 @@ snapshots: has-flag: 5.0.1 supports-color: 10.2.2 - svelte-adapter-bun@1.0.1(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(typescript@6.0.3): + svelte-adapter-bun@1.0.1(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(typescript@6.0.3): dependencies: - '@sveltejs/kit': 2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) - rolldown: 1.1.0 + '@sveltejs/kit': 2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) + rolldown: 1.1.1 typescript: 6.0.3 - svelte-check@4.6.0(picomatch@4.0.4)(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3): + svelte-check@4.6.0(picomatch@4.0.4)(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 '@sveltejs/load-config': 0.1.1 @@ -6183,70 +6197,70 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) typescript: 6.0.3 transitivePeerDependencies: - picomatch - svelte-eslint-parser@1.8.0(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + svelte-eslint-parser@1.8.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 postcss: 8.5.15 postcss-scss: 4.0.9(postcss@8.5.15) - postcss-selector-parser: 7.1.1 - semver: 7.8.2 + postcss-selector-parser: 7.1.4 + semver: 7.8.4 optionalDependencies: - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) - svelte-kit-sessions@0.4.0(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + svelte-kit-sessions@0.4.0(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: '@isaacs/ttlcache': 1.4.1 - '@sveltejs/kit': 2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + '@sveltejs/kit': 2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) - svelte-sonner@1.1.1(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + svelte-sonner@1.1.1(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: - runed: 0.28.0(svelte@5.56.2(@typescript-eslint/types@8.60.1)) - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + runed: 0.28.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) - svelte-toolbelt@0.10.6(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + svelte-toolbelt@0.10.6(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: clsx: 2.1.1 - runed: 0.35.1(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + runed: 0.35.1(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0)) style-to-object: 1.0.14 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) transitivePeerDependencies: - '@sveltejs/kit' - svelte-toolbelt@0.5.0(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + svelte-toolbelt@0.5.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: clsx: 2.1.1 style-to-object: 1.0.14 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) - svelte-toolbelt@0.7.1(svelte@5.56.2(@typescript-eslint/types@8.60.1)): + svelte-toolbelt@0.7.1(svelte@5.56.3(@typescript-eslint/types@8.61.0)): dependencies: clsx: 2.1.1 - runed: 0.23.4(svelte@5.56.2(@typescript-eslint/types@8.60.1)) + runed: 0.23.4(svelte@5.56.3(@typescript-eslint/types@8.61.0)) style-to-object: 1.0.14 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) - svelte@5.56.2(@typescript-eslint/types@8.60.1): + svelte@5.56.3(@typescript-eslint/types@8.61.0): dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 - '@sveltejs/acorn-typescript': 1.0.10(acorn@8.16.0) + '@sveltejs/acorn-typescript': 1.0.10(acorn@8.17.0) '@types/estree': 1.0.9 '@types/trusted-types': 2.0.7 - acorn: 8.16.0 + acorn: 8.17.0 aria-query: 5.3.1 axobject-query: 4.1.0 clsx: 2.1.1 devalue: 5.8.1 esm-env: 1.2.2 - esrap: 2.2.11(@typescript-eslint/types@8.60.1) + esrap: 2.2.11(@typescript-eslint/types@8.61.0) is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 @@ -6254,26 +6268,26 @@ snapshots: transitivePeerDependencies: - '@typescript-eslint/types' - sveltekit-superforms@2.30.1(@sveltejs/kit@2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3): + sveltekit-superforms@2.30.1(@sveltejs/kit@2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(@types/json-schema@7.0.15)(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3): dependencies: - '@sveltejs/kit': 2.63.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.2(@typescript-eslint/types@8.60.1))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + '@sveltejs/kit': 2.65.0(@sveltejs/vite-plugin-svelte@7.1.2(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)))(svelte@5.56.3(@typescript-eslint/types@8.61.0))(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) devalue: 5.8.1 memoize-weak: 1.0.2 - svelte: 5.56.2(@typescript-eslint/types@8.60.1) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) ts-deepmerge: 7.0.3 optionalDependencies: '@exodus/schemasafe': 1.3.0 '@standard-schema/spec': 1.1.0 '@typeschema/class-validator': 0.3.0(@types/json-schema@7.0.15)(class-validator@0.14.4) - '@valibot/to-json-schema': 1.7.0(valibot@1.4.1(typescript@6.0.3)) + '@valibot/to-json-schema': 1.7.1(valibot@1.4.1(typescript@6.0.3)) '@vinejs/vine': 3.0.1 arktype: 2.2.0 class-validator: 0.14.4 effect: 3.21.3 - joi: 17.13.3 + joi: 17.13.4 json-schema-to-ts: 3.1.1 superstruct: 2.0.2 - typebox: 1.2.1 + typebox: 1.2.8 valibot: 1.4.1(typescript@6.0.3) yup: 1.7.1 zod: 4.4.3 @@ -6290,13 +6304,21 @@ snapshots: tailwind-merge@3.6.0: {} - tailwind-variants@3.2.2(tailwind-merge@3.6.0)(tailwindcss@4.3.0): + tailwind-variants@3.2.2(tailwind-merge@3.6.0)(tailwindcss@4.3.1): dependencies: - tailwindcss: 4.3.0 + tailwindcss: 4.3.1 optionalDependencies: tailwind-merge: 3.6.0 - tailwindcss@4.3.0: {} + tailwindcss@4.3.1: {} + + tar@7.5.16: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.3 + minizlib: 3.1.0 + yallist: 5.0.0 tiny-case@1.0.3: optional: true @@ -6314,6 +6336,10 @@ snapshots: tinyrainbow@3.1.0: {} + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + toposort@2.0.2: optional: true @@ -6341,16 +6367,16 @@ snapshots: type-level-regexp@0.1.17: {} - typebox@1.2.1: + typebox@1.2.8: optional: true - typescript-eslint@8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@6.0.3): + typescript-eslint@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3): dependencies: - '@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-eslint/eslint-plugin': 8.61.0(@typescript-eslint/parser@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.61.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) + eslint: 10.5.0(jiti@2.7.0) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -6380,25 +6406,25 @@ snapshots: universal-user-agent@7.0.3: {} - unocss@66.7.0(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)): - dependencies: - '@unocss/cli': 66.7.0 - '@unocss/core': 66.7.0 - '@unocss/preset-attributify': 66.7.0 - '@unocss/preset-icons': 66.7.0 - '@unocss/preset-mini': 66.7.0 - '@unocss/preset-tagify': 66.7.0 - '@unocss/preset-typography': 66.7.0 - '@unocss/preset-uno': 66.7.0 - '@unocss/preset-web-fonts': 66.7.0 - '@unocss/preset-wind': 66.7.0 - '@unocss/preset-wind3': 66.7.0 - '@unocss/preset-wind4': 66.7.0 - '@unocss/transformer-attributify-jsx': 66.7.0 - '@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.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + unocss@66.7.2(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)): + dependencies: + '@unocss/cli': 66.7.2 + '@unocss/core': 66.7.2 + '@unocss/preset-attributify': 66.7.2 + '@unocss/preset-icons': 66.7.2 + '@unocss/preset-mini': 66.7.2 + '@unocss/preset-tagify': 66.7.2 + '@unocss/preset-typography': 66.7.2 + '@unocss/preset-uno': 66.7.2 + '@unocss/preset-web-fonts': 66.7.2 + '@unocss/preset-wind': 66.7.2 + '@unocss/preset-wind3': 66.7.2 + '@unocss/preset-wind4': 66.7.2 + '@unocss/transformer-attributify-jsx': 66.7.2 + '@unocss/transformer-compile-class': 66.7.2 + '@unocss/transformer-directives': 66.7.2 + '@unocss/transformer-variant-group': 66.7.2 + '@unocss/vite': 66.7.2(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) transitivePeerDependencies: - vite @@ -6410,7 +6436,7 @@ snapshots: unplugin@2.3.11: dependencies: '@jridgewell/remapping': 2.3.5 - acorn: 8.16.0 + acorn: 8.17.0 picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 @@ -6431,7 +6457,7 @@ snapshots: validator@13.15.35: {} - vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0): + vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -6439,25 +6465,25 @@ snapshots: rolldown: 1.0.3 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 25.9.2 + '@types/node': 25.9.3 fsevents: 2.3.3 jiti: 2.7.0 yaml: 2.9.0 - vitefu@1.1.3(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)): + vitefu@1.1.3(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)): optionalDependencies: - vite: 8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0) - vitest-browser-svelte@2.1.1(svelte@5.56.2(@typescript-eslint/types@8.60.1))(vitest@4.1.8): + vitest-browser-svelte@2.1.1(svelte@5.56.3(@typescript-eslint/types@8.61.0))(vitest@4.1.8): dependencies: - '@testing-library/svelte-core': 1.0.0(svelte@5.56.2(@typescript-eslint/types@8.60.1)) - svelte: 5.56.2(@typescript-eslint/types@8.60.1) - vitest: 4.1.8(@types/node@25.9.2)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + '@testing-library/svelte-core': 1.0.0(svelte@5.56.3(@typescript-eslint/types@8.61.0)) + svelte: 5.56.3(@typescript-eslint/types@8.61.0) + vitest: 4.1.8(@types/node@25.9.3)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) - vitest@4.1.8(@types/node@25.9.2)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)): + vitest@4.1.8(@types/node@25.9.3)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-v8@4.1.8)(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.8 - '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0)) + '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.8 '@vitest/runner': 4.1.8 '@vitest/snapshot': 4.1.8 @@ -6466,7 +6492,7 @@ snapshots: es-module-lexer: 2.1.0 expect-type: 1.3.0 magic-string: 0.30.21 - obug: 2.1.2 + obug: 2.1.3 pathe: 2.0.3 picomatch: 4.0.4 std-env: 4.1.0 @@ -6474,11 +6500,11 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@25.9.3)(jiti@2.7.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.9.2 - '@vitest/browser-playwright': 4.1.8(playwright@1.60.0)(vite@8.0.16(@types/node@25.9.2)(jiti@2.7.0)(yaml@2.9.0))(vitest@4.1.8) + '@types/node': 25.9.3 + '@vitest/browser-playwright': 4.1.8(playwright@1.60.0)(vite@8.0.16(@types/node@25.9.3)(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 @@ -6512,6 +6538,8 @@ snapshots: y18n@5.0.8: {} + yallist@5.0.0: {} + yaml@1.10.3: {} yaml@2.9.0: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4da1afa..a4eda37 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -10,7 +10,7 @@ catalogs: '@commitlint/cli': ^21.0.2 '@commitlint/config-conventional': ^21.0.2 '@favware/cliff-jumper': ^6.1.0 - '@nanoforge-dev/actions': ^2.1.3 + '@nanoforge-dev/actions': ^2.1.4 husky: ^9.1.7 lint-staged: ^17.0.7 components: @@ -20,38 +20,40 @@ catalogs: core: '@nanoforge-dev/ecs-lib': ^1.3.1 '@sveltejs/adapter-auto': ^7.0.1 - '@sveltejs/kit': ^2.63.0 + '@sveltejs/kit': ^2.65.0 '@sveltejs/vite-plugin-svelte': ^7.1.2 '@types/bun': ^1.3.14 bun: ^1.3.14 - svelte: ^5.56.2 + svelte: ^5.56.3 svelte-check: ^4.6.0 svelte-kit-sessions: ^0.4.0 vite: ^8.0.16 css: '@alexanderniebuhr/prettier-plugin-unocss': ^0.0.4 - '@unocss/extractor-svelte': ^66.7.0 - '@unocss/preset-icons': ^66.7.0 - '@unocss/preset-web-fonts': ^66.7.0 - '@unocss/preset-wind4': ^66.7.0 + '@unocss/extractor-svelte': ^66.7.2 + '@unocss/preset-icons': ^66.7.2 + '@unocss/preset-web-fonts': ^66.7.2 + '@unocss/preset-wind4': ^66.7.2 clsx: ^2.1.1 tailwind-merge: ^3.6.0 tailwind-variants: ^3.2.2 - tailwindcss: ^4.3.0 - unocss: ^66.7.0 + tailwindcss: ^4.3.1 + unocss: ^66.7.2 i18n: - '@inlang/paraglide-js': ^2.18.2 + '@inlang/paraglide-js': ^2.19.0 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.67 '@iconify-json/solar': ^1.2.5 - '@lucide/svelte': ^1.17.0 + '@lucide/svelte': ^1.18.0 libs-back: class-transformer: ^0.5.1 class-validator: ^0.15.1 dotenv: ^17.4.2 + micromatch: ^4.0.8 + tar: ^7.5.16 libs-front: '@internationalized/date': ^3.12.2 '@tanstack/svelte-query': ^6.1.34 @@ -64,12 +66,12 @@ 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.1 + eslint: ^10.5.0 eslint-plugin-svelte: ^3.19.0 globals: ^17.6.0 - prettier: ^3.8.3 + prettier: ^3.8.4 prettier-plugin-svelte: ^4.1.0 - typescript-eslint: ^8.60.1 + typescript-eslint: ^8.61.0 test: '@playwright/test': ^1.60.0 '@vitest/browser-playwright': ^4.1.8 diff --git a/src/lib/client/action/client.ts b/src/lib/client/action/client.ts index 22c7d58..e5fc758 100644 --- a/src/lib/client/action/client.ts +++ b/src/lib/client/action/client.ts @@ -1,6 +1,7 @@ import { SESSION_PROJECT_HEADER } from '@utils/const'; import { HttpClient } from '@utils/http'; +import { ProjectArchiveRepository } from './repositories/archive.repository'; import { ProjectFsRepository } from './repositories/fs.repository'; import { ProjectLoaderRepository } from './repositories/loader.repository'; import { ProjectPackageRepository } from './repositories/package.repository'; @@ -8,6 +9,7 @@ import { ProjectRepository } from './repositories/project.repository'; import { ProjectSaveRepository } from './repositories/save.repository'; export interface ActionClient { + archive: ProjectArchiveRepository; fs: ProjectFsRepository; loader: ProjectLoaderRepository; package: ProjectPackageRepository; @@ -22,6 +24,7 @@ export const getActionClient = (projectId?: string): ActionClient => { ); return { + archive: new ProjectArchiveRepository(client), fs: new ProjectFsRepository(client), loader: new ProjectLoaderRepository(client), package: new ProjectPackageRepository(client), diff --git a/src/lib/client/action/repositories/archive.repository.ts b/src/lib/client/action/repositories/archive.repository.ts new file mode 100644 index 0000000..b15b887 --- /dev/null +++ b/src/lib/client/action/repositories/archive.repository.ts @@ -0,0 +1,8 @@ +import { BaseRepository } from '../base.repository'; +import type { Archive } from '../types'; + +export class ProjectArchiveRepository extends BaseRepository { + create(): Promise { + return this.run(`/actions/project/archive?/create`); + } +} diff --git a/src/lib/client/action/types/archive.type.ts b/src/lib/client/action/types/archive.type.ts new file mode 100644 index 0000000..fc41107 --- /dev/null +++ b/src/lib/client/action/types/archive.type.ts @@ -0,0 +1,3 @@ +import type { CreateArchiveResult } from '$lib/server/actions/project/archive/create.action'; + +export type Archive = CreateArchiveResult; diff --git a/src/lib/client/action/types/index.ts b/src/lib/client/action/types/index.ts index bd622f2..6c4c59e 100644 --- a/src/lib/client/action/types/index.ts +++ b/src/lib/client/action/types/index.ts @@ -1,3 +1,4 @@ +export * from './archive.type'; export * from './fs.type'; export * from './library.type'; export * from './loader.type'; diff --git a/src/lib/components/Menu/MenuBar.svelte b/src/lib/components/Menu/MenuBar.svelte index 8dbf8be..d6e1045 100644 --- a/src/lib/components/Menu/MenuBar.svelte +++ b/src/lib/components/Menu/MenuBar.svelte @@ -4,10 +4,11 @@ import { resolve } from '$app/paths'; import { goto } from '$app/navigation'; import type { Snippet } from 'svelte'; - import { ProjectLoader } from '$lib/client/project'; + import { ProjectLoader, useProject } from '$lib/client/project'; import { PUBLIC_DOCS_URL, PUBLIC_LANDING_URL } from '$env/static/public'; + import ExportDialog from './export-dialog.svelte'; - let fileInput: HTMLInputElement; + // let fileInput: HTMLInputElement; type MenuItem = { icon: string } & ( | { @@ -24,19 +25,37 @@ items: MenuItem[]; } - async function handleImportClick() { - fileInput.click(); - } + const { actions } = useProject(); - async function handleFileChange(event: Event) { - const input = event.target as HTMLInputElement; - const file = input.files?.[0]; - if (!file) return; - if (!file.name.endsWith('.zip')) return; + // async function handleImportClick() { + // fileInput.click(); + // } - //await importFromZip(file); - input.value = ''; - } + // async function handleFileChange(event: Event) { + // const input = event.target as HTMLInputElement; + // const file = input.files?.[0]; + // if (!file) return; + // if (!file.name.endsWith('.zip')) return; + // + // //await importFromZip(file); + // input.value = ''; + // } + + let exportOpen = $state(false); + let exportLoading = $state(false); + let exportArchiveId = $state(null); + + const handleExportClick = async () => { + exportArchiveId = null; + exportLoading = true; + exportOpen = true; + try { + const { id } = await actions.archive.create(); + exportArchiveId = id; + } finally { + exportLoading = false; + } + }; const nullFunction = () => {}; @@ -45,12 +64,7 @@ name: 'File', items: [ { name: 'Save', icon: 'i-solar-cloud-download-bold-duotone', onClick: nullFunction }, - { - snippet: fileImportSnippet, - icon: 'i-solar-download-bold-duotone', - onClick: handleImportClick, - }, - { name: 'Export', icon: 'i-solar-file-send-bold-duotone', onClick: nullFunction }, + { name: 'Export', icon: 'i-solar-file-send-bold-duotone', onClick: handleExportClick }, { name: 'Exit', icon: 'i-solar-exit-bold-duotone', @@ -83,16 +97,16 @@ ]; -{#snippet fileImportSnippet()} - Import - -{/snippet} + + + + + + + + + +
{#each elements as menu (menu.name)} @@ -109,3 +123,5 @@ {/each}
+ + diff --git a/src/lib/components/Menu/export-dialog.svelte b/src/lib/components/Menu/export-dialog.svelte new file mode 100644 index 0000000..e6232bf --- /dev/null +++ b/src/lib/components/Menu/export-dialog.svelte @@ -0,0 +1,79 @@ + + + + + + Export project + + {#if loading} + Building the project archive… + {:else if expired} + This archive link has expired. + {:else} + Your archive is ready to download. + {/if} + + + +
+ {#if loading} + +

Preparing your archive…

+ {:else if expired} + +

+ This link is no longer available. Please export the project again. +

+ {:else if downloadHref} + + + + +

+ + This link expires after 15 minutes. +

+ {/if} +
+ + + + +
+
diff --git a/src/lib/server/actions/project/archive/create.action.ts b/src/lib/server/actions/project/archive/create.action.ts new file mode 100644 index 0000000..f95121d --- /dev/null +++ b/src/lib/server/actions/project/archive/create.action.ts @@ -0,0 +1,10 @@ +import { useActionHandler } from '@utils-server/request-handler'; + +export interface CreateArchiveResult { + id: string; +} + +export const createArchiveAction = useActionHandler(async ({ archive }) => { + const id = await archive.create(); + return { id }; +}); diff --git a/src/lib/server/file-system/archive.ts b/src/lib/server/file-system/archive.ts new file mode 100644 index 0000000..a84bf0a --- /dev/null +++ b/src/lib/server/file-system/archive.ts @@ -0,0 +1,88 @@ +import micromatch from 'micromatch'; +import { join } from 'path'; +import * as tar from 'tar'; + +import { Exception } from '@utils/exception'; + +import type { Context, Handler } from '@utils-server/request-handler'; + +import { resolveArchiveRootPath } from './file-system.functions'; +import { directoryContentToFileEntries } from './project-directory'; + +interface Archive { + path: string; + sessionId: string; +} + +const archives = new Map(); + +export class ArchiveSystem { + private readonly handler: Handler; + private readonly context: Context; + private readonly _rootPath: string; + private readonly _sessionId: string; + + constructor(handler: Handler, context: Context) { + this.handler = handler; + this.context = context; + this._sessionId = context.session.id; + this._rootPath = resolveArchiveRootPath(); + } + + async create(ignoreFile: string = '.gitignore'): Promise { + const dir = this.handler.fs.getDirectory(''); + + let files = directoryContentToFileEntries(dir.read(true)).map((n) => + n.startsWith('/') ? n.slice(1) : n, + ); + try { + const ignore = await Bun.file(join(dir.path, ignoreFile)).text(); + files = micromatch.not(files, ignore.split('\n').filter(Boolean), { + dot: true, + contains: true, + }); + } catch (e) { + console.warn(`Could not read ${ignoreFile} file`, e); + } + + const id = `${this._resolveId()}.tgz`; + + const path = join(this._rootPath, id); + + await tar.c( + { + gzip: true, + file: path, + cwd: dir.path, + }, + files, + ); + + archives.set(id, { sessionId: this._sessionId, path }); + setTimeout(this._delete.bind(this, id), 1000 * 60 * 15); + return id; + } + + async get(id: string): Promise { + const archive = archives.get(id); + if (!archive) throw new Exception('Not Found', 'Archive not found', 404); + if (archive.sessionId !== this._sessionId) + throw new Exception('Forbidden', 'Archive is not yours', 403); + + return Bun.file(archive.path); + } + private async _delete(id: string): Promise { + const archive = archives.get(id); + if (!archive) return; + try { + await Bun.file(archive.path).delete(); + archives.delete(id); + } catch (e) { + console.error('Could not delete archive', e); + } + } + + private _resolveId(): string { + return `${this.context.project.path.split('/').pop() ?? 'unknown'}-${new Date().toISOString()}`; + } +} diff --git a/src/lib/server/file-system/file-system.functions.ts b/src/lib/server/file-system/file-system.functions.ts index 1872317..78c71c5 100644 --- a/src/lib/server/file-system/file-system.functions.ts +++ b/src/lib/server/file-system/file-system.functions.ts @@ -7,3 +7,7 @@ export const resolveRootPath = (userPath: string) => { return resolve(rootPath, userPath); }; + +export const resolveArchiveRootPath = () => { + return resolve(env.ARCHIVE_ROOT ?? ''); +}; diff --git a/src/lib/server/file-system/index.ts b/src/lib/server/file-system/index.ts index 2b2f418..6ccae8d 100644 --- a/src/lib/server/file-system/index.ts +++ b/src/lib/server/file-system/index.ts @@ -1,3 +1,4 @@ +export { ArchiveSystem } from './archive'; export { FileSystem } from './file-system'; export { directoryContentToFileEntries, type ProjectDirectory } from './project-directory'; export type { ProjectFile } from './project-file'; diff --git a/src/lib/server/file-system/project-directory.ts b/src/lib/server/file-system/project-directory.ts index 3821cd9..d843818 100644 --- a/src/lib/server/file-system/project-directory.ts +++ b/src/lib/server/file-system/project-directory.ts @@ -25,7 +25,7 @@ export function directoryContentToFileEntries( } export class ProjectDirectory { - private path: string; + public path: string; private readonly projectPath: string; constructor(dirPath: string, projectPath: string) { diff --git a/src/lib/server/utils/request-handler/handler.ts b/src/lib/server/utils/request-handler/handler.ts index 6660f00..1808450 100644 --- a/src/lib/server/utils/request-handler/handler.ts +++ b/src/lib/server/utils/request-handler/handler.ts @@ -2,7 +2,7 @@ import type { RequestEvent } from '@sveltejs/kit'; import { type Api, getApi, getNoAuthApi } from '$lib/server/api'; import { Cli } from '$lib/server/cli'; -import { FileSystem } from '$lib/server/file-system'; +import { ArchiveSystem, FileSystem } from '$lib/server/file-system'; import { Git } from '$lib/server/git'; import { ProjectManager } from '$lib/server/project'; @@ -18,6 +18,7 @@ export class Handler { private _fsCache: FileSystem | undefined; private _gitCache: Git | undefined; private _projectCache: ProjectManager | undefined; + private _archiveCache: ArchiveSystem | undefined; constructor(context: Context, event: RequestEvent, body: Body) { this._context = context; @@ -36,6 +37,7 @@ export class Handler { this._cliCache = undefined; this._fsCache = undefined; this._gitCache = undefined; + this._archiveCache = undefined; } get event(): RequestEvent { @@ -71,4 +73,9 @@ export class Handler { if (!this._projectCache) this._projectCache = new ProjectManager(this, this._context); return this._projectCache; } + + get archive(): ArchiveSystem { + if (!this._archiveCache) this._archiveCache = new ArchiveSystem(this, this._context); + return this._archiveCache; + } } diff --git a/src/lib/server/utils/request-handler/request-handler.ts b/src/lib/server/utils/request-handler/request-handler.ts index 0915e8c..e4d1ed2 100644 --- a/src/lib/server/utils/request-handler/request-handler.ts +++ b/src/lib/server/utils/request-handler/request-handler.ts @@ -14,6 +14,7 @@ const handleError = (e: unknown): Response => { if (e instanceof Exception) { return Response.json({ error: e.error, message: e.message }, { status: e.status }); } + console.error(e); return Response.json({ error: 'Internal Server Error', message: e }, { status: 500 }); }; diff --git a/src/routes/actions/project/archive/+page.server.ts b/src/routes/actions/project/archive/+page.server.ts new file mode 100644 index 0000000..45b49e5 --- /dev/null +++ b/src/routes/actions/project/archive/+page.server.ts @@ -0,0 +1,5 @@ +import { createArchiveAction } from '$lib/server/actions/project/archive/create.action'; + +export const actions = { + create: createArchiveAction, +}; diff --git a/src/routes/fs/archive/[slug]/+server.ts b/src/routes/fs/archive/[slug]/+server.ts new file mode 100644 index 0000000..2462173 --- /dev/null +++ b/src/routes/fs/archive/[slug]/+server.ts @@ -0,0 +1,17 @@ +import { Exception } from '@utils/exception'; + +import { useRequestHandler } from '@utils-server/request-handler'; + +export const GET = useRequestHandler( + async ({ event, archive }) => { + const id = event.params.slug; + if (!id) throw new Exception('Bad Request', 'Missing id param', 400); + + const file = await archive.get(id); + + const stream = file.stream(); + + return new Response(stream); + }, + { projectOptional: true }, +);