diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b857e9f..1b02487 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 10 + version: 11 - name: Setup Node.js uses: actions/setup-node@v6 @@ -25,7 +25,7 @@ jobs: cache: pnpm - name: Install dependencies - run: pnpm install + run: pnpm install --frozen-lockfile - name: Lint run: pnpm lint diff --git a/packages/benchmakrs/.gitignore b/packages/benchmakrs/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/packages/benchmakrs/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/packages/benchmakrs/.vscode/extensions.json b/packages/benchmakrs/.vscode/extensions.json new file mode 100644 index 0000000..a7cea0b --- /dev/null +++ b/packages/benchmakrs/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/packages/benchmakrs/README.md b/packages/benchmakrs/README.md new file mode 100644 index 0000000..ae13771 --- /dev/null +++ b/packages/benchmakrs/README.md @@ -0,0 +1,43 @@ +# Varden Benchmarks + +Performance benchmarks comparing [varden](../varden) against [vee-validate](https://vee-validate.logaretm.com/) (v4 stable and v5 beta) for Vue 3 form handling. + +## What's measured + +- **Form creation** — cost of initializing a `useForm` instance (scoped per run, then stopped) +- **setValue** — cost of setting field values one character at a time, simulating user typing + +Both benchmarks run against two Valibot schemas: + +- `logInSchema` — small form (email + password) +- `signUpSchema` — moderate form (mixed types, nested objects, arrays) + +## Libraries under test + +| Library | Import | Notes | +|---|---|---| +| varden | `varden` | Workspace package | +| vee-validate@4 | `vee-validate4` | Latest v4 stable, wrapped with `@vee-validate/valibot` | +| vee-validate@5 | `vee-validate5` | v5 beta (native Valibot support) | + +## Usage + +```sh +# Run all benchmarks +pnpm bench +``` + +## Structure + +- `bench/schemas.ts` — Valibot schemas used across benchmarks +- `bench/creation.bench.ts` — form creation benchmarks +- `bench/operations.bench.ts` — setValue benchmarks +- `bench/setup.ts` — suppresses console warnings during bench runs +- `pages/` — interactive demo pages for visual comparison (`vee-validate/`, `varden/`) + +## Demo pages + +```sh +# Start dev server, then navigate to /pages/vee-validate or /pages/varden +pnpm dev +``` diff --git a/packages/benchmakrs/bench/creation.bench.ts b/packages/benchmakrs/bench/creation.bench.ts new file mode 100644 index 0000000..9544210 --- /dev/null +++ b/packages/benchmakrs/bench/creation.bench.ts @@ -0,0 +1,66 @@ +import { describe, bench } from 'vitest'; +import { effectScope, type EffectScope } from 'vue'; +import { useForm } from 'varden'; +import { useForm as useVV4Form } from 'vee-validate4'; +import { useForm as useVV5Form } from 'vee-validate5'; +import { toTypedSchema } from '@vee-validate/valibot'; + +import { + logInSchema, + signUpSchema, +} from './schemas'; + +const logInVv4Schema = toTypedSchema(logInSchema); +const signUpVv4Schema = toTypedSchema(signUpSchema); + +describe('form creation — logInSchema', () => { + bench('varden', () => { + const scope: EffectScope = effectScope(); + scope.run(() => { + useForm({ schema: logInSchema, onSubmit() {} }); + }); + scope.stop(); + }); + + bench('vee-validate@4', () => { + const scope: EffectScope = effectScope(); + scope.run(() => { + useVV4Form({ validationSchema: logInVv4Schema }); + }); + scope.stop(); + }); + + bench('vee-validate@5', () => { + const scope: EffectScope = effectScope(); + scope.run(() => { + useVV5Form({ validationSchema: logInSchema }); + }); + scope.stop(); + }); +}); + +describe('form creation — signUpSchema', () => { + bench('varden', () => { + const scope: EffectScope = effectScope(); + scope.run(() => { + useForm({ schema: signUpSchema, onSubmit() {} }); + }); + scope.stop(); + }); + + bench('vee-validate@4', () => { + const scope: EffectScope = effectScope(); + scope.run(() => { + useVV4Form({ validationSchema: signUpVv4Schema }); + }); + scope.stop(); + }); + + bench('vee-validate@5', () => { + const scope: EffectScope = effectScope(); + scope.run(() => { + useVV5Form({ validationSchema: signUpSchema }); + }); + scope.stop(); + }); +}); diff --git a/packages/benchmakrs/bench/operations.bench.ts b/packages/benchmakrs/bench/operations.bench.ts new file mode 100644 index 0000000..e03982f --- /dev/null +++ b/packages/benchmakrs/bench/operations.bench.ts @@ -0,0 +1,74 @@ +import { describe, bench, afterAll } from 'vitest'; +import { effectScope, type EffectScope } from 'vue'; +import { useForm } from 'varden'; +import { useForm as useVV4Form } from 'vee-validate4'; +import { useForm as useVV5Form } from 'vee-validate5'; +import { toTypedSchema } from '@vee-validate/valibot'; + +import { + logInSchema, +} from './schemas'; + +const logInVvSchema = toTypedSchema(logInSchema); + +describe('setValue — logInSchema', () => { + const username = 'johndoe@example.com'; + const userNameInput: Array = []; + for (let i = 1; i < username.length; i += 1) { + userNameInput.push(username[i].substring(0, i)); + } + + const password = 'password123'; + const passwordInput: Array = []; + for (let i = 1; i < password.length; i += 1) { + passwordInput.push(password[i].substring(0, i)); + } + + const { warn } = console; + // eslint-disable-next-line no-console + console.warn = () => {}; + + const vardenScope: EffectScope = effectScope(); + const vardenForm = vardenScope.run(() => useForm({ schema: logInSchema, onSubmit() {} }))!; + + const vv4Scope: EffectScope = effectScope(); + const vv4Ctx = vv4Scope.run(() => useVV4Form({ validationSchema: logInVvSchema }))!; + + const vv5Scope: EffectScope = effectScope(); + const vv5Ctx = vv5Scope.run(() => useVV5Form({ validationSchema: logInSchema }))!; + + afterAll(() => { + vardenScope.stop(); + vv4Scope.stop(); + vv5Scope.stop(); + // eslint-disable-next-line no-console + console.warn = warn; + }); + + bench('varden', () => { + for (const v of userNameInput) { + vardenForm.setValue(['username'], v); + } + for (const v of passwordInput) { + vardenForm.setValue(['password'], v); + } + }); + + bench('vee-validate@4', () => { + for (const v of userNameInput) { + vv4Ctx.setFieldValue('username', v); + } + for (const v of passwordInput) { + vv4Ctx.setFieldValue('password', v); + } + }); + + bench('vee-validate@5', () => { + for (const v of userNameInput) { + vv5Ctx.setFieldValue('username', v); + } + for (const v of passwordInput) { + vv5Ctx.setFieldValue('password', v); + } + }); +}); diff --git a/packages/benchmakrs/bench/schemas.ts b/packages/benchmakrs/bench/schemas.ts new file mode 100644 index 0000000..1e4469a --- /dev/null +++ b/packages/benchmakrs/bench/schemas.ts @@ -0,0 +1,27 @@ +import * as v from 'valibot'; + +// small form, only strings +export const logInSchema = v.object({ + username: v.pipe(v.string(), v.email()), + password: v.pipe(v.string(), v.minLength(8)), +}); + +// moderate form, different types +export const signUpSchema = v.object({ + firstName: v.string(), + lastName: v.string(), + age: v.number(), + agreeToTerms: v.boolean(), + email: v.pipe(v.string(), v.email()), + password: v.pipe(v.string(), v.minLength(8)), + questions: v.array(v.object({ + question: v.string(), + answer: v.string(), + })), + address: v.object({ + street: v.string(), + city: v.string(), + state: v.string(), + zip: v.string(), + }), +}); diff --git a/packages/benchmakrs/bench/setup.ts b/packages/benchmakrs/bench/setup.ts new file mode 100644 index 0000000..2bc68d1 --- /dev/null +++ b/packages/benchmakrs/bench/setup.ts @@ -0,0 +1,11 @@ +import { beforeAll, afterAll } from 'vitest'; + +const { warn } = console; +beforeAll(() => { + // eslint-disable-next-line no-console + console.warn = () => {}; +}); +afterAll(() => { + // eslint-disable-next-line no-console + console.warn = warn; +}); diff --git a/packages/benchmakrs/eslint.config.js b/packages/benchmakrs/eslint.config.js new file mode 100644 index 0000000..e83fe69 --- /dev/null +++ b/packages/benchmakrs/eslint.config.js @@ -0,0 +1,54 @@ +import airbnb from 'eslint-stylistic-airbnb'; +import pluginVue from 'eslint-plugin-vue'; +import tseslint from 'typescript-eslint'; +import globals from 'globals'; +import pluginImport from 'eslint-plugin-import-x'; + +export default [ + { + ignores: [ + 'bundle-report', + 'coverage', + 'dist', + ], + }, + + ...tseslint.configs.recommended, + ...pluginVue.configs['flat/recommended'], + + airbnb.configs['flat/recommended'], + airbnb.configs['flat/addon-iterators'], + airbnb.configs['flat/addon-typescript'], + airbnb.configs['flat/addon-vue'], + airbnb.configs['flat/addon-vue-ts'], + { + plugins: { + 'import-x': pluginImport, + }, + rules: { + 'import-x/order': airbnb.configs['flat/addon-import'].rules['import-x/order'], + }, + }, + { + rules: { + 'no-underscore-dangle': ['error', { allow: ['__meta'] }], + }, + }, + + { + languageOptions: { + globals: { + ...globals.browser, + }, + }, + }, + + { + files: ['vitest.config.ts'], + languageOptions: { + globals: { + ...globals.node, + }, + }, + }, +]; diff --git a/packages/benchmakrs/index.html b/packages/benchmakrs/index.html new file mode 100644 index 0000000..126e93e --- /dev/null +++ b/packages/benchmakrs/index.html @@ -0,0 +1,13 @@ + + + + + + + benchmakrs + + + varden + vee-validate + + diff --git a/packages/benchmakrs/package.json b/packages/benchmakrs/package.json new file mode 100644 index 0000000..8ab16eb --- /dev/null +++ b/packages/benchmakrs/package.json @@ -0,0 +1,30 @@ +{ + "name": "benchmakrs", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "bench": "vitest bench", + "build": "vue-tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@vee-validate/valibot": "^4.15.0", + "valibot": "^1.3.1", + "varden": "workspace:*", + "vee-validate4": "npm:vee-validate@^4.15.1", + "vee-validate5": "npm:vee-validate@beta", + "vitest": "catalog:", + "vue": "catalog:" + }, + "devDependencies": { + "@types/node": "catalog:", + "@vitejs/plugin-vue": "catalog:", + "@vue/tsconfig": "catalog:", + "typescript": "catalog:", + "vite": "catalog:", + "vue-tsc": "catalog:" + } +} diff --git a/packages/benchmakrs/pages/varden/App.vue b/packages/benchmakrs/pages/varden/App.vue new file mode 100644 index 0000000..9e6768a --- /dev/null +++ b/packages/benchmakrs/pages/varden/App.vue @@ -0,0 +1,51 @@ + + + diff --git a/packages/benchmakrs/pages/varden/index.html b/packages/benchmakrs/pages/varden/index.html new file mode 100644 index 0000000..3140508 --- /dev/null +++ b/packages/benchmakrs/pages/varden/index.html @@ -0,0 +1,13 @@ + + + + + + + benchmakrs | varden + + +
+ + + diff --git a/packages/benchmakrs/pages/varden/main.ts b/packages/benchmakrs/pages/varden/main.ts new file mode 100644 index 0000000..419fa69 --- /dev/null +++ b/packages/benchmakrs/pages/varden/main.ts @@ -0,0 +1,5 @@ +import { createApp } from 'vue'; + +import App from './App.vue'; + +createApp(App).mount('#app'); diff --git a/packages/benchmakrs/pages/vee-validate/App.vue b/packages/benchmakrs/pages/vee-validate/App.vue new file mode 100644 index 0000000..5fa1f7d --- /dev/null +++ b/packages/benchmakrs/pages/vee-validate/App.vue @@ -0,0 +1,50 @@ + + + diff --git a/packages/benchmakrs/pages/vee-validate/index.html b/packages/benchmakrs/pages/vee-validate/index.html new file mode 100644 index 0000000..2a43612 --- /dev/null +++ b/packages/benchmakrs/pages/vee-validate/index.html @@ -0,0 +1,13 @@ + + + + + + + benchmakrs | vee-validate + + +
+ + + \ No newline at end of file diff --git a/packages/benchmakrs/pages/vee-validate/main.ts b/packages/benchmakrs/pages/vee-validate/main.ts new file mode 100644 index 0000000..419fa69 --- /dev/null +++ b/packages/benchmakrs/pages/vee-validate/main.ts @@ -0,0 +1,5 @@ +import { createApp } from 'vue'; + +import App from './App.vue'; + +createApp(App).mount('#app'); diff --git a/packages/benchmakrs/public/favicon.svg b/packages/benchmakrs/public/favicon.svg new file mode 100644 index 0000000..6893eb1 --- /dev/null +++ b/packages/benchmakrs/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/benchmakrs/public/icons.svg b/packages/benchmakrs/public/icons.svg new file mode 100644 index 0000000..e952219 --- /dev/null +++ b/packages/benchmakrs/public/icons.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/benchmakrs/tsconfig.app.json b/packages/benchmakrs/tsconfig.app.json new file mode 100644 index 0000000..5c750c5 --- /dev/null +++ b/packages/benchmakrs/tsconfig.app.json @@ -0,0 +1,14 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "types": ["vite/client"], + + /* Linting */ + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] +} diff --git a/packages/benchmakrs/tsconfig.json b/packages/benchmakrs/tsconfig.json new file mode 100644 index 0000000..1ffef60 --- /dev/null +++ b/packages/benchmakrs/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/packages/benchmakrs/tsconfig.node.json b/packages/benchmakrs/tsconfig.node.json new file mode 100644 index 0000000..d3c52ea --- /dev/null +++ b/packages/benchmakrs/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "es2023", + "lib": ["ES2023"], + "module": "esnext", + "types": ["node"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/benchmakrs/vite.config.ts b/packages/benchmakrs/vite.config.ts new file mode 100644 index 0000000..37d3d6f --- /dev/null +++ b/packages/benchmakrs/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [vue()], +}); diff --git a/packages/benchmakrs/vitest.config.ts b/packages/benchmakrs/vitest.config.ts new file mode 100644 index 0000000..bb721b5 --- /dev/null +++ b/packages/benchmakrs/vitest.config.ts @@ -0,0 +1,3 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ test: { setupFiles: ['bench/setup.ts'] } }); diff --git a/packages/sandbox/package.json b/packages/sandbox/package.json index 9c9e881..27926a5 100644 --- a/packages/sandbox/package.json +++ b/packages/sandbox/package.json @@ -16,7 +16,7 @@ "devDependencies": { "@vitejs/plugin-vue": "^6.0.1", "@vue/tsconfig": "^0.7.0", - "typescript": "~5.8.3", + "typescript": "catalog:", "vite": "^7.1.2", "vue-tsc": "^3.0.5" } diff --git a/packages/varden/package.json b/packages/varden/package.json index ecede27..97a643a 100644 --- a/packages/varden/package.json +++ b/packages/varden/package.json @@ -58,7 +58,7 @@ "eslint-plugin-package-json": "^1.1.0", "playwright": "^1.60.0", "tsdown": "^0.21.6", - "typescript": "~6.0.2", + "typescript": "catalog:", "unplugin-vue": "^7.1.1", "valibot": "^1.3.1", "vite-bundle-explorer": "^0.3.4", diff --git a/packages/varden/tsdown.config.ts b/packages/varden/tsdown.config.ts index ffc9de3..c8d3595 100644 --- a/packages/varden/tsdown.config.ts +++ b/packages/varden/tsdown.config.ts @@ -3,6 +3,8 @@ import Vue from 'unplugin-vue/rolldown'; import { statsPlugin } from 'vite-bundle-explorer/plugin'; export default defineConfig({ + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore CI workaround plugins: [Vue({ isProduction: true }), statsPlugin()], entry: { index: './src/index.ts', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 04d569a..483218a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,9 +6,30 @@ settings: catalogs: default: + '@types/node': + specifier: ^24.12.3 + version: 24.12.4 + '@vitejs/plugin-vue': + specifier: ^6.0.6 + version: 6.0.7 + '@vue/tsconfig': + specifier: ^0.9.1 + version: 0.9.1 + typescript: + specifier: 6.0.2 + version: 6.0.2 + vite: + specifier: ^8.0.12 + version: 8.0.14 + vitest: + specifier: ^3.2.4 + version: 3.2.4 vue: specifier: ^3.5.31 version: 3.5.31 + vue-tsc: + specifier: ^3.3.2 + version: 3.3.2 importers: @@ -22,56 +43,99 @@ importers: version: 10.4.0(jiti@2.6.1) eslint-plugin-import-x: specifier: ^4.16.2 - version: 4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1)) + version: 4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1)) eslint-plugin-vue: specifier: ^10.9.1 - version: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.4.0(jiti@2.6.1))) + version: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.4.0(jiti@2.6.1))) eslint-stylistic-airbnb: specifier: ^3.2.0 - version: 3.2.0(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1)))(eslint-plugin-vue@10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.4.0(jiti@2.6.1))))(eslint@10.4.0(jiti@2.6.1)) + version: 3.2.0(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1)))(eslint-plugin-vue@10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.4.0(jiti@2.6.1))))(eslint@10.4.0(jiti@2.6.1)) globals: specifier: ^16.0.0 version: 16.5.0 typescript-eslint: specifier: ^8.59.4 - version: 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2) + version: 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) vue-tsc: specifier: ^3.2.9 - version: 3.2.9(typescript@6.0.2) + version: 3.2.9(typescript@6.0.3) docs: dependencies: vitepress: specifier: ^1.6.3 - version: 1.6.4(@algolia/client-search@5.28.0)(@types/node@24.12.0)(change-case@5.4.4)(lightningcss@1.32.0)(postcss@8.5.8)(search-insights@2.17.3)(typescript@6.0.2) + version: 1.6.4(@algolia/client-search@5.28.0)(@types/node@24.12.4)(change-case@5.4.4)(lightningcss@1.32.0)(postcss@8.5.15)(search-insights@2.17.3)(typescript@6.0.3) + + packages/benchmakrs: + dependencies: + '@vee-validate/valibot': + specifier: ^4.15.0 + version: 4.15.1(valibot@1.3.1(typescript@6.0.2))(vue@3.5.31(typescript@6.0.2)) + valibot: + specifier: ^1.3.1 + version: 1.3.1(typescript@6.0.2) + varden: + specifier: workspace:* + version: link:../varden + vee-validate4: + specifier: npm:vee-validate@^4.15.1 + version: vee-validate@4.15.1(vue@3.5.31(typescript@6.0.2)) + vee-validate5: + specifier: npm:vee-validate@beta + version: vee-validate@5.0.0-beta.0(vue@3.5.31(typescript@6.0.2)) + vitest: + specifier: 'catalog:' + version: 3.2.4(@types/node@24.12.4)(@vitest/browser@3.2.4)(jiti@2.6.1)(lightningcss@1.32.0) + vue: + specifier: 'catalog:' + version: 3.5.31(typescript@6.0.2) + devDependencies: + '@types/node': + specifier: 'catalog:' + version: 24.12.4 + '@vitejs/plugin-vue': + specifier: 'catalog:' + version: 6.0.7(vite@8.0.14(@types/node@24.12.4)(esbuild@0.27.4)(jiti@2.6.1))(vue@3.5.31(typescript@6.0.2)) + '@vue/tsconfig': + specifier: 'catalog:' + version: 0.9.1(typescript@6.0.2)(vue@3.5.31(typescript@6.0.2)) + typescript: + specifier: 'catalog:' + version: 6.0.2 + vite: + specifier: 'catalog:' + version: 8.0.14(@types/node@24.12.4)(esbuild@0.27.4)(jiti@2.6.1) + vue-tsc: + specifier: 'catalog:' + version: 3.3.2(typescript@6.0.2) packages/sandbox: dependencies: valibot: specifier: ^1.1.0 - version: 1.1.0(typescript@5.8.3) + version: 1.1.0(typescript@6.0.2) varden: specifier: workspace:* version: link:../varden vue: specifier: 'catalog:' - version: 3.5.31(typescript@5.8.3) + version: 3.5.31(typescript@6.0.2) devDependencies: '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.1(vite@7.1.5(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.32.0))(vue@3.5.31(typescript@5.8.3)) + version: 6.0.1(vite@7.1.5(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0))(vue@3.5.31(typescript@6.0.2)) '@vue/tsconfig': specifier: ^0.7.0 - version: 0.7.0(typescript@5.8.3)(vue@3.5.31(typescript@5.8.3)) + version: 0.7.0(typescript@6.0.2)(vue@3.5.31(typescript@6.0.2)) typescript: - specifier: ~5.8.3 - version: 5.8.3 + specifier: 'catalog:' + version: 6.0.2 vite: specifier: ^7.1.2 - version: 7.1.5(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.32.0) + version: 7.1.5(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0) vue-tsc: specifier: ^3.0.5 - version: 3.0.7(typescript@5.8.3) + version: 3.0.7(typescript@6.0.2) packages/varden: devDependencies: @@ -80,16 +144,16 @@ importers: version: 24.12.0 '@vitejs/plugin-vue': specifier: ^6.0.7 - version: 6.0.7(vite@8.0.3(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vue@3.5.31(typescript@6.0.2)) + version: 6.0.7(vite@8.0.14(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vue@3.5.31(typescript@6.0.2)) '@vitest/browser': specifier: 3.2.4 - version: 3.2.4(playwright@1.60.0)(vite@8.0.3(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vitest@3.2.4) + version: 3.2.4(playwright@1.60.0)(vite@8.0.14(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vitest@3.2.4) '@vitest/coverage-v8': specifier: ^3.2.4 version: 3.2.4(@vitest/browser@3.2.4)(vitest@3.2.4) '@vue/test-utils': specifier: ^2.4.10 - version: 2.4.10(@vue/compiler-dom@3.5.34)(@vue/server-renderer@3.5.31(vue@3.5.31(typescript@6.0.2)))(vue@3.5.31(typescript@6.0.2)) + version: 2.4.10(@vue/compiler-dom@3.5.35)(@vue/server-renderer@3.5.31(vue@3.5.31(typescript@6.0.2)))(vue@3.5.31(typescript@6.0.2)) '@vue/tsconfig': specifier: ^0.8.1 version: 0.8.1(typescript@6.0.2)(vue@3.5.31(typescript@6.0.2)) @@ -109,7 +173,7 @@ importers: specifier: ^0.21.6 version: 0.21.6(typescript@6.0.2)(vue-tsc@3.2.9(typescript@6.0.2)) typescript: - specifier: ~6.0.2 + specifier: 'catalog:' version: 6.0.2 unplugin-vue: specifier: ^7.1.1 @@ -220,6 +284,10 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@8.0.0-rc.3': resolution: {integrity: sha512-AmwWFx1m8G/a5cXkxLxTiWl+YEoWuoFLUCwqMlNuWO1tqAYITQAbCRPUkyBHv1VOFgfjVOqEj6L3u15J5ZCzTA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -228,6 +296,10 @@ packages: resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@8.0.0-rc.3': resolution: {integrity: sha512-8AWCJ2VJJyDFlGBep5GpaaQ9AAaE/FjAcrqI7jyssYhtL7WGV0DOKpJsQqM037xDbpRLHXsY8TwU7zDma7coOw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -242,6 +314,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/parser@8.0.0-rc.3': resolution: {integrity: sha512-B20dvP3MfNc/XS5KKCHy/oyWl5IA6Cn9YjXRdDlCjNmUFrjvLXMNUfQq/QUy9fnG2gYkKKcrto2YaF9B32ToOQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -255,6 +332,10 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + engines: {node: '>=6.9.0'} + '@babel/types@8.0.0-rc.3': resolution: {integrity: sha512-mOm5ZrYmphGfqVWoH5YYMTITb3cDXsFgmvFlvkvWDMsR9X8RFnt7a0Wb6yNIdoFsiMO9WjYLq+U/FMtqIYAF8Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -286,15 +367,24 @@ packages: search-insights: optional: true + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + '@emnapi/core@1.9.1': resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + '@emnapi/runtime@1.9.1': resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} '@emnapi/wasi-threads@1.2.0': resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} @@ -827,12 +917,21 @@ packages: '@napi-rs/wasm-runtime@1.1.1': resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + '@one-ini/wasm@0.1.1': resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} '@oxc-project/types@0.122.0': resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==} + '@oxc-project/types@0.132.0': + resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==} + '@package-json/types@0.0.12': resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} @@ -852,30 +951,60 @@ packages: cpu: [arm64] os: [android] + '@rolldown/binding-android-arm64@1.0.2': + resolution: {integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@rolldown/binding-darwin-arm64@1.0.0-rc.12': resolution: {integrity: sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-arm64@1.0.2': + resolution: {integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.12': resolution: {integrity: sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] + '@rolldown/binding-darwin-x64@1.0.2': + resolution: {integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@rolldown/binding-freebsd-x64@1.0.0-rc.12': resolution: {integrity: sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] + '@rolldown/binding-freebsd-x64@1.0.2': + resolution: {integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': resolution: {integrity: sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.0.2': + resolution: {integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -883,6 +1012,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-arm64-gnu@1.0.2': + resolution: {integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': resolution: {integrity: sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -890,6 +1026,13 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-arm64-musl@1.0.2': + resolution: {integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -897,6 +1040,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-ppc64-gnu@1.0.2': + resolution: {integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': resolution: {integrity: sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==} engines: {node: ^20.19.0 || >=22.12.0} @@ -904,6 +1054,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.0.2': + resolution: {integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -911,6 +1068,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.0.2': + resolution: {integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': resolution: {integrity: sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==} engines: {node: ^20.19.0 || >=22.12.0} @@ -918,29 +1082,59 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-x64-musl@1.0.2': + resolution: {integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': resolution: {integrity: sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.0.2': + resolution: {integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.12': resolution: {integrity: sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==} engines: {node: '>=14.0.0'} cpu: [wasm32] + '@rolldown/binding-wasm32-wasi@1.0.2': + resolution: {integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': resolution: {integrity: sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.0.2': + resolution: {integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': resolution: {integrity: sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.2': + resolution: {integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/pluginutils@1.0.0-beta.29': resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} @@ -1228,6 +1422,12 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} + '@stylistic/eslint-plugin@5.10.0': resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1286,6 +1486,9 @@ packages: '@types/node@24.12.0': resolution: {integrity: sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==} + '@types/node@24.12.4': + resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} + '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} @@ -1462,6 +1665,11 @@ packages: cpu: [x64] os: [win32] + '@vee-validate/valibot@4.15.1': + resolution: {integrity: sha512-4yXs8jg2UCv6ekGpH/+vsO4a9jPZXbBR6+Tge9HnmKBZReBgqhsRjkH8OuuIIWxT+Mo/bC5120FdWaWLGAVDOw==} + peerDependencies: + valibot: ^1.0.0-beta.7 + '@vitejs/plugin-vue@5.2.4': resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -1560,12 +1768,18 @@ packages: '@vue/compiler-core@3.5.34': resolution: {integrity: sha512-s9cLyK5mLcvZ4Agva5QgRsQyLKvts9WbU9DB6NqiZkkGEdwmcEiylj5Jbwkp680drF/NNCV8OlAJSe+yMLxaJw==} + '@vue/compiler-core@3.5.35': + resolution: {integrity: sha512-BUmHaR1J+O+CKZ9uJucdVTEr1LHsdyvv7vG3eNRhK3CczEHeMd/LtsHAuD7PbrxvI2envCY2v7HI1vC1aBRzKw==} + '@vue/compiler-dom@3.5.31': resolution: {integrity: sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==} '@vue/compiler-dom@3.5.34': resolution: {integrity: sha512-EbF/T++k0e2MMZlJsBhzK8Sgwt0HcIPOhzn1CTB/lv6sQcyk+OWf8YeiLxZp3ro7MbbLcAfAJ6sEvjFWuNgUCw==} + '@vue/compiler-dom@3.5.35': + resolution: {integrity: sha512-k+bprkXxuqhVajgTx5mUHuir7TwQzUKOWR40ng1ncAqQRPnrLngGGgqVEEhOnTMlc8btHYVKmrP8s5Qyg0hvYA==} + '@vue/compiler-sfc@3.5.31': resolution: {integrity: sha512-M8wpPgR9UJ8MiRGjppvx9uWJfLV7A/T+/rL8s/y3QG3u0c2/YZgff3d6SuimKRIhcYnWg5fTfDMlz2E6seUW8Q==} @@ -1595,6 +1809,9 @@ packages: '@vue/language-core@3.2.9': resolution: {integrity: sha512-ie0ojt/0fU/GfIogh+zgHbaYRPlt9S+cLOxcWwF7nTSFh897BVgnFKL2byT4kpp1mlqYWZ2psGwSniyE2xsxYw==} + '@vue/language-core@3.3.2': + resolution: {integrity: sha512-CLwjSfHlPLhjd2qhuS3tTFtnOIWHXAM5u4X1DxmzlQ8j5bmOYlKCsSusOP7jCRJnlVg0mCTQtHU3vwFvopZGoQ==} + '@vue/reactivity@3.5.31': resolution: {integrity: sha512-DtKXxk9E/KuVvt8VxWu+6Luc9I9ETNcqR1T1oW1gf02nXaZ1kuAx58oVu7uX9XxJR0iJCro6fqBLw9oSBELo5g==} @@ -1618,6 +1835,9 @@ packages: '@vue/shared@3.5.34': resolution: {integrity: sha512-24uqU4OIiX29ryC3MeWid/Xf2fa2EFRUVLb77nRhk+UrTVrh/XiGtFAFmJBAtBRbjwNdsPRP+jj/OL27Eg1NDA==} + '@vue/shared@3.5.35': + resolution: {integrity: sha512-zSbjL7gRXwks2ZQLRGCajBtBXEOXW9Ddhn/HvSdrGkE2dqGnumzW8XtusRrxrE9LvqtiqDXQ+A60Hp6mvdYxfA==} + '@vue/test-utils@2.4.10': resolution: {integrity: sha512-SmoZ5EA1kYiAFs9NkYdiFFQF+cSnUwnvlYEbY+DogWQZUiqOm/Y29eSbc5T6yi75SgSF9863SBeXniIEoPajCA==} peerDependencies: @@ -1650,6 +1870,17 @@ packages: vue: optional: true + '@vue/tsconfig@0.9.1': + resolution: {integrity: sha512-buvjm+9NzLCJL29KY1j1991YYJ5e6275OiK+G4jtmfIb+z4POywbdm0wXusT9adVWqe0xqg70TbI7+mRx4uU9w==} + peerDependencies: + typescript: '>= 5.8' + vue: ^3.4.0 + peerDependenciesMeta: + typescript: + optional: true + vue: + optional: true + '@vueuse/core@12.8.2': resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} @@ -2535,6 +2766,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + napi-postinstall@0.3.4: resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -2654,6 +2890,10 @@ packages: resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -2739,6 +2979,11 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + rolldown@1.0.2: + resolution: {integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rollup@4.50.1: resolution: {integrity: sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -2956,6 +3201,10 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + typescript-eslint@8.59.4: resolution: {integrity: sha512-Rw6+44QNFaXtgHSjPy+Kw8hrJniMYzR85E9yLmOLcfZ91/rz+JXQbDTCmc6ccxMPY6K6PgAq26f0JCBfR7LIPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2963,13 +3212,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + typescript@6.0.2: + resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} engines: {node: '>=14.17'} hasBin: true - typescript@6.0.2: - resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} hasBin: true @@ -3049,6 +3298,16 @@ packages: resolution: {integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==} engines: {node: ^20.17.0 || >=22.9.0} + vee-validate@4.15.1: + resolution: {integrity: sha512-DkFsiTwEKau8VIxyZBGdO6tOudD+QoUBPuHj3e6QFqmbfCRj1ArmYWue9lEp6jLSWBIw4XPlDLjFIZNLdRAMSg==} + peerDependencies: + vue: ^3.4.26 + + vee-validate@5.0.0-beta.0: + resolution: {integrity: sha512-uGIRnODDMM0A8Weu8AJcZFFJceUpgbSX6G4UYZgWhBc90VcXDK+v7yO16G+sj+6vU1eML11M2BH4HxwoPE62rw==} + peerDependencies: + vue: ^3.4.26 + vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} @@ -3175,6 +3434,49 @@ packages: yaml: optional: true + vite@8.0.14: + resolution: {integrity: sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.1.18 + esbuild: ^0.27.0 || ^0.28.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vite@8.0.3: resolution: {integrity: sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3282,6 +3584,12 @@ packages: peerDependencies: typescript: '>=5.0.0' + vue-tsc@3.3.2: + resolution: {integrity: sha512-n7nQoA3YWW/eiDR8jMiv/uJvlg0uLGs+YgUrsTrf9EZaYSt3tuvMZb5V8+7Mvh/EH5pnY/hoVdgfjH+XcK+wwA==} + hasBin: true + peerDependencies: + typescript: '>=5.0.0' + vue@3.5.31: resolution: {integrity: sha512-iV/sU9SzOlmA/0tygSmjkEN6Jbs3nPoIPFhCMLD2STrjgOU8DX7ZtzMhg4ahVwf5Rp9KoFzcXeB1ZrVbLBp5/Q==} peerDependencies: @@ -3473,10 +3781,14 @@ snapshots: '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.29.7': {} + '@babel/helper-string-parser@8.0.0-rc.3': {} '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@7.29.7': {} + '@babel/helper-validator-identifier@8.0.0-rc.3': {} '@babel/parser@7.29.2': @@ -3487,6 +3799,10 @@ snapshots: dependencies: '@babel/types': 7.29.0 + '@babel/parser@7.29.7': + dependencies: + '@babel/types': 7.29.7 + '@babel/parser@8.0.0-rc.3': dependencies: '@babel/types': 8.0.0-rc.3 @@ -3498,6 +3814,11 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/types@8.0.0-rc.3': dependencies: '@babel/helper-string-parser': 8.0.0-rc.3 @@ -3529,12 +3850,23 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + '@emnapi/core@1.9.1': dependencies: '@emnapi/wasi-threads': 1.2.0 tslib: 2.8.1 optional: true + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.9.1': dependencies: tslib: 2.8.1 @@ -3545,6 +3877,11 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + '@esbuild/aix-ppc64@0.21.5': optional: true @@ -3861,10 +4198,19 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true + '@napi-rs/wasm-runtime@1.1.4(@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.1 + optional: true + '@one-ini/wasm@0.1.1': {} '@oxc-project/types@0.122.0': {} + '@oxc-project/types@0.132.0': {} + '@package-json/types@0.0.12': {} '@pkgjs/parseargs@0.11.0': @@ -3879,50 +4225,99 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0-rc.12': optional: true + '@rolldown/binding-android-arm64@1.0.2': + optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.12': optional: true + '@rolldown/binding-darwin-arm64@1.0.2': + optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.12': optional: true + '@rolldown/binding-darwin-x64@1.0.2': + optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.12': optional: true + '@rolldown/binding-freebsd-x64@1.0.2': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.2': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.2': + optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-arm64-musl@1.0.2': + optional: true + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-ppc64-gnu@1.0.2': + optional: true + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-s390x-gnu@1.0.2': + optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-x64-gnu@1.0.2': + optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': optional: true + '@rolldown/binding-linux-x64-musl@1.0.2': + optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': optional: true + '@rolldown/binding-openharmony-arm64@1.0.2': + optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.12': dependencies: '@napi-rs/wasm-runtime': 1.1.1 optional: true + '@rolldown/binding-wasm32-wasi@1.0.2': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.2': + optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': optional: true + '@rolldown/binding-win32-x64-msvc@1.0.2': + optional: true + '@rolldown/pluginutils@1.0.0-beta.29': {} '@rolldown/pluginutils@1.0.0-rc.12': {} @@ -4107,6 +4502,10 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} + '@standard-schema/spec@1.1.0': {} + + '@standard-schema/utils@0.3.0': {} + '@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1))': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1)) @@ -4175,44 +4574,48 @@ snapshots: dependencies: undici-types: 7.16.0 + '@types/node@24.12.4': + dependencies: + undici-types: 7.16.0 + '@types/unist@3.0.3': {} '@types/web-bluetooth@0.0.21': {} - '@typescript-eslint/eslint-plugin@8.59.4(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/eslint-plugin@8.59.4(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/parser': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) '@typescript-eslint/scope-manager': 8.59.4 - '@typescript-eslint/type-utils': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/utils': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/type-utils': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.59.4 eslint: 10.4.0(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.59.4 '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.59.4 debug: 4.4.3 eslint: 10.4.0(jiti@2.6.1) - typescript: 6.0.2 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.59.4(typescript@6.0.2)': + '@typescript-eslint/project-service@8.59.4(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@6.0.2) + '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@6.0.3) '@typescript-eslint/types': 8.59.4 debug: 4.4.3 - typescript: 6.0.2 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -4221,19 +4624,19 @@ snapshots: '@typescript-eslint/types': 8.59.4 '@typescript-eslint/visitor-keys': 8.59.4 - '@typescript-eslint/tsconfig-utils@8.59.4(typescript@6.0.2)': + '@typescript-eslint/tsconfig-utils@8.59.4(typescript@6.0.3)': dependencies: - typescript: 6.0.2 + typescript: 6.0.3 - '@typescript-eslint/type-utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/type-utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.2) - '@typescript-eslint/utils': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) debug: 4.4.3 eslint: 10.4.0(jiti@2.6.1) - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -4241,29 +4644,29 @@ snapshots: '@typescript-eslint/types@8.59.4': {} - '@typescript-eslint/typescript-estree@8.59.4(typescript@6.0.2)': + '@typescript-eslint/typescript-estree@8.59.4(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.59.4(typescript@6.0.2) - '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@6.0.2) + '@typescript-eslint/project-service': 8.59.4(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@6.0.3) '@typescript-eslint/types': 8.59.4 '@typescript-eslint/visitor-keys': 8.59.4 debug: 4.4.3 minimatch: 10.2.5 semver: 7.8.1 tinyglobby: 0.2.16 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.59.4 '@typescript-eslint/types': 8.59.4 - '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) eslint: 10.4.0(jiti@2.6.1) - typescript: 6.0.2 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -4333,28 +4736,42 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@vitejs/plugin-vue@5.2.4(vite@5.4.20(@types/node@24.12.0)(lightningcss@1.32.0))(vue@3.5.31(typescript@6.0.2))': + '@vee-validate/valibot@4.15.1(valibot@1.3.1(typescript@6.0.2))(vue@3.5.31(typescript@6.0.2))': dependencies: - vite: 5.4.20(@types/node@24.12.0)(lightningcss@1.32.0) - vue: 3.5.31(typescript@6.0.2) + type-fest: 4.41.0 + valibot: 1.3.1(typescript@6.0.2) + vee-validate: 4.15.1(vue@3.5.31(typescript@6.0.2)) + transitivePeerDependencies: + - vue + + '@vitejs/plugin-vue@5.2.4(vite@5.4.20(@types/node@24.12.4)(lightningcss@1.32.0))(vue@3.5.31(typescript@6.0.3))': + dependencies: + vite: 5.4.20(@types/node@24.12.4)(lightningcss@1.32.0) + vue: 3.5.31(typescript@6.0.3) - '@vitejs/plugin-vue@6.0.1(vite@7.1.5(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.32.0))(vue@3.5.31(typescript@5.8.3))': + '@vitejs/plugin-vue@6.0.1(vite@7.1.5(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0))(vue@3.5.31(typescript@6.0.2))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.29 - vite: 7.1.5(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.32.0) - vue: 3.5.31(typescript@5.8.3) + vite: 7.1.5(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0) + vue: 3.5.31(typescript@6.0.2) - '@vitejs/plugin-vue@6.0.7(vite@8.0.3(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vue@3.5.31(typescript@6.0.2))': + '@vitejs/plugin-vue@6.0.7(vite@8.0.14(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vue@3.5.31(typescript@6.0.2))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.0.3(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1) + vite: 8.0.14(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1) vue: 3.5.31(typescript@6.0.2) - '@vitest/browser@3.2.4(playwright@1.60.0)(vite@8.0.3(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vitest@3.2.4)': + '@vitejs/plugin-vue@6.0.7(vite@8.0.14(@types/node@24.12.4)(esbuild@0.27.4)(jiti@2.6.1))(vue@3.5.31(typescript@6.0.2))': + dependencies: + '@rolldown/pluginutils': 1.0.1 + vite: 8.0.14(@types/node@24.12.4)(esbuild@0.27.4)(jiti@2.6.1) + vue: 3.5.31(typescript@6.0.2) + + '@vitest/browser@3.2.4(playwright@1.60.0)(vite@8.0.14(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vitest@3.2.4)': dependencies: '@testing-library/dom': 10.4.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) - '@vitest/mocker': 3.2.4(vite@8.0.3(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1)) + '@vitest/mocker': 3.2.4(vite@8.0.14(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1)) '@vitest/utils': 3.2.4 magic-string: 0.30.21 sirv: 3.0.2 @@ -4369,6 +4786,26 @@ snapshots: - utf-8-validate - vite + '@vitest/browser@3.2.4(playwright@1.60.0)(vite@8.0.14(@types/node@24.12.4)(esbuild@0.27.4)(jiti@2.6.1))(vitest@3.2.4)': + dependencies: + '@testing-library/dom': 10.4.1 + '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) + '@vitest/mocker': 3.2.4(vite@8.0.14(@types/node@24.12.4)(esbuild@0.27.4)(jiti@2.6.1)) + '@vitest/utils': 3.2.4 + magic-string: 0.30.21 + sirv: 3.0.2 + tinyrainbow: 2.0.0 + vitest: 3.2.4(@types/node@24.12.4)(@vitest/browser@3.2.4)(jiti@2.6.1)(lightningcss@1.32.0) + ws: 8.20.0 + optionalDependencies: + playwright: 1.60.0 + transitivePeerDependencies: + - bufferutil + - msw + - utf-8-validate + - vite + optional: true + '@vitest/coverage-v8@3.2.4(@vitest/browser@3.2.4)(vitest@3.2.4)': dependencies: '@ampproject/remapping': 2.3.0 @@ -4386,7 +4823,7 @@ snapshots: tinyrainbow: 2.0.0 vitest: 3.2.4(@types/node@24.12.0)(@vitest/browser@3.2.4)(jiti@2.6.1)(lightningcss@1.32.0) optionalDependencies: - '@vitest/browser': 3.2.4(playwright@1.60.0)(vite@8.0.3(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vitest@3.2.4) + '@vitest/browser': 3.2.4(playwright@1.60.0)(vite@8.0.14(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vitest@3.2.4) transitivePeerDependencies: - supports-color @@ -4406,13 +4843,30 @@ snapshots: optionalDependencies: vite: 7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.32.0) - '@vitest/mocker@3.2.4(vite@8.0.3(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))': + '@vitest/mocker@3.2.4(vite@7.3.1(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.3(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1) + vite: 7.3.1(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0) + + '@vitest/mocker@3.2.4(vite@8.0.14(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 8.0.14(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1) + + '@vitest/mocker@3.2.4(vite@8.0.14(@types/node@24.12.4)(esbuild@0.27.4)(jiti@2.6.1))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 8.0.14(@types/node@24.12.4)(esbuild@0.27.4)(jiti@2.6.1) + optional: true '@vitest/pretty-format@3.2.4': dependencies: @@ -4480,6 +4934,14 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.35': + dependencies: + '@babel/parser': 7.29.7 + '@vue/shared': 3.5.35 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.31': dependencies: '@vue/compiler-core': 3.5.31 @@ -4490,6 +4952,11 @@ snapshots: '@vue/compiler-core': 3.5.34 '@vue/shared': 3.5.34 + '@vue/compiler-dom@3.5.35': + dependencies: + '@vue/compiler-core': 3.5.35 + '@vue/shared': 3.5.35 + '@vue/compiler-sfc@3.5.31': dependencies: '@babel/parser': 7.29.3 @@ -4530,7 +4997,7 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/language-core@3.0.7(typescript@5.8.3)': + '@vue/language-core@3.0.7(typescript@6.0.2)': dependencies: '@volar/language-core': 2.4.23 '@vue/compiler-dom': 3.5.34 @@ -4539,9 +5006,9 @@ snapshots: alien-signals: 2.0.7 muggle-string: 0.4.1 path-browserify: 1.0.1 - picomatch: 4.0.3 + picomatch: 4.0.4 optionalDependencies: - typescript: 5.8.3 + typescript: 6.0.2 '@vue/language-core@3.2.9': dependencies: @@ -4553,6 +5020,16 @@ snapshots: path-browserify: 1.0.1 picomatch: 4.0.4 + '@vue/language-core@3.3.2': + dependencies: + '@volar/language-core': 2.4.28 + '@vue/compiler-dom': 3.5.35 + '@vue/shared': 3.5.35 + alien-signals: 3.2.1 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + picomatch: 4.0.4 + '@vue/reactivity@3.5.31': dependencies: '@vue/shared': 3.5.31 @@ -4569,17 +5046,17 @@ snapshots: '@vue/shared': 3.5.31 csstype: 3.2.3 - '@vue/server-renderer@3.5.31(vue@3.5.31(typescript@5.8.3))': + '@vue/server-renderer@3.5.31(vue@3.5.31(typescript@6.0.2))': dependencies: '@vue/compiler-ssr': 3.5.31 '@vue/shared': 3.5.31 - vue: 3.5.31(typescript@5.8.3) + vue: 3.5.31(typescript@6.0.2) - '@vue/server-renderer@3.5.31(vue@3.5.31(typescript@6.0.2))': + '@vue/server-renderer@3.5.31(vue@3.5.31(typescript@6.0.3))': dependencies: '@vue/compiler-ssr': 3.5.31 '@vue/shared': 3.5.31 - vue: 3.5.31(typescript@6.0.2) + vue: 3.5.31(typescript@6.0.3) '@vue/shared@3.5.13': {} @@ -4587,39 +5064,46 @@ snapshots: '@vue/shared@3.5.34': {} - '@vue/test-utils@2.4.10(@vue/compiler-dom@3.5.34)(@vue/server-renderer@3.5.31(vue@3.5.31(typescript@6.0.2)))(vue@3.5.31(typescript@6.0.2))': + '@vue/shared@3.5.35': {} + + '@vue/test-utils@2.4.10(@vue/compiler-dom@3.5.35)(@vue/server-renderer@3.5.31(vue@3.5.31(typescript@6.0.2)))(vue@3.5.31(typescript@6.0.2))': dependencies: - '@vue/compiler-dom': 3.5.34 + '@vue/compiler-dom': 3.5.35 js-beautify: 1.15.4 vue: 3.5.31(typescript@6.0.2) vue-component-type-helpers: 3.3.2 optionalDependencies: '@vue/server-renderer': 3.5.31(vue@3.5.31(typescript@6.0.2)) - '@vue/tsconfig@0.7.0(typescript@5.8.3)(vue@3.5.31(typescript@5.8.3))': + '@vue/tsconfig@0.7.0(typescript@6.0.2)(vue@3.5.31(typescript@6.0.2))': optionalDependencies: - typescript: 5.8.3 - vue: 3.5.31(typescript@5.8.3) + typescript: 6.0.2 + vue: 3.5.31(typescript@6.0.2) '@vue/tsconfig@0.8.1(typescript@6.0.2)(vue@3.5.31(typescript@6.0.2))': optionalDependencies: typescript: 6.0.2 vue: 3.5.31(typescript@6.0.2) - '@vueuse/core@12.8.2(typescript@6.0.2)': + '@vue/tsconfig@0.9.1(typescript@6.0.2)(vue@3.5.31(typescript@6.0.2))': + optionalDependencies: + typescript: 6.0.2 + vue: 3.5.31(typescript@6.0.2) + + '@vueuse/core@12.8.2(typescript@6.0.3)': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 12.8.2 - '@vueuse/shared': 12.8.2(typescript@6.0.2) - vue: 3.5.31(typescript@6.0.2) + '@vueuse/shared': 12.8.2(typescript@6.0.3) + vue: 3.5.31(typescript@6.0.3) transitivePeerDependencies: - typescript - '@vueuse/integrations@12.8.2(change-case@5.4.4)(focus-trap@7.6.5)(typescript@6.0.2)': + '@vueuse/integrations@12.8.2(change-case@5.4.4)(focus-trap@7.6.5)(typescript@6.0.3)': dependencies: - '@vueuse/core': 12.8.2(typescript@6.0.2) - '@vueuse/shared': 12.8.2(typescript@6.0.2) - vue: 3.5.31(typescript@6.0.2) + '@vueuse/core': 12.8.2(typescript@6.0.3) + '@vueuse/shared': 12.8.2(typescript@6.0.3) + vue: 3.5.31(typescript@6.0.3) optionalDependencies: change-case: 5.4.4 focus-trap: 7.6.5 @@ -4628,9 +5112,9 @@ snapshots: '@vueuse/metadata@12.8.2': {} - '@vueuse/shared@12.8.2(typescript@6.0.2)': + '@vueuse/shared@12.8.2(typescript@6.0.3)': dependencies: - vue: 3.5.31(typescript@6.0.2) + vue: 3.5.31(typescript@6.0.3) transitivePeerDependencies: - typescript @@ -4994,7 +5478,7 @@ snapshots: optionalDependencies: unrs-resolver: 1.11.1 - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1)): + eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1)): dependencies: '@package-json/types': 0.0.12 '@typescript-eslint/types': 8.59.3 @@ -5008,7 +5492,7 @@ snapshots: stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: - '@typescript-eslint/utils': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/utils': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) transitivePeerDependencies: - supports-color @@ -5028,7 +5512,7 @@ snapshots: transitivePeerDependencies: - '@types/estree' - eslint-plugin-vue@10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.4.0(jiti@2.6.1))): + eslint-plugin-vue@10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.4.0(jiti@2.6.1))): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0(jiti@2.6.1)) eslint: 10.4.0(jiti@2.6.1) @@ -5040,7 +5524,7 @@ snapshots: xml-name-validator: 4.0.0 optionalDependencies: '@stylistic/eslint-plugin': 5.10.0(eslint@10.4.0(jiti@2.6.1)) - '@typescript-eslint/parser': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/parser': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) eslint-scope@9.1.2: dependencies: @@ -5049,14 +5533,14 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-stylistic-airbnb@3.2.0(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1)))(eslint-plugin-vue@10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.4.0(jiti@2.6.1))))(eslint@10.4.0(jiti@2.6.1)): + eslint-stylistic-airbnb@3.2.0(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1)))(eslint-plugin-vue@10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.4.0(jiti@2.6.1))))(eslint@10.4.0(jiti@2.6.1)): dependencies: '@stylistic/eslint-plugin': 5.10.0(eslint@10.4.0(jiti@2.6.1)) confusing-browser-globals: 1.0.11 eslint: 10.4.0(jiti@2.6.1) optionalDependencies: - eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1)) - eslint-plugin-vue: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.4.0(jiti@2.6.1))) + eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1)) + eslint-plugin-vue: 10.9.1(@stylistic/eslint-plugin@5.10.0(eslint@10.4.0(jiti@2.6.1)))(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.4.0(jiti@2.6.1))) eslint-visitor-keys@3.4.3: {} @@ -5480,6 +5964,8 @@ snapshots: nanoid@3.3.11: {} + nanoid@3.3.12: {} + napi-postinstall@0.3.4: {} natural-compare@1.4.0: {} @@ -5600,6 +6086,12 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss@8.5.15: + dependencies: + nanoid: 3.3.12 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -5694,6 +6186,27 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.12 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.12 + rolldown@1.0.2: + dependencies: + '@oxc-project/types': 0.132.0 + '@rolldown/pluginutils': 1.0.1 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.2 + '@rolldown/binding-darwin-arm64': 1.0.2 + '@rolldown/binding-darwin-x64': 1.0.2 + '@rolldown/binding-freebsd-x64': 1.0.2 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.2 + '@rolldown/binding-linux-arm64-gnu': 1.0.2 + '@rolldown/binding-linux-arm64-musl': 1.0.2 + '@rolldown/binding-linux-ppc64-gnu': 1.0.2 + '@rolldown/binding-linux-s390x-gnu': 1.0.2 + '@rolldown/binding-linux-x64-gnu': 1.0.2 + '@rolldown/binding-linux-x64-musl': 1.0.2 + '@rolldown/binding-openharmony-arm64': 1.0.2 + '@rolldown/binding-wasm32-wasi': 1.0.2 + '@rolldown/binding-win32-arm64-msvc': 1.0.2 + '@rolldown/binding-win32-x64-msvc': 1.0.2 + rollup@4.50.1: dependencies: '@types/estree': 1.0.8 @@ -5882,8 +6395,8 @@ snapshots: tinyglobby@0.2.15: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 tinyglobby@0.2.16: dependencies: @@ -5902,9 +6415,9 @@ snapshots: trim-lines@3.0.1: {} - ts-api-utils@2.5.0(typescript@6.0.2): + ts-api-utils@2.5.0(typescript@6.0.3): dependencies: - typescript: 6.0.2 + typescript: 6.0.3 tsdown@0.21.6(typescript@6.0.2)(vue-tsc@3.2.9(typescript@6.0.2)): dependencies: @@ -5940,21 +6453,23 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2): + type-fest@4.41.0: {} + + typescript-eslint@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.59.4(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/parser': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.2) - '@typescript-eslint/utils': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/eslint-plugin': 8.59.4(@typescript-eslint/parser@8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3))(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/parser': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.4(eslint@10.4.0(jiti@2.6.1))(typescript@6.0.3) eslint: 10.4.0(jiti@2.6.1) - typescript: 6.0.2 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - typescript@5.8.3: {} - typescript@6.0.2: {} + typescript@6.0.3: {} + ufo@1.6.3: {} unconfig-core@7.5.0: @@ -6050,9 +6565,9 @@ snapshots: util-deprecate@1.0.2: {} - valibot@1.1.0(typescript@5.8.3): + valibot@1.1.0(typescript@6.0.2): optionalDependencies: - typescript: 5.8.3 + typescript: 6.0.2 valibot@1.3.1(typescript@6.0.2): optionalDependencies: @@ -6065,6 +6580,20 @@ snapshots: validate-npm-package-name@7.0.2: {} + vee-validate@4.15.1(vue@3.5.31(typescript@6.0.2)): + dependencies: + '@vue/devtools-api': 7.7.7 + type-fest: 4.41.0 + vue: 3.5.31(typescript@6.0.2) + + vee-validate@5.0.0-beta.0(vue@3.5.31(typescript@6.0.2)): + dependencies: + '@standard-schema/spec': 1.1.0 + '@standard-schema/utils': 0.3.0 + '@vue/devtools-api': 7.7.7 + type-fest: 4.41.0 + vue: 3.5.31(typescript@6.0.2) + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 @@ -6098,17 +6627,38 @@ snapshots: - tsx - yaml - vite@5.4.20(@types/node@24.12.0)(lightningcss@1.32.0): + vite-node@3.2.4(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0): + dependencies: + cac: 6.7.14 + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.3.1(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite@5.4.20(@types/node@24.12.4)(lightningcss@1.32.0): dependencies: esbuild: 0.21.5 - postcss: 8.5.6 - rollup: 4.50.1 + postcss: 8.5.8 + rollup: 4.60.0 optionalDependencies: - '@types/node': 24.12.0 + '@types/node': 24.12.4 fsevents: 2.3.3 lightningcss: 1.32.0 - vite@7.1.5(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.32.0): + vite@7.1.5(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -6117,7 +6667,7 @@ snapshots: rollup: 4.50.1 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.12.0 + '@types/node': 24.12.4 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.32.0 @@ -6129,27 +6679,67 @@ snapshots: picomatch: 4.0.4 postcss: 8.5.8 rollup: 4.60.0 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 optionalDependencies: '@types/node': 24.12.0 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.32.0 + vite@7.3.1(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0): + dependencies: + esbuild: 0.27.4 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.8 + rollup: 4.60.0 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 24.12.4 + fsevents: 2.3.3 + jiti: 2.6.1 + lightningcss: 1.32.0 + + vite@8.0.14(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.15 + rolldown: 1.0.2 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 24.12.0 + esbuild: 0.27.4 + fsevents: 2.3.3 + jiti: 2.6.1 + + vite@8.0.14(@types/node@24.12.4)(esbuild@0.27.4)(jiti@2.6.1): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.15 + rolldown: 1.0.2 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 24.12.4 + esbuild: 0.27.4 + fsevents: 2.3.3 + jiti: 2.6.1 + vite@8.0.3(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 postcss: 8.5.8 rolldown: 1.0.0-rc.12 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 optionalDependencies: '@types/node': 24.12.0 esbuild: 0.27.4 fsevents: 2.3.3 jiti: 2.6.1 - vitepress@1.6.4(@algolia/client-search@5.28.0)(@types/node@24.12.0)(change-case@5.4.4)(lightningcss@1.32.0)(postcss@8.5.8)(search-insights@2.17.3)(typescript@6.0.2): + vitepress@1.6.4(@algolia/client-search@5.28.0)(@types/node@24.12.4)(change-case@5.4.4)(lightningcss@1.32.0)(postcss@8.5.15)(search-insights@2.17.3)(typescript@6.0.3): dependencies: '@docsearch/css': 3.8.2 '@docsearch/js': 3.8.2(@algolia/client-search@5.28.0)(search-insights@2.17.3) @@ -6158,19 +6748,19 @@ snapshots: '@shikijs/transformers': 2.5.0 '@shikijs/types': 2.5.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.2.4(vite@5.4.20(@types/node@24.12.0)(lightningcss@1.32.0))(vue@3.5.31(typescript@6.0.2)) + '@vitejs/plugin-vue': 5.2.4(vite@5.4.20(@types/node@24.12.4)(lightningcss@1.32.0))(vue@3.5.31(typescript@6.0.3)) '@vue/devtools-api': 7.7.7 '@vue/shared': 3.5.13 - '@vueuse/core': 12.8.2(typescript@6.0.2) - '@vueuse/integrations': 12.8.2(change-case@5.4.4)(focus-trap@7.6.5)(typescript@6.0.2) + '@vueuse/core': 12.8.2(typescript@6.0.3) + '@vueuse/integrations': 12.8.2(change-case@5.4.4)(focus-trap@7.6.5)(typescript@6.0.3) focus-trap: 7.6.5 mark.js: 8.11.1 minisearch: 7.1.2 shiki: 2.5.0 - vite: 5.4.20(@types/node@24.12.0)(lightningcss@1.32.0) - vue: 3.5.31(typescript@6.0.2) + vite: 5.4.20(@types/node@24.12.4)(lightningcss@1.32.0) + vue: 3.5.31(typescript@6.0.3) optionalDependencies: - postcss: 8.5.8 + postcss: 8.5.15 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -6217,7 +6807,7 @@ snapshots: std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tinypool: 1.1.1 tinyrainbow: 2.0.0 vite: 7.3.1(@types/node@24.12.0)(jiti@2.6.1)(lightningcss@1.32.0) @@ -6225,7 +6815,49 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.12.0 - '@vitest/browser': 3.2.4(playwright@1.60.0)(vite@8.0.3(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vitest@3.2.4) + '@vitest/browser': 3.2.4(playwright@1.60.0)(vite@8.0.14(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.6.1))(vitest@3.2.4) + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vitest@3.2.4(@types/node@24.12.4)(@vitest/browser@3.2.4)(jiti@2.6.1)(lightningcss@1.32.0): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(vite@7.3.1(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + debug: 4.4.3 + expect-type: 1.3.0 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.4 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.16 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 7.3.1(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0) + vite-node: 3.2.4(@types/node@24.12.4)(jiti@2.6.1)(lightningcss@1.32.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 24.12.4 + '@vitest/browser': 3.2.4(playwright@1.60.0)(vite@8.0.14(@types/node@24.12.4)(esbuild@0.27.4)(jiti@2.6.1))(vitest@3.2.4) transitivePeerDependencies: - jiti - less @@ -6256,37 +6888,50 @@ snapshots: transitivePeerDependencies: - supports-color - vue-tsc@3.0.7(typescript@5.8.3): + vue-tsc@3.0.7(typescript@6.0.2): dependencies: '@volar/typescript': 2.4.23 - '@vue/language-core': 3.0.7(typescript@5.8.3) - typescript: 5.8.3 + '@vue/language-core': 3.0.7(typescript@6.0.2) + typescript: 6.0.2 vue-tsc@3.2.9(typescript@6.0.2): dependencies: '@volar/typescript': 2.4.28 '@vue/language-core': 3.2.9 typescript: 6.0.2 + optional: true - vue@3.5.31(typescript@5.8.3): + vue-tsc@3.2.9(typescript@6.0.3): + dependencies: + '@volar/typescript': 2.4.28 + '@vue/language-core': 3.2.9 + typescript: 6.0.3 + + vue-tsc@3.3.2(typescript@6.0.2): + dependencies: + '@volar/typescript': 2.4.28 + '@vue/language-core': 3.3.2 + typescript: 6.0.2 + + vue@3.5.31(typescript@6.0.2): dependencies: '@vue/compiler-dom': 3.5.31 '@vue/compiler-sfc': 3.5.31 '@vue/runtime-dom': 3.5.31 - '@vue/server-renderer': 3.5.31(vue@3.5.31(typescript@5.8.3)) + '@vue/server-renderer': 3.5.31(vue@3.5.31(typescript@6.0.2)) '@vue/shared': 3.5.31 optionalDependencies: - typescript: 5.8.3 + typescript: 6.0.2 - vue@3.5.31(typescript@6.0.2): + vue@3.5.31(typescript@6.0.3): dependencies: '@vue/compiler-dom': 3.5.31 '@vue/compiler-sfc': 3.5.31 '@vue/runtime-dom': 3.5.31 - '@vue/server-renderer': 3.5.31(vue@3.5.31(typescript@6.0.2)) + '@vue/server-renderer': 3.5.31(vue@3.5.31(typescript@6.0.3)) '@vue/shared': 3.5.31 optionalDependencies: - typescript: 6.0.2 + typescript: 6.0.3 webpack-virtual-modules@0.6.2: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 53af5f7..48101da 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -4,6 +4,13 @@ allowBuilds: minimumReleaseAge: 4320 catalog: vue: ^3.5.31 + vite: ^8.0.12 + vitest: ^3.2.4 + vue-tsc: ^3.3.2 + typescript: 6.0.2 + "@vue/tsconfig": "^0.9.1" + "@vitejs/plugin-vue": "^6.0.6" + "@types/node": "^24.12.3" packages: - docs - packages/*