diff --git a/docs/specs/guarded-approval-contract.md b/docs/specs/guarded-approval-contract.md new file mode 100644 index 0000000..13714fd --- /dev/null +++ b/docs/specs/guarded-approval-contract.md @@ -0,0 +1,32 @@ +# Guarded approval data contract + +This additive core contract describes approval context and approval commands. It contains no HTTP client, authentication implementation, storage, automatic retry or legacy approval fallback. Existing authoring contracts remain unchanged. A server must support the guarded actions; this document does not claim that a particular deployment does. + +## Requests + +A scope has explicit `projectId`, `environment` and `locator`. The locator contains `entityKey`, `draftId`, `key`, `locale` and optional `variantId`. Identifiers are nonempty trimmed strings, preserved exactly. Project is at most200 characters; environment is at most100 and matches `^[a-z0-9][a-z0-9-]*$`; locator strings are at most1024. A supplied variant cannot be empty. The entity key equals the URI-encoded `authoring`, environment, locale, key and draft ID segments joined by `#`. + +`createLingvaGuardedApprovalContextPayload(scope)` returns `{action:'review-context',projectId,environment,locator}`. + +`createLingvaGuardedApprovalPayload({...scope,contextToken,operationId})` returns `{action:'review-mutate',command:'approve',projectId,environment,locator,contextToken,operationId}`. The context token is opaque lowercase64-hex. The operation ID is a caller-supplied UUID, version1–8, with its exact case preserved. Callers retain one captured command and ID for uncertain-response recovery; a changed context or target is a new intent. The builder never generates an ID or fetches context. + +Request inputs allow only the fields described here. Actor overrides, credentials, transport headers, URLs, comments and assignments are not request fields. Invalid input throws `TypeError('Invalid guarded approval request.')` without input values. Serialized requests may not exceed16KiB UTF-8. A rejected guarded request never becomes legacy approval. + +## Responses + +`parseLingvaGuardedApprovalContextResponse(value,expectedScope)` returns `{ok:true,context}` with a fresh known-field projection, or `null`. Context contains matching scope, server-reported `actorId`, context token, boolean `isCurrent`, and: + +- `draft:{value,status,authorId?,approvedBy?,approvedAt?}`, status `draft|approved`; +- `review:{revision,assigneeId?,outcome?}`, nonnegative safe revision, outcome `approved|changes-requested|rejected` when present; +- `baseline:null|{revision,publishId}`; +- `permissions:{comment,assign,decide}`, each boolean. A noncurrent context has no true permission flag. + +Required identifiers use the bounded string rules. Timestamp fields represent a finite instant with explicit timezone. Locator equality compares field values, independent of insertion order. Missing facts are not defaulted. Draft content remains exact, including whitespace; validation errors do not include it. Additive unknown response properties are omitted, not promoted into authority. Decoded responses may not exceed128KiB UTF-8. + +`parseLingvaGuardedApprovalResponse(value,expectedOperationId)` returns `{ok:true,result}` or `null`. An approval result requires the exact expected UUID string, positive safe `reviewRevision`, `outcome:'approved'` and valid `approvedAt`. No actor/target attestation or fabricated draft record is added. Unsupported/error/malformed responses remain failures. + +These parsers describe supplied JSON observations. They do not verify the server, principal, freshness or permissions. A context token is not a bearer credential. An acknowledgment does not promise indefinite receipt retention or an immutable audit archive. Authorization remains a server responsibility, including admission before retry recovery. + +## Portability and compatibility + +The codecs are portable pure functions without network, environment, random, clock or storage access. Legacy authoring actions and serializers retain their existing behavior. Other review commands, history, assignment, transport helpers, CLI behavior and server mutation logic are outside this contract. Fixtures and package smoke examples use synthetic content only. diff --git a/docs/specs/workspace-dependency-security.md b/docs/specs/workspace-dependency-security.md new file mode 100644 index 0000000..58b8190 --- /dev/null +++ b/docs/specs/workspace-dependency-security.md @@ -0,0 +1,19 @@ +# Workspace dependency security repair + +The workspace dependency audit fails against the existing lockfile. Repair the dependency owners and verify local compatibility while preserving all Lingva package versions, licenses and guarded approval codec sources. No package publication, hosted operation or deployment belongs to this repair. + +Use published patched versions: Next16.4.1, Nuxt4.6.2, Vite8.1.6, launch-editor2.14.2, Zod4.6.6, Undici8.12.2, serialize-javascript7.1.3, fast-uri3.1.9 and seroval1.6.11. Keep transitive security overrides in `pnpm-workspace.yaml`, scoped to the affected major where necessary. Regenerate the lockfile through pnpm and prove a frozen installation. + +The SvelteKit starter moves to3.0.0, adapter-auto8.0.0, Svelte>=5.57.1 (locked5.57.3) and TypeScript6.0.3. Only that starter requires TypeScript6. Use explicit `#lib/*` subpath imports and the relocated hooks type without changing locale logic. Move its existing preprocess/adapter options from `svelte.config.js` into the Vite plugin; use `$app/tsconfig` and explicit include/exclude paths. Preserve locale selection, SSR output and public SDK interfaces. Follow the [official migration guide](https://github.com/sveltejs/kit/blob/main/documentation/docs/60-appendix/35-migrating-to-sveltekit-3.md). + +Deepmerge4.3.1 has no patched release for [GHSA-gcqx-w48m-w2h4](https://github.com/advisories/GHSA-gcqx-w48m-w2h4). Apply a local defensive patch following the [reporter's key-guard recommendation](https://github.com/TehShrike/deepmerge/issues/273): reject `__proto__`, `constructor` and `prototype` in both target and source copy paths. Patch source and both shipped CJS/UMD artifacts. This is a local mitigation, not a claimed upstream release or maintainer patch. Preserve ordinary object, array, symbol and custom-merge behavior. + +Prove the exploit with real installed CJS/UMD entrypoints before patching, then prove rejection and compatibility afterward. Add an unconditional local dependency-security test command to repository CI checks. Only after the installed patch passes may the exact deepmerge advisory receive a documented registry-audit exception, because the registry sees the original package version. Existing braces/node-forge exceptions and the node-forge patch remain unchanged. Never suppress other advisories or skip the audit. + +Acceptance: no unsuppressed production audit findings, passing exploit/compatibility tests and frozen install, unchanged codec source hashes and250 core tests, full affected workspace lint/types/tests/builds, all11 public build/tarball consumer checks, and real local HTTP checks for the changed Next/Nuxt/SvelteKit starters. Keep one existing PR; report any remaining blocker honestly. + +Rollback is a Git revert of this repair's commit followed by frozen installation. It restores the previous manifests, lockfile, configuration and patch policy together; it also restores their known audit failures. No persistent application data is migrated. + +For the Nuxt starter, production builds run `nuxt typecheck` before bundling. The duplicate Vite checker is disabled because its shell invocation splits absolute project paths containing spaces. Standalone type checks remain available; the in-dev checker overlay is not enabled by this repair. + +Local verification on29 October2026:23 installed-artifact/graph tests,250 core tests,70 workspace tasks,19 builds,11 public candidate consumer checks and10 production HTTP scenarios pass. Frozen installation and peer checks pass. Registry audit exits0 with no active advisory objects; its raw metadata still counts the two explicitly ignored patched node-forge/deepmerge findings. This is not a claim of an exception-free audit. Lingva package manifests, codec sources and licenses match the pre-repair source. diff --git a/docs/superpowers/plans/2026-10-29-guarded-approval-codecs.md b/docs/superpowers/plans/2026-10-29-guarded-approval-codecs.md new file mode 100644 index 0000000..cb0fe6a --- /dev/null +++ b/docs/superpowers/plans/2026-10-29-guarded-approval-codecs.md @@ -0,0 +1,57 @@ +# Guarded Approval Codecs Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Add portable, additive guarded approval request/response codecs to core without changing existing callers. + +**Architecture:** One focused module owns types, named selectors, deterministic request builders and sanitized response parsers. A data-only UTF-8 JSON budget check prevents custom serialization hooks from bypassing bounds. The existing public index exports the new surface; package smoke tests exercise the packed result. + +**Tech Stack:** Existing TypeScript/Vitest/build-package tooling and portable TextEncoder; no new dependency. + +**Spec:** `docs/specs/guarded-approval-contract.md`. + +## Global Constraints + +- Core only: no HTTP helper, CLI/adapter, server, storage, permission, retention, release or deployment changes. +- Keep legacy actions/types/serializers and release pins unchanged. Add a separate guarded selector/type boundary. +- Request16KiB and response128KiB UTF-8 limits include full JSON data, including unknown response data; never invoke custom toJSON/accessor hooks to determine size. +- Explicit project/environment/full locator; preserve exact identifiers, variant and operation UUID case. Context is opaque64 lowercase hex; UUID versions1–8. +- Return fresh recognized-field projections and null for invalid responses. No missing-fact defaults, actor overrides, fallback, I/O or credential access. +- Public source/spec/fixtures contain public API data only. Keep source-map protection and existing license files unchanged. + +## Review Focus + +- UTF-8 multibyte and JSON escape boundaries must use serialized byte size, not JavaScript string length. +- Field-order differences, variants and encoded entity keys must not silently cross scope. +- Unknown fields, malformed timestamps and unsafe revisions must not become permission or identity claims. +- Accessor/toJSON/cycle-shaped non-JSON inputs must not execute application serialization hooks or bypass byte limits. +- Packed ESM/CJS/type exports must expose the same additive API while all legacy tests and callers remain unchanged. + +--- + +### Task 1: Implement, test and export the codecs + +**Files:** Create `packages/core/src/guarded-approval.ts` and `.test.ts`; modify `packages/core/src/index.ts` with an additive named export block. Extend `scripts/verify-public-packages.mjs` only for guarded-core smoke assertions. Update this spec/plan as completed. + +**Interfaces:** + +- `LingvaGuardedApprovalLocator`, `LingvaGuardedApprovalScope`, `LingvaGuardedApprovalCommand` describe validated request data. +- `LINGVA_GUARDED_APPROVAL_ACTIONS` contains context=`review-context`, approve=`review-mutate` only; command is fixed `approve`. +- `createLingvaGuardedApprovalContextPayload(scope): LingvaGuardedApprovalContextPayload` and `createLingvaGuardedApprovalPayload(command): LingvaGuardedApprovalPayload` throw the spec's static TypeError on invalid input. +- `parseLingvaGuardedApprovalContextResponse(value:unknown,expectedScope): LingvaGuardedApprovalContextResponse|null` and `parseLingvaGuardedApprovalResponse(value:unknown,expectedOperationId): LingvaGuardedApprovalResponse|null` return full sanitized success envelopes. +- Public context/result types mirror only the spec's fields. Context observation flags never authenticate or authorize anything. + +- [x] **Step1: Baseline and failing behavior tests.** Run full core baseline. Write literal payload/context/ack expectations using project `project_demo`, environment `dev`, locator `{entityKey:'authoring#dev#en#hero.title#draft_one',draftId:'draft_one',key:'hero.title',locale:'en'}`, token64`a`, UUID `11111111-1111-4111-8111-111111111111`. Cover every request/response field, limits, scope/variant mismatch, UUID case, known optional fields, additive stripping, exact timestamps/revisions, multibyte bytes/escapes and no ambient access. Tests name the wrong branch/omitted guard/unsafe echo they catch; expectations are literals. +- [x] **Step2: Observe assertion RED.** Export a temporary interface scaffold returning empty payloads/null so tests fail via actual expected-value assertions, not import errors. Run `pnpm --filter @lingva/core test src/guarded-approval.test.ts`; retain failure output. Replace the scaffold only after observing failures. +- [x] **Step3: Minimal implementation.** Validate own JSON data fields and scope; construct known output shapes. Use one internal iterative JSON byte-budget traversal with active-path cycle checks and safe primitive encoding, no toJSON/getter invocation; stop on overflow/non-JSON data. Parsers copy only known validated values and compare scope by fields. Timestamp validation uses deterministic input only. Public constants/types remain separate from legacy authoring. +- [x] **Step4: GREEN and static quality.** Focused/full core tests, core lint/typecheck/build all pass. Test accessor/toJSON and byte-budget mutations through observable outputs. Add root exports; do not edit legacy authoring or client sources. Review changed paths and dependency/lock/license hashes. +- [x] **Step5: Candidate and public export gates.** Extend existing packed ESM/CJS/type smoke with literal guarded context/mutation examples and typed results. Run existing `pnpm build:packages` then `pnpm verify:packages`; install only local candidate tarballs with temporary overrides/ignore-scripts as the existing harness does. Record candidate hashes separately; never publish or commit temporary file overrides. Validate packaging smoke RED against a pre-change candidate when practical; at minimum the codec assertion RED is mandatory and final packed exports must be exercised. +- [x] **Step6: Commit and task completion.** Record actual local results and source hashes; run task-done with the full core test command. Keep any implementation rulings in the ignored plan ledger. No merge or release claim. + +## Final review and handoff + +Request one fresh whole-branch technical review against the spec/Review Focus and exact base/head. Resolve Important/Critical findings in one RED/GREEN pass; record genuine Minor deferrals. Re-run affected/full gates after source changes. Preserve source-map and public-package boundary checks. Archive the plan's owned ignored scratch, then remove only that scratch after review completion; retain the Git worktree for feedback. Open one SDK PR only, with public scope/validation and no private tracking data. Stop for review; do not merge or publish packages. + +## Self-review + +One cohesive codec surface owns all requested behavior; no cross-task interfaces. Every contract clause maps to Task1. Public exports are verified from tarballs, and all five Review Focus risks have behavior cases. Native inline execution and one final independent review are the chosen workflow; no additional runtime or generic review feature is implied. diff --git a/docs/superpowers/plans/2026-10-29-workspace-dependency-security.md b/docs/superpowers/plans/2026-10-29-workspace-dependency-security.md new file mode 100644 index 0000000..080713b --- /dev/null +++ b/docs/superpowers/plans/2026-10-29-workspace-dependency-security.md @@ -0,0 +1,48 @@ +# Workspace Dependency Security Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Repair the existing dependency-audit blocker with reproducible patched dependencies and local compatibility proof. + +**Architecture:** Existing workspace override policy owns transitive version floors. Direct starter manifests own framework upgrades. One narrowly scoped deepmerge patch and installed-artifact regression suite cover the dependency with no fixed release. + +**Tech Stack:** Existing pnpm12.8.1, Node24, node:test, workspace/Turbo builds and public package consumer harness. + +**Spec:** `docs/specs/workspace-dependency-security.md`. + +## Global Constraints + +- Preserve Lingva versions, licenses, public contracts and all guarded approval codec source bytes; no hosted operations, publication or deployment. +- Use the spec's exact published patched versions and existing installation/build policy. Keep TypeScript6 scoped to the SvelteKit starter. +- Patch deepmerge source/CJS/UMD and prove real exploit RED/GREEN before a single documented exact-advisory exception. Existing exceptions and node-forge patch remain unchanged. +- Keep the existing PR; do not open a successor. Roll back all repair inputs together through Git and frozen install. + +## Review Focus + +- Poisoned keys on source, target, null-prototype objects and nested placeholders must never change the returned object's prototype. +- Shipped CJS and UMD artifacts must both receive the patch; a registry exception must not outlive its effective installed mitigation. +- Ordinary arrays, symbols, custom merge callbacks and nonmutating merge behavior must remain compatible. +- SvelteKit3 configuration and TypeScript6 must preserve real SSR locale selection without leaking changed toolchain requirements into public SDK packages. +- Frozen installation, all workspace gates and packed consumers must exercise the actual changed dependency graph without disabling audit or source-map/license protection. + +--- + +### Task 1: Repair and verify the workspace dependency owners + +**Files:** Modify `pnpm-workspace.yaml`, generated `pnpm-lock.yaml`, `package.json`, `scripts/ci-run-workspace.mjs`, Next/Nuxt/SvelteKit starter manifests and SvelteKit configuration; remove its obsolete `svelte.config.js`. Create `patches/deepmerge@4.3.1.patch` and `scripts/dependency-security.test.mjs`. Update these public documents with actual evidence after verification. + +**Interfaces:** Existing pnpm frozen install, `pnpm audit:prod`, new `pnpm test:dependency-security`, existing workspace lint/typecheck/test/build and public tarball consumers. No Lingva runtime API changes. + +- [x] **Step1: Establish RED.** Save fresh audit JSON and exact registry metadata. Add real installed CJS/UMD tests for poisoned source/target keys, null prototypes and nested placeholders, plus ordinary array/symbol/custom-merge compatibility. Run `node --test scripts/dependency-security.test.mjs`; expected real prototype/key assertion failures, with ordinary compatibility controls passing. +- [x] **Step2: Apply narrow repairs.** Update exact owner versions and scoped overrides, migrate only SvelteKit starter configuration using the official guide, and generate the deepmerge patch through `pnpm patch`/`patch-commit`. Preserve dependency installation policy and all Lingva source/version/license inputs. Expected frozen install and exploit/compatibility GREEN. +- [x] **Step3: Connect and verify the audit boundary.** Add the installed-artifact test command to existing repository checks. Document only the exact deepmerge patched-advisory exception after GREEN. Run frozen install and `pnpm audit:prod`; expected zero unsuppressed findings under the explicitly recorded exception policy. +- [x] **Step4: Verify compatibility.** Run full workspace lint/types/tests/build, all11 public package builds/tarball consumers, and local HTTP locale smoke for Next/Nuxt/SvelteKit output. Compare codec/license/version hashes with basebf4228b. Expected all relevant gates pass and no source/version/license drift. +- [x] **Step5: Record and commit.** Mark actual checks, commit the coherent repair, and run task-done with `pnpm test:dependency-security`. Expected23 installed-artifact/graph tests pass; no merge or release claim. + +## Final review and handoff + +Obtain one fresh whole-branch review of this repair after task completion; fix Important/Critical findings in one RED/GREEN pass and ledger genuine Minor deferrals. Update the existing PR and private tracking only. Archive and remove only this plan’s owned ignored scratch; preserve the worktree for review. + +## Self-review + +One dependency graph repair owns the framework compatibility and patch tests together. Each review risk has an installed-artifact or real starter check. Existing codec acceptance remains a separate immutable source comparison. The native workflow continues under the user's instruction to proceed; no extra implementation-method gate is introduced. diff --git a/examples/next-starter/package.json b/examples/next-starter/package.json index fc46dae..82e354a 100644 --- a/examples/next-starter/package.json +++ b/examples/next-starter/package.json @@ -19,7 +19,7 @@ "@lingva/core": "workspace:*", "@lingva/next": "workspace:*", "@lingva/react": "workspace:*", - "next": "16.3.8", + "next": "16.4.1", "react": "^19.2.4", "react-dom": "^19.2.4" }, diff --git a/examples/nuxt-starter/nuxt.config.ts b/examples/nuxt-starter/nuxt.config.ts index e765168..d0fbe08 100644 --- a/examples/nuxt-starter/nuxt.config.ts +++ b/examples/nuxt-starter/nuxt.config.ts @@ -2,5 +2,7 @@ export default defineNuxtConfig({ compatibilityDate: '2026-09-25', devtools: { enabled: false }, ssr: true, - typescript: { typeCheck: true }, + // The build script runs mandatory typecheck before bundling; Vite checker + // shell-splits absolute project paths containing spaces. + typescript: { typeCheck: false }, }); diff --git a/examples/nuxt-starter/package.json b/examples/nuxt-starter/package.json index 11c6f2a..09af7b6 100644 --- a/examples/nuxt-starter/package.json +++ b/examples/nuxt-starter/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "nuxt dev --host 127.0.0.1 --port 3600", - "build": "nuxt build", + "build": "nuxt typecheck && nuxt build", "lint": "eslint . --max-warnings 0", "typecheck": "nuxt prepare && nuxt typecheck", "lingva:check": "lingva check", @@ -14,7 +14,7 @@ "dependencies": { "@lingva/core": "workspace:*", "@lingva/vue": "workspace:*", - "nuxt": "4.5.2", + "nuxt": "4.6.2", "vue": "^3.5.39" }, "devDependencies": { diff --git a/examples/sveltekit-starter/package.json b/examples/sveltekit-starter/package.json index cc62b6b..ed2ddc7 100644 --- a/examples/sveltekit-starter/package.json +++ b/examples/sveltekit-starter/package.json @@ -14,17 +14,20 @@ "dependencies": { "@lingva/core": "workspace:*", "@lingva/svelte": "workspace:*", - "@sveltejs/kit": "2.70.3", - "svelte": "^5.57.0" + "@sveltejs/kit": "3.0.0", + "svelte": "^5.57.1" }, "devDependencies": { "@lingva/cli": "workspace:*", "@lingva/eslint-config": "workspace:*", - "@sveltejs/adapter-auto": "7.0.1", + "@sveltejs/adapter-auto": "8.0.0", "@sveltejs/vite-plugin-svelte": "7.3.1", "eslint": "^9.39.2", "svelte-check": "^4.3.4", - "typescript": "^5.9.3", + "typescript": "6.0.3", "vite": "^8.0.16" + }, + "imports": { + "#lib/*": "./src/lib/*" } } diff --git a/examples/sveltekit-starter/src/hooks.server.ts b/examples/sveltekit-starter/src/hooks.server.ts index 420fc12..684ffbe 100644 --- a/examples/sveltekit-starter/src/hooks.server.ts +++ b/examples/sveltekit-starter/src/hooks.server.ts @@ -1,5 +1,5 @@ -import type { Handle } from '@sveltejs/kit'; -import { LOCALE_COOKIE, resolveStarterLocale } from '$lib/locale'; +import type { Handle } from '@sveltejs/kit/hooks'; +import { LOCALE_COOKIE, resolveStarterLocale } from '#lib/locale.ts'; export const handle: Handle = ({ event, resolve }) => { const locale = resolveStarterLocale(event.cookies.get(LOCALE_COOKIE)); diff --git a/examples/sveltekit-starter/src/routes/+page.server.ts b/examples/sveltekit-starter/src/routes/+page.server.ts index a234378..f46a2cc 100644 --- a/examples/sveltekit-starter/src/routes/+page.server.ts +++ b/examples/sveltekit-starter/src/routes/+page.server.ts @@ -3,7 +3,7 @@ import { createLingvaSvelteServer } from '@lingva/svelte'; import { redirect } from '@sveltejs/kit'; import lingvaConfig from '../../lingva.config'; import lingvaProject, { type resources } from '../../.lingva/generated/project'; -import { LOCALE_COOKIE, resolveStarterLocale } from '$lib/locale'; +import { LOCALE_COOKIE, resolveStarterLocale } from '#lib/locale.ts'; import type { Actions, PageServerLoad } from './$types'; export const load: PageServerLoad = async ({ cookies }) => { diff --git a/examples/sveltekit-starter/svelte.config.js b/examples/sveltekit-starter/svelte.config.js deleted file mode 100644 index bbc8b71..0000000 --- a/examples/sveltekit-starter/svelte.config.js +++ /dev/null @@ -1,7 +0,0 @@ -import adapter from '@sveltejs/adapter-auto'; -import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; - -export default { - preprocess: vitePreprocess(), - kit: { adapter: adapter() }, -}; diff --git a/examples/sveltekit-starter/tsconfig.json b/examples/sveltekit-starter/tsconfig.json index 4344710..9f93fcb 100644 --- a/examples/sveltekit-starter/tsconfig.json +++ b/examples/sveltekit-starter/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "./.svelte-kit/tsconfig.json", + "extends": "$app/tsconfig", "compilerOptions": { "allowJs": true, "checkJs": true, @@ -10,5 +10,7 @@ "sourceMap": true, "strict": true, "moduleResolution": "bundler" - } + }, + "include": ["src", "*.ts"], + "exclude": ["src/service-worker"] } diff --git a/examples/sveltekit-starter/vite.config.ts b/examples/sveltekit-starter/vite.config.ts index 1180a91..30cd2b9 100644 --- a/examples/sveltekit-starter/vite.config.ts +++ b/examples/sveltekit-starter/vite.config.ts @@ -1,4 +1,6 @@ +import adapter from '@sveltejs/adapter-auto'; +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; -export default defineConfig({ plugins: [sveltekit()] }); +export default defineConfig({ plugins: [sveltekit({ preprocess: vitePreprocess(), adapter: adapter() })] }); diff --git a/package.json b/package.json index 0fc6b47..6ea8572 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "verify:packages": "node scripts/verify-public-packages.mjs", "release": "pnpm build:packages && pnpm verify:packages && changeset publish", "dev": "pnpm --filter @lingva/example-next-starter dev", - "dev:docs": "pnpm --filter @lingva/docs dev" + "dev:docs": "pnpm --filter @lingva/docs dev", + "test:dependency-security": "node --test scripts/dependency-security.test.mjs" }, "keywords": [ "i18n", diff --git a/packages/core/src/guarded-approval.test.ts b/packages/core/src/guarded-approval.test.ts new file mode 100644 index 0000000..569badd --- /dev/null +++ b/packages/core/src/guarded-approval.test.ts @@ -0,0 +1,526 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; +import { + createLingvaGuardedApprovalContextPayload as contextPayload, + createLingvaGuardedApprovalPayload as approvalPayload, + parseLingvaGuardedApprovalContextResponse as parseContext, + parseLingvaGuardedApprovalResponse as parseApproval, +} from './guarded-approval'; + +const scope = { + projectId: 'project_demo', + environment: 'dev', + locator: { + entityKey: 'authoring#dev#en#hero.title#draft_one', + draftId: 'draft_one', + key: 'hero.title', + locale: 'en', + }, +}; +const operationId = '11111111-1111-4111-8111-111111111111'; +const contextToken = 'a'.repeat(64); +const command = () => ({ ...scope, contextToken, operationId }); +const context = () => ({ + ok: true, + context: { + ...scope, + actorId: 'user_demo', + contextToken, + isCurrent: true, + draft: { value: 'Hello', status: 'draft' }, + review: { revision: 0 }, + baseline: null, + permissions: { comment: true, assign: false, decide: true }, + }, +}); +const approval = () => ({ + ok: true, + result: { operationId, reviewRevision: 1, outcome: 'approved', approvedAt: '2026-10-29T12:00:00.000Z' }, +}); +const size = (value: unknown) => new TextEncoder().encode(JSON.stringify(value)).byteLength; +const invalidMessage = 'Invalid guarded approval request.'; +afterEach(() => { + vi.unstubAllGlobals(); + vi.restoreAllMocks(); +}); + +describe('guarded approval request codecs', () => { + // Wrong selectors, an actor override, generated ID or changed scope breaks these outputs. + it('builds the context wire without choosing a mutation or default target', () => { + expect(contextPayload(scope)).toEqual({ + action: 'review-context', + projectId: 'project_demo', + environment: 'dev', + locator: { + entityKey: 'authoring#dev#en#hero.title#draft_one', + draftId: 'draft_one', + key: 'hero.title', + locale: 'en', + }, + }); + }); + it('builds only an explicit guarded approve command and preserves the ID', () => { + expect(approvalPayload(command())).toEqual({ + action: 'review-mutate', + command: 'approve', + projectId: 'project_demo', + environment: 'dev', + locator: { + entityKey: 'authoring#dev#en#hero.title#draft_one', + draftId: 'draft_one', + key: 'hero.title', + locale: 'en', + }, + contextToken: 'a'.repeat(64), + operationId: '11111111-1111-4111-8111-111111111111', + }); + const uppercase = 'AAAAAAAA-AAAA-4AAA-8AAA-AAAAAAAAAAAA'; + expect(approvalPayload({ ...command(), operationId: uppercase }).operationId).toBe(uppercase); + }); + it('preserves Unicode and variant identities with the exact encoded entity key', () => { + const value = { + projectId: 'projet_é', + environment: 'prod-eu', + locator: { + entityKey: 'authoring#prod-eu#fr#h%C3%A9ro.title#draft_one', + draftId: 'draft_one', + key: 'héro.title', + locale: 'fr', + variantId: 'calme', + }, + }; + expect(contextPayload(value)).toEqual({ action: 'review-context', ...value }); + const output = contextPayload(Object.freeze({ ...scope, locator: Object.freeze({ ...scope.locator }) })); + expect(output.locator).not.toBe(scope.locator); + }); + it.each([ + undefined, + null, + [], + false, + 'synthetic-secret', + {}, + { ...scope, environment: undefined }, + { ...scope, projectId: undefined }, + ])('rejects malformed or incomplete context input without defaults: %j', (value) => { + expect(() => contextPayload(value as never)).toThrowError(new TypeError(invalidMessage)); + }); + it.each(['actorId', 'approvedBy', 'authorId', 'roles', 'token', 'url', 'headers', 'text', 'assigneeId', 'action'])( + 'rejects unsupported request %s instead of carrying it through', + (field) => { + expect(() => contextPayload({ ...scope, [field]: 'synthetic-secret' } as never)).toThrowError( + new TypeError(invalidMessage) + ); + expect(() => approvalPayload({ ...command(), [field]: 'synthetic-secret' } as never)).toThrowError( + new TypeError(invalidMessage) + ); + } + ); + it.each(['', 'Dev', 'dev.eu', ' dev', 'dev ', 'x'.repeat(101)])( + 'rejects invalid explicit environment %s', + (environment) => { + expect(() => contextPayload({ ...scope, environment })).toThrowError(new TypeError(invalidMessage)); + } + ); + it.each(['', ' project_demo', 'project_demo ', 'x'.repeat(201), 5])('rejects malformed project %s', (projectId) => { + expect(() => contextPayload({ ...scope, projectId } as never)).toThrowError(new TypeError(invalidMessage)); + }); + it.each(['entityKey', 'draftId', 'key', 'locale'])('requires a full matching locator %s', (field) => { + expect(() => contextPayload({ ...scope, locator: { ...scope.locator, [field]: undefined } } as never)).toThrowError( + new TypeError(invalidMessage) + ); + expect(() => contextPayload({ ...scope, locator: { ...scope.locator, [field]: 'different' } })).toThrowError( + new TypeError(invalidMessage) + ); + }); + it('rejects empty/unknown variants and locator metadata', () => { + expect(() => contextPayload({ ...scope, locator: { ...scope.locator, variantId: '' } })).toThrowError( + new TypeError(invalidMessage) + ); + expect(() => + contextPayload({ ...scope, locator: { ...scope.locator, actorId: 'synthetic-secret' } } as never) + ).toThrowError(new TypeError(invalidMessage)); + }); + it('rejects unknown approval locator metadata rather than silently stripping request intent', () => { + expect(() => + approvalPayload({ ...command(), locator: { ...scope.locator, actorId: 'synthetic-secret' } } as never) + ).toThrowError(new TypeError(invalidMessage)); + }); + it('honors project, environment and encoded entity-key boundary lengths', () => { + const project = { ...scope, projectId: 'p'.repeat(200) }; + expect(contextPayload(project).projectId).toHaveLength(200); + const environment = 'e'.repeat(100); + expect( + contextPayload({ + ...scope, + environment, + locator: { ...scope.locator, entityKey: `authoring#${environment}#en#hero.title#draft_one` }, + }).environment + ).toBe(environment); + const key = 'k'.repeat(1024 - 'authoring#dev#en##draft_one'.length); + const value = { ...scope, locator: { ...scope.locator, key, entityKey: `authoring#dev#en#${key}#draft_one` } }; + expect(contextPayload(value).locator.entityKey).toHaveLength(1024); + expect(() => + contextPayload({ + ...value, + locator: { ...value.locator, key: `${key}k`, entityKey: `authoring#dev#en#${key}k#draft_one` }, + }) + ).toThrowError(new TypeError(invalidMessage)); + }); + it('preserves bounded escaped/multibyte identifiers without a smaller accidental request budget', () => { + const controls = Math.floor((1024 - 'authoring#dev#en##draft_one'.length) / 3); + const input = { + ...command(), + projectId: '\0'.repeat(200), + locator: { + ...scope.locator, + key: '\0'.repeat(controls), + entityKey: `authoring#dev#en#${'%00'.repeat(controls)}#draft_one`, + variantId: '\0'.repeat(1024), + }, + }; + const output = approvalPayload(input); + expect(output.projectId).toBe(input.projectId); + expect(output.locator.variantId).toBe(input.locator.variantId); + expect(size(output)).toBeGreaterThan(10000); + expect(size(output)).toBeLessThanOrEqual(16384); + }); + it.each(['', 'A'.repeat(64), 'a'.repeat(63), 'a'.repeat(65), null])('rejects invalid opaque context %s', (token) => { + expect(() => approvalPayload({ ...command(), contextToken: token } as never)).toThrowError( + new TypeError(invalidMessage) + ); + }); + it.each([ + '', + '11111111-1111-0111-8111-111111111111', + '11111111-1111-9111-8111-111111111111', + '11111111-1111-4111-1111-111111111111', + undefined, + 4, + ])('requires an explicit supported UUID %s', (id) => { + expect(() => approvalPayload({ ...command(), operationId: id } as never)).toThrowError( + new TypeError(invalidMessage) + ); + }); + it('does not read caller accessors or serialize secret-like hooks', () => { + let calls = 0; + const input = { ...scope }; + Object.defineProperty(input, 'projectId', { + enumerable: true, + get() { + calls++; + throw new Error('synthetic-secret'); + }, + }); + expect(() => contextPayload(input)).toThrowError(new TypeError(invalidMessage)); + expect(calls).toBe(0); + }); +}); + +describe('guarded variant descriptors', () => { + it.each(['accessor', 'hidden value', 'hidden accessor'])( + 'rejects a present %s variant instead of changing the selected target', + (kind) => { + let calls = 0; + const locator = { ...scope.locator }; + Object.defineProperty(locator, 'variantId', { + enumerable: kind === 'accessor', + ...(kind === 'hidden value' + ? { value: 'calm' } + : { + get() { + calls++; + return 'calm'; + }, + }), + }); + const expected = { ...scope, locator }; + expect(() => contextPayload(expected)).toThrowError(new TypeError(invalidMessage)); + expect(() => approvalPayload({ ...command(), locator })).toThrowError(new TypeError(invalidMessage)); + expect(calls).toBe(0); + } + ); + it.each(['accessor', 'hidden value', 'hidden accessor'])( + 'rejects a base-variant response when the expected variant is a present %s', + (kind) => { + let calls = 0; + const locator = { ...scope.locator }; + Object.defineProperty(locator, 'variantId', { + enumerable: kind === 'accessor', + ...(kind === 'hidden value' + ? { value: 'calm' } + : { + get() { + calls++; + return 'calm'; + }, + }), + }); + expect(parseContext(context(), { ...scope, locator })).toBeNull(); + expect(calls).toBe(0); + } + ); + it('retains ordinary missing or undefined optional variants as the base variant', () => { + const expected = { ...scope, locator: { ...scope.locator, variantId: undefined } }; + expect(contextPayload(expected)).toEqual({ action: 'review-context', ...scope }); + expect(approvalPayload({ ...command(), locator: expected.locator }).locator).toEqual(scope.locator); + expect(parseContext(context(), expected)).toEqual(context()); + }); +}); + +describe('guarded context observations', () => { + // Missing validation, input aliasing or ignored scope differences breaks these cases. + it('returns a fresh recognized success envelope without authenticating it', () => { + const input = context(); + const parsed = parseContext(input, scope); + expect(parsed).toEqual(input); + expect(parsed).not.toBe(input); + expect(parsed?.context).not.toBe(input.context); + expect(parsed?.context.draft).not.toBe(input.context.draft); + expect(parsed?.context.locator).not.toBe(input.context.locator); + }); + it('preserves optional facts/content and strips unknown properties at every level', () => { + const input = { + ...context(), + unknown: 'synthetic-secret', + context: { + ...context().context, + unknown: { token: 'synthetic-secret' }, + locator: { ...scope.locator }, + draft: { + value: ' Hello\n🙂 ', + status: 'approved', + authorId: 'user_writer', + approvedBy: 'user_reviewer', + approvedAt: '2026-10-29T15:00:00+03:00', + unknown: 'synthetic-secret', + }, + review: { revision: 2, assigneeId: 'user_reviewer', outcome: 'approved', unknown: true }, + baseline: { revision: 'revision_one', publishId: 'publish_one', unknown: 'synthetic-secret' }, + permissions: { comment: true, assign: false, decide: true, allow: true }, + }, + }; + expect(parseContext(input, scope)).toEqual({ + ok: true, + context: { + ...context().context, + draft: { + value: ' Hello\n🙂 ', + status: 'approved', + authorId: 'user_writer', + approvedBy: 'user_reviewer', + approvedAt: '2026-10-29T15:00:00+03:00', + }, + review: { revision: 2, assigneeId: 'user_reviewer', outcome: 'approved' }, + baseline: { revision: 'revision_one', publishId: 'publish_one' }, + }, + }); + expect(JSON.stringify(parseContext(input, scope))).not.toMatch(/synthetic-secret|unknown|allow/); + }); + it('compares locator values independently of property order and retains variant identity', () => { + const input = context(); + input.context.locator = { + locale: 'en', + key: 'hero.title', + draftId: 'draft_one', + entityKey: scope.locator.entityKey, + }; + expect(parseContext(input, scope)).not.toBeNull(); + const expected = { ...scope, locator: { ...scope.locator, variantId: 'calm' } }; + expect(parseContext(input, expected)).toBeNull(); + expect(parseContext({ ...input, context: { ...input.context, locator: expected.locator } }, scope)).toBeNull(); + expect( + parseContext({ ...input, context: { ...input.context, locator: expected.locator } }, expected) + ).not.toBeNull(); + }); + it.each([ + undefined, + null, + [], + false, + {}, + { ok: false }, + { error: 'Authoring action is unsupported.' }, + { ok: true, draftId: 'draft_one', status: 'approved' }, + ])('rejects errors/legacy/missing contexts %j', (value) => { + expect(parseContext(value, scope)).toBeNull(); + }); + it.each([ + { projectId: 'other_project' }, + { environment: 'prod' }, + { actorId: '' }, + { actorId: ' actor' }, + { contextToken: 'invalid' }, + { isCurrent: 'true' }, + { draft: undefined }, + { review: undefined }, + { baseline: undefined }, + { baseline: { revision: '', publishId: 'publish_one' } }, + { permissions: undefined }, + { draft: { value: 1, status: 'draft' } }, + { draft: { value: 'Hello', status: 'rejected' } }, + { review: { revision: -1 } }, + { review: { revision: 1.5 } }, + { review: { revision: Number.MAX_SAFE_INTEGER + 1 } }, + { review: { revision: 1, outcome: 'other' } }, + { permissions: { comment: true, decide: true } }, + { permissions: { comment: true, assign: false, decide: 'true' } }, + ])('rejects malformed context facts %j without defaulting', (patch) => { + expect(parseContext({ ok: true, context: { ...context().context, ...patch } }, scope)).toBeNull(); + }); + it('retains a noncurrent all-false observation and rejects contradictory grants', () => { + const input = { + ok: true, + context: { + ...context().context, + isCurrent: false, + permissions: { comment: false, assign: false, decide: false }, + }, + }; + expect(parseContext(input, scope)).toEqual(input); + expect( + parseContext( + { ok: true, context: { ...input.context, permissions: { ...input.context.permissions, decide: true } } }, + scope + ) + ).toBeNull(); + }); + it.each([ + '2026-02-30T12:00:00Z', + '2025-02-29T12:00:00Z', + '2026-10-29T12:00:00', + '2026-10-29', + '2026-10-29T24:01:00Z', + 'synthetic-secret', + ])('rejects invalid/unzoned timestamps %s', (approvedAt) => { + expect( + parseContext( + { ok: true, context: { ...context().context, draft: { value: 'Hello', status: 'approved', approvedAt } } }, + scope + ) + ).toBeNull(); + }); + it.each(['2024-02-29T12:00:00Z', '2026-10-29T12:00:00.123456789Z', '2026-10-29T15:00:00+03:00'])( + 'preserves valid timestamp %s', + (approvedAt) => { + expect( + parseContext( + { ok: true, context: { ...context().context, draft: { value: '', status: 'approved', approvedAt } } }, + scope + )?.context.draft.approvedAt + ).toBe(approvedAt); + } + ); + it.each([ + ['x', 1], + ['🙂', 4], + ['\n', 2], + ] as const)('enforces exact serialized UTF-8 response boundary for %j', (character, cost) => { + const input = context(); + input.context.draft.value = ''; + const room = 131072 - size(input); + input.context.draft.value = character.repeat(Math.floor(room / cost)) + 'x'.repeat(room % cost); + expect(size(input)).toBe(131072); + expect(parseContext(input, scope)).not.toBeNull(); + input.context.draft.value += 'x'; + expect(parseContext(input, scope)).toBeNull(); + }); + it('counts unknown additive response data before stripping it', () => { + expect(parseContext({ ...context(), padding: 'x'.repeat(131072) }, scope)).toBeNull(); + }); + it('does not invoke accessors/toJSON or let hooks bypass size enforcement', () => { + let calls = 0; + const accessor = context(); + Object.defineProperty(accessor, 'unknown', { + enumerable: true, + get() { + calls++; + throw new Error('synthetic-secret'); + }, + }); + expect(parseContext(accessor, scope)).toBeNull(); + const oversized = context(); + oversized.context.draft.value = 'x'.repeat(131072); + Object.defineProperty(oversized, 'toJSON', { + value() { + calls++; + return {}; + }, + }); + expect(parseContext(oversized, scope)).toBeNull(); + expect(calls).toBe(0); + }); + it('handles cycles/huge arrays without recursion and permits repeated ordinary references', () => { + const cyclic: Record = { ...context() }; + cyclic.cycle = cyclic; + expect(parseContext(cyclic, scope)).toBeNull(); + expect(parseContext({ ...context(), extra: new Array(1_000_000_000) }, scope)).toBeNull(); + const shared = { note: 'synthetic' }; + expect(parseContext({ ...context(), extraA: shared, extraB: shared }, scope)).toEqual(context()); + }); + it('rejects non-data required fields and malformed expected scope without leaking exceptions', () => { + const input = context(); + Object.defineProperty(input.context, 'actorId', { value: 'user_demo', enumerable: false }); + expect(parseContext(input, scope)).toBeNull(); + expect(parseContext(context(), { ...scope, projectId: ' synthetic-secret ' })).toBeNull(); + expect(parseContext(context(), null as never)).toBeNull(); + }); +}); + +describe('guarded approval acknowledgments', () => { + it('returns a sanitized approval acknowledgment correlated to the exact captured ID', () => { + expect( + parseApproval( + { + ...approval(), + unknown: 'synthetic-secret', + result: { ...approval().result, actorId: 'not-attested', targetId: 'not-attested' }, + }, + operationId + ) + ).toEqual(approval()); + const uppercase = 'AAAAAAAA-AAAA-4AAA-8AAA-AAAAAAAAAAAA'; + expect( + parseApproval({ ok: true, result: { ...approval().result, operationId: uppercase } }, uppercase)?.result + .operationId + ).toBe(uppercase); + expect( + parseApproval({ ok: true, result: { ...approval().result, operationId: uppercase } }, uppercase.toLowerCase()) + ).toBeNull(); + }); + it.each([ + { operationId: '22222222-2222-4222-8222-222222222222' }, + { reviewRevision: 0 }, + { reviewRevision: -1 }, + { reviewRevision: Number.MAX_SAFE_INTEGER + 1 }, + { outcome: undefined }, + { outcome: 'rejected' }, + { approvedAt: undefined }, + { approvedAt: '2026-02-30T00:00:00Z' }, + ])('rejects uncorrelated or invalid acknowledgment %j', (patch) => { + expect(parseApproval({ ok: true, result: { ...approval().result, ...patch } }, operationId)).toBeNull(); + }); + it.each([undefined, null, [], {}, { ok: false }, { ok: true, draftId: 'draft_one', status: 'approved' }])( + 'does not fabricate a receipt from error/legacy data %j', + (value) => { + expect(parseApproval(value, operationId)).toBeNull(); + } + ); + it('validates expected identity and the full acknowledgment byte budget', () => { + expect(parseApproval(approval(), 'synthetic-secret')).toBeNull(); + expect(parseApproval({ ...approval(), padding: '🙂'.repeat(32768) }, operationId)).toBeNull(); + }); + it('imports and executes with no network, ambient time, random IDs or browser state', async () => { + const fail = () => { + throw new Error('unexpected ambient access'); + }; + vi.stubGlobal('fetch', fail); + vi.stubGlobal('localStorage', { getItem: fail, setItem: fail }); + vi.stubGlobal('crypto', { randomUUID: fail }); + vi.spyOn(Date, 'now').mockImplementation(fail); + vi.resetModules(); + const codec = await import('./guarded-approval'); + expect(codec.createLingvaGuardedApprovalPayload(command()).operationId).toBe(operationId); + expect(codec.parseLingvaGuardedApprovalContextResponse(context(), scope)).toEqual(context()); + expect(codec.parseLingvaGuardedApprovalResponse(approval(), operationId)).toEqual(approval()); + }); +}); diff --git a/packages/core/src/guarded-approval.ts b/packages/core/src/guarded-approval.ts new file mode 100644 index 0000000..e102ca0 --- /dev/null +++ b/packages/core/src/guarded-approval.ts @@ -0,0 +1,384 @@ +/** Portable data codecs only. Parsing observations never authenticates or authorizes a caller. */ +export const LINGVA_GUARDED_APPROVAL_ACTIONS = Object.freeze({ + context: 'review-context', + approve: 'review-mutate', +} as const); +export const LINGVA_GUARDED_APPROVAL_REQUEST_MAX_BYTES = 16 * 1024; +export const LINGVA_GUARDED_APPROVAL_RESPONSE_MAX_BYTES = 128 * 1024; +const APPROVE_COMMAND = 'approve'; +const APPROVAL_OUTCOME = 'approved'; +const DRAFT_STATUSES = { draft: 'draft', approved: APPROVAL_OUTCOME } as const; +const INVALID_REQUEST = 'Invalid guarded approval request.'; +const CONTEXT_TOKEN = /^[a-f0-9]{64}$/; +const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i; +const OUTCOMES = [APPROVAL_OUTCOME, 'changes-requested', 'rejected'] as const; +const LOCATOR_FIELDS = ['entityKey', 'draftId', 'key', 'locale', 'variantId']; +const SCOPE_FIELDS = ['projectId', 'environment', 'locator']; +const encoder = new TextEncoder(); + +export interface LingvaGuardedApprovalLocator { + entityKey: string; + draftId: string; + key: string; + locale: string; + variantId?: string; +} +export interface LingvaGuardedApprovalScope { + projectId: string; + environment: string; + locator: LingvaGuardedApprovalLocator; +} +export interface LingvaGuardedApprovalCommand extends LingvaGuardedApprovalScope { + contextToken: string; + operationId: string; +} +export interface LingvaGuardedApprovalContextPayload extends LingvaGuardedApprovalScope { + action: typeof LINGVA_GUARDED_APPROVAL_ACTIONS.context; +} +export interface LingvaGuardedApprovalPayload extends LingvaGuardedApprovalCommand { + action: typeof LINGVA_GUARDED_APPROVAL_ACTIONS.approve; + command: typeof APPROVE_COMMAND; +} +export type LingvaGuardedApprovalOutcome = (typeof OUTCOMES)[number]; +export interface LingvaGuardedApprovalContext extends LingvaGuardedApprovalScope { + actorId: string; + contextToken: string; + isCurrent: boolean; + draft: { value: string; status: 'draft' | 'approved'; authorId?: string; approvedBy?: string; approvedAt?: string }; + review: { revision: number; assigneeId?: string; outcome?: LingvaGuardedApprovalOutcome }; + baseline: { revision: string; publishId: string } | null; + permissions: { comment: boolean; assign: boolean; decide: boolean }; +} +export interface LingvaGuardedApprovalContextResponse { + ok: true; + context: LingvaGuardedApprovalContext; +} +export interface LingvaGuardedApprovalResult { + operationId: string; + reviewRevision: number; + outcome: typeof APPROVAL_OUTCOME; + approvedAt: string; +} +export interface LingvaGuardedApprovalResponse { + ok: true; + result: LingvaGuardedApprovalResult; +} + +function object(value: unknown): value is object { + if (value === null || typeof value !== 'object' || Array.isArray(value)) return false; + const prototype = Object.getPrototypeOf(value); + // Ordinary JSON objects may originate in another realm; their root prototype still has no parent. + return prototype === null || Object.getPrototypeOf(prototype) === null; +} +function data(value: object, key: string): unknown { + const descriptor = Object.getOwnPropertyDescriptor(value, key); + return descriptor?.enumerable && Object.hasOwn(descriptor, 'value') ? descriptor.value : undefined; +} +function only(value: object, fields: readonly string[]): boolean { + return ( + Object.getOwnPropertySymbols(value).length === 0 && + Object.getOwnPropertyNames(value).every((key) => fields.includes(key)) + ); +} +function string(value: unknown, maximum = 1024): value is string { + return typeof value === 'string' && value.length > 0 && value.length <= maximum && value.trim() === value; +} +function integer(value: unknown): value is number { + return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0; +} +function uuid(value: unknown): value is string { + return typeof value === 'string' && UUID.test(value); +} +function token(value: unknown): value is string { + return typeof value === 'string' && CONTEXT_TOKEN.test(value); +} +function outcome(value: unknown): value is LingvaGuardedApprovalOutcome { + return typeof value === 'string' && (OUTCOMES as readonly string[]).includes(value); +} +function timestamp(value: unknown): value is string { + if (!string(value)) return false; + const match = /^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d+)?(Z|[+-](\d{2}):(\d{2}))$/.exec( + value + ); + if (!match) return false; + const year = Number(match[1]), + month = Number(match[2]), + day = Number(match[3]); + const leap = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + const days = [31, leap ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + return ( + month >= 1 && + month <= 12 && + day >= 1 && + day <= days[month - 1]! && + Number(match[4]) <= 23 && + Number(match[5]) <= 59 && + Number(match[6]) <= 59 && + (match[7] === 'Z' || (Number(match[8]) <= 23 && Number(match[9]) <= 59)) && + Number.isFinite(Date.parse(value)) + ); +} + +/** Counts JSON data without executing toJSON, getters or caller iterators. */ +function fitsJson(value: unknown, maximum: number): boolean { + const stack: ({ value: unknown } | { exit: object })[] = [{ value }]; + const active = new WeakSet(); + let bytes = 0; + const addString = (text: string) => { + if (text.length > maximum) return false; + bytes += encoder.encode(JSON.stringify(text)).byteLength; + return bytes <= maximum; + }; + while (stack.length) { + const frame = stack.pop()!; + if ('exit' in frame) { + active.delete(frame.exit); + continue; + } + const current = frame.value; + if (current === null) bytes += 4; + else if (typeof current === 'string') { + if (!addString(current)) return false; + } else if (typeof current === 'boolean') bytes += current ? 4 : 5; + else if (typeof current === 'number' && Number.isFinite(current)) bytes += JSON.stringify(current).length; + else if (typeof current === 'object') { + if (active.has(current)) return false; + active.add(current); + stack.push({ exit: current }); + const children: unknown[] = []; + if (Array.isArray(current)) { + const length = data(current, 'length') ?? Object.getOwnPropertyDescriptor(current, 'length')?.value; + if (!integer(length) || length > maximum) return false; + bytes += 2 + Math.max(0, length - 1); + if (bytes > maximum) return false; + for (let index = 0; index < length; index++) { + const descriptor = Object.getOwnPropertyDescriptor(current, String(index)); + if (descriptor && !Object.hasOwn(descriptor, 'value')) return false; + children.push(descriptor?.value === undefined ? null : descriptor.value); + } + } else { + if (!object(current)) return false; + bytes += 2; + let entries = 0; + for (const key of Object.keys(current)) { + const descriptor = Object.getOwnPropertyDescriptor(current, key); + if (!descriptor || !Object.hasOwn(descriptor, 'value')) return false; + if (descriptor.value === undefined) continue; + if (entries++) bytes++; + if (!addString(key)) return false; + bytes++; + children.push(descriptor.value); + } + } + for (let index = children.length - 1; index >= 0; index--) stack.push({ value: children[index] }); + } else return false; + if (bytes > maximum) return false; + } + return true; +} + +function scope(value: unknown, strict: boolean, strictLocator = strict): LingvaGuardedApprovalScope | null { + if (!object(value) || (strict && !only(value, SCOPE_FIELDS))) return null; + const projectId = data(value, 'projectId'), + environment = data(value, 'environment'), + locator = data(value, 'locator'); + if ( + !string(projectId, 200) || + !string(environment, 100) || + !/^[a-z0-9][a-z0-9-]*$/.test(environment) || + !object(locator) || + (strictLocator && !only(locator, LOCATOR_FIELDS)) + ) + return null; + const variantDescriptor = Object.getOwnPropertyDescriptor(locator, 'variantId'); + if (variantDescriptor && (!variantDescriptor.enumerable || !Object.hasOwn(variantDescriptor, 'value'))) return null; + const entityKey = data(locator, 'entityKey'), + draftId = data(locator, 'draftId'); + const key = data(locator, 'key'), + locale = data(locator, 'locale'), + variantId = data(locator, 'variantId'); + if ( + !string(entityKey) || + !string(draftId) || + !string(key) || + !string(locale) || + (variantId !== undefined && !string(variantId)) + ) + return null; + if (entityKey !== ['authoring', environment, locale, key, draftId].map(encodeURIComponent).join('#')) return null; + return { + projectId, + environment, + locator: { entityKey, draftId, key, locale, ...(variantId !== undefined ? { variantId } : {}) }, + }; +} +function sameScope(a: LingvaGuardedApprovalScope, b: LingvaGuardedApprovalScope): boolean { + return ( + a.projectId === b.projectId && + a.environment === b.environment && + LOCATOR_FIELDS.every( + (key) => + a.locator[key as keyof LingvaGuardedApprovalLocator] === b.locator[key as keyof LingvaGuardedApprovalLocator] + ) + ); +} + +export function createLingvaGuardedApprovalContextPayload( + input: LingvaGuardedApprovalScope +): LingvaGuardedApprovalContextPayload { + try { + const selected = scope(input, true); + if (selected) { + const payload = { action: LINGVA_GUARDED_APPROVAL_ACTIONS.context, ...selected }; + if (fitsJson(payload, LINGVA_GUARDED_APPROVAL_REQUEST_MAX_BYTES)) return payload; + } + } catch { + /* Invalid caller data never escapes through diagnostics. */ + } + throw new TypeError(INVALID_REQUEST); +} +export function createLingvaGuardedApprovalPayload(input: LingvaGuardedApprovalCommand): LingvaGuardedApprovalPayload { + try { + if (object(input) && only(input, [...SCOPE_FIELDS, 'contextToken', 'operationId'])) { + const selected = scope(input, false, true), + contextToken = data(input, 'contextToken'), + operationId = data(input, 'operationId'); + if (selected && token(contextToken) && uuid(operationId)) { + const payload: LingvaGuardedApprovalPayload = { + action: LINGVA_GUARDED_APPROVAL_ACTIONS.approve, + command: APPROVE_COMMAND, + ...selected, + contextToken, + operationId, + }; + if (fitsJson(payload, LINGVA_GUARDED_APPROVAL_REQUEST_MAX_BYTES)) return payload; + } + } + } catch { + /* Static failure only; no caller values. */ + } + throw new TypeError(INVALID_REQUEST); +} + +export function parseLingvaGuardedApprovalContextResponse( + value: unknown, + expectedScope: LingvaGuardedApprovalScope +): LingvaGuardedApprovalContextResponse | null { + try { + if (!fitsJson(value, LINGVA_GUARDED_APPROVAL_RESPONSE_MAX_BYTES) || !object(value) || data(value, 'ok') !== true) + return null; + const raw = data(value, 'context'), + expected = scope(expectedScope, false), + observed = scope(raw, false); + if (!object(raw) || !expected || !observed || !sameScope(observed, expected)) return null; + const actorId = data(raw, 'actorId'), + contextToken = data(raw, 'contextToken'), + isCurrent = data(raw, 'isCurrent'); + const draft = data(raw, 'draft'), + review = data(raw, 'review'), + baseline = data(raw, 'baseline'), + permissions = data(raw, 'permissions'); + if ( + !string(actorId) || + !token(contextToken) || + typeof isCurrent !== 'boolean' || + !object(draft) || + !object(review) || + !object(permissions) + ) + return null; + const text = data(draft, 'value'), + status = data(draft, 'status'), + authorId = data(draft, 'authorId'); + const approvedBy = data(draft, 'approvedBy'), + approvedAt = data(draft, 'approvedAt'); + const revision = data(review, 'revision'), + assigneeId = data(review, 'assigneeId'), + reviewOutcome = data(review, 'outcome'); + const comment = data(permissions, 'comment'), + assign = data(permissions, 'assign'), + decide = data(permissions, 'decide'); + if ( + typeof text !== 'string' || + (status !== DRAFT_STATUSES.draft && status !== DRAFT_STATUSES.approved) || + (authorId !== undefined && !string(authorId)) || + (approvedBy !== undefined && !string(approvedBy)) || + (approvedAt !== undefined && !timestamp(approvedAt)) || + !integer(revision) || + (assigneeId !== undefined && !string(assigneeId)) || + (reviewOutcome !== undefined && !outcome(reviewOutcome)) || + typeof comment !== 'boolean' || + typeof assign !== 'boolean' || + typeof decide !== 'boolean' || + (!isCurrent && (comment || assign || decide)) + ) + return null; + let projectedBaseline: LingvaGuardedApprovalContext['baseline'] = null; + if (baseline !== null) { + if (!object(baseline)) return null; + const baseRevision = data(baseline, 'revision'), + publishId = data(baseline, 'publishId'); + if (!string(baseRevision) || !string(publishId)) return null; + projectedBaseline = { revision: baseRevision, publishId }; + } + return { + ok: true, + context: { + ...observed, + actorId, + contextToken, + isCurrent, + draft: { + value: text, + status, + ...(authorId !== undefined ? { authorId } : {}), + ...(approvedBy !== undefined ? { approvedBy } : {}), + ...(approvedAt !== undefined ? { approvedAt } : {}), + }, + review: { + revision, + ...(assigneeId !== undefined ? { assigneeId } : {}), + ...(reviewOutcome !== undefined ? { outcome: reviewOutcome } : {}), + }, + baseline: projectedBaseline, + permissions: { comment, assign, decide }, + }, + }; + } catch { + return null; + } +} +export function parseLingvaGuardedApprovalResponse( + value: unknown, + expectedOperationId: string +): LingvaGuardedApprovalResponse | null { + try { + if ( + !uuid(expectedOperationId) || + !fitsJson(value, LINGVA_GUARDED_APPROVAL_RESPONSE_MAX_BYTES) || + !object(value) || + data(value, 'ok') !== true + ) + return null; + const result = data(value, 'result'); + if (!object(result)) return null; + const operationId = data(result, 'operationId'), + reviewRevision = data(result, 'reviewRevision'); + const resultOutcome = data(result, 'outcome'), + approvedAt = data(result, 'approvedAt'); + if ( + operationId !== expectedOperationId || + !integer(reviewRevision) || + reviewRevision < 1 || + resultOutcome !== APPROVAL_OUTCOME || + !timestamp(approvedAt) + ) + return null; + return { + ok: true, + result: { operationId: expectedOperationId, reviewRevision, outcome: APPROVAL_OUTCOME, approvedAt }, + }; + } catch { + return null; + } +} diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index b3e9eb6..c0e7bb1 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -228,6 +228,27 @@ export type { LingvaAuthRateLimitPayload, LingvaAuthRateLimitResponse, } from './auth-rate-limit'; +export { + LINGVA_GUARDED_APPROVAL_ACTIONS, + LINGVA_GUARDED_APPROVAL_REQUEST_MAX_BYTES, + LINGVA_GUARDED_APPROVAL_RESPONSE_MAX_BYTES, + createLingvaGuardedApprovalContextPayload, + createLingvaGuardedApprovalPayload, + parseLingvaGuardedApprovalContextResponse, + parseLingvaGuardedApprovalResponse, +} from './guarded-approval'; +export type { + LingvaGuardedApprovalLocator, + LingvaGuardedApprovalScope, + LingvaGuardedApprovalCommand, + LingvaGuardedApprovalContextPayload, + LingvaGuardedApprovalPayload, + LingvaGuardedApprovalOutcome, + LingvaGuardedApprovalContext, + LingvaGuardedApprovalContextResponse, + LingvaGuardedApprovalResult, + LingvaGuardedApprovalResponse, +} from './guarded-approval'; export { LINGVA_DEFAULT_AUTHORING_ENVIRONMENT, LINGVA_MAX_AUTHORING_VALUE_LENGTH, diff --git a/packages/core/test/guarded-approval-consumer.cjs b/packages/core/test/guarded-approval-consumer.cjs new file mode 100644 index 0000000..34ac9ee --- /dev/null +++ b/packages/core/test/guarded-approval-consumer.cjs @@ -0,0 +1,58 @@ +'use strict'; + +const assert = require('node:assert/strict'); + +module.exports = function verifyGuardedApproval(core) { + for (const name of [ + 'createLingvaGuardedApprovalContextPayload', + 'createLingvaGuardedApprovalPayload', + 'parseLingvaGuardedApprovalContextResponse', + 'parseLingvaGuardedApprovalResponse', + ]) + assert.equal(typeof core[name], 'function', `Missing packed export ${name}.`); + const scope = { + projectId: 'project_demo', + environment: 'dev', + locator: { + entityKey: 'authoring#dev#en#hero.title#draft_one', + draftId: 'draft_one', + key: 'hero.title', + locale: 'en', + }, + }; + const operationId = '11111111-1111-4111-8111-111111111111'; + assert.deepEqual(core.createLingvaGuardedApprovalContextPayload(scope), { + action: 'review-context', + ...scope, + }); + assert.deepEqual(core.createLingvaGuardedApprovalPayload({ ...scope, contextToken: 'a'.repeat(64), operationId }), { + action: 'review-mutate', + command: 'approve', + ...scope, + contextToken: 'a'.repeat(64), + operationId, + }); + const context = { + ok: true, + context: { + ...scope, + actorId: 'user_demo', + contextToken: 'a'.repeat(64), + isCurrent: true, + draft: { value: 'Hello', status: 'draft' }, + review: { revision: 0 }, + baseline: null, + permissions: { comment: true, assign: false, decide: true }, + }, + }; + assert.deepEqual(core.parseLingvaGuardedApprovalContextResponse(context, scope), context); + const response = { + ok: true, + result: { operationId, reviewRevision: 1, outcome: 'approved', approvedAt: '2026-10-29T12:00:00Z' }, + }; + assert.deepEqual(core.parseLingvaGuardedApprovalResponse(response, operationId), response); + assert.equal( + core.parseLingvaGuardedApprovalResponse({ ok: true, draftId: 'draft_one', status: 'approved' }, operationId), + null + ); +}; diff --git a/packages/core/test/guarded-approval-consumer.types.ts b/packages/core/test/guarded-approval-consumer.types.ts new file mode 100644 index 0000000..a7dd617 --- /dev/null +++ b/packages/core/test/guarded-approval-consumer.types.ts @@ -0,0 +1,41 @@ +import { + createLingvaGuardedApprovalContextPayload, + createLingvaGuardedApprovalPayload, + parseLingvaGuardedApprovalContextResponse, + parseLingvaGuardedApprovalResponse, + type LingvaGuardedApprovalScope, + type LingvaGuardedApprovalContextPayload, + type LingvaGuardedApprovalPayload, + type LingvaGuardedApprovalContextResponse, + type LingvaGuardedApprovalResponse, +} from '@lingva/core'; + +const guardedScope: LingvaGuardedApprovalScope = { + projectId: 'project_demo', + environment: 'dev', + locator: { + entityKey: 'authoring#dev#en#hero.title#draft_one', + draftId: 'draft_one', + key: 'hero.title', + locale: 'en', + }, +}; +export const guardedContextPayload: LingvaGuardedApprovalContextPayload = + createLingvaGuardedApprovalContextPayload(guardedScope); +export const guardedApprovalPayload: LingvaGuardedApprovalPayload = createLingvaGuardedApprovalPayload({ + ...guardedScope, + contextToken: 'a'.repeat(64), + operationId: '11111111-1111-4111-8111-111111111111', +}); +export const guardedContextObservation: LingvaGuardedApprovalContextResponse | null = + parseLingvaGuardedApprovalContextResponse({}, guardedScope); +export const guardedApprovalObservation: LingvaGuardedApprovalResponse | null = parseLingvaGuardedApprovalResponse( + {}, + guardedApprovalPayload.operationId +); + +// @ts-expect-error Actor attribution is not a guarded request field. +createLingvaGuardedApprovalContextPayload({ ...guardedScope, actorId: 'not-a-request-field' }); +// @ts-expect-error Guarded approval cannot carry a caller-approved identity. +createLingvaGuardedApprovalPayload({ ...guardedApprovalPayload, approvedBy: 'not-a-request-field' }); +export const guardedOutcome = (response: LingvaGuardedApprovalResponse): 'approved' => response.result.outcome; diff --git a/patches/deepmerge@4.3.1.patch b/patches/deepmerge@4.3.1.patch new file mode 100644 index 0000000..a53e8ec --- /dev/null +++ b/patches/deepmerge@4.3.1.patch @@ -0,0 +1,81 @@ +diff --git a/dist/cjs.js b/dist/cjs.js +index 7c36cbdd06cc22c92d590be3f87a08a91ca06b40..09000747cee35bdcc0bb1367d9573317d2e8d30c 100644 +--- a/dist/cjs.js ++++ b/dist/cjs.js +@@ -69,9 +69,13 @@ function propertyIsOnObject(object, property) { + } + } + ++function keyIsForbidden(key) { ++ return key === '__proto__' || key === 'constructor' || key === 'prototype' ++} ++ + // Protects from prototype poisoning and unexpected merging up the prototype chain. + function propertyIsUnsafe(target, key) { +- return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, ++ return keyIsForbidden(key) || propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, + && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain, + && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable. + } +@@ -80,6 +84,7 @@ function mergeObject(target, source, options) { + var destination = {}; + if (options.isMergeableObject(target)) { + getKeys(target).forEach(function(key) { ++ if (keyIsForbidden(key)) return + destination[key] = cloneUnlessOtherwiseSpecified(target[key], options); + }); + } +diff --git a/dist/umd.js b/dist/umd.js +index 4071e7c56ec8e5273fe166f6e723ac460fab8b72..fb6178349ea2fe2ed0eb00a95be4436b12f31814 100644 +--- a/dist/umd.js ++++ b/dist/umd.js +@@ -73,9 +73,13 @@ + } + } + ++ function keyIsForbidden(key) { ++ return key === '__proto__' || key === 'constructor' || key === 'prototype' ++ } ++ + // Protects from prototype poisoning and unexpected merging up the prototype chain. + function propertyIsUnsafe(target, key) { +- return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, ++ return keyIsForbidden(key) || propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, + && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain, + && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable. + } +@@ -84,6 +88,7 @@ + var destination = {}; + if (options.isMergeableObject(target)) { + getKeys(target).forEach(function(key) { ++ if (keyIsForbidden(key)) return + destination[key] = cloneUnlessOtherwiseSpecified(target[key], options); + }); + } +diff --git a/index.js b/index.js +index 77968aed5d456cccc294f60912ef381fa1e52a7b..b34f5f66d10e5a22a503549d272156c4a95a18de 100644 +--- a/index.js ++++ b/index.js +@@ -44,9 +44,13 @@ function propertyIsOnObject(object, property) { + } + } + ++function keyIsForbidden(key) { ++ return key === '__proto__' || key === 'constructor' || key === 'prototype' ++} ++ + // Protects from prototype poisoning and unexpected merging up the prototype chain. + function propertyIsUnsafe(target, key) { +- return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, ++ return keyIsForbidden(key) || propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, + && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain, + && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable. + } +@@ -55,6 +59,7 @@ function mergeObject(target, source, options) { + var destination = {} + if (options.isMergeableObject(target)) { + getKeys(target).forEach(function(key) { ++ if (keyIsForbidden(key)) return + destination[key] = cloneUnlessOtherwiseSpecified(target[key], options) + }) + } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1bc3af0..08b4340 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -183,7 +183,7 @@ overrides: postcss-selector-parser@>=7.0.0 <7.1.6: 7.1.6 '@hono/node-server': 1.19.13 '@babel/plugin-transform-modules-systemjs': 7.29.4 - fast-uri: 3.1.8 + fast-uri: 3.1.9 fast-xml-parser: 5.7.0 follow-redirects: 1.16.0 lodash-es: 4.18.0 @@ -191,19 +191,19 @@ overrides: js-cookie: 3.0.7 postcss: 8.5.28 qs: 6.16.0 - serialize-javascript: 7.0.5 + serialize-javascript: 7.1.3 sharp: 0.35.5 source-map-js: 1.2.2 shell-quote: 1.12.0 simple-git: 4.0.2 uuid: 14.0.0 - vite: 8.1.5 + vite: 8.1.6 webpack-dev-server: 5.2.6 ip-address@<=10.1.0: '>=10.1.1' joi@<17.13.4: '>=17.13.4' esbuild@>=0.27.3 <0.28.1: '>=0.28.1' - vite@>=8.0.0 <=8.0.15: '>=8.0.16' - launch-editor@<=2.14.0: '>=2.14.1' + vite@>=8.0.0 <=8.1.5: 8.1.6 + launch-editor@<=2.14.1: 2.14.2 '@babel/core@<=7.29.0': 7.29.6 hono@<4.12.25: '>=4.12.25' webpack-dev-server@<=5.2.5: 5.2.6 @@ -221,8 +221,14 @@ overrides: brace-expansion@>=3.0.0 <5.0.12: 5.0.12 '@humanfs/node@<0.16.8': 0.16.8 cookie@<0.7.0: 0.7.2 + zod@>=4.0.0 <4.6.6: 4.6.6 + undici@>=8.0.0 <8.12.2: 8.12.2 + seroval@<1.6.11: 1.6.11 + '@emnapi/core@2.0.0-alpha.3': 2.0.0-alpha.4 + '@emnapi/runtime@2.0.0-alpha.3': 2.0.0-alpha.4 patchedDependencies: + deepmerge@4.3.1: 73337f6841d39db76e5b7e158a6fee3e464226990a0167022047e9f776864239 node-forge@1.4.0: 4fa957cddb4b4601a48b535053d0fec7ed013f9d075660a38365f285fc830fe0 importers: @@ -365,7 +371,7 @@ importers: devDependencies: '@angular/build': specifier: ^22.1.8 - version: 22.1.8(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6)(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3)))(@types/node@25.5.2)(chokidar@5.0.0)(jiti@2.7.0)(postcss@8.5.28)(rollup@4.63.5)(supports-color@10.2.2)(tailwindcss@4.2.2)(terser@5.51.2)(tslib@2.8.1)(tsx@4.21.0)(typescript@6.0.3)(vitest@4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(yaml@2.9.1) + version: 22.1.8(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6)(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3)))(@types/node@25.5.2)(chokidar@5.0.0)(jiti@2.7.0)(postcss@8.5.28)(rollup@4.63.5)(supports-color@10.2.2)(tailwindcss@4.2.2)(terser@5.51.2)(tslib@2.8.1)(tsx@4.21.0)(typescript@6.0.3)(vitest@4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(yaml@2.9.1) '@angular/cli': specifier: ^22.1.8 version: 22.1.8(@types/node@25.5.2)(chokidar@5.0.0)(supports-color@10.2.2) @@ -395,7 +401,7 @@ importers: version: link:../../packages/react '@vitejs/plugin-react': specifier: ^5.1.1 - version: 5.2.0(supports-color@10.2.2)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + version: 5.2.0(supports-color@10.2.2)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) react: specifier: ^19.2.3 version: 19.2.4 @@ -406,8 +412,8 @@ importers: specifier: ^5.9.3 version: 5.9.3 vite: - specifier: '>=8.0.16' - version: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + specifier: 8.1.6 + version: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) devDependencies: '@lingva/cli': specifier: workspace:* @@ -437,8 +443,8 @@ importers: specifier: workspace:* version: link:../../packages/react next: - specifier: 16.3.8 - version: 16.3.8(@babel/core@8.0.1)(@playwright/test@1.59.1)(@types/node@25.5.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.101.0) + specifier: 16.4.1 + version: 16.4.1(@babel/core@8.0.1)(@playwright/test@1.59.1)(@types/node@25.5.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.101.0) react: specifier: ^19.2.4 version: 19.2.4 @@ -483,11 +489,11 @@ importers: specifier: workspace:* version: link:../../packages/vue nuxt: - specifier: 4.5.2 - version: 4.5.2(6e9ac995c1c9925a5d42c915eaaff171) + specifier: 4.6.2 + version: 4.6.2(90d1a56eb34908c1d8a80da2f607020f) vue: specifier: ^3.5.39 - version: 3.5.42(typescript@5.9.3) + version: 3.5.44(typescript@5.9.3) devDependencies: '@babel/core': specifier: 7.29.6 @@ -518,13 +524,13 @@ importers: version: link:../../packages/svelte '@sveltejs/vite-plugin-svelte': specifier: ^7.3.0 - version: 7.3.1(svelte@5.57.0(@typescript-eslint/types@8.58.0))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + version: 7.3.1(svelte@5.57.3(@typescript-eslint/types@8.58.0))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) svelte: specifier: ^5.57.0 - version: 5.57.0(@typescript-eslint/types@8.58.0) + version: 5.57.3(@typescript-eslint/types@8.58.0) vite: - specifier: 8.1.5 - version: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + specifier: 8.1.6 + version: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) devDependencies: '@lingva/cli': specifier: workspace:* @@ -537,7 +543,7 @@ importers: version: 9.39.4(jiti@2.7.0)(supports-color@10.2.2) svelte-check: specifier: ^4.3.4 - version: 4.7.6(picomatch@4.0.7)(svelte@5.57.0(@typescript-eslint/types@8.58.0))(typescript@5.9.3) + version: 4.7.6(picomatch@4.0.7)(svelte@5.57.3(@typescript-eslint/types@8.58.0))(typescript@5.9.3) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -551,11 +557,11 @@ importers: specifier: workspace:* version: link:../../packages/svelte '@sveltejs/kit': - specifier: 2.70.3 - version: 2.70.3(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.0(@typescript-eslint/types@8.58.0))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(svelte@5.57.0(@typescript-eslint/types@8.58.0))(typescript@5.9.3)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + specifier: 3.0.0 + version: 3.0.0(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.3(@typescript-eslint/types@8.58.0))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(svelte@5.57.3(@typescript-eslint/types@8.58.0))(typescript@6.0.3)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) svelte: - specifier: ^5.57.0 - version: 5.57.0(@typescript-eslint/types@8.58.0) + specifier: ^5.57.1 + version: 5.57.3(@typescript-eslint/types@8.58.0) devDependencies: '@lingva/cli': specifier: workspace:* @@ -564,23 +570,23 @@ importers: specifier: workspace:* version: link:../../packages/eslint-config '@sveltejs/adapter-auto': - specifier: 7.0.1 - version: 7.0.1(@sveltejs/kit@2.70.3(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.0(@typescript-eslint/types@8.58.0))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(svelte@5.57.0(@typescript-eslint/types@8.58.0))(typescript@5.9.3)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))) + specifier: 8.0.0 + version: 8.0.0(@sveltejs/kit@3.0.0(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.3(@typescript-eslint/types@8.58.0))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(svelte@5.57.3(@typescript-eslint/types@8.58.0))(typescript@6.0.3)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))) '@sveltejs/vite-plugin-svelte': specifier: 7.3.1 - version: 7.3.1(svelte@5.57.0(@typescript-eslint/types@8.58.0))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + version: 7.3.1(svelte@5.57.3(@typescript-eslint/types@8.58.0))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) eslint: specifier: ^9.39.2 version: 9.39.4(jiti@2.7.0)(supports-color@10.2.2) svelte-check: specifier: ^4.3.4 - version: 4.7.6(picomatch@4.0.7)(svelte@5.57.0(@typescript-eslint/types@8.58.0))(typescript@5.9.3) + version: 4.7.6(picomatch@4.0.7)(svelte@5.57.3(@typescript-eslint/types@8.58.0))(typescript@6.0.3) typescript: - specifier: ^5.9.3 - version: 5.9.3 + specifier: 6.0.3 + version: 6.0.3 vite: - specifier: 8.1.5 - version: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + specifier: 8.1.6 + version: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) examples/vue-starter: dependencies: @@ -592,16 +598,16 @@ importers: version: link:../../packages/vue '@vitejs/plugin-vue': specifier: ^6.0.8 - version: 6.0.8(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3)) + version: 6.0.10(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3)) typescript: specifier: ^5.9.3 version: 5.9.3 vite: - specifier: '>=8.0.16' - version: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + specifier: 8.1.6 + version: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) vue: specifier: ^3.5.13 - version: 3.5.42(typescript@5.9.3) + version: 3.5.44(typescript@5.9.3) devDependencies: '@lingva/cli': specifier: workspace:* @@ -708,11 +714,11 @@ importers: specifier: ^5.9.3 version: 5.9.3 vite: - specifier: 8.1.5 - version: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + specifier: 8.1.6 + version: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) vitest: specifier: ^4.0.18 - version: 4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@5.9.3))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + version: 4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@5.9.3))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) packages/docusaurus: dependencies: @@ -971,7 +977,7 @@ importers: version: 9.39.4(jiti@2.7.0)(supports-color@10.2.2) svelte: specifier: ^5.57.0 - version: 5.57.0(@typescript-eslint/types@8.58.0) + version: 5.57.3(@typescript-eslint/types@8.58.0) tsdown: specifier: ^0.21.0 version: 0.21.7(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(typescript@5.9.3) @@ -1016,7 +1022,7 @@ importers: version: 5.9.3 vue: specifier: ^3.5.42 - version: 3.5.42(typescript@5.9.3) + version: 3.5.44(typescript@5.9.3) packages: @@ -1390,6 +1396,10 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.29.11': + resolution: {integrity: sha512-snZbO7MEDOof+hvNa97EjEY7qD7h2kwvQr5AJC3ZhQudKW5dnej6k3kP9NQV88hJwaS8vDqRLFo9rivLEhle2g==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.29.7': resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} @@ -1438,6 +1448,11 @@ packages: resolution: {integrity: sha512-fQtPOXjYOYv85PIdwotp2TJGVYOycX0PQq+l844fFAxOULtBy8BVF35GyeueX0r4KvDthqPH5xAI1clQPk/2uA==} engines: {node: ^22.18.0 || >=24.11.0} + '@babel/parser@7.29.11': + resolution: {integrity: sha512-OZ6+oaK7GMyg3IfCpj8JOmn8n+w2rJbDT0LLfVDTLb1ZFeKDh3AiNELgCMUw175IJHSkLl74hG0M0VLsvx+gag==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/parser@7.29.2': resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} engines: {node: '>=6.0.0'} @@ -1947,6 +1962,10 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.11': + resolution: {integrity: sha512-WCsemW40Cpc6gouC1SrY6PBaZ+oLRlEVY9XBvZBI7il/HyUrb2nJ505wE1MHEFyDZNnrWDEuy4jL50WVHfTTSQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.29.7': resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} engines: {node: '>=6.9.0'} @@ -1963,21 +1982,6 @@ packages: resolution: {integrity: sha512-eVdMqi3ej5aHhyQ2Si6yD2cAWeV8FJK9UrhK5aL0Sd8hu5GhT+YswhVNbVheOGVYMg8kuGuMaUpkB3stjj4z8A==} engines: {node: ^22.18.0 || >=24.11.0} - '@bomb.sh/tab@0.0.19': - resolution: {integrity: sha512-dTRfo9Q9B+lbLG3JCu8a/AGQSfD2XXcFcnakQzVjSOX+VvR/s9zpsH8TlqV3iHqazniRn1Ypwd1hcRlXcu/4BA==} - hasBin: true - peerDependencies: - cac: ^6.7.14 - citty: ^0.1.6 || ^0.2.0 - commander: ^13.1.0 || ^14.0.0 || ^15.0.0 - peerDependenciesMeta: - cac: - optional: true - citty: - optional: true - commander: - optional: true - '@braintree/sanitize-url@7.1.2': resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} @@ -2060,6 +2064,9 @@ packages: '@colordx/core@5.8.0': resolution: {integrity: sha512-cG0QJAO6VkaRUlIb0zOzX9gfJgs1pjoOL9gZ/PK1kfvBs0GCkADu5oQh6gPxXgQnZ3gV575h+lQRC0NlMDTclA==} + '@colordx/core@7.3.0': + resolution: {integrity: sha512-LVzTTPhX7wpy7TkGjouA9zbbCBIw92RGm7ZQqSKFE0oYE3sMx2FGXz90eVpgw7k/+wrrY+qJ86nHXifZWMS5jA==} + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -2099,6 +2106,10 @@ packages: resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} + '@csstools/css-tokenizer@4.0.2': + resolution: {integrity: sha512-OoKoR0f76dCY666JlcbhmVTs2drYj1GUXZTYTcbUgJjh9Nv41aFfZ21bPQTERm5+L5cBDo466NltB2lplS5GBw==} + engines: {node: '>=20.19.0'} + '@csstools/media-query-list-parser@4.0.3': resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} engines: {node: '>=18'} @@ -2599,8 +2610,8 @@ packages: '@emnapi/core@1.11.2': resolution: {integrity: sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==} - '@emnapi/core@2.0.0-alpha.3': - resolution: {integrity: sha512-AZypUeJ/yByuxyS7BlSNRDOMLMlROYtjYdIAuBmJssVz1UJDSeYxLrdizhXCFYhedC5bqd/ASy8EuNXbVVXp9g==} + '@emnapi/core@2.0.0-alpha.4': + resolution: {integrity: sha512-KjoUR6mNvjT+z5bKMy+a5QDI+kTNTiMZi6uPKzWuWjwZGNa0UPwIVduTfeBRdf6v8Ws5fmHDh7Usf15w/ANfkg==} '@emnapi/runtime@1.11.1': resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} @@ -2611,8 +2622,8 @@ packages: '@emnapi/runtime@1.11.3': resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} - '@emnapi/runtime@2.0.0-alpha.3': - resolution: {integrity: sha512-hFPAhMUjJD9BSyCANEISPOogeXC9Zo9ZQl7L6vKnaVsMkCtzznaW/naYypeyl0Gv5rYfWYsZbpixTMpjDJzQeA==} + '@emnapi/runtime@2.0.0-alpha.4': + resolution: {integrity: sha512-Wy1TQ99obRP3Ah7cf/OOtK1zD9t3pYTWz+G/SpAwTFMhG5hoMdlvfzBpYoHUigS/izu3q+VhYMKhJd7Ii/trpg==} '@emnapi/wasi-threads@1.2.2': resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} @@ -3382,12 +3393,6 @@ packages: peerDependencies: tslib: '2' - '@kwsites/file-exists@1.1.1': - resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} - - '@kwsites/promise-deferred@1.1.1': - resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} - '@leichtgewicht/ip-codec@2.0.5': resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} @@ -3467,7 +3472,7 @@ packages: engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 - zod: ^3.25 || ^4.0 + zod: 4.6.6 peerDependenciesMeta: '@cfworker/json-schema': optional: true @@ -3645,60 +3650,60 @@ packages: '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4 '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4 - '@next/env@16.3.8': - resolution: {integrity: sha512-Al9zqHVV7TJv0eFuOU4U7Lvv74PTih4Ch63sk2xCIpSTkE3udFnaOcnzP2lQVymiL7yS9Cj2iClUXlR3EQ5sEw==} + '@next/env@16.4.1': + resolution: {integrity: sha512-5sUUrrSvs/2/2LnLoesybMGx12EtPB46fdZ6RhAw0XDGSPxU2LFyQBB7yuEiOFFJPKmBY6+q2jTr1/AMbnp0/g==} '@next/eslint-plugin-next@16.2.2': resolution: {integrity: sha512-IOPbWzDQ+76AtjZioaCjpIY72xNSDMnarZ2GMQ4wjNLvnJEJHqxQwGFhgnIWLV9klb4g/+amg88Tk5OXVpyLTw==} - '@next/swc-darwin-arm64@16.3.8': - resolution: {integrity: sha512-2JPRMh2nmQG5CiL7cXGL9AGwnPWJQ//cTtAUCT+w511QHk79SYz3LGv/pc5X643B/WEO0rvu3Yww0hqwt3kgeA==} + '@next/swc-darwin-arm64@16.4.1': + resolution: {integrity: sha512-U+hQ5Gj3fpzf4fveTIF3dpUFYhaSW8vHhdAnbiIomzXzg7boreYFgBqprepXFtW4sw+aTttiNmg0gew/iFNhbg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.3.8': - resolution: {integrity: sha512-GZtCCOBKJ4leVIT/Th0llWKhD1ca92lzbQiS5R5ON9QkoiFnilFsebDae1JU2a3HWoKMEmEZWGs1AGLavVM72Q==} + '@next/swc-darwin-x64@16.4.1': + resolution: {integrity: sha512-/hqC3V1XLUjhMASf/WridKdO9FXoEgN3HBWmtKbj00MPgnltutfraWJ3bYTpCRIgEIpbjJyOVLpYgAhh/BkdcQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.3.8': - resolution: {integrity: sha512-O659ygeQYqneJ1fBKMpFxIFqYkYswu8IAS1OCKK/4f3ZgJJm1dRz4fVJZRi/kLLWjnBKnebOePA4WNv+sV1pVA==} + '@next/swc-linux-arm64-gnu@16.4.1': + resolution: {integrity: sha512-GHzncHbcaS9g95kcvTNtKQW3aCLoR+xc3Jm7qrkpk1R+D2BjMHIPyvQGRPKCdMX95BsH/421jBUK06q9tEwzjw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@16.3.8': - resolution: {integrity: sha512-dSjKSyWpzxoO1d3DIZZcP4XJcNaKeLmxQMFOiYl5vuBRMmweIqnAhty8tAmRsvTss779cK1FtYnDMj40e4TQlg==} + '@next/swc-linux-arm64-musl@16.4.1': + resolution: {integrity: sha512-1SuJyDxW/PR9dHJat/ZRgcYLhuSZ+1psP4DlKb2tKIuXbjygqpLrJWRSq+onZQBv8LcmU67EIrmb6c3XTaJLjw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@16.3.8': - resolution: {integrity: sha512-lbqOuz3RPRcv+o9msNsJw5x4+Y1ZwPTs6vmL6DCf7i0fZfvng/F59wyeDwqHIvV0mK//RBy/jJkZ+nCKsSMXjQ==} + '@next/swc-linux-x64-gnu@16.4.1': + resolution: {integrity: sha512-Istng1hMGp9TGO4lUqeKLd70MPN/OOkucVTP2Nmj+gLkwBgmPqUw8CJYBCC7nbl/B/23bBCcjCI5Hsh6hazC1A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@16.3.8': - resolution: {integrity: sha512-+316WswI8ScVgZeUd+1KGaXkHhaYQzCjvH/05TZSpJ8zBizb1a4G7DtO7F12jcBIqMOtsz9ji1t48fmKtzqsGA==} + '@next/swc-linux-x64-musl@16.4.1': + resolution: {integrity: sha512-aSC9wMNiZRRFVpPkPWBzRwLQxIGm/CiQcXyFF1XNcgodb+uMxdk7aSSGGpDXCbnvZdf4itjHxpOd5h7i7zaiYw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@16.3.8': - resolution: {integrity: sha512-ji0gd4kMYUxO+1fJBIbiBVRCjzG/lloiyCccnlebvb1ZJ5qXCPZqYg4Jl1DrrixnWNMKylzgpmMWx0yNDYXlzw==} + '@next/swc-win32-arm64-msvc@16.4.1': + resolution: {integrity: sha512-t/myvwFDlypMUjRvbBf8qLPyuaB0iXYYdBtwMt6DM6f+60wtGr4bSYholdPqNeV5VUXZhrpMwfza829kmhS3iA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.3.8': - resolution: {integrity: sha512-WcTlaKt/TWkh5kUjdJcUmB1XgZ+1c6fz4Y9fDHL73YNSdGaUWjceeWrrlwF0nv19iABYWC4iAq1oX1w4Bn0vfg==} + '@next/swc-win32-x64-msvc@16.4.1': + resolution: {integrity: sha512-6ICqPo9awCkrtYNPhwkx1uU7rlFWrZRrIboDHS2LU+jv088UBYQtmJ25h6pCp27/+FZjF6BQ4Te4ErugyMeuBg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -3719,34 +3724,49 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@nuxt/cli@3.37.0': - resolution: {integrity: sha512-Zj9NwHjEBzVrgezsgMFjpMhNqwNgROk9DzNi/dyfk1mCbXIRigV11br2xOl0Satek30bmv7oZAfMtCnDe6Ip0Q==} - engines: {node: ^16.14.0 || >=18.0.0} + '@nuxt/cli@4.0.1': + resolution: {integrity: sha512-vtB77CmkrYUMoIKwk+HUdNQX1vuMPpnu7ExNYB91WuIxzzGrGQLSxGUpXa360xsyUkZ4h9s+qElAQQW9ZQP4WA==} + engines: {node: ^22.21.0 || ^24.11.0 || >=26.0.0} hasBin: true peerDependencies: - '@nuxt/schema': ^4.4.6 + '@nuxt/docs': ^4.0.0 + '@nuxt/schema': ^3.0.0 || ^4.0.0 + jiti: ^2.3.0 + oxc-parser: '>=0.56.3' + rolldown: ^1.0.0-rc.16 || ^1.0.0 + serve: ^14.0.0 peerDependenciesMeta: + '@nuxt/docs': + optional: true '@nuxt/schema': optional: true + jiti: + optional: true + oxc-parser: + optional: true + rolldown: + optional: true + serve: + optional: true '@nuxt/devalue@2.0.2': resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} - '@nuxt/devtools-kit@3.4.2': - resolution: {integrity: sha512-TPPbmH9xrExagYxfCe6JgtbHmgchfgDdA656Yws18rn8I/oCvB+gcw3kTWBBp2sC9ipZPXsgbsW/yZnVnGNBiA==} + '@nuxt/devtools-kit@3.4.4': + resolution: {integrity: sha512-q3aRKpnriK/kITYlYUXSE3O0R7WeJwSMLvtbo1HfcKXYg/q8688iIb5VURl0fbkSaFTk7ndU5HIbW+5f0JOJPQ==} peerDependencies: - vite: '>=8.0.16' + vite: 8.1.6 - '@nuxt/devtools-wizard@3.4.2': - resolution: {integrity: sha512-U2G8fw7KW1rdECyJDho5N14z8hSllpTk430KG1QPLjrv5w3pDksZ+YcpITd0u762Vw3gq3Arpg65Bk6U4ua6aQ==} + '@nuxt/devtools-wizard@3.4.4': + resolution: {integrity: sha512-iGL6p2ZM926pfV0UUsnaseNGNEp/PWbX5f1zFqRgVxiDOEVsrBOfFA5sLgfuO2NWi3+3/84fy7ungcCP6zGYvA==} hasBin: true - '@nuxt/devtools@3.4.2': - resolution: {integrity: sha512-Nidg0/zB710cyK89ltTkv66hMfPlIPlKA+Yb67bIrAkNm5PoTwQ1goHdFWHIAGZ9nTadcVTzATwMwa56nvl/Wg==} + '@nuxt/devtools@3.4.4': + resolution: {integrity: sha512-cPwBW+odVCCid6pllN3f93L0hyOCYRXrEZLmCiV2IgBoQ3lskhuu304JDJjv/VvtWB+OVWfHQ38aowX28WybXQ==} hasBin: true peerDependencies: '@vitejs/devtools': '*' - vite: '>=8.0.16' + vite: 8.1.6 peerDependenciesMeta: '@vitejs/devtools': optional: true @@ -3755,14 +3775,44 @@ packages: resolution: {integrity: sha512-l66LU9DcJYjmNwqwAj2I5UGRrUbnG2DOKGChnN70zIGtn0eq/z87gi/FRgha6eMb9/FmB1PFHgtx6PWVml1C2Q==} engines: {node: '>=18.12.0'} - '@nuxt/nitro-server@4.5.2': - resolution: {integrity: sha512-sx/vtT8D1WIRUOMuKQz/9z8nZb7jgVWc6HWwlkXKDjYZ84otPFtYCozKqhXWv6xf3JxJvge/RUAOwh9Z7P4nQQ==} - engines: {node: ^22.19.0 || ^24.11.0 || >=26.0.0} + '@nuxt/kit@4.6.2': + resolution: {integrity: sha512-Vn9DJobc30WdR1vrlRcEAFSFy7NV5CWq3o6gxsfrdGb2FmCh0fuDyvbZC30rm2enyiPaOUPafKctFE/ToBjybw==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + '@nuxt/schema': ^3.0.0 || ^4.0.0 || ^5.0.0-0 + confbox: '>=0.1.0' + dotenv: '*' + giget: '>=3.1.0' + jiti: ^2.0.0 + mlly: ^1.2.0 + oxc-parser: '>=0.56.0' + rolldown: '>=1.0.0' + peerDependenciesMeta: + '@nuxt/schema': + optional: true + confbox: + optional: true + dotenv: + optional: true + giget: + optional: true + jiti: + optional: true + mlly: + optional: true + oxc-parser: + optional: true + rolldown: + optional: true + + '@nuxt/nitro-server@4.6.2': + resolution: {integrity: sha512-mOiTpoiSG26/0UI4Nxfc4AK76UaCdpjObLPCF6NTDX9wL6Ed4/95AAVZKbEq7qxtNSla/8F+s8NSY6O1wpJ5bA==} + engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} peerDependencies: '@babel/plugin-proposal-decorators': ^7.25.0 || ^8.0.0 '@babel/plugin-syntax-typescript': ^7.25.0 || ^8.0.0 '@rollup/plugin-babel': ^6.0.0 || ^7.0.0 - nuxt: ^4.5.2 + nuxt: ^4.6.2 peerDependenciesMeta: '@babel/plugin-proposal-decorators': optional: true @@ -3771,8 +3821,8 @@ packages: '@rollup/plugin-babel': optional: true - '@nuxt/schema@4.5.2': - resolution: {integrity: sha512-h9g1kt9O2iU9nX6HDFu9gvwtpn+8oSJX0RSTWRBnEx/Pkz+WlOHtjuS0SbkTAXw5aT1+H1GysWVwNTjJfBY/0w==} + '@nuxt/schema@4.6.2': + resolution: {integrity: sha512-L+0YiNDh/5C079JiHweAbOJqWD/931N+aqwtRk/wrCpRmTmYgiyIelVbnOv0sevWvGcPouBJRgTC2fxlp3mxoQ==} engines: {node: ^14.18.0 || >=16.10.0} '@nuxt/telemetry@2.9.1': @@ -3782,13 +3832,13 @@ packages: peerDependencies: '@nuxt/kit': '>=3.0.0' - '@nuxt/vite-builder@4.5.2': - resolution: {integrity: sha512-fC8KUs5F1VpSEjTIjmx5pdflciMlp3FDCubx3AXElvRPLtBAPmyB69kmqVFjRnVQ8+vRHNyI7iBHUg9Se8srLA==} - engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} + '@nuxt/vite-builder@4.6.2': + resolution: {integrity: sha512-UCEoVjguX65x2mlZ0wuTth//idqugfKkxK9RwXHUqCkxonO4YgVh9akqUUlcjw/CSWWOZUbAOFnyS1yIXNGOZw==} + engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} peerDependencies: '@babel/plugin-proposal-decorators': ^7.25.0 || ^8.0.0 '@babel/plugin-syntax-jsx': ^7.25.0 || ^8.0.0 - nuxt: 4.5.2 + nuxt: 4.6.2 rolldown: ^1.0.0 rollup-plugin-visualizer: ^6.0.0 || ^7.0.1 vue: ^3.3.4 @@ -3802,6 +3852,13 @@ packages: rollup-plugin-visualizer: optional: true + '@nuxt/vite-server@4.6.2': + resolution: {integrity: sha512-tSlCRgrx8TFBhETV/6dFk1gKLmwj1GaIrItRJClqJesJvdGDAabA3av4Ph8wlFGD5vkxIvzAeksn8Uy1ja1DMQ==} + engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} + peerDependencies: + nuxt: ^4.6.2 + vite: 8.1.6 + '@open-draft/deferred-promise@2.2.0': resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} @@ -4727,12 +4784,6 @@ packages: resolution: {integrity: sha512-V37T9uHOQVHyxxOqwcJ9xjSIW/mW9UuSfjOc7WJE4V8+3zj0abDJLHuoxDZKe0icYGapgOcvHyYjtNOjSeSivw==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@simple-git/args-pathspec@1.0.4': - resolution: {integrity: sha512-EtMX6XjRWSastG2SdkmSQByPtJ9dx/NIjnHbpQPCYt62j4RmSx5rgLTGpw0YCjF5h191gZOmBfheOT23cRSFdw==} - - '@simple-git/argv-parser@2.0.1': - resolution: {integrity: sha512-M++IaVWrN+vYalilOHfwvT2IL3wYZtVEBQpmX6DLSOJLtxbZ+SUeIDE3IiPogzhPACLajwtxfa5rp+ZX1FczzQ==} - '@sinclair/typebox@0.27.12': resolution: {integrity: sha512-hhyNJ+nbR6ZR7pToHvllEFun9TL0sbL+tk/ON75lo+Xas054uez98qRbsuNt7MBCyZKK4+8Yli/OAGZhmfBZ/g==} @@ -4772,21 +4823,21 @@ packages: peerDependencies: acorn: ^8.9.0 - '@sveltejs/adapter-auto@7.0.1': - resolution: {integrity: sha512-dvuPm1E7M9NI/+canIQ6KKQDU2AkEefEZ2Dp7cY6uKoPq9Z/PhOXABe526UdW2mN986gjVkuSLkOYIBnS/M2LQ==} + '@sveltejs/adapter-auto@8.0.0': + resolution: {integrity: sha512-CKOwUS865xfoZn3CpM868slPfitsQ4vmxAR/yOfTIguAwStgkhjhzV0zEhmkzPalH338LJ9XnQX9vfQeY7220A==} peerDependencies: - '@sveltejs/kit': ^2.0.0 + '@sveltejs/kit': ^3.0.0-next.0 - '@sveltejs/kit@2.70.3': - resolution: {integrity: sha512-UDvEYuZqAMbfB/oXIoqKvbKcb7YczK5zYrzmsGV1zRJk03jntwp8dXiYoIJotxAndsKvcPFtx9H1GRSKFdSHgg==} - engines: {node: '>=18.13'} + '@sveltejs/kit@3.0.0': + resolution: {integrity: sha512-dmP6gjz41DAT7erONGW8FdTWjmsmOJ/SaWVEsuEc1MXDcpH6YV+Pt98biZFPuinH4LldJPmScxDqiHwCDLRCrg==} + engines: {node: '>=22.17'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.0.0 - '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0 - svelte: ^4.0.0 || ^5.0.0-next.0 - typescript: ^5.3.3 || ^6.0.0 - vite: '>=8.0.16' + '@sveltejs/vite-plugin-svelte': ^7.0.0 + svelte: ^5.57.1 + typescript: ^6.0.0 + vite: 8.1.6 peerDependenciesMeta: '@opentelemetry/api': optional: true @@ -4802,7 +4853,7 @@ packages: engines: {node: ^20.19 || ^22.12 || >=24} peerDependencies: svelte: ^5.46.4 - vite: '>=8.0.16' + vite: 8.1.6 '@svgr/babel-plugin-add-jsx-attribute@8.0.0': resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} @@ -5044,9 +5095,6 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/d3-array@3.2.2': resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} @@ -5351,17 +5399,17 @@ packages: '@ungap/structured-clone@1.4.0': resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==} - '@unhead/bundler@3.4.1': - resolution: {integrity: sha512-1RLNvuZYCt6K+oIK7v0mKlbmFbTuNZRgAMrf+GdmiO5xfml2pl/ViZmBrCOxoBtLxCboDZ70hs+F9+z2YWHLuQ==} + '@unhead/bundler@3.4.3': + resolution: {integrity: sha512-noUTzazRB4fMgO/nluoirrZJXngNbNb3sQzIslA805tKkwakRv2fib4Xe4EdiTuNB7V5XmpUFvfQkKRdBQ9qAA==} peerDependencies: - '@unhead/cli': ^3.4.1 - '@vitejs/devtools-kit': ^0.4.1 + '@unhead/cli': ^3.4.3 + '@vitejs/devtools-kit': ^0.7.6 esbuild: '>=0.28.1' lightningcss: '>=1.20.0' oxc-parser: '>=0.98.0' rolldown: '>=1.0.0' - unhead: ^3.4.1 - vite: '>=8.0.16' + unhead: ^3.4.3 + vite: 8.1.6 webpack: '>=5.0.0' peerDependenciesMeta: '@unhead/cli': @@ -5381,10 +5429,10 @@ packages: webpack: optional: true - '@unhead/vue@3.4.1': - resolution: {integrity: sha512-FQLTdsX1+m+a7Z5SzkQde8TR/4QK6p0+NQ6BuO9zbtc5xps2fRy7W+wQ90qn177C2X88aZAPzw29mg6T4VFSdA==} + '@unhead/vue@3.4.3': + resolution: {integrity: sha512-Wrmk62oC/V1EcBSKRDuy77kVaBtBXXsj6b+vEEWvmfo9AQfpLlc2b6vvvSj9WnXr8VY1ksKHj49Ejo8J/wLSOA==} peerDependencies: - vite: '>=8.0.16' + vite: 8.1.6 vue: '>=3.5.18' webpack: '>=5.0.0' peerDependenciesMeta: @@ -5405,27 +5453,27 @@ packages: resolution: {integrity: sha512-bdyo8rB3NnQbikdMpHaML9Z1OZPBu6fFOBo+OtxsBlvMJtysWskmBcnbIDhUqgC8tcxNv/a+BcV5U+2nQMm1OQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} peerDependencies: - vite: '>=8.0.16' + vite: 8.1.6 '@vitejs/plugin-react@5.2.0': resolution: {integrity: sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: '>=8.0.16' + vite: 8.1.6 '@vitejs/plugin-vue-jsx@5.1.6': resolution: {integrity: sha512-YXvi4as2clxt6DFw5+a0tTA97ntiQXm/raR8ofNj3aNwwdlVGTiG2gp7EvfZW17P50acL/9bP0ccF4XnqNmlgA==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: '>=8.0.16' + vite: 8.1.6 vue: ^3.0.0 - '@vitejs/plugin-vue@6.0.8': - resolution: {integrity: sha512-0ZjgOg7oO6farnNGup7yvoM/YXZV84OZxHAwtflItNa/6zzQyVb5LNxyea3FEKEX2XlagIKzrlH7wwxkKgtiew==} + '@vitejs/plugin-vue@6.0.10': + resolution: {integrity: sha512-b80aUQh3n+qEzzZm5oQp3rT2QImeCx58K6eFl/RkJ3d65KW0kTuv5lNsLRVAjbW9YRUpo/wzmvzMgV34bTAItA==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: '>=8.0.16' - vue: ^3.2.25 + vite: 8.1.6 + vue: ^3.2.25 || ^3.6.0-rc.10 '@vitest/expect@4.1.2': resolution: {integrity: sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==} @@ -5434,7 +5482,7 @@ packages: resolution: {integrity: sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==} peerDependencies: msw: ^2.4.9 - vite: '>=8.0.16' + vite: 8.1.6 peerDependenciesMeta: msw: optional: true @@ -5501,18 +5549,30 @@ packages: '@vue/compiler-core@3.5.42': resolution: {integrity: sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==} + '@vue/compiler-core@3.5.44': + resolution: {integrity: sha512-k34nCytbK8PQ1gR2mGROYOw6Pnv/mumqIdrZ3x2tbyXZDWm7ViKGLTfdB+DRrWqEQsLgGJvn0WN9jBif5zCTLQ==} + '@vue/compiler-dom@3.5.39': resolution: {integrity: sha512-oQPigALqYbNxTNPvNgSOe+czwVExfbVF02lz8jP0S3AXJiu3jxYDygNUiqSep4ezzW8XgnubqH63My2A7JR/vg==} '@vue/compiler-dom@3.5.42': resolution: {integrity: sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==} + '@vue/compiler-dom@3.5.44': + resolution: {integrity: sha512-W5AoBFWdw1lQAKiHowkfgFKFab82oSRT6sGsPfw/q1GRjsy/ZJFLHGhJyBRIFN9APLTUduDH9U2JAiPOIyKuYg==} + '@vue/compiler-sfc@3.5.42': resolution: {integrity: sha512-fkCAFB4okcAANGMThboWnScp/gzWjU0ZSkVnjTIiplmMDq2uq0tIB3j+xVu4rhv5rvOgBySCysudmbMd6xRRqw==} + '@vue/compiler-sfc@3.5.44': + resolution: {integrity: sha512-dzHmQ4jXTpdr5FjIQUeykVakN/uzqFbUo9/C5ikBFg3a3PeM6uRxeczx1ZbXBML0/zJstEh3ygYipzR5Z7b2Pw==} + '@vue/compiler-ssr@3.5.42': resolution: {integrity: sha512-xmLk3wLkbizPAiLyomjgFFosf2ys9b5Ghb+oh/k2tnvipNz8OFrQOiTcWCzyK7MpBp9KkyGtfvgfLUivbmuGYA==} + '@vue/compiler-ssr@3.5.44': + resolution: {integrity: sha512-xr5gb1JVHlfXJwSlRz1FeP6uxoazdzHuMTVLE7up+4Vrqxk219CvxLPxD9NXBt47yvZW7+p4DXfyp4O1fkByIA==} + '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -5538,17 +5598,17 @@ packages: typescript: optional: true - '@vue/reactivity@3.5.42': - resolution: {integrity: sha512-TzNNfKpb7hDxbQltwAut8VDQA5YP+BuRlxntHUuRjyKwlMvmAPbs3unhCvieijifY6vFfVBwsS7wG/C7uq+bEQ==} + '@vue/reactivity@3.5.44': + resolution: {integrity: sha512-u+QJdKeBBEADkPdevsL+6E12QlYVfBD8Zcw5qjDQKtamI6l14KyqazJMobhCKelhWN5zpyKUiEDoTyHE93cqWw==} - '@vue/runtime-core@3.5.42': - resolution: {integrity: sha512-9uACtuHs7vJGkm5Bp3xu4xRDLFTIYy5DgxpToVjqGIAhAEKwQfsaLvKINhM6nFVp6bZPRFGdDqd1g52MqKsotA==} + '@vue/runtime-core@3.5.44': + resolution: {integrity: sha512-uEa/ndwjhrrhnOfb2p+sZy6zeoamJOISqaLSJGk/8R6nABT1ZldpzcJoPzKj+zHVomVBPcmQYyC2r4LtvDV6CQ==} - '@vue/runtime-dom@3.5.42': - resolution: {integrity: sha512-rsCmhiWLaRxGltLwhlCWyYkFn7WAbKRh0q17eZ1A6Dq6eqc2ACQ61IIryxz0LrsvCzHSilLA9JHovVwM8CNE2g==} + '@vue/runtime-dom@3.5.44': + resolution: {integrity: sha512-3fc4ARcXVhVBaJ3ujWiNZJARD6pkyRcwG+ZYhMzjKtKUp7MAY0HLwr7r3Smep3Li6ZaWT6ewdmx8XqdaD5oNZg==} - '@vue/server-renderer@3.5.42': - resolution: {integrity: sha512-2++5dUyYS4gvo7xQXSECUDhB7TS0aOl5SeVfC5qSq1Jgfhjvegw1zqhwTIR3imZ+QYPJQw9gfcFvXGAjGZ7ajQ==} + '@vue/server-renderer@3.5.44': + resolution: {integrity: sha512-R4S1UoH4h5Frrauv8Z5XE5TxV9oBiUSgWIC4TyVK1FK+RocRnOLwFA5Xcmo2011RlgJp+AbZCnw6afrhlgRuUQ==} '@vue/shared@3.5.39': resolution: {integrity: sha512-l1rrBtBfTnmxvtsvdQDXltUUy8S1Y+ZaqdfUzmAnJkTd8Z8rv5v/ytW+TKiqEOWyHPoqtPlNFSs0lhRmYVSHVA==} @@ -5556,6 +5616,9 @@ packages: '@vue/shared@3.5.42': resolution: {integrity: sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==} + '@vue/shared@3.5.44': + resolution: {integrity: sha512-H82XLH0DjmSOdbEwO15x3QTo1f5PWEtv237eLpYKc0mqLu+B8hnq16lFWmuBmNurkeiG3wr+oM1FhOll/YVFRg==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -5754,6 +5817,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + args-tokenizer@0.3.0: + resolution: {integrity: sha512-xXAd7G2Mll5W8uo37GETpQ2VrE84M181Z7ugHFGQnJZ50M2mbOv0osSZ9VsSgPfJQ+LVG0prSi0th+ELMsno7Q==} + aria-query@5.3.1: resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==} engines: {node: '>= 0.4'} @@ -5805,13 +5871,17 @@ packages: resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==} engines: {node: '>=20.19.0'} + ast-kit@3.0.0: + resolution: {integrity: sha512-8OG92q3R35qjC/4i6BLBMg8IB+fClWu/1PEwg2Z9Rn+BuNaiEgJzpzn+pxWOdHJWDCAwu2JP0wCDTozAM4QirQ==} + engines: {node: ^22.18.0 || >=24.11.0} + ast-kit@3.0.0-beta.1: resolution: {integrity: sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==} engines: {node: '>=20.19.0'} - ast-walker-scope@0.9.0: - resolution: {integrity: sha512-IJdzo2vLiElBxKzwS36VsCue/62d6IdWjnPB2v3nuPKeWGynp6FF/CYoLa5i/3jXH/z97ZDdsXz6abpgM6w07A==} - engines: {node: '>=20.19.0'} + ast-walker-scope@0.10.0: + resolution: {integrity: sha512-KzvoxDfXNz2Gm8KYLh47K3qcY3Zza3WKOuh2xoqa7LBu6MDKWAZLovJtU9DuAd/Er+rhQHCRn619lHS5U+qmhw==} + engines: {node: ^22.18.0 || >=24.11.0} astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} @@ -5834,6 +5904,13 @@ packages: peerDependencies: postcss: 8.5.28 + autoprefixer@10.6.2: + resolution: {integrity: sha512-VOw9/yGTGwPPgzFcODtcv6zhEPIeIWkRSe10L2ri2f5vZ7ID7lCt6jZzRF5/ubgOZ+szYydmEF5AYsA5jxX1tA==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: 8.5.28 + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -5935,6 +6012,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + baseline-browser-mapping@2.11.34: + resolution: {integrity: sha512-Aqr8mA1kIvyJ3UY5YAY7ib8LSo1DmDMbMnVqGPtsKW1LxaFQFwn9Eb3yvq2fUKJsRvaXjnAV7R5osqETapzNiA==} + engines: {node: '>=6.0.0'} + hasBin: true + batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} @@ -5958,6 +6040,9 @@ packages: birpc@4.0.0: resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} + birpc@4.2.0: + resolution: {integrity: sha512-KxgKcZPfrtzJDDALHPguGpGJUrzdgpymyiQQgzFjWreHMOpWrnFNVREr5J48x2DBh8ZVioscrV1SBkDipGiX+Q==} + body-parser@1.20.8: resolution: {integrity: sha512-JNcyFQ64OiijEkPzUBTCe+hyPXUD/3LEldGQ6iF5LR1w00mx9o7xtDWHXBY2iItjdCFGoilOLNQbH943ut7pHA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -5999,6 +6084,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.29.5: + resolution: {integrity: sha512-khTmKu5NGYTotqcYo8Bew2k4RAE9PuXRSFRXG2lQBrCEQHyeQ/vX6gKMxfokwywBsLiXZMnHsmWMG1pnO8J7uQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + buffer-crc32@1.0.0: resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} engines: {node: '>=8.0.0'} @@ -6081,6 +6171,9 @@ packages: caniuse-lite@1.0.30001810: resolution: {integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==} + caniuse-lite@1.0.30001819: + resolution: {integrity: sha512-LFUqIIAwpzsIuevnKnsR9qnStBcgzPShTX61lBwN9uFkkf8o8zLiebEjbW8AYtZiF+1YKDWfdt/pWDtMuG8Xwg==} + ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -6184,6 +6277,10 @@ packages: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} + clickable-path@0.1.1: + resolution: {integrity: sha512-ROn/mdV2pR8WFdpJjFDCSouLRg9myf95xacO1iy8G/AVO/x5y124pjF3EaoWrTBRWC3vh0DPqa/MhKyx3mMeKg==} + engines: {node: '>=22.1.0'} + client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -6238,10 +6335,6 @@ packages: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} - commander@14.0.3: - resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} - engines: {node: '>=20'} - commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -6351,6 +6444,10 @@ packages: resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} + cookie@2.0.1: + resolution: {integrity: sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w==} + engines: {node: '>=22'} + copy-text-to-clipboard@3.2.2: resolution: {integrity: sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==} engines: {node: '>=12'} @@ -6562,6 +6659,12 @@ packages: peerDependencies: postcss: 8.5.28 + cssnano@9.9.0: + resolution: {integrity: sha512-JS914Th2NRk2979JHJvbE3UjPtLmyXtPnr23NNul9BOQwEt9r/A2aM1STrKtKHAPc3XRaUDwMoqkXnjEpgHkAw==} + engines: {node: ^22.22.3 || ^24.15.0 || >=26.0} + peerDependencies: + postcss: 8.5.28 + csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -6808,10 +6911,6 @@ packages: resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} engines: {node: '>=18'} - default-browser@5.5.0: - resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} - engines: {node: '>=18'} - default-browser@5.5.1: resolution: {integrity: sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==} engines: {node: '>=18'} @@ -6883,11 +6982,18 @@ packages: devalue@5.9.3: resolution: {integrity: sha512-xRumYOCUZN/EesqHEU3WOXanOZNvfZFZ/o1AHVFDX1yI0UAkZkOgDXt341CzKoBVIkgQba55/+DjGBKrIoKcHw==} + devalue@5.9.4: + resolution: {integrity: sha512-sPAT4pztbu6586/hrhOnMKS17IJrvg12mXiSPSS3W5qDeN2RGgvZ0diZCm31dBbnevfVmujNO3IM2wrS4Y2Rhg==} + + devalue@6.0.3: + resolution: {integrity: sha512-3woMEITftG1wKeO/4d/QXH1DVKctTSZg3jNGPpjp9hNr5Hos8MCFF5McTML5ZtgKDObm2R591B0spRp2IVernA==} + engines: {node: '>=18'} + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - diff@8.0.4: - resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} + diff@9.0.0: + resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==} engines: {node: '>=0.3.1'} dir-glob@3.0.1: @@ -6975,6 +7081,9 @@ packages: electron-to-chromium@1.5.427: resolution: {integrity: sha512-n14zb3FdsChZ2BNobqNHAJMcP3ifFv4paox2LvCrfVAQcqGiSURgbJl+PfMpHVCNFkStnNc+RRVtPBTVW5PDgw==} + electron-to-chromium@1.5.467: + resolution: {integrity: sha512-Nw9X371rtZmYcBSnEijnCDONILjs93biCZO34juC7MBOmK8E+GFnyD4T/WvyrlJkppul7oxg6TwvtKst9SODTw==} + emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -7049,6 +7158,9 @@ packages: errx@0.1.2: resolution: {integrity: sha512-chfpPHmCerdo/rXr/nNvPZRkV4WwDRwzwnsJ0Uzz3tVi8Z41tDctRjduYy1138ii77AFlts1qvWtX3g/Acg91Q==} + errx@0.2.2: + resolution: {integrity: sha512-HaPN6cxm6iZ9bIbQQ5orChcw7SY5smUzM08ZMc6OtV4UQhrrc3Ms1G8Ww2n/9lXkWqiioNTssF8bCvchrSbFEQ==} + es-abstract@1.24.1: resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} engines: {node: '>= 0.4'} @@ -7303,6 +7415,9 @@ packages: exsolve@1.1.1: resolution: {integrity: sha512-9U/jZUgjnSGyntRr6y5Muu1MJcwFl6kPu7k8qLF0IMNfLqvw0NZ4nnVDq0RVoZ0RvCyumib4Ez3KYrVfilrw+g==} + exsolve@1.2.0: + resolution: {integrity: sha512-h1pQPR9XoeSMdntRNCjyTznaume4UpfXrULBnlkZ2CUM/G5eSa+pBByGldO5uR8dxbPC+OuJXsPPNf+JZ81ADg==} + extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -7340,8 +7455,8 @@ packages: fast-string-width@3.0.2: resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} - fast-uri@3.1.8: - resolution: {integrity: sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==} + fast-uri@3.1.9: + resolution: {integrity: sha512-hS/0Wt3Ya043oKXs0sIxrMpKQITXhMLIrVAKKXi4gozGC9v7YRWVnXIZzjNPTO02M9BdxLCWqK1yRXgNziVyJQ==} fast-wrap-ansi@0.2.2: resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} @@ -7369,6 +7484,9 @@ packages: resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} engines: {node: '>=0.4.0'} + fetchdts@0.2.0: + resolution: {integrity: sha512-PJb4ZTGT2/wK78RmVrxZITStWabhZlKBsL52VOgq+c7clEkdHdEB+0rtzrXCbZJqeYJj+IwNWYqB5/G6vouA6A==} + file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -7417,6 +7535,10 @@ packages: flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + flru@1.0.2: + resolution: {integrity: sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog==} + engines: {node: '>=6'} + fnv1a-64@0.1.2: resolution: {integrity: sha512-mJbcILTPybAR1jdOwt/lVv8N2cffeJFFP+gVbSAwLEx1ujXH27RpPd8Rokec/KX9c76UYIB6Co+H4lQzxPnJfA==} @@ -7475,12 +7597,8 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - fuse.js@7.5.0: - resolution: {integrity: sha512-sQtrEfA+ez/3G0cCZecF70oqpCRttCexYUG4mUrtWL49ULUzUyxokt5kyqwtKzj1270RaKih+hcP3qLcumccow==} - engines: {node: '>=10'} - - fzf@0.5.2: - resolution: {integrity: sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==} + fuzzysort@4.0.2: + resolution: {integrity: sha512-3c7yD6rK1EXIsqpcu1ZVzXJugODWNMzvUij6yTiziaAHrpNS8kzFOI9mJLE8pmG4K9JOaVgzQRgklfOEk8f4Tg==} generator-function@2.0.1: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} @@ -7851,12 +7969,16 @@ packages: resolution: {integrity: sha512-HpbUakT7xp5miBUywCHf36ZEuAJNklBJDDsGpUIjMzOSmM8ELSfA9Sa/QDPeNeqeoN31u+UTCkL4klCOVvRm4Q==} engines: {node: '>= 4'} + ignore@7.0.14: + resolution: {integrity: sha512-wCBiZ77u1tuWde6G/nfOtLaCTYcFDU5yCzARzK10y+rLhzYoL7a7yEemcopcc2Mzow7gZOIjnV2ym1NYmdiJOQ==} + engines: {node: '>= 4'} + ignore@7.0.5: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - image-meta@0.2.2: - resolution: {integrity: sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==} + image-meta@0.3.0: + resolution: {integrity: sha512-IDxPcgtP9oUwUhcUMBfAQo27JTx9j96jFV9kpfavkANF6LvcTWEm1IouSbgMDV3G5Y5jx2SEdnHtecxV2OjGBA==} image-size@2.0.2: resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} @@ -7946,6 +8068,9 @@ packages: iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + iron-webcrypto@2.0.0: + resolution: {integrity: sha512-rtffZKDUHciZElM8mjFCufBC7nVhCxHYyWHESqs89OioEDz4parOofd8/uhrejh/INhQFfYQfByS22LlezR9sQ==} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -8336,8 +8461,8 @@ packages: resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} engines: {node: '>=14.16'} - launch-editor@2.14.1: - resolution: {integrity: sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==} + launch-editor@2.14.2: + resolution: {integrity: sha512-NHJEb30MGBCkmZXLZwz25t37QR4aY03ZzPYUJXOJaOa92uWwExI9SBQUuIznBYc1xkD7cJNGX7oc3Nl3sq2kQQ==} layout-base@1.0.2: resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} @@ -8542,6 +8667,9 @@ packages: magic-string@1.3.1: resolution: {integrity: sha512-rm91zr2Ou+XueDTohjQQjdQEcYM6zVi8KVUCG8Ec3vHwUEKrhSdCNyfuIywkA6hcCAteIn0ZOtAHA6eGpiX+Pg==} + magic-string@1.4.5: + resolution: {integrity: sha512-oLLC2+YvQUfAa+vxoufE/yc1icb87M9iXIRqAoR/2EhE/8cb3SF/+Gi0c2By1B+5Vz2e2vQtUvHiu1+63Znh+w==} + magicast@0.5.5: resolution: {integrity: sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA==} @@ -8656,6 +8784,9 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} + microdiff@1.6.0: + resolution: {integrity: sha512-w7JWt8Bno6I8h0rEqlxr4lNG4UbT1FVtWo42wWosIiaJ+rP3pXh7shCYDnyqBrYx36LJ1CZ64p8A62aVp0sJpQ==} + micromark-core-commonmark@2.0.3: resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} @@ -8979,6 +9110,15 @@ packages: resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==} engines: {node: ^20.17.0 || >=22.9.0} + my-bad@0.2.11: + resolution: {integrity: sha512-K1R6DRz31BR7YYaDDLRr97XWKWku3SQhHKpDgz7i/VS3O3pvphIzbJIrrEXupSEmPtZElY9UzCrDc0nWvG4HyA==} + engines: {node: '>=22.12.0'} + peerDependencies: + vite: 8.1.6 + peerDependenciesMeta: + vite: + optional: true + nanoid@3.3.19: resolution: {integrity: sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -9005,8 +9145,8 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - next@16.3.8: - resolution: {integrity: sha512-U7QEZaTini6wKrb8A8hqLLqYQyCetegKjCpJOyxk642vWoMoU1x5PyZCJFvgYgiptA8xc5j/9xYlZFO7w9Sjmw==} + next@16.4.1: + resolution: {integrity: sha512-uc657V62E34fOI6W5NtG9IzwsPcms0Z60grz2MJGtglgD+pTFnNt4Yw2PzaU622tfX4vhrDgLZzicE2YlhI20Q==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -9084,6 +9224,10 @@ packages: resolution: {integrity: sha512-mIrE/Cw9y+9Au6dS5vDKDhQza9YvG6w+ZrS6X+ZzA7yFW/soAeaups4Qzn1bL6g5FVy8WtP79+0j82oPIbqRjQ==} engines: {node: '>=18'} + node-releases@2.0.60: + resolution: {integrity: sha512-OmO8+GM1JUZqXET720VrJCwkjUCXmCMQm0Z3UDDRbfNLHS4NEAvY60j5jiFv0tkKw2PNNlqOLhahVmwJIOLDIQ==} + engines: {node: '>=18'} + nopt@8.1.0: resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} engines: {node: ^18.17.0 || >=20.5.0} @@ -9128,9 +9272,9 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 - nuxt@4.5.2: - resolution: {integrity: sha512-tR3fcqeHlHmmkLMpIg3V7Y+1ltr302lW8djMw/iy+myfo7QSSz+BVJDuQhg5j73b9oteSyBfOKTDYTgvMtj6TA==} - engines: {node: ^22.19.0 || ^24.11.0 || >=26.0.0} + nuxt@4.6.2: + resolution: {integrity: sha512-KfhAIuHQpxKbTN0ItGpkK0jgzjcOCSOf6FZB3wHk/aZ1OiAMsDvbqua1OGfxuEk3bSlK3X49WyFEL5TwEKm36w==} + engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} hasBin: true peerDependencies: '@parcel/watcher': ^2.1.0 @@ -9142,11 +9286,6 @@ packages: '@types/node': optional: true - nypm@0.6.10: - resolution: {integrity: sha512-W72Hrj1petq+b3Hk2aAC+9zswetlIFTnDW4s5djseZh2nYqBbyQLOtj472HwcbcWykPBUW1WpWpjOd4nK6gMRw==} - engines: {node: '>=18'} - hasBin: true - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -9184,6 +9323,10 @@ packages: obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + obug@3.0.0: + resolution: {integrity: sha512-5vvB5+W7ePv+p3uqxi+RcW1XAzLW0/hxt3/4X4Lc4qHudzOhmBiBwOY6DRob4WnanAEGvNcLjF+KNOufrUoEQw==} + engines: {node: '>=12.20.0'} + ofetch@1.5.1: resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} @@ -9319,6 +9462,9 @@ packages: package-manager-detector@1.8.0: resolution: {integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==} + package-manager-detector@1.9.0: + resolution: {integrity: sha512-zAMfbta9nPA8AKkA4WdmNAT8R8s6Dk0/xwPsqNnRidMFcLo1YkLuPDTgs2f64XdzS8vbLNnoJ+uUIkgbz7oRHA==} + param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -9492,6 +9638,12 @@ packages: peerDependencies: postcss: 8.5.28 + postcss-calc@11.2.3: + resolution: {integrity: sha512-pFW3MR2a4W7uHcSGUiyQGGXZWHon83ljbNwnUJ1mRKublWQbv+3o9NiqhlV4TJfNby+U+zLY2OgiywzhA5eFqw==} + engines: {node: ^22.22.3 || ^24.15 || >=26.0} + peerDependencies: + postcss: 8.5.28 + postcss-calc@9.0.1: resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} @@ -10652,12 +10804,12 @@ packages: resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} engines: {node: '>= 18'} - serialize-javascript@7.0.5: - resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==} + serialize-javascript@7.1.3: + resolution: {integrity: sha512-kYEnegpAxWFjUw3dSYdSM9zVlTrsxDbsSkq/qd3B7VanqyJ+JdDy6qVyuqVGBhSfuD/rLZQEKuXsO5KZFCrVYQ==} engines: {node: '>=20.0.0'} - seroval@1.6.7: - resolution: {integrity: sha512-AeDcLh0yO2SFm9W71essgnSzLV9DI8ZH0x0knXn2DMnUZj728mpLbxjlbB6IqKCmqh8JA3cEqRyGoNkt584JcQ==} + seroval@1.6.11: + resolution: {integrity: sha512-hpb6XnMCGN/A+79Uf8V7/iTGkyyyazNn5X0CoCAp7Uy9vT3RT8jZ9GLcnxGoVjg3P8AArbe4ZVHq6C8oT2a0kA==} engines: {node: '>=10'} serve-handler@6.1.7: @@ -10678,9 +10830,6 @@ packages: resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} engines: {node: '>= 18'} - set-cookie-parser@3.1.2: - resolution: {integrity: sha512-5/r/lTwbJ3zQ+qwdUFZYeRNqda7P5HD8zQKqlSjdGt1/S0cjLAphHusj4Y58ahDtWn/g32xrIS58/ikOvwl0Lw==} - set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -10758,9 +10907,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-git@4.0.2: - resolution: {integrity: sha512-l0sIsv9VrPwovKELFDBOj/lhmIcbMvxBk2B+hRhsMM4/VL3gKtuZvYnBNixVo+N/0HnqQx2cBdLvxnAbygHpqA==} - sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} @@ -10849,6 +10995,16 @@ packages: engines: {node: '>=20.16.0'} hasBin: true + srvx@1.0.5: + resolution: {integrity: sha512-KvSKRpgPG/oaq3cyT614OQ2bAa7DynuGamivCZeoZzIUULOdbQz6wUtnnVuC4+DCx2Zglzo8v5gBYmWIWYhDxA==} + engines: {node: '>=20.16.0'} + hasBin: true + + srvx@1.0.8: + resolution: {integrity: sha512-ngFS/J6St4PJfHRHGjr78xkPPtbyXtdMOLNE4x/XZunEK3OhV7aGUWMHf9WTUEy6wm1U0W4okkd82ZFFWRVQTw==} + engines: {node: '>=20.16.0'} + hasBin: true + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -10869,6 +11025,9 @@ packages: std-env@4.2.0: resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} + std-env@4.3.0: + resolution: {integrity: sha512-OtU/EgQ1kIm5KwqQpBC6ZEMXrZRui11w8zgfTWp8cdO9B8OaPsbA8bTHO2P+HNo1VlUTGMVBwPhydu6poeXiag==} + stdin-discarder@0.3.2: resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==} engines: {node: '>=18'} @@ -11023,8 +11182,8 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: ^5.0.0 || ^6.0.0 - svelte@5.57.0: - resolution: {integrity: sha512-NdbDn7fl4be1ViUG0oq/lvG6OZy3oENolV2ONjiqqsfVoeAfzaQAKUcEX3MrQod/Bebv1PgwET9rfXhgn9s4Kg==} + svelte@5.57.3: + resolution: {integrity: sha512-5mAftM3SoDV9X0zdF386F9p2pv8iKOwi/KfBS1XnBAkVCKFzVOLHUoa8iGWAt4buoicLmyWVRpuuD5wplXOQsg==} engines: {node: '>=18'} svg-parser@2.1.0: @@ -11135,6 +11294,10 @@ packages: resolution: {integrity: sha512-uo33abH+Ays0xYaDysoBt494Hb3hsEczMpcC0MwFl773pazORx4fmvKhclhR1wonUbB6vvpRsvVMwnhfqeMc+A==} engines: {node: ^16.14.0 || >= 17.3.0} + tinyclip@1.0.3: + resolution: {integrity: sha512-nTv2raKFMzGG6JJp0lpNDsRPdfFE6UHlu2rVEjXo8vkx1ZS3LW2CVXqIaLu8xZlu+6tbFs9V58Qc/Jmk/Ii7wA==} + engines: {node: ^16.14.0 || >= 17.3.0} + tinyexec@1.0.4: resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} engines: {node: '>=18'} @@ -11326,6 +11489,10 @@ packages: ufo@1.6.4: resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + uint8array-extras@1.6.0: + resolution: {integrity: sha512-8iAasVS4wUx0gPLjH8Xtz2PeDzTSiy8QiLGu2DT3X5GU+egFEQhpnbtkehbAwjvDcxIERmCYcysiODFmE3Ud0Q==} + engines: {node: '>=18'} + ultrahtml@1.7.0: resolution: {integrity: sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==} @@ -11362,17 +11529,17 @@ packages: undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - undici@8.11.2: - resolution: {integrity: sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ==} + undici@8.12.2: + resolution: {integrity: sha512-XtuDWVdqTLr3NAxm2ly9/hU6kUsJOgGh1RASzMBbsw6aWCOaQzHdW+QQDfdERjfJ2V5vL5pRPa4RetO9UfivDg==} engines: {node: '>=22.19.0'} unenv@2.0.0-rc.24: resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} - unhead@3.4.1: - resolution: {integrity: sha512-P1lDTwwMMICFQ84BXA1ac5CF/DPRCcrARQOGwblQFpHOekbBWq/724BV42C8ptH39NvyrUQLOwyt6qSd76GKPQ==} + unhead@3.4.3: + resolution: {integrity: sha512-0FZI/qCCyIey14CKlGMFpiQumWSatlthJy7Xvro7H3nmi/V2owkcCXG03k0GXDc2/TV1K6bvrbAwhzTRe5Nhdw==} peerDependencies: - vite: '>=8.0.16' + vite: 8.1.6 peerDependenciesMeta: vite: optional: true @@ -11420,6 +11587,21 @@ packages: rolldown: optional: true + unimport@7.0.2: + resolution: {integrity: sha512-5yrZs6kHyx5h1ZgeLxK0EgS/JL7Uhwv9HgzQImW8JccGmbYWyXx7Jc4YhU5+sd1Yk31PlfLQhfbZ1oigXipo3A==} + engines: {node: '>=18.12.0'} + peerDependencies: + acorn: ^8.0.0 + oxc-parser: '*' + rolldown: ^1.0.0 + peerDependenciesMeta: + acorn: + optional: true + oxc-parser: + optional: true + rolldown: + optional: true + unique-string@3.0.0: resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} engines: {node: '>=12'} @@ -11470,7 +11652,7 @@ packages: rolldown: '*' rollup: '*' unloader: '*' - vite: '>=8.0.16' + vite: 8.1.6 webpack: '*' peerDependenciesMeta: '@farmfe/core': @@ -11589,6 +11771,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.3.4: + resolution: {integrity: sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + update-notifier@6.0.2: resolution: {integrity: sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==} engines: {node: '>=14.16'} @@ -11642,6 +11830,10 @@ packages: resolution: {integrity: sha512-zj/ob3UsvJGN0whEAKFp53REA5X66hvffVqoCtVQAakJKnKlH+/PcOfMoFwIG/o4rElqLv/ycAFlx8ZlXUorCg==} engines: {node: '>=18.12.0'} + verkit@0.5.0: + resolution: {integrity: sha512-u4J1hr6Y+C/hit34GwL3eIcUf3wngT8TlYUjK7tk0jxydKLAq3sYvifjdTDA6U3KCKRcQCQDGf/srjxfZF3l7g==} + engines: {node: '>=18.12.0'} + vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} @@ -11654,12 +11846,12 @@ packages: vite-dev-rpc@2.0.0: resolution: {integrity: sha512-yKwbTwdHKSD2k/aGqyWpPHepo45OQc8lH3/6IfT4ZqeKE26ooKvi4WIEKzqWav8v+9Is8u1k8q54hvOmqASazA==} peerDependencies: - vite: '>=8.0.16' + vite: 8.1.6 vite-hot-client@2.2.0: resolution: {integrity: sha512-76Zs9zrHbH7M7wqeyooGQKdX+yg0pQ0xuQ1PbFp4z5a0Lzn2e5IPFoCswnmqZ4GiwqB4Jo3WcDAMO9jARTJl8w==} peerDependencies: - vite: '>=8.0.16' + vite: 8.1.6 vite-node@6.0.0: resolution: {integrity: sha512-oj4PVrT+pDh6GYf5wfUXkcZyekYS8kKPfLPXVl8qe324Ec6l4K2DUKNadRbZ3LQl0qGcDz+PyOo7ZAh00Y+JjQ==} @@ -11677,7 +11869,7 @@ packages: oxlint: '>=1' stylelint: '>=16.26.1' typescript: '*' - vite: '>=8.0.16' + vite: 8.1.6 vue-tsc: ~2.2.10 || ^3.0.0 peerDependenciesMeta: '@biomejs/biome': @@ -11702,7 +11894,7 @@ packages: engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' - vite: '>=8.0.16' + vite: 8.1.6 peerDependenciesMeta: '@nuxt/kit': optional: true @@ -11710,11 +11902,11 @@ packages: vite-plugin-vue-tracer@1.5.0: resolution: {integrity: sha512-G2aQ676fLBPnYhRi5lsARoL4hbtc/sx6fVzO7p44AB+1xQXo2UuiRgv7K26UdijrNzmuQprmJ121n3rdjBk1CA==} peerDependencies: - vite: '>=8.0.16' + vite: 8.1.6 vue: ^3.5.0 - vite@8.1.5: - resolution: {integrity: sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==} + vite@8.1.6: + resolution: {integrity: sha512-aRAHIxx5SW5zc1sMqFwJU/t5qaFfXb5Hj0J7W0VXihu/X99+346tz6080tO1T1xVIJORX/b3zVTXGFqUXh35uw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -11759,7 +11951,7 @@ packages: vitefu@1.1.3: resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} peerDependencies: - vite: '>=8.0.16' + vite: 8.1.6 peerDependenciesMeta: vite: optional: true @@ -11778,7 +11970,7 @@ packages: '@vitest/ui': 4.1.2 happy-dom: '*' jsdom: '*' - vite: '>=8.0.16' + vite: 8.1.6 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -11805,8 +11997,8 @@ packages: vue-bundle-renderer@2.4.0: resolution: {integrity: sha512-IxHopQZgzTGBiuGERrQrAS7Lr3dCv+qxvgirEgCUFGAD4gYNfiaGYzC1DDojeZmJAmehp9gG8+17PGuVP6Ab2Q==} - vue-component-type-helpers@3.3.11: - resolution: {integrity: sha512-LwcxzeliO9fkQcpJG0PoX8X5kmAhKmH9wkpDLxNabwzkQ9Zeib2YVHwFV4pcWmMLfXVfjr/dSV+DaJ3cIPgSNA==} + vue-component-type-helpers@3.3.13: + resolution: {integrity: sha512-02KCxSmKDhIITjKyJ4QT5csP6L0WoRborLqY/34a40+S9uvMvdNgMV0yVjO3p2Gkz3ZoPmFz/0JsGHacwJYTxw==} vue-devtools-stub@0.1.0: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} @@ -11817,13 +12009,13 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - vue-router@5.3.1: - resolution: {integrity: sha512-GDBZzgmILxA/kFnkFbJjQZdZ2QQbngnIMMuoUcjhZIfH1RGMaPjPwX5ASnV38qamuA9uhO0RDjSBHTDNG2uXyQ==} + vue-router@5.4.0: + resolution: {integrity: sha512-pFvcYcxinDHjZUlf7AzFBrT8r8Xqvv4uMHoJnjc+EqPawXQvHTkF8S4tfSmQLpriVHUGfkaKlI7Et0KRjTMTdw==} peerDependencies: '@pinia/colada': '>=0.21.2' '@vue/compiler-sfc': ^3.5.34 || ^4.0.0 pinia: ^3.0.4 || ^4.0.2 - vite: '>=8.0.16' + vite: 8.1.6 vue: ^3.5.34 || ^4.0.0 peerDependenciesMeta: '@pinia/colada': @@ -11841,8 +12033,8 @@ packages: peerDependencies: typescript: '>=5.0.0' - vue@3.5.42: - resolution: {integrity: sha512-4RyHQTbQvOPs3MfvUO1Sg0YRrKNnA0mAVtvpd12Tg1fKDN7OHBUl1IqSn8zGJjK9nI3NkNp8cgTpVrSZC5TTcA==} + vue@3.5.44: + resolution: {integrity: sha512-dvvmaOCG7lAMkJTPqPwWeGMsPS6DIsFsfZDUgBp9V6mHf9b3+/wyVwYR4Es+WV6uJC0FKRxp81Obcq0ZwUcGFQ==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -12032,6 +12224,18 @@ packages: utf-8-validate: optional: true + ws@8.22.0: + resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + wsl-utils@0.1.0: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} @@ -12116,19 +12320,16 @@ packages: zod-to-json-schema@3.25.2: resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} peerDependencies: - zod: ^3.25.28 || ^4 + zod: 4.6.6 zod-validation-error@4.0.2: resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} engines: {node: '>=18.0.0'} peerDependencies: - zod: ^3.25.0 || ^4.0.0 - - zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + zod: 4.6.6 - zod@4.4.3: - resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + zod@4.6.6: + resolution: {integrity: sha512-4UmzQUF5fxvfcYHlbjBmejU+w+hbDnWFx4aS8kBx7nPBHcO2SqPbpAG8snbdg+Xse4pRefR98hgjFgIMCI/UhA==} zone.js@0.16.3: resolution: {integrity: sha512-ihXL9+vhYyEhXz4TDNpHeAOZN9FVrbog0Il64OIEI28UP/n5AaI6gsccRuOHBfx+206agzyoK527bYIO0Foy6A==} @@ -12331,7 +12532,7 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@22.1.8(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6)(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3)))(@types/node@25.5.2)(chokidar@5.0.0)(jiti@2.7.0)(postcss@8.5.28)(rollup@4.63.5)(supports-color@10.2.2)(tailwindcss@4.2.2)(terser@5.51.2)(tslib@2.8.1)(tsx@4.21.0)(typescript@6.0.3)(vitest@4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(yaml@2.9.1)': + '@angular/build@22.1.8(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6)(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3)))(@types/node@25.5.2)(chokidar@5.0.0)(jiti@2.7.0)(postcss@8.5.28)(rollup@4.63.5)(supports-color@10.2.2)(tailwindcss@4.2.2)(terser@5.51.2)(tslib@2.8.1)(tsx@4.21.0)(typescript@6.0.3)(vitest@4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(yaml@2.9.1)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2201.8(chokidar@5.0.0) @@ -12341,7 +12542,7 @@ snapshots: '@babel/helper-annotate-as-pure': 8.0.0 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 6.1.1(@types/node@25.5.2) - '@vitejs/plugin-basic-ssl': 2.3.0(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + '@vitejs/plugin-basic-ssl': 2.3.0(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) beasties: 0.4.3 browserslist: 4.28.9 esbuild: 0.28.2 @@ -12361,7 +12562,7 @@ snapshots: tinyglobby: 0.2.17 tslib: 2.8.1 typescript: 6.0.3 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) watchpack: 2.5.2 optionalDependencies: '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)(zone.js@0.16.3) @@ -12370,7 +12571,7 @@ snapshots: postcss: 8.5.28 rollup: 4.63.5 tailwindcss: 4.2.2 - vitest: 4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + vitest: 4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) transitivePeerDependencies: - '@types/node' - '@vitejs/devtools' @@ -12392,7 +12593,7 @@ snapshots: '@angular-devkit/schematics': 22.1.8(chokidar@5.0.0) '@inquirer/prompts': 8.5.2(@types/node@25.5.2) '@listr2/prompt-adapter-inquirer': 4.2.5(@inquirer/prompts@8.5.2(@types/node@25.5.2))(@types/node@25.5.2)(listr2@11.0.0) - '@modelcontextprotocol/sdk': 1.30.0(supports-color@10.2.2)(zod@4.4.3) + '@modelcontextprotocol/sdk': 1.30.0(supports-color@10.2.2)(zod@4.6.6) '@schematics/angular': 22.1.8(chokidar@5.0.0) jsonc-parser: 3.3.1 listr2: 11.0.0 @@ -12400,7 +12601,7 @@ snapshots: parse5-html-rewriting-stream: 8.0.1 semver: 7.8.5 yargs: 18.1.0 - zod: 4.4.3 + zod: 4.6.6 transitivePeerDependencies: - '@cfworker/json-schema' - '@types/node' @@ -12655,6 +12856,8 @@ snapshots: '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.29.11': {} + '@babel/helper-string-parser@7.29.7': {} '@babel/helper-string-parser@8.0.0': {} @@ -12691,6 +12894,10 @@ snapshots: '@babel/template': 8.0.0 '@babel/types': 8.0.5 + '@babel/parser@7.29.11': + dependencies: + '@babel/types': 7.29.11 + '@babel/parser@7.29.2': dependencies: '@babel/types': 7.29.0 @@ -13337,6 +13544,11 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@babel/types@7.29.11': + dependencies: + '@babel/helper-string-parser': 7.29.11 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/types@7.29.7': dependencies: '@babel/helper-string-parser': 7.29.7 @@ -13357,11 +13569,6 @@ snapshots: '@babel/helper-string-parser': 8.0.0 '@babel/helper-validator-identifier': 8.0.4 - '@bomb.sh/tab@0.0.19(citty@0.2.2)(commander@14.0.3)': - optionalDependencies: - citty: 0.2.2 - commander: 14.0.3 - '@braintree/sanitize-url@7.1.2': {} '@changesets/apply-release-plan@8.1.1': @@ -13406,7 +13613,7 @@ snapshots: '@pnpm/deps.graph-sequencer': 1100.0.1 cac: 7.0.0 import-meta-resolve: 4.2.0 - launch-editor: 2.14.1 + launch-editor: 2.14.2 package-manager-detector: 1.8.0 semver: 7.8.5 tinyexec: 1.3.1 @@ -13484,7 +13691,10 @@ snapshots: '@cloudflare/kv-asset-handler@0.4.2': {} - '@colordx/core@5.8.0': {} + '@colordx/core@5.8.0': + optional: true + + '@colordx/core@7.3.0': {} '@colors/colors@1.5.0': optional: true @@ -13514,6 +13724,8 @@ snapshots: '@csstools/css-tokenizer@3.0.4': {} + '@csstools/css-tokenizer@4.0.2': {} + '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) @@ -14847,17 +15059,17 @@ snapshots: - uglify-js - webpack-cli - '@dxup/nuxt@0.5.10(esbuild@0.28.2)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))': + '@dxup/nuxt@0.5.10(esbuild@0.28.2)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))': dependencies: '@dxup/unimport': 0.1.2 - '@nuxt/kit': 4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + '@nuxt/kit': 4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) '@vue/compiler-dom': 3.5.42 chokidar: 5.0.0 knitwork: 1.3.0 magic-string: 1.3.1 pathe: 2.0.3 tinyglobby: 0.2.17 - unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) transitivePeerDependencies: - '@farmfe/core' - '@rsbuild/core' @@ -14886,7 +15098,7 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/core@2.0.0-alpha.3': + '@emnapi/core@2.0.0-alpha.4': dependencies: '@emnapi/wasi-threads': 2.0.1 tslib: 2.8.1 @@ -14907,7 +15119,7 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@2.0.0-alpha.3': + '@emnapi/runtime@2.0.0-alpha.4': dependencies: tslib: 2.8.1 optional: true @@ -15557,14 +15769,6 @@ snapshots: '@jsonjoy.com/codegen': 17.67.0(tslib@2.8.1) tslib: 2.8.1 - '@kwsites/file-exists@1.1.1(supports-color@10.2.2)': - dependencies: - debug: 4.4.3(supports-color@10.2.2) - transitivePeerDependencies: - - supports-color - - '@kwsites/promise-deferred@1.1.1': {} - '@leichtgewicht/ip-codec@2.0.5': {} '@listr2/prompt-adapter-inquirer@4.2.5(@inquirer/prompts@8.5.2(@types/node@25.5.2))(@types/node@25.5.2)(listr2@11.0.0)': @@ -15664,7 +15868,7 @@ snapshots: dependencies: '@chevrotain/types': 11.1.2 - '@modelcontextprotocol/sdk@1.30.0(supports-color@10.2.2)(zod@4.4.3)': + '@modelcontextprotocol/sdk@1.30.0(supports-color@10.2.2)(zod@4.6.6)': dependencies: '@hono/node-server': 1.19.13(hono@4.12.30) ajv: 8.20.0 @@ -15681,8 +15885,8 @@ snapshots: json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 - zod: 4.4.3 - zod-to-json-schema: 3.25.2(zod@4.4.3) + zod: 4.6.6 + zod-to-json-schema: 3.25.2(zod@4.6.6) transitivePeerDependencies: - supports-color @@ -15796,55 +16000,55 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': + '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3)': + '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@2.0.0-alpha.4)(@emnapi/runtime@2.0.0-alpha.4)': dependencies: - '@emnapi/core': 2.0.0-alpha.3 - '@emnapi/runtime': 2.0.0-alpha.3 + '@emnapi/core': 2.0.0-alpha.4 + '@emnapi/runtime': 2.0.0-alpha.4 '@tybys/wasm-util': 0.10.3 optional: true - '@next/env@16.3.8': {} + '@next/env@16.4.1': {} '@next/eslint-plugin-next@16.2.2': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@16.3.8': + '@next/swc-darwin-arm64@16.4.1': optional: true - '@next/swc-darwin-x64@16.3.8': + '@next/swc-darwin-x64@16.4.1': optional: true - '@next/swc-linux-arm64-gnu@16.3.8': + '@next/swc-linux-arm64-gnu@16.4.1': optional: true - '@next/swc-linux-arm64-musl@16.3.8': + '@next/swc-linux-arm64-musl@16.4.1': optional: true - '@next/swc-linux-x64-gnu@16.3.8': + '@next/swc-linux-x64-gnu@16.4.1': optional: true - '@next/swc-linux-x64-musl@16.3.8': + '@next/swc-linux-x64-musl@16.4.1': optional: true - '@next/swc-win32-arm64-msvc@16.3.8': + '@next/swc-win32-arm64-msvc@16.4.1': optional: true - '@next/swc-win32-x64-msvc@16.3.8': + '@next/swc-win32-x64-msvc@16.4.1': optional: true '@noble/hashes@1.4.0': {} @@ -15861,78 +16065,77 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 - '@nuxt/cli@3.37.0(@nuxt/schema@4.5.2)(@parcel/watcher@2.6.0)(commander@14.0.3)(magicast@0.5.5)(supports-color@10.2.2)': + '@nuxt/cli@4.0.1(@nuxt/schema@4.6.2)(jiti@2.7.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': dependencies: - '@bomb.sh/tab': 0.0.19(citty@0.2.2)(commander@14.0.3) '@clack/prompts': 1.8.1 - c12: 3.3.4(magicast@0.5.5) - citty: 0.2.2 - confbox: 0.2.4 + args-tokenizer: 0.3.0 + clickable-path: 0.1.1 + confbox: 0.3.1 consola: 3.4.2 - debug: 4.4.3(supports-color@10.2.2) defu: 6.1.7 - exsolve: 1.1.1 - fuse.js: 7.5.0 - fzf: 0.5.2 - giget: 3.3.1 - jiti: 2.7.0 - listhen: 1.10.1(@parcel/watcher@2.6.0)(srvx@0.11.22) - nypm: 0.6.10 - ofetch: 1.5.1 - ohash: 2.0.12 + exsolve: 1.2.0 + fuzzysort: 4.0.2 + get-port-please: 3.2.0 + my-bad: 0.2.11(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + obug: 3.0.0 + package-manager-detector: 1.9.0 pathe: 2.0.3 perfect-debounce: 2.1.0 pkg-types: 2.3.3 + rc9: 3.1.0 scule: 1.3.0 - semver: 7.8.5 - srvx: 0.11.22 - std-env: 4.2.0 - tinyclip: 0.1.15 + srvx: 1.0.8 + std-env: 4.3.0 + tinyclip: 1.0.3 tinyexec: 1.3.1 - ufo: 1.6.4 - youch: 4.1.1 + uqr: 0.1.3 + verkit: 0.5.0 optionalDependencies: - '@nuxt/schema': 4.5.2 + '@nuxt/schema': 4.6.2 + jiti: 2.7.0 + oxc-parser: 0.142.0 + rolldown: 1.2.1 transitivePeerDependencies: - - '@parcel/watcher' - - cac - - commander - - magicast - - supports-color + - vite '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@3.4.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': + '@nuxt/devtools-kit@3.4.4(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + '@nuxt/kit': 4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) execa: 8.0.1 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) transitivePeerDependencies: + - '@nuxt/schema' + - confbox + - dotenv + - giget + - jiti - magic-string - - magicast + - mlly - oxc-parser - rolldown - unplugin - '@nuxt/devtools-wizard@3.4.2': + '@nuxt/devtools-wizard@3.4.4': dependencies: '@clack/prompts': 1.8.1 consola: 3.4.2 - diff: 8.0.4 + diff: 9.0.0 execa: 8.0.1 magicast: 0.5.5 pathe: 2.0.3 pkg-types: 2.3.3 semver: 7.8.5 - '@nuxt/devtools@3.4.2(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.3.1)(oxc-parser@0.142.0)(rolldown@1.2.1)(supports-color@10.2.2)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3))': + '@nuxt/devtools@3.4.4(@nuxt/schema@4.6.2)(confbox@0.3.1)(db0@0.3.4)(dotenv@17.4.0)(giget@3.3.1)(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3))': dependencies: - '@nuxt/devtools-kit': 3.4.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) - '@nuxt/devtools-wizard': 3.4.2 - '@nuxt/kit': 4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) - '@vue/devtools-core': 8.2.1(vue@3.5.42(typescript@5.9.3)) + '@nuxt/devtools-kit': 3.4.4(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + '@nuxt/devtools-wizard': 3.4.4 + '@nuxt/kit': 4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + '@vue/devtools-core': 8.2.1(vue@3.5.44(typescript@5.9.3)) '@vue/devtools-kit': 8.2.1 - birpc: 4.0.0 + birpc: 4.2.0 consola: 3.4.2 destr: 2.0.5 error-stack-parser-es: 2.0.1 @@ -15940,27 +16143,27 @@ snapshots: fast-npm-meta: 2.2.0 get-port-please: 3.2.0 hookable: 6.1.2 - image-meta: 0.2.2 + image-meta: 0.3.0 is-installed-globally: 1.0.1 - launch-editor: 2.14.1 + launch-editor: 2.14.2 local-pkg: 1.2.1 magicast: 0.5.5 - nypm: 0.6.10 ohash: 2.0.12 + package-manager-detector: 1.9.0 pathe: 2.0.3 perfect-debounce: 2.1.0 pkg-types: 2.3.3 semver: 7.8.5 - simple-git: 4.0.2(supports-color@10.2.2) sirv: 3.0.2 structured-clone-es: 2.0.1 + tinyexec: 1.3.1 tinyglobby: 0.2.17 unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2)) - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) - vite-plugin-inspect: 11.4.1(@nuxt/kit@4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) - vite-plugin-vue-tracer: 1.5.0(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3)) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite-plugin-inspect: 11.4.1(@nuxt/kit@4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + vite-plugin-vue-tracer: 1.5.0(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3)) which: 6.0.1 - ws: 8.21.3 + ws: 8.22.0 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -15971,6 +16174,7 @@ snapshots: - '@capacitor/preferences' - '@deno/kv' - '@netlify/blobs' + - '@nuxt/schema' - '@planetscale/database' - '@upstash/redis' - '@vercel/blob' @@ -15978,19 +16182,23 @@ snapshots: - '@vercel/kv' - aws4fetch - bufferutil + - confbox - db0 + - dotenv + - giget - idb-keyval - ioredis + - jiti - magic-string + - mlly - oxc-parser - rolldown - - supports-color - unplugin - uploadthing - utf-8-validate - vue - '@nuxt/kit@4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))': + '@nuxt/kit@4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))': dependencies: c12: 3.3.4(magicast@0.5.5) consola: 3.4.2 @@ -16010,7 +16218,7 @@ snapshots: scule: 1.3.0 tinyglobby: 0.2.17 ufo: 1.6.4 - unctx: 3.0.1(magic-string@1.3.1)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + unctx: 3.0.1(magic-string@1.3.1)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) untyped: 2.0.0 verkit: 0.3.2 transitivePeerDependencies: @@ -16020,35 +16228,69 @@ snapshots: - rolldown - unplugin - '@nuxt/nitro-server@4.5.2(a989d6dd41215d71d3f9874387d7adb9)': + '@nuxt/kit@4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))': dependencies: - '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) - '@unhead/vue': 3.4.1(@oxc-project/types@0.142.0)(esbuild@0.28.2)(lightningcss@1.32.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) - '@vue/shared': 3.5.42 consola: 3.4.2 defu: 6.1.7 destr: 2.0.5 - devalue: 5.9.3 - errx: 0.1.2 + errx: 0.2.2 + exsolve: 1.2.0 + ignore: 7.0.14 + klona: 2.0.6 + microdiff: 1.6.0 + nostics: 1.3.0 + package-manager-detector: 1.9.0 + pathe: 2.0.3 + rc9: 3.1.0 + scule: 1.3.0 + std-env: 4.3.0 + tinyexec: 1.3.1 + tinyglobby: 0.2.17 + unctx: 3.0.1(magic-string@1.4.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + verkit: 0.5.0 + optionalDependencies: + '@nuxt/schema': 4.6.2 + confbox: 0.3.1 + dotenv: 17.4.0 + giget: 3.3.1 + jiti: 2.7.0 + mlly: 1.8.2 + oxc-parser: 0.142.0 + rolldown: 1.2.1 + transitivePeerDependencies: + - magic-string + - unplugin + + '@nuxt/nitro-server@4.6.2(d1141932a4d98c514091f0250d694daf)': + dependencies: + '@nuxt/kit': 4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + '@unhead/vue': 3.4.3(@oxc-project/types@0.142.0)(esbuild@0.28.2)(lightningcss@1.32.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + consola: 3.4.2 + defu: 6.1.7 + destr: 2.0.5 + devalue: 6.0.3 + errx: 0.2.2 escape-string-regexp: 5.0.0 - exsolve: 1.1.1 + exsolve: 1.2.0 + flru: 1.0.2 h3: 1.15.11 - impound: 1.2.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + impound: 1.2.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(@parcel/watcher@2.6.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + my-bad: 0.2.11(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + nitropack: 2.13.4(@parcel/watcher@2.6.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) nostics: 1.3.0 - nuxt: 4.5.2(6e9ac995c1c9925a5d42c915eaaff171) - nypm: 0.6.10 + nuxt: 4.6.2(90d1a56eb34908c1d8a80da2f607020f) ohash: 2.0.12 pathe: 2.0.3 + radix3: 1.1.2 rou3: 0.9.2 - std-env: 4.2.0 + std-env: 4.3.0 ufo: 1.6.4 - unctx: 3.0.1(magic-string@1.3.1)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + unctx: 3.0.1(magic-string@1.4.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + unrouting: 0.2.3 unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2)) - vue: 3.5.42(typescript@5.9.3) + vue: 3.5.44(typescript@5.9.3) vue-bundle-renderer: 2.4.0 vue-devtools-stub: 0.1.0 optionalDependencies: @@ -16066,6 +16308,7 @@ snapshots: - '@farmfe/core' - '@libsql/client' - '@netlify/blobs' + - '@nuxt/schema' - '@oxc-project/types' - '@parcel/watcher' - '@planetscale/database' @@ -16082,15 +16325,19 @@ snapshots: - bare-buffer - better-sqlite3 - bun-types-no-globals + - confbox - db0 + - dotenv - drizzle-orm - encoding - esbuild + - giget - idb-keyval - ioredis + - jiti - lightningcss - magic-string - - magicast + - mlly - mysql2 - oxc-parser - react-native-b4a @@ -16107,56 +16354,55 @@ snapshots: - webpack - xml2js - '@nuxt/schema@4.5.2': + '@nuxt/schema@4.6.2': dependencies: - '@vue/shared': 3.5.42 + '@vue/shared': 3.5.44 defu: 6.1.7 nostics: 1.3.0 pathe: 2.0.3 pkg-types: 2.3.3 - std-env: 4.2.0 + std-env: 4.3.0 - '@nuxt/telemetry@2.9.1(@nuxt/kit@4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))))': + '@nuxt/telemetry@2.9.1(@nuxt/kit@4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))))': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + '@nuxt/kit': 4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) citty: 0.2.2 consola: 3.4.2 rc9: 3.1.0 std-env: 4.2.0 - '@nuxt/vite-builder@4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.6(supports-color@10.2.2)))(@types/node@25.5.2)(esbuild@0.28.2)(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.3.1)(magicast@0.5.5)(nuxt@4.5.2(6e9ac995c1c9925a5d42c915eaaff171))(optionator@0.9.4)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.1)(rollup@4.63.5))(rollup@4.63.5)(sass@1.101.0)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.21.0)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.42(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))(yaml@2.9.1)': + '@nuxt/vite-builder@4.6.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.6(supports-color@10.2.2)))(@nuxt/schema@4.6.2)(@types/node@25.5.2)(confbox@0.3.1)(dotenv@17.4.0)(esbuild@0.28.2)(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2))(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(nuxt@4.6.2(90d1a56eb34908c1d8a80da2f607020f))(optionator@0.9.4)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.1)(rollup@4.63.5))(rollup@4.63.5)(sass@1.101.0)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.21.0)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.44(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))(yaml@2.9.1)': dependencies: - '@nuxt/kit': 4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) - '@vitejs/plugin-vue': 6.0.8(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3)) - '@vitejs/plugin-vue-jsx': 5.1.6(supports-color@10.2.2)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3)) - autoprefixer: 10.6.0(postcss@8.5.28) + '@nuxt/kit': 4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + '@vitejs/plugin-vue': 6.0.10(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3)) + '@vitejs/plugin-vue-jsx': 5.1.6(supports-color@10.2.2)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3)) + autoprefixer: 10.6.2(postcss@8.5.28) + clickable-path: 0.1.1 consola: 3.4.2 - cssnano: 8.0.10(postcss@8.5.28) + cssnano: 9.9.0(postcss@8.5.28) defu: 6.1.7 escape-string-regexp: 5.0.0 - exsolve: 1.1.1 + exsolve: 1.2.0 generic-names: 4.0.0 get-port-please: 3.2.0 - jiti: 2.7.0 js-tokens: 10.0.0 knitwork: 1.3.0 - mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.5.2(6e9ac995c1c9925a5d42c915eaaff171) - nypm: 0.6.10 + my-bad: 0.2.11(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + nuxt: 4.6.2(90d1a56eb34908c1d8a80da2f607020f) pathe: 2.0.3 pkg-types: 2.3.3 postcss: 8.5.28 rolldown-string: 0.3.1(rolldown@1.2.1) - seroval: 1.6.7 - std-env: 4.2.0 + seroval: 1.6.11 + std-env: 4.3.0 ufo: 1.6.4 unenv: 2.0.0-rc.24 - unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) vite-node: 6.0.0(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) - vite-plugin-checker: 0.14.5(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2))(optionator@0.9.4)(typescript@5.9.3)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue-tsc@2.2.12(typescript@5.9.3)) - vue: 3.5.42(typescript@5.9.3) + vite-plugin-checker: 0.14.5(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2))(optionator@0.9.4)(typescript@5.9.3)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue-tsc@2.2.12(typescript@5.9.3)) + vue: 3.5.44(typescript@5.9.3) vue-bundle-renderer: 2.4.0 optionalDependencies: '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.6(supports-color@10.2.2)) @@ -16165,17 +16411,22 @@ snapshots: transitivePeerDependencies: - '@biomejs/biome' - '@farmfe/core' + - '@nuxt/schema' - '@rsbuild/core' - '@rspack/core' - '@types/node' - '@vitejs/devtools' - bun-types-no-globals + - confbox + - dotenv - esbuild - eslint + - giget + - jiti - less - magic-string - - magicast - meow + - mlly - optionator - oxc-parser - oxlint @@ -16194,6 +16445,33 @@ snapshots: - webpack - yaml + '@nuxt/vite-server@4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(nuxt@4.6.2(90d1a56eb34908c1d8a80da2f607020f))(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': + dependencies: + '@nuxt/kit': 4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + clickable-path: 0.1.1 + defu: 6.1.7 + exsolve: 1.2.0 + mocked-exports: 0.1.1 + my-bad: 0.2.11(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + nuxt: 4.6.2(90d1a56eb34908c1d8a80da2f607020f) + pathe: 2.0.3 + rou3: 0.9.2 + srvx: 1.0.5 + ufo: 1.6.4 + ultrahtml: 1.7.0 + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + transitivePeerDependencies: + - '@nuxt/schema' + - confbox + - dotenv + - giget + - jiti + - magic-string + - mlly + - oxc-parser + - rolldown + - unplugin + '@open-draft/deferred-promise@2.2.0': optional: true @@ -16630,7 +16908,7 @@ snapshots: dependencies: '@emnapi/core': 1.11.1 '@emnapi/runtime': 1.11.1 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) optional: true '@rolldown/binding-wasm32-wasi@1.2.0': @@ -16642,9 +16920,9 @@ snapshots: '@rolldown/binding-wasm32-wasi@1.2.1': dependencies: - '@emnapi/core': 2.0.0-alpha.3 - '@emnapi/runtime': 2.0.0-alpha.3 - '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@2.0.0-alpha.3)(@emnapi/runtime@2.0.0-alpha.3) + '@emnapi/core': 2.0.0-alpha.4 + '@emnapi/runtime': 2.0.0-alpha.4 + '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@2.0.0-alpha.4)(@emnapi/runtime@2.0.0-alpha.4) optional: true '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': @@ -16711,7 +16989,7 @@ snapshots: dependencies: '@rollup/pluginutils': 5.4.0(rollup@4.63.5) '@types/resolve': 1.20.2 - deepmerge: 4.3.1 + deepmerge: 4.3.1(patch_hash=73337f6841d39db76e5b7e158a6fee3e464226990a0167022047e9f776864239) is-module: 1.0.0 resolve: 1.22.12 optionalDependencies: @@ -16726,7 +17004,7 @@ snapshots: '@rollup/plugin-terser@1.0.0(rollup@4.63.5)': dependencies: - serialize-javascript: 7.0.5 + serialize-javascript: 7.1.3 smob: 1.6.2 terser: 5.51.2 optionalDependencies: @@ -16824,12 +17102,6 @@ snapshots: transitivePeerDependencies: - chokidar - '@simple-git/args-pathspec@1.0.4': {} - - '@simple-git/argv-parser@2.0.1': - dependencies: - '@simple-git/args-pathspec': 1.0.4 - '@sinclair/typebox@0.27.12': {} '@sindresorhus/is@4.6.0': {} @@ -16864,40 +17136,36 @@ snapshots: dependencies: acorn: 8.18.0 - '@sveltejs/adapter-auto@7.0.1(@sveltejs/kit@2.70.3(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.0(@typescript-eslint/types@8.58.0))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(svelte@5.57.0(@typescript-eslint/types@8.58.0))(typescript@5.9.3)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))': + '@sveltejs/adapter-auto@8.0.0(@sveltejs/kit@3.0.0(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.3(@typescript-eslint/types@8.58.0))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(svelte@5.57.3(@typescript-eslint/types@8.58.0))(typescript@6.0.3)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))': dependencies: - '@sveltejs/kit': 2.70.3(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.0(@typescript-eslint/types@8.58.0))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(svelte@5.57.0(@typescript-eslint/types@8.58.0))(typescript@5.9.3)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + '@sveltejs/kit': 3.0.0(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.3(@typescript-eslint/types@8.58.0))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(svelte@5.57.3(@typescript-eslint/types@8.58.0))(typescript@6.0.3)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) - '@sveltejs/kit@2.70.3(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.0(@typescript-eslint/types@8.58.0))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(svelte@5.57.0(@typescript-eslint/types@8.58.0))(typescript@5.9.3)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': + '@sveltejs/kit@3.0.0(@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.3(@typescript-eslint/types@8.58.0))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)))(svelte@5.57.3(@typescript-eslint/types@8.58.0))(typescript@6.0.3)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': dependencies: + '@rolldown/pluginutils': 1.0.1 '@standard-schema/spec': 1.1.0 - '@sveltejs/acorn-typescript': 1.0.13(acorn@8.18.0) - '@sveltejs/vite-plugin-svelte': 7.3.1(svelte@5.57.0(@typescript-eslint/types@8.58.0))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) - '@types/cookie': 0.6.0 - acorn: 8.18.0 - cookie: 0.7.2 - devalue: 5.9.3 + '@sveltejs/vite-plugin-svelte': 7.3.1(svelte@5.57.3(@typescript-eslint/types@8.58.0))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + cookie: 2.0.1 + devalue: 5.9.4 esm-env: 1.2.2 - kleur: 4.1.5 - magic-string: 0.30.21 + magic-string: 1.3.1 mrmime: 2.0.1 - set-cookie-parser: 3.1.2 sirv: 3.0.2 - svelte: 5.57.0(@typescript-eslint/types@8.58.0) - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + svelte: 5.57.3(@typescript-eslint/types@8.58.0) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.3 '@sveltejs/load-config@0.2.3': {} - '@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.0(@typescript-eslint/types@8.58.0))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': + '@sveltejs/vite-plugin-svelte@7.3.1(svelte@5.57.3(@typescript-eslint/types@8.58.0))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': dependencies: - deepmerge: 4.3.1 + deepmerge: 4.3.1(patch_hash=73337f6841d39db76e5b7e158a6fee3e464226990a0167022047e9f776864239) magic-string: 1.3.1 obug: 2.1.1 - svelte: 5.57.0(@typescript-eslint/types@8.58.0) - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) - vitefu: 1.1.3(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + svelte: 5.57.3(@typescript-eslint/types@8.58.0) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vitefu: 1.1.3(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.29.6(supports-color@10.2.2))': dependencies: @@ -16973,7 +17241,7 @@ snapshots: dependencies: '@svgr/core': 8.1.0(supports-color@10.2.2)(typescript@5.6.3) cosmiconfig: 8.3.6(typescript@5.6.3) - deepmerge: 4.3.1 + deepmerge: 4.3.1(patch_hash=73337f6841d39db76e5b7e158a6fee3e464226990a0167022047e9f776864239) svgo: 3.3.5 transitivePeerDependencies: - typescript @@ -17141,8 +17409,6 @@ snapshots: dependencies: '@types/node': 25.5.2 - '@types/cookie@0.6.0': {} - '@types/d3-array@3.2.2': {} '@types/d3-axis@3.0.6': @@ -17511,18 +17777,18 @@ snapshots: '@ungap/structured-clone@1.4.0': {} - '@unhead/bundler@3.4.1(@oxc-project/types@0.142.0)(esbuild@0.28.2)(lightningcss@1.32.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(unhead@3.4.1(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))': + '@unhead/bundler@3.4.3(@oxc-project/types@0.142.0)(esbuild@0.28.2)(lightningcss@1.32.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(unhead@3.4.3(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))': dependencies: magic-string: 1.3.1 oxc-walker: 1.1.1(@oxc-project/types@0.142.0)(oxc-parser@0.142.0)(rolldown@1.2.1) - unhead: 3.4.1(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) - unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unhead: 3.4.3(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) optionalDependencies: esbuild: 0.28.2 lightningcss: 1.32.0 oxc-parser: 0.142.0 rolldown: 1.2.1 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) webpack: 5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0) transitivePeerDependencies: - '@farmfe/core' @@ -17533,15 +17799,15 @@ snapshots: - rollup - unloader - '@unhead/vue@3.4.1(@oxc-project/types@0.142.0)(esbuild@0.28.2)(lightningcss@1.32.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))': + '@unhead/vue@3.4.3(@oxc-project/types@0.142.0)(esbuild@0.28.2)(lightningcss@1.32.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))': dependencies: - '@unhead/bundler': 3.4.1(@oxc-project/types@0.142.0)(esbuild@0.28.2)(lightningcss@1.32.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(unhead@3.4.1(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + '@unhead/bundler': 3.4.3(@oxc-project/types@0.142.0)(esbuild@0.28.2)(lightningcss@1.32.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(unhead@3.4.3(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) hookable: 6.1.2 - unhead: 3.4.1(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) - unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) - vue: 3.5.42(typescript@5.9.3) + unhead: 3.4.3(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + vue: 3.5.44(typescript@5.9.3) optionalDependencies: - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) webpack: 5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0) transitivePeerDependencies: - '@farmfe/core' @@ -17582,11 +17848,11 @@ snapshots: - rollup - supports-color - '@vitejs/plugin-basic-ssl@2.3.0(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': + '@vitejs/plugin-basic-ssl@2.3.0(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': dependencies: - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) - '@vitejs/plugin-react@5.2.0(supports-color@10.2.2)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': + '@vitejs/plugin-react@5.2.0(supports-color@10.2.2)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': dependencies: '@babel/core': 7.29.6(supports-color@10.2.2) '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.6(supports-color@10.2.2)) @@ -17594,27 +17860,27 @@ snapshots: '@rolldown/pluginutils': 1.0.0-rc.3 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.2.2)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.2.2)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3))': dependencies: '@babel/core': 7.29.6(supports-color@10.2.2) '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.6(supports-color@10.2.2)) '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.6(supports-color@10.2.2))(supports-color@10.2.2) '@rolldown/pluginutils': 1.0.1 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.6(supports-color@10.2.2))(supports-color@10.2.2) - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) - vue: 3.5.42(typescript@5.9.3) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vue: 3.5.44(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.8(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.10(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) - vue: 3.5.42(typescript@5.9.3) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vue: 3.5.44(typescript@5.9.3) '@vitest/expect@4.1.2': dependencies: @@ -17625,23 +17891,23 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.2(msw@2.12.14(@types/node@25.5.2)(typescript@5.9.3))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': + '@vitest/mocker@4.1.2(msw@2.12.14(@types/node@25.5.2)(typescript@5.9.3))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': dependencies: '@vitest/spy': 4.1.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.12.14(@types/node@25.5.2)(typescript@5.9.3) - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) - '@vitest/mocker@4.1.2(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': + '@vitest/mocker@4.1.2(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))': dependencies: '@vitest/spy': 4.1.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.12.14(@types/node@25.5.2)(typescript@6.0.3) - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) optional: true '@vitest/pretty-format@4.1.2': @@ -17682,7 +17948,7 @@ snapshots: optionalDependencies: typescript: 5.9.3 - '@vue-macros/common@3.1.4(vue@3.5.42(typescript@5.9.3))': + '@vue-macros/common@3.1.4(vue@3.5.44(typescript@5.9.3))': dependencies: '@vue/compiler-sfc': 3.5.42 ast-kit: 2.2.0 @@ -17690,7 +17956,7 @@ snapshots: magic-string-ast: 1.0.3 unplugin-utils: 0.3.2 optionalDependencies: - vue: 3.5.42(typescript@5.9.3) + vue: 3.5.44(typescript@5.9.3) '@vue/babel-helper-vue-transform-on@2.0.1': {} @@ -17737,6 +18003,14 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.2 + '@vue/compiler-core@3.5.44': + dependencies: + '@babel/parser': 7.29.11 + '@vue/shared': 3.5.44 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.2 + '@vue/compiler-dom@3.5.39': dependencies: '@vue/compiler-core': 3.5.39 @@ -17747,6 +18021,11 @@ snapshots: '@vue/compiler-core': 3.5.42 '@vue/shared': 3.5.42 + '@vue/compiler-dom@3.5.44': + dependencies: + '@vue/compiler-core': 3.5.44 + '@vue/shared': 3.5.44 + '@vue/compiler-sfc@3.5.42': dependencies: '@babel/parser': 7.29.8 @@ -17759,11 +18038,28 @@ snapshots: postcss: 8.5.28 source-map-js: 1.2.2 + '@vue/compiler-sfc@3.5.44': + dependencies: + '@babel/parser': 7.29.11 + '@vue/compiler-core': 3.5.44 + '@vue/compiler-dom': 3.5.44 + '@vue/compiler-ssr': 3.5.44 + '@vue/shared': 3.5.44 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.28 + source-map-js: 1.2.2 + '@vue/compiler-ssr@3.5.42': dependencies: '@vue/compiler-dom': 3.5.42 '@vue/shared': 3.5.42 + '@vue/compiler-ssr@3.5.44': + dependencies: + '@vue/compiler-dom': 3.5.44 + '@vue/shared': 3.5.44 + '@vue/compiler-vue2@2.7.16': dependencies: de-indent: 1.0.2 @@ -17773,11 +18069,11 @@ snapshots: dependencies: '@vue/devtools-kit': 8.2.1 - '@vue/devtools-core@8.2.1(vue@3.5.42(typescript@5.9.3))': + '@vue/devtools-core@8.2.1(vue@3.5.44(typescript@5.9.3))': dependencies: '@vue/devtools-kit': 8.2.1 '@vue/devtools-shared': 8.2.1 - vue: 3.5.42(typescript@5.9.3) + vue: 3.5.44(typescript@5.9.3) '@vue/devtools-kit@8.2.1': dependencies: @@ -17801,32 +18097,34 @@ snapshots: optionalDependencies: typescript: 5.9.3 - '@vue/reactivity@3.5.42': + '@vue/reactivity@3.5.44': dependencies: - '@vue/shared': 3.5.42 + '@vue/shared': 3.5.44 - '@vue/runtime-core@3.5.42': + '@vue/runtime-core@3.5.44': dependencies: - '@vue/reactivity': 3.5.42 - '@vue/shared': 3.5.42 + '@vue/reactivity': 3.5.44 + '@vue/shared': 3.5.44 - '@vue/runtime-dom@3.5.42': + '@vue/runtime-dom@3.5.44': dependencies: - '@vue/reactivity': 3.5.42 - '@vue/runtime-core': 3.5.42 - '@vue/shared': 3.5.42 + '@vue/reactivity': 3.5.44 + '@vue/runtime-core': 3.5.44 + '@vue/shared': 3.5.44 csstype: 3.2.3 - '@vue/server-renderer@3.5.42': + '@vue/server-renderer@3.5.44': dependencies: - '@vue/compiler-ssr': 3.5.42 - '@vue/runtime-dom': 3.5.42 - '@vue/shared': 3.5.42 + '@vue/compiler-ssr': 3.5.44 + '@vue/runtime-dom': 3.5.44 + '@vue/shared': 3.5.44 '@vue/shared@3.5.39': {} '@vue/shared@3.5.42': {} + '@vue/shared@3.5.44': {} + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -17984,7 +18282,7 @@ snapshots: ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.8 + fast-uri: 3.1.9 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -18071,6 +18369,8 @@ snapshots: argparse@2.0.1: {} + args-tokenizer@0.3.0: {} + aria-query@5.3.1: {} array-buffer-byte-length@1.0.2: @@ -18147,17 +18447,23 @@ snapshots: '@babel/parser': 7.29.8 pathe: 2.0.3 + ast-kit@3.0.0: + dependencies: + '@babel/parser': 8.0.5 + estree-walker: 3.0.3 + pathe: 2.0.3 + ast-kit@3.0.0-beta.1: dependencies: '@babel/parser': 8.0.0-rc.3 estree-walker: 3.0.3 pathe: 2.0.3 - ast-walker-scope@0.9.0: + ast-walker-scope@0.10.0: dependencies: - '@babel/parser': 7.29.8 - '@babel/types': 7.29.8 - ast-kit: 2.2.0 + '@babel/parser': 8.0.5 + '@babel/types': 8.0.5 + ast-kit: 3.0.0 astring@1.9.0: {} @@ -18176,6 +18482,15 @@ snapshots: postcss: 8.5.28 postcss-value-parser: 4.2.0 + autoprefixer@10.6.2(postcss@8.5.28): + dependencies: + browserslist: 4.28.9 + caniuse-lite: 1.0.30001810 + fraction.js: 5.3.4 + picocolors: 1.1.1 + postcss: 8.5.28 + postcss-value-parser: 4.2.0 + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 @@ -18266,6 +18581,8 @@ snapshots: baseline-browser-mapping@2.11.23: {} + baseline-browser-mapping@2.11.34: {} + batch@0.6.1: {} beasties@0.4.3: @@ -18292,6 +18609,8 @@ snapshots: birpc@4.0.0: {} + birpc@4.2.0: {} + body-parser@1.20.8(supports-color@10.2.2): dependencies: bytes: 3.1.2 @@ -18377,6 +18696,14 @@ snapshots: node-releases: 2.0.55 update-browserslist-db: 1.3.3(browserslist@4.28.9) + browserslist@4.29.5: + dependencies: + baseline-browser-mapping: 2.11.34 + caniuse-lite: 1.0.30001819 + electron-to-chromium: 1.5.467 + node-releases: 2.0.60 + update-browserslist-db: 1.3.4(browserslist@4.29.5) + buffer-crc32@1.0.0: {} buffer-from@1.1.2: {} @@ -18469,6 +18796,8 @@ snapshots: caniuse-lite@1.0.30001810: {} + caniuse-lite@1.0.30001819: {} + ccount@2.0.1: {} chai@6.2.2: {} @@ -18570,6 +18899,8 @@ snapshots: cli-width@4.1.0: {} + clickable-path@0.1.1: {} + client-only@0.0.1: {} cliui@8.0.1: @@ -18613,9 +18944,7 @@ snapshots: commander@10.0.1: {} - commander@11.1.0: {} - - commander@14.0.3: + commander@11.1.0: optional: true commander@2.20.3: {} @@ -18711,6 +19040,8 @@ snapshots: cookie@1.1.1: optional: true + cookie@2.0.1: {} + copy-text-to-clipboard@3.2.2: {} copy-webpack-plugin@11.0.0(webpack@5.110.3(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): @@ -18720,7 +19051,7 @@ snapshots: globby: 13.2.2 normalize-path: 3.0.0 schema-utils: 4.5.0 - serialize-javascript: 7.0.5 + serialize-javascript: 7.1.3 webpack: 5.110.3(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0) core-js-compat@3.50.0: @@ -18816,7 +19147,7 @@ snapshots: jest-worker: 29.7.0 postcss: 8.5.28 schema-utils: 4.5.0 - serialize-javascript: 7.0.5 + serialize-javascript: 7.1.3 webpack: 5.110.3(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0) optionalDependencies: clean-css: 5.3.3 @@ -18866,6 +19197,7 @@ snapshots: dependencies: mdn-data: 2.27.1 source-map-js: 1.2.2 + optional: true css-what@6.2.2: {} @@ -18922,7 +19254,7 @@ snapshots: cssnano-preset-default@8.0.10(postcss@8.5.28): dependencies: - browserslist: 4.28.9 + browserslist: 4.29.5 cssnano-utils: 6.0.4(postcss@8.5.28) postcss: 8.5.28 postcss-calc: 10.1.1(postcss@8.5.28) @@ -18952,6 +19284,7 @@ snapshots: postcss-reduce-transforms: 8.0.4(postcss@8.5.28) postcss-svgo: 8.0.6(postcss@8.5.28) postcss-unique-selectors: 8.0.4(postcss@8.5.28) + optional: true cssnano-utils@4.0.2(postcss@8.5.28): dependencies: @@ -18960,6 +19293,7 @@ snapshots: cssnano-utils@6.0.4(postcss@8.5.28): dependencies: postcss: 8.5.28 + optional: true cssnano@6.1.2(postcss@8.5.28): dependencies: @@ -18972,6 +19306,16 @@ snapshots: cssnano-preset-default: 8.0.10(postcss@8.5.28) lilconfig: 3.1.3 postcss: 8.5.28 + optional: true + + cssnano@9.9.0(postcss@8.5.28): + dependencies: + '@colordx/core': 7.3.0 + '@csstools/css-tokenizer': 4.0.2 + browserslist: 4.29.5 + caniuse-api: 4.0.0 + postcss: 8.5.28 + postcss-calc: 11.2.3(postcss@8.5.28) csso@5.0.5: dependencies: @@ -19213,15 +19557,10 @@ snapshots: deep-is@0.1.4: {} - deepmerge@4.3.1: {} + deepmerge@4.3.1(patch_hash=73337f6841d39db76e5b7e158a6fee3e464226990a0167022047e9f776864239): {} default-browser-id@5.0.1: {} - default-browser@5.5.0: - dependencies: - bundle-name: 4.1.0 - default-browser-id: 5.0.1 - default-browser@5.5.1: dependencies: bundle-name: 4.1.0 @@ -19275,11 +19614,15 @@ snapshots: devalue@5.9.3: {} + devalue@5.9.4: {} + + devalue@6.0.3: {} + devlop@1.1.0: dependencies: dequal: 2.0.3 - diff@8.0.4: {} + diff@9.0.0: {} dir-glob@3.0.1: dependencies: @@ -19368,6 +19711,8 @@ snapshots: electron-to-chromium@1.5.427: {} + electron-to-chromium@1.5.467: {} + emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} @@ -19418,6 +19763,8 @@ snapshots: errx@0.1.2: {} + errx@0.2.2: {} + es-abstract@1.24.1: dependencies: array-buffer-byte-length: 1.0.2 @@ -19587,8 +19934,8 @@ snapshots: '@babel/parser': 7.29.2 eslint: 9.39.4(jiti@2.7.0)(supports-color@10.2.2) hermes-parser: 0.25.1 - zod: 3.25.76 - zod-validation-error: 4.0.2(zod@3.25.76) + zod: 4.6.6 + zod-validation-error: 4.0.2(zod@4.6.6) transitivePeerDependencies: - supports-color @@ -19879,6 +20226,8 @@ snapshots: exsolve@1.1.1: {} + exsolve@1.2.0: {} + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 @@ -19919,7 +20268,7 @@ snapshots: dependencies: fast-string-truncated-width: 3.0.3 - fast-uri@3.1.8: {} + fast-uri@3.1.9: {} fast-wrap-ansi@0.2.2: dependencies: @@ -19953,6 +20302,8 @@ snapshots: dependencies: xml-js: 1.6.11 + fetchdts@0.2.0: {} + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -20016,6 +20367,8 @@ snapshots: flatted@3.4.2: {} + flru@1.0.2: {} + fnv1a-64@0.1.2: {} for-each@0.3.5: @@ -20064,9 +20417,7 @@ snapshots: functions-have-names@1.2.3: {} - fuse.js@7.5.0: {} - - fzf@0.5.2: {} + fuzzysort@4.0.2: {} generator-function@2.0.1: {} @@ -20547,9 +20898,11 @@ snapshots: ignore@7.0.10: {} + ignore@7.0.14: {} + ignore@7.0.5: {} - image-meta@0.2.2: {} + image-meta@0.3.0: {} image-size@2.0.2: {} @@ -20566,12 +20919,12 @@ snapshots: import-without-cache@0.2.5: {} - impound@1.2.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): + impound@1.2.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): dependencies: '@jridgewell/trace-mapping': 0.3.31 es-module-lexer: 2.3.2 pathe: 2.0.3 - unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) unplugin-utils: 0.3.2 transitivePeerDependencies: - '@farmfe/core' @@ -20635,6 +20988,10 @@ snapshots: iron-webcrypto@1.2.1: {} + iron-webcrypto@2.0.0: + dependencies: + uint8array-extras: 1.6.0 + is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -20983,7 +21340,7 @@ snapshots: dependencies: package-json: 8.1.1 - launch-editor@2.14.1: + launch-editor@2.14.2: dependencies: picocolors: 1.1.1 shell-quote: 1.12.0 @@ -21189,6 +21546,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 + magic-string@1.4.5: + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 + magicast@0.5.5: dependencies: '@babel/parser': 7.29.8 @@ -21395,7 +21756,8 @@ snapshots: mdn-data@2.0.30: {} - mdn-data@2.27.1: {} + mdn-data@2.27.1: + optional: true media-typer@0.3.0: {} @@ -21452,6 +21814,8 @@ snapshots: methods@1.1.2: {} + microdiff@1.6.0: {} + micromark-core-commonmark@2.0.3: dependencies: decode-named-character-reference: 1.3.0 @@ -21951,6 +22315,14 @@ snapshots: mute-stream@3.0.0: {} + my-bad@0.2.11(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): + dependencies: + clickable-path: 0.1.1 + errx: 0.2.2 + fnv1a-64: 0.1.2 + optionalDependencies: + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + nanoid@3.3.19: {} nanotar@0.3.0: {} @@ -21965,9 +22337,9 @@ snapshots: neo-async@2.6.2: {} - next@16.3.8(@babel/core@8.0.1)(@playwright/test@1.59.1)(@types/node@25.5.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.101.0): + next@16.4.1(@babel/core@8.0.1)(@playwright/test@1.59.1)(@types/node@25.5.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.101.0): dependencies: - '@next/env': 16.3.8 + '@next/env': 16.4.1 '@swc/helpers': 0.5.23 baseline-browser-mapping: 2.11.23 caniuse-lite: 1.0.30001810 @@ -21976,14 +22348,14 @@ snapshots: react-dom: 19.2.4(react@19.2.4) styled-jsx: 5.1.6(@babel/core@8.0.1)(react@19.2.4) optionalDependencies: - '@next/swc-darwin-arm64': 16.3.8 - '@next/swc-darwin-x64': 16.3.8 - '@next/swc-linux-arm64-gnu': 16.3.8 - '@next/swc-linux-arm64-musl': 16.3.8 - '@next/swc-linux-x64-gnu': 16.3.8 - '@next/swc-linux-x64-musl': 16.3.8 - '@next/swc-win32-arm64-msvc': 16.3.8 - '@next/swc-win32-x64-msvc': 16.3.8 + '@next/swc-darwin-arm64': 16.4.1 + '@next/swc-darwin-x64': 16.4.1 + '@next/swc-linux-arm64-gnu': 16.4.1 + '@next/swc-linux-arm64-musl': 16.4.1 + '@next/swc-linux-x64-gnu': 16.4.1 + '@next/swc-linux-x64-musl': 16.4.1 + '@next/swc-win32-arm64-msvc': 16.4.1 + '@next/swc-win32-x64-msvc': 16.4.1 '@playwright/test': 1.59.1 sass: 1.101.0 sharp: 0.35.5(@types/node@25.5.2) @@ -21992,7 +22364,7 @@ snapshots: - '@types/node' - babel-plugin-macros - nitropack@2.13.4(@parcel/watcher@2.6.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): + nitropack@2.13.4(@parcel/watcher@2.6.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(srvx@0.11.22)(supports-color@10.2.2)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@rollup/plugin-alias': 6.0.0(rollup@4.63.5) @@ -22057,7 +22429,7 @@ snapshots: uncrypto: 0.1.3 unctx: 2.5.0 unenv: 2.0.0-rc.24 - unimport: 6.5.0(esbuild@0.28.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unimport: 6.5.0(esbuild@0.28.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) unplugin-utils: 0.3.2 unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2)) untyped: 2.0.0 @@ -22149,6 +22521,8 @@ snapshots: node-releases@2.0.55: {} + node-releases@2.0.60: {} + nopt@8.1.0: dependencies: abbrev: 3.0.1 @@ -22191,39 +22565,45 @@ snapshots: schema-utils: 3.3.0 webpack: 5.110.3(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0) - nuxt@4.5.2(6e9ac995c1c9925a5d42c915eaaff171): - dependencies: - '@dxup/nuxt': 0.5.10(esbuild@0.28.2)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) - '@nuxt/cli': 3.37.0(@nuxt/schema@4.5.2)(@parcel/watcher@2.6.0)(commander@14.0.3)(magicast@0.5.5)(supports-color@10.2.2) - '@nuxt/devtools': 3.4.2(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2))(magic-string@1.3.1)(oxc-parser@0.142.0)(rolldown@1.2.1)(supports-color@10.2.2)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3)) - '@nuxt/kit': 4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) - '@nuxt/nitro-server': 4.5.2(a989d6dd41215d71d3f9874387d7adb9) - '@nuxt/schema': 4.5.2 - '@nuxt/telemetry': 2.9.1(@nuxt/kit@4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))) - '@nuxt/vite-builder': 4.5.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.6(supports-color@10.2.2)))(@types/node@25.5.2)(esbuild@0.28.2)(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2))(magic-string@1.3.1)(magicast@0.5.5)(nuxt@4.5.2(6e9ac995c1c9925a5d42c915eaaff171))(optionator@0.9.4)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.1)(rollup@4.63.5))(rollup@4.63.5)(sass@1.101.0)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.21.0)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.42(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))(yaml@2.9.1) - '@unhead/vue': 3.4.1(@oxc-project/types@0.142.0)(esbuild@0.28.2)(lightningcss@1.32.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) - '@vue/shared': 3.5.42 + nuxt@4.6.2(90d1a56eb34908c1d8a80da2f607020f): + dependencies: + '@dxup/nuxt': 0.5.10(esbuild@0.28.2)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + '@jridgewell/trace-mapping': 0.3.31 + '@nuxt/cli': 4.0.1(@nuxt/schema@4.6.2)(jiti@2.7.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + '@nuxt/devalue': 2.0.2 + '@nuxt/devtools': 3.4.4(@nuxt/schema@4.6.2)(confbox@0.3.1)(db0@0.3.4)(dotenv@17.4.0)(giget@3.3.1)(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3)) + '@nuxt/kit': 4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + '@nuxt/nitro-server': 4.6.2(d1141932a4d98c514091f0250d694daf) + '@nuxt/schema': 4.6.2 + '@nuxt/telemetry': 2.9.1(@nuxt/kit@4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))) + '@nuxt/vite-builder': 4.6.2(@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.6(supports-color@10.2.2)))(@nuxt/schema@4.6.2)(@types/node@25.5.2)(confbox@0.3.1)(dotenv@17.4.0)(esbuild@0.28.2)(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2))(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(nuxt@4.6.2(90d1a56eb34908c1d8a80da2f607020f))(optionator@0.9.4)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup-plugin-visualizer@7.1.1(rolldown@1.2.1)(rollup@4.63.5))(rollup@4.63.5)(sass@1.101.0)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.21.0)(typescript@5.9.3)(vue-tsc@2.2.12(typescript@5.9.3))(vue@3.5.44(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))(yaml@2.9.1) + '@nuxt/vite-server': 4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(nuxt@4.6.2(90d1a56eb34908c1d8a80da2f607020f))(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + '@unhead/vue': 3.4.3(@oxc-project/types@0.142.0)(esbuild@0.28.2)(lightningcss@1.32.0)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + '@vue/shared': 3.5.44 chokidar: 5.0.0 + clickable-path: 0.1.1 compatx: 0.2.0 consola: 3.4.2 cookie-es: 3.1.1 defu: 6.1.7 - devalue: 5.9.3 - errx: 0.1.2 + destr: 2.0.5 + devalue: 6.0.3 + errx: 0.2.2 escape-string-regexp: 5.0.0 - exsolve: 1.1.1 + exsolve: 1.2.0 + fetchdts: 0.2.0 fnv1a-64: 0.1.2 hookable: 6.1.2 - ignore: 7.0.10 - impound: 1.2.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + ignore: 7.0.14 + impound: 1.2.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + iron-webcrypto: 2.0.0 jiti: 2.7.0 klona: 2.0.6 knitwork: 1.3.0 - magic-string: 1.3.1 - mlly: 1.8.2 + magic-string: 1.4.5 + my-bad: 0.2.11(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) nanotar: 0.3.0 nostics: 1.3.0 - nypm: 0.6.10 object-identity: 0.2.3 ofetch: 1.5.1 ohash: 2.0.12 @@ -22231,28 +22611,29 @@ snapshots: oxc-walker: 1.1.1(@oxc-project/types@0.142.0)(oxc-parser@0.142.0)(rolldown@1.2.1) pathe: 2.0.3 perfect-debounce: 2.1.0 - picomatch: 4.0.5 + picomatch: 4.0.7 pkg-types: 2.3.3 rolldown: 1.2.1 rolldown-string: 0.3.1(rolldown@1.2.1) rou3: 0.9.2 scule: 1.3.0 - std-env: 4.2.0 + std-env: 4.3.0 tinyglobby: 0.2.17 ufo: 1.6.4 ultrahtml: 1.7.0 uncrypto: 0.1.3 - unctx: 3.0.1(magic-string@1.3.1)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) - undici: 8.11.2 - unhead: 3.4.1(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) - unimport: 6.5.0(esbuild@0.28.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) - unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unctx: 3.0.1(magic-string@1.4.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + undici: 8.12.2 + unhead: 3.4.3(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unimport: 7.0.2(acorn@8.18.0)(esbuild@0.28.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) unrouting: 0.2.3 untyped: 2.0.0 - verkit: 0.3.2 - vue: 3.5.42(typescript@5.9.3) - vue-component-type-helpers: 3.3.11 - vue-router: 5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + verkit: 0.5.0 + vue: 3.5.44(typescript@5.9.3) + vue-bundle-renderer: 2.4.0 + vue-component-type-helpers: 3.3.13 + vue-router: 5.4.0(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) optionalDependencies: '@parcel/watcher': 2.6.0 '@types/node': 25.5.2 @@ -22273,6 +22654,7 @@ snapshots: - '@farmfe/core' - '@libsql/client' - '@netlify/blobs' + - '@nuxt/docs' - '@oxc-project/types' - '@pinia/colada' - '@planetscale/database' @@ -22287,25 +22669,28 @@ snapshots: - '@vitejs/devtools' - '@vitejs/devtools-kit' - '@vue/compiler-sfc' + - acorn - aws4fetch - bare-abort-controller - bare-buffer - better-sqlite3 - bufferutil - bun-types-no-globals - - cac - - commander + - confbox - db0 + - dotenv - drizzle-orm - encoding - esbuild - eslint + - giget - idb-keyval - ioredis - less - lightningcss - magicast - meow + - mlly - mysql2 - optionator - oxc-parser @@ -22316,6 +22701,7 @@ snapshots: - rollup-plugin-visualizer - sass - sass-embedded + - serve - sqlite3 - srvx - stylelint @@ -22334,12 +22720,6 @@ snapshots: - xml2js - yaml - nypm@0.6.10: - dependencies: - citty: 0.2.2 - pathe: 2.0.3 - tinyexec: 1.3.1 - object-assign@4.1.1: {} object-identity@0.2.3: {} @@ -22382,6 +22762,8 @@ snapshots: obug@2.1.1: {} + obug@3.0.0: {} + ofetch@1.5.1: dependencies: destr: 2.0.5 @@ -22423,7 +22805,7 @@ snapshots: open@11.0.0: dependencies: - default-browser: 5.5.0 + default-browser: 5.5.1 define-lazy-prop: 3.0.0 is-in-ssh: 1.0.0 is-inside-container: 1.0.0 @@ -22551,6 +22933,8 @@ snapshots: package-manager-detector@1.8.0: {} + package-manager-detector@1.9.0: {} + param-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -22724,6 +23108,12 @@ snapshots: postcss: 8.5.28 postcss-selector-parser: 7.1.6 postcss-value-parser: 4.2.0 + optional: true + + postcss-calc@11.2.3(postcss@8.5.28): + dependencies: + '@csstools/css-tokenizer': 4.0.2 + postcss: 8.5.28 postcss-calc@9.0.1(postcss@8.5.28): dependencies: @@ -22768,10 +23158,11 @@ snapshots: postcss-colormin@8.0.5(postcss@8.5.28): dependencies: '@colordx/core': 5.8.0 - browserslist: 4.28.9 + browserslist: 4.29.5 caniuse-api: 4.0.0 postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-convert-values@6.1.0(postcss@8.5.28): dependencies: @@ -22781,9 +23172,10 @@ snapshots: postcss-convert-values@8.0.4(postcss@8.5.28): dependencies: - browserslist: 4.28.9 + browserslist: 4.29.5 postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-custom-media@11.0.6(postcss@8.5.28): dependencies: @@ -22823,6 +23215,7 @@ snapshots: dependencies: postcss: 8.5.28 postcss-selector-parser: 7.1.6 + optional: true postcss-discard-duplicates@6.0.3(postcss@8.5.28): dependencies: @@ -22831,6 +23224,7 @@ snapshots: postcss-discard-duplicates@8.0.4(postcss@8.5.28): dependencies: postcss: 8.5.28 + optional: true postcss-discard-empty@6.0.3(postcss@8.5.28): dependencies: @@ -22839,6 +23233,7 @@ snapshots: postcss-discard-empty@8.0.5(postcss@8.5.28): dependencies: postcss: 8.5.28 + optional: true postcss-discard-overridden@6.0.2(postcss@8.5.28): dependencies: @@ -22847,6 +23242,7 @@ snapshots: postcss-discard-overridden@8.0.4(postcss@8.5.28): dependencies: postcss: 8.5.28 + optional: true postcss-discard-unused@6.0.5(postcss@8.5.28): dependencies: @@ -22927,6 +23323,7 @@ snapshots: postcss: 8.5.28 postcss-value-parser: 4.2.0 stylehacks: 8.0.4(postcss@8.5.28) + optional: true postcss-merge-rules@6.1.1(postcss@8.5.28): dependencies: @@ -22938,11 +23335,12 @@ snapshots: postcss-merge-rules@8.0.5(postcss@8.5.28): dependencies: - browserslist: 4.28.9 + browserslist: 4.29.5 caniuse-api: 4.0.0 cssnano-utils: 6.0.4(postcss@8.5.28) postcss: 8.5.28 postcss-selector-parser: 7.1.6 + optional: true postcss-minify-font-values@6.1.0(postcss@8.5.28): dependencies: @@ -22953,6 +23351,7 @@ snapshots: dependencies: postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-minify-gradients@6.0.3(postcss@8.5.28): dependencies: @@ -22967,6 +23366,7 @@ snapshots: cssnano-utils: 6.0.4(postcss@8.5.28) postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-minify-params@6.1.0(postcss@8.5.28): dependencies: @@ -22977,10 +23377,11 @@ snapshots: postcss-minify-params@8.0.4(postcss@8.5.28): dependencies: - browserslist: 4.28.9 + browserslist: 4.29.5 cssnano-utils: 6.0.4(postcss@8.5.28) postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-minify-selectors@6.0.4(postcss@8.5.28): dependencies: @@ -22989,11 +23390,12 @@ snapshots: postcss-minify-selectors@8.0.5(postcss@8.5.28): dependencies: - browserslist: 4.28.9 + browserslist: 4.29.5 caniuse-api: 4.0.0 cssesc: 3.0.0 postcss: 8.5.28 postcss-selector-parser: 7.1.6 + optional: true postcss-modules-extract-imports@3.1.0(postcss@8.5.28): dependencies: @@ -23030,6 +23432,7 @@ snapshots: postcss-normalize-charset@8.0.5(postcss@8.5.28): dependencies: postcss: 8.5.28 + optional: true postcss-normalize-display-values@6.0.2(postcss@8.5.28): dependencies: @@ -23040,6 +23443,7 @@ snapshots: dependencies: postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-normalize-positions@6.0.2(postcss@8.5.28): dependencies: @@ -23050,6 +23454,7 @@ snapshots: dependencies: postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-normalize-repeat-style@6.0.2(postcss@8.5.28): dependencies: @@ -23060,6 +23465,7 @@ snapshots: dependencies: postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-normalize-string@6.0.2(postcss@8.5.28): dependencies: @@ -23070,6 +23476,7 @@ snapshots: dependencies: postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-normalize-timing-functions@6.0.2(postcss@8.5.28): dependencies: @@ -23080,6 +23487,7 @@ snapshots: dependencies: postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-normalize-unicode@6.1.0(postcss@8.5.28): dependencies: @@ -23089,9 +23497,10 @@ snapshots: postcss-normalize-unicode@8.0.4(postcss@8.5.28): dependencies: - browserslist: 4.28.9 + browserslist: 4.29.5 postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-normalize-url@6.0.2(postcss@8.5.28): dependencies: @@ -23102,6 +23511,7 @@ snapshots: dependencies: postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-normalize-whitespace@6.0.2(postcss@8.5.28): dependencies: @@ -23112,6 +23522,7 @@ snapshots: dependencies: postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-opacity-percentage@3.0.0(postcss@8.5.28): dependencies: @@ -23128,6 +23539,7 @@ snapshots: cssnano-utils: 6.0.4(postcss@8.5.28) postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-overflow-shorthand@6.0.0(postcss@8.5.28): dependencies: @@ -23236,9 +23648,10 @@ snapshots: postcss-reduce-initial@8.0.5(postcss@8.5.28): dependencies: - browserslist: 4.28.9 + browserslist: 4.29.5 caniuse-api: 4.0.0 postcss: 8.5.28 + optional: true postcss-reduce-transforms@6.0.2(postcss@8.5.28): dependencies: @@ -23249,6 +23662,7 @@ snapshots: dependencies: postcss: 8.5.28 postcss-value-parser: 4.2.0 + optional: true postcss-replace-overflow-wrap@4.0.0(postcss@8.5.28): dependencies: @@ -23289,6 +23703,7 @@ snapshots: postcss: 8.5.28 postcss-value-parser: 4.2.0 svgo: 4.1.0 + optional: true postcss-unique-selectors@6.0.4(postcss@8.5.28): dependencies: @@ -23299,6 +23714,7 @@ snapshots: dependencies: postcss: 8.5.28 postcss-selector-parser: 7.1.6 + optional: true postcss-value-parser@4.2.0: {} @@ -24058,9 +24474,9 @@ snapshots: transitivePeerDependencies: - supports-color - serialize-javascript@7.0.5: {} + serialize-javascript@7.1.3: {} - seroval@1.6.7: {} + seroval@1.6.11: {} serve-handler@6.1.7: dependencies: @@ -24106,8 +24522,6 @@ snapshots: transitivePeerDependencies: - supports-color - set-cookie-parser@3.1.2: {} - set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -24226,16 +24640,6 @@ snapshots: signal-exit@4.1.0: {} - simple-git@4.0.2(supports-color@10.2.2): - dependencies: - '@kwsites/file-exists': 1.1.1(supports-color@10.2.2) - '@kwsites/promise-deferred': 1.1.1 - '@simple-git/args-pathspec': 1.0.4 - '@simple-git/argv-parser': 2.0.1 - debug: 4.4.3(supports-color@10.2.2) - transitivePeerDependencies: - - supports-color - sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.29 @@ -24325,7 +24729,12 @@ snapshots: srcset@4.0.0: {} - srvx@0.11.22: {} + srvx@0.11.22: + optional: true + + srvx@1.0.5: {} + + srvx@1.0.8: {} stackback@0.0.2: {} @@ -24339,6 +24748,8 @@ snapshots: std-env@4.2.0: {} + std-env@4.3.0: {} + stdin-discarder@0.3.2: {} stop-iteration-iterator@1.1.0: @@ -24491,9 +24902,10 @@ snapshots: stylehacks@8.0.4(postcss@8.5.28): dependencies: - browserslist: 4.28.9 + browserslist: 4.29.5 postcss: 8.5.28 postcss-selector-parser: 7.1.6 + optional: true stylis@4.4.0: {} @@ -24509,7 +24921,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-check@4.7.6(picomatch@4.0.7)(svelte@5.57.0(@typescript-eslint/types@8.58.0))(typescript@5.9.3): + svelte-check@4.7.6(picomatch@4.0.7)(svelte@5.57.3(@typescript-eslint/types@8.58.0))(typescript@5.9.3): dependencies: '@jridgewell/trace-mapping': 0.3.31 '@sveltejs/load-config': 0.2.3 @@ -24517,12 +24929,25 @@ snapshots: fdir: 6.5.0(picomatch@4.0.7) picocolors: 1.1.1 sade: 1.8.1 - svelte: 5.57.0(@typescript-eslint/types@8.58.0) + svelte: 5.57.3(@typescript-eslint/types@8.58.0) typescript: 5.9.3 transitivePeerDependencies: - picomatch - svelte@5.57.0(@typescript-eslint/types@8.58.0): + svelte-check@4.7.6(picomatch@4.0.7)(svelte@5.57.3(@typescript-eslint/types@8.58.0))(typescript@6.0.3): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@sveltejs/load-config': 0.2.3 + chokidar: 4.0.3 + fdir: 6.5.0(picomatch@4.0.7) + picocolors: 1.1.1 + sade: 1.8.1 + svelte: 5.57.3(@typescript-eslint/types@8.58.0) + typescript: 6.0.3 + transitivePeerDependencies: + - picomatch + + svelte@5.57.3(@typescript-eslint/types@8.58.0): dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.6.0 @@ -24563,6 +24988,7 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 sax: 1.6.1 + optional: true tagged-tag@1.0.0: {} @@ -24639,6 +25065,8 @@ snapshots: tinyclip@0.1.15: {} + tinyclip@1.0.3: {} + tinyexec@1.0.4: {} tinyexec@1.3.1: {} @@ -24828,6 +25256,8 @@ snapshots: ufo@1.6.4: {} + uint8array-extras@1.6.0: {} + ultrahtml@1.7.0: {} unbox-primitive@1.1.0: @@ -24851,27 +25281,34 @@ snapshots: magic-string: 0.30.21 unplugin: 2.3.11 - unctx@3.0.1(magic-string@1.3.1)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))): + unctx@3.0.1(magic-string@1.3.1)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))): optionalDependencies: magic-string: 1.3.1 oxc-parser: 0.142.0 rolldown: 1.2.1 - unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + + unctx@3.0.1(magic-string@1.4.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))): + optionalDependencies: + magic-string: 1.4.5 + oxc-parser: 0.142.0 + rolldown: 1.2.1 + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) undici-types@7.18.2: {} - undici@8.11.2: {} + undici@8.12.2: {} unenv@2.0.0-rc.24: dependencies: pathe: 2.0.3 - unhead@3.4.1(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): + unhead@3.4.3(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): dependencies: hookable: 6.1.2 - unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) optionalDependencies: - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) transitivePeerDependencies: - '@farmfe/core' - '@rsbuild/core' @@ -24910,7 +25347,7 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unimport@6.5.0(esbuild@0.28.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): + unimport@6.5.0(esbuild@0.28.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): dependencies: acorn: 8.18.0 escape-string-regexp: 5.0.0 @@ -24924,9 +25361,39 @@ snapshots: scule: 1.3.0 strip-literal: 4.0.0 tinyglobby: 0.2.17 - unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unplugin-utils: 0.3.2 + optionalDependencies: + oxc-parser: 0.142.0 + rolldown: 1.2.1 + transitivePeerDependencies: + - '@farmfe/core' + - '@rsbuild/core' + - '@rspack/core' + - bun-types-no-globals + - esbuild + - rollup + - unloader + - vite + - webpack + + unimport@7.0.2(acorn@8.18.0)(esbuild@0.28.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): + dependencies: + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + local-pkg: 1.2.1 + magic-string: 1.3.1 + mlly: 1.8.2 + pathe: 2.0.3 + picomatch: 4.0.7 + pkg-types: 2.3.3 + scule: 1.3.0 + strip-literal: 4.0.0 + tinyglobby: 0.2.17 + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) unplugin-utils: 0.3.2 optionalDependencies: + acorn: 8.18.0 oxc-parser: 0.142.0 rolldown: 1.2.1 transitivePeerDependencies: @@ -24978,7 +25445,7 @@ snapshots: unplugin-utils@0.3.2: dependencies: pathe: 2.0.3 - picomatch: 4.0.5 + picomatch: 4.0.7 unplugin@2.3.11: dependencies: @@ -24987,7 +25454,7 @@ snapshots: picomatch: 4.0.7 webpack-virtual-modules: 0.6.2 - unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): + unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): dependencies: '@jridgewell/remapping': 2.3.5 picomatch: 4.0.7 @@ -24996,7 +25463,7 @@ snapshots: esbuild: 0.28.2 rolldown: 1.2.1 rollup: 4.63.5 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) webpack: 5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0) unrouting@0.2.3: @@ -25053,6 +25520,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.3.4(browserslist@4.29.5): + dependencies: + browserslist: 4.29.5 + escalade: 3.2.0 + picocolors: 1.1.1 + update-notifier@6.0.2: dependencies: boxen: 7.1.1 @@ -25103,6 +25576,8 @@ snapshots: verkit@0.3.2: {} + verkit@0.5.0: {} + vfile-location@5.0.3: dependencies: '@types/unist': 3.0.3 @@ -25118,15 +25593,15 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-dev-rpc@2.0.0(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): + vite-dev-rpc@2.0.0(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): dependencies: birpc: 4.0.0 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) - vite-hot-client: 2.2.0(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite-hot-client: 2.2.0(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) - vite-hot-client@2.2.0(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): + vite-hot-client@2.2.0(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): dependencies: - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) vite-node@6.0.0(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1): dependencies: @@ -25134,7 +25609,7 @@ snapshots: es-module-lexer: 2.3.2 obug: 2.1.1 pathe: 2.0.3 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) transitivePeerDependencies: - '@types/node' - '@vitejs/devtools' @@ -25149,23 +25624,23 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.14.5(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2))(optionator@0.9.4)(typescript@5.9.3)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue-tsc@2.2.12(typescript@5.9.3)): + vite-plugin-checker@0.14.5(eslint@9.39.4(jiti@2.7.0)(supports-color@10.2.2))(optionator@0.9.4)(typescript@5.9.3)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue-tsc@2.2.12(typescript@5.9.3)): dependencies: '@babel/code-frame': 7.29.7 chokidar: 5.0.0 npm-run-path: 6.0.0 picocolors: 1.1.1 - picomatch: 4.0.5 + picomatch: 4.0.7 proper-lockfile: 4.1.2 tiny-invariant: 1.3.3 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) optionalDependencies: eslint: 9.39.4(jiti@2.7.0)(supports-color@10.2.2) optionator: 0.9.4 typescript: 5.9.3 vue-tsc: 2.2.12(typescript@5.9.3) - vite-plugin-inspect@11.4.1(@nuxt/kit@4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): + vite-plugin-inspect@11.4.1(@nuxt/kit@4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): dependencies: ansis: 4.4.0 error-stack-parser-es: 1.0.5 @@ -25175,25 +25650,25 @@ snapshots: perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.2 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) - vite-dev-rpc: 2.0.0(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite-dev-rpc: 2.0.0(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) optionalDependencies: - '@nuxt/kit': 4.5.2(magic-string@1.3.1)(magicast@0.5.5)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) + '@nuxt/kit': 4.6.2(@nuxt/schema@4.6.2)(confbox@0.3.1)(dotenv@17.4.0)(giget@3.3.1)(jiti@2.7.0)(magic-string@1.4.5)(mlly@1.8.2)(oxc-parser@0.142.0)(rolldown@1.2.1)(unplugin@3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0))) - vite-plugin-vue-tracer@1.5.0(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3)): + vite-plugin-vue-tracer@1.5.0(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.1.1 magic-string: 1.3.1 pathe: 2.0.3 source-map-js: 1.2.2 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) - vue: 3.5.42(typescript@5.9.3) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vue: 3.5.44(typescript@5.9.3) - vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1): + vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1): dependencies: lightningcss: 1.32.0 - picomatch: 4.0.7 + picomatch: 4.0.5 postcss: 8.5.28 rolldown: 1.1.5 tinyglobby: 0.2.17 @@ -25207,14 +25682,14 @@ snapshots: tsx: 4.21.0 yaml: 2.9.1 - vitefu@1.1.3(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): + vitefu@1.1.3(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): optionalDependencies: - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) - vitest@4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@5.9.3))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): + vitest@4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@5.9.3))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): dependencies: '@vitest/expect': 4.1.2 - '@vitest/mocker': 4.1.2(msw@2.12.14(@types/node@25.5.2)(typescript@5.9.3))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + '@vitest/mocker': 4.1.2(msw@2.12.14(@types/node@25.5.2)(typescript@5.9.3))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) '@vitest/pretty-format': 4.1.2 '@vitest/runner': 4.1.2 '@vitest/snapshot': 4.1.2 @@ -25231,17 +25706,17 @@ snapshots: tinyexec: 1.3.1 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 25.5.2 transitivePeerDependencies: - msw - vitest@4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): + vitest@4.1.2(@types/node@25.5.2)(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)): dependencies: '@vitest/expect': 4.1.2 - '@vitest/mocker': 4.1.2(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) + '@vitest/mocker': 4.1.2(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.3))(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1)) '@vitest/pretty-format': 4.1.2 '@vitest/runner': 4.1.2 '@vitest/snapshot': 4.1.2 @@ -25258,7 +25733,7 @@ snapshots: tinyexec: 1.3.1 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 25.5.2 @@ -25272,7 +25747,7 @@ snapshots: dependencies: ufo: 1.6.4 - vue-component-type-helpers@3.3.11: {} + vue-component-type-helpers@3.3.13: {} vue-devtools-stub@0.1.0: {} @@ -25288,28 +25763,28 @@ snapshots: transitivePeerDependencies: - supports-color - vue-router@5.3.1(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): + vue-router@5.4.0(@vue/compiler-sfc@3.5.42)(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(vue@3.5.44(typescript@5.9.3))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)): dependencies: - '@vue-macros/common': 3.1.4(vue@3.5.42(typescript@5.9.3)) + '@vue-macros/common': 3.1.4(vue@3.5.44(typescript@5.9.3)) '@vue/devtools-api': 8.2.1 - ast-walker-scope: 0.9.0 + ast-walker-scope: 0.10.0 chokidar: 5.0.0 - confbox: 0.2.4 + confbox: 0.3.1 local-pkg: 1.2.1 - magic-string: 0.30.21 + magic-string: 1.4.5 mlly: 1.8.2 muggle-string: 0.4.1 nostics: 1.3.0 pathe: 2.0.3 - picomatch: 4.0.5 + picomatch: 4.0.7 scule: 1.3.0 tinyglobby: 0.2.17 - unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) + unplugin: 3.4.0(esbuild@0.28.2)(rolldown@1.2.1)(rollup@4.63.5)(vite@8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1))(webpack@5.110.3(clean-css@5.3.3)(cssnano@8.0.10(postcss@8.5.28))(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.28)(sharp@0.35.5(@types/node@25.5.2))(svgo@4.1.0)) unplugin-utils: 0.3.2 - vue: 3.5.42(typescript@5.9.3) + vue: 3.5.44(typescript@5.9.3) optionalDependencies: '@vue/compiler-sfc': 3.5.42 - vite: 8.1.5(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) + vite: 8.1.6(@types/node@25.5.2)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)(terser@5.51.2)(tsx@4.21.0)(yaml@2.9.1) transitivePeerDependencies: - '@farmfe/core' - '@rsbuild/core' @@ -25327,13 +25802,13 @@ snapshots: '@vue/language-core': 2.2.12(typescript@5.9.3) typescript: 5.9.3 - vue@3.5.42(typescript@5.9.3): + vue@3.5.44(typescript@5.9.3): dependencies: - '@vue/compiler-dom': 3.5.42 - '@vue/compiler-sfc': 3.5.42 - '@vue/runtime-dom': 3.5.42 - '@vue/server-renderer': 3.5.42 - '@vue/shared': 3.5.42 + '@vue/compiler-dom': 3.5.44 + '@vue/compiler-sfc': 3.5.44 + '@vue/runtime-dom': 3.5.44 + '@vue/server-renderer': 3.5.44 + '@vue/shared': 3.5.44 optionalDependencies: typescript: 5.9.3 @@ -25401,7 +25876,7 @@ snapshots: graceful-fs: 4.2.11 http-proxy-middleware: 4.2.0(supports-color@10.2.2) ipaddr.js: 2.5.0 - launch-editor: 2.14.1 + launch-editor: 2.14.2 open: 10.2.0 p-retry: 6.2.1 schema-utils: 4.5.0 @@ -25640,6 +26115,8 @@ snapshots: ws@8.21.3: {} + ws@8.22.0: {} + wsl-utils@0.1.0: dependencies: is-wsl: 3.1.1 @@ -25720,17 +26197,15 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.7.0 - zod-to-json-schema@3.25.2(zod@4.4.3): + zod-to-json-schema@3.25.2(zod@4.6.6): dependencies: - zod: 4.4.3 + zod: 4.6.6 - zod-validation-error@4.0.2(zod@3.25.76): + zod-validation-error@4.0.2(zod@4.6.6): dependencies: - zod: 3.25.76 - - zod@3.25.76: {} + zod: 4.6.6 - zod@4.4.3: {} + zod@4.6.6: {} zone.js@0.16.3: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3863e9b..7270672 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -27,7 +27,7 @@ overrides: 'postcss-selector-parser@>=7.0.0 <7.1.6': 7.1.6 '@hono/node-server': 1.19.13 '@babel/plugin-transform-modules-systemjs': 7.29.4 - fast-uri: 3.1.8 + fast-uri: 3.1.9 fast-xml-parser: 5.7.0 follow-redirects: 1.16.0 lodash-es: 4.18.0 @@ -35,19 +35,19 @@ overrides: js-cookie: 3.0.7 postcss: 8.5.28 qs: 6.16.0 - serialize-javascript: 7.0.5 + serialize-javascript: 7.1.3 sharp: 0.35.5 source-map-js: 1.2.2 shell-quote: 1.12.0 simple-git: 4.0.2 uuid: 14.0.0 - vite: 8.1.5 + vite: 8.1.6 webpack-dev-server: 5.2.6 'ip-address@<=10.1.0': '>=10.1.1' 'joi@<17.13.4': '>=17.13.4' 'esbuild@>=0.27.3 <0.28.1': '>=0.28.1' - 'vite@>=8.0.0 <=8.0.15': '>=8.0.16' - 'launch-editor@<=2.14.0': '>=2.14.1' + 'vite@>=8.0.0 <=8.1.5': 8.1.6 + 'launch-editor@<=2.14.1': 2.14.2 '@babel/core@<=7.29.0': 7.29.6 'hono@<4.12.25': '>=4.12.25' 'webpack-dev-server@<=5.2.5': 5.2.6 @@ -65,13 +65,23 @@ overrides: 'brace-expansion@>=3.0.0 <5.0.12': 5.0.12 '@humanfs/node@<0.16.8': 0.16.8 'cookie@<0.7.0': 0.7.2 + 'zod@>=4.0.0 <4.6.6': 4.6.6 + 'undici@>=8.0.0 <8.12.2': 8.12.2 + 'seroval@<1.6.11': 1.6.11 + '@emnapi/core@2.0.0-alpha.3': 2.0.0-alpha.4 + '@emnapi/runtime@2.0.0-alpha.3': 2.0.0-alpha.4 +# deepmerge 4.3.1 has no fixed release for GHSA-gcqx-w48m-w2h4. The local +# key guard patches source and both shipped artifacts. Its installed CJS/UMD +# exploit and compatibility suite runs in every repository CI check. Remove +# the patch and exact advisory exception once a fixed release is available. # node-forge 1.4.0 has no fixed npm release for CVE-2026-85393 yet. Apply the # exact upstream fix from digitalbazaar/forge#1152. The narrowly scoped audit # exception below exists because the registry only sees the upstream version, # not this patched artifact. Remove both when node-forge 1.4.1 or newer is # available through listhen. patchedDependencies: + deepmerge@4.3.1: patches/deepmerge@4.3.1.patch node-forge@1.4.0: patches/node-forge@1.4.0.patch auditConfig: @@ -82,3 +92,6 @@ auditConfig: # Remove this exception as soon as braces publishes a fixed version. - GHSA-vfj7-8cjw-p6xm - GHSA-86w9-cpqp-85rv + # Registry audit cannot see the tested deepmerge patched artifact above. + # This exception covers only that advisory, never other deepmerge findings. + - GHSA-gcqx-w48m-w2h4 diff --git a/scripts/ci-run-workspace.mjs b/scripts/ci-run-workspace.mjs index 6defba0..f9a1ed2 100644 --- a/scripts/ci-run-workspace.mjs +++ b/scripts/ci-run-workspace.mjs @@ -19,6 +19,7 @@ function run(args) { if (files.length) run(['exec', 'prettier', '--check', '--ignore-unknown', '--', ...files]); if (process.env.CI_REPO_CHECKS === 'true') { run(['audit:prod']); + run(['test:dependency-security']); run(['lint:repo']); run(['test:cli-release']); run(['exec', 'node', '--test', 'scripts/ci-plan.test.mjs']); diff --git a/scripts/dependency-security.test.mjs b/scripts/dependency-security.test.mjs new file mode 100644 index 0000000..68b4bc1 --- /dev/null +++ b/scripts/dependency-security.test.mjs @@ -0,0 +1,83 @@ +import assert from 'node:assert/strict'; +import { readFileSync } from 'node:fs'; +import { createRequire } from 'node:module'; +import path from 'node:path'; +import { describe, it } from 'node:test'; +import vm from 'node:vm'; +import { parseAllDocuments } from 'yaml'; + +const require = createRequire(import.meta.url); +const packageRoot = path.dirname(require.resolve('deepmerge/package.json')); +const browser = {}; +new vm.Script(readFileSync(path.join(packageRoot, 'dist/umd.js'), 'utf8')).runInNewContext(browser); +const entrypoints = [ + ['CJS', require('deepmerge')], + ['UMD', browser.deepmerge], +]; + +it('limits the deepmerge advisory exception to the patched version across the entire lockfile graph', () => { + const graphs = parseAllDocuments(readFileSync(new URL('../pnpm-lock.yaml', import.meta.url), 'utf8')) + .map((document) => { + assert.deepEqual(document.errors, []); + return document.toJSON(); + }) + .filter((graph) => Object.keys(graph.packages ?? {}).some((name) => name.startsWith('deepmerge@'))); + assert.equal(graphs.length, 1); + const graph = graphs[0]; + assert.deepEqual( + Object.keys(graph.packages).filter((name) => name.startsWith('deepmerge@')), + ['deepmerge@4.3.1'] + ); + const hash = graph.patchedDependencies?.['deepmerge@4.3.1']; + assert.match(hash ?? '', /^[a-f0-9]{64}$/); + assert.deepEqual( + Object.keys(graph.snapshots).filter((name) => name.startsWith('deepmerge@')), + [`deepmerge@4.3.1(patch_hash=${hash})`] + ); +}); + +for (const [name, merge] of entrypoints) { + describe(`installed deepmerge ${name}`, () => { + for (const key of ['__proto__', 'constructor', 'prototype']) { + for (const side of ['source', 'target']) { + it(`rejects poisoned ${key} in the ${side} copy path`, () => { + const payload = JSON.parse(`{"${key}":{"isAdmin":true}}`); + const result = side === 'source' ? merge(Object.create(null), payload) : merge(payload, {}); + assert.equal(result.isAdmin, undefined); + assert.equal(Object.getPrototypeOf(result).isAdmin, undefined); + assert.equal(Object.hasOwn(result, key), false); + assert.equal({}.isAdmin, undefined); + }); + } + } + for (const empty of [null, undefined, false]) { + it(`rejects nested poisoning through a ${String(empty)} placeholder`, () => { + const result = merge({ session: empty }, { session: JSON.parse('{"__proto__":{"isAdmin":true}}') }); + assert.equal(result.session.isAdmin, undefined); + assert.equal(Object.getPrototypeOf(result.session).isAdmin, undefined); + assert.equal(Object.hasOwn(result.session, '__proto__'), false); + }); + } + it('preserves normal arrays, nested values and input isolation', () => { + const target = { list: [1], nested: { before: true } }; + const result = merge(target, { list: [2], nested: { after: true } }); + assert.equal(JSON.stringify(result), '{"list":[1,2],"nested":{"before":true,"after":true}}'); + assert.equal(JSON.stringify(target), '{"list":[1],"nested":{"before":true}}'); + result.nested.before = false; + assert.equal(target.nested.before, true); + }); + it('preserves symbols, custom merge callbacks and merge.all', () => { + const symbol = Symbol('synthetic'); + const result = merge( + { [symbol]: { left: true }, list: [1] }, + { [symbol]: { right: true }, list: [2] }, + { + customMerge: (key) => (key === 'list' ? (_target, source) => source : undefined), + } + ); + assert.equal(JSON.stringify(result[symbol]), '{"left":true,"right":true}'); + assert.equal(JSON.stringify(result.list), '[2]'); + assert.equal(JSON.stringify(merge.all([{ first: 1 }, { second: 2 }])), '{"first":1,"second":2}'); + }); + }); +} diff --git a/scripts/verify-public-packages.mjs b/scripts/verify-public-packages.mjs index 555023d..a27afdf 100644 --- a/scripts/verify-public-packages.mjs +++ b/scripts/verify-public-packages.mjs @@ -1,6 +1,7 @@ #!/usr/bin/env node import assert from 'node:assert/strict'; +import { createHash } from 'node:crypto'; import { spawn } from 'node:child_process'; import fs from 'node:fs/promises'; import os from 'node:os'; @@ -100,6 +101,11 @@ async function main() { await run(PACKAGE_MANAGER_COMMAND, ['--dir', directory, 'pack', '--pack-destination', tarballDirectory]); } + for (const manifest of manifests) { + const bytes = await fs.readFile(path.join(tarballDirectory, tarballName(manifest))); + console.log(`Candidate ${manifest.name} SHA256 ${createHash('sha256').update(bytes).digest('hex')}`); + } + const packageDependencies = Object.fromEntries( manifests.map((manifest) => [manifest.name, `file:${path.join(tarballDirectory, tarballName(manifest))}`]) ); @@ -139,23 +145,34 @@ async function main() { `packages: []\noverrides:\n${packageOverrides}\n`, 'utf8' ); + await fs.copyFile( + path.join(root, 'packages/core/test/guarded-approval-consumer.cjs'), + path.join(consumerDirectory, 'guarded-approval-smoke.cjs') + ); + const guardedTypes = await fs.readFile( + path.join(root, 'packages/core/test/guarded-approval-consumer.types.ts'), + 'utf8' + ); + const coreIndex = PUBLIC_PACKAGE_NAMES.indexOf('@lingva/core'); await fs.writeFile( path.join(consumerDirectory, 'smoke.mjs'), `${PUBLIC_PACKAGE_NAMES.map((name, index) => `import * as package${index} from '${name}';`).join('\n')}\n\n` + `const packages = [${PUBLIC_PACKAGE_NAMES.map((_, index) => `package${index}`).join(', ')}];\n` + + `import verifyGuardedApproval from './guarded-approval-smoke.cjs';\nverifyGuardedApproval(packages[${coreIndex}]);\n` + `if (packages.some((entry) => Object.keys(entry).length === 0)) throw new Error('A Lingva package exported no symbols.');\n`, 'utf8' ); await fs.writeFile( path.join(consumerDirectory, 'smoke.cjs'), `'use strict';\nconst packages = ${JSON.stringify(PUBLIC_PACKAGE_NAMES)}.map((name) => require(name));\n` + + `require('./guarded-approval-smoke.cjs')(packages[${coreIndex}]);\n` + `if (packages.some((entry) => Object.keys(entry).length === 0)) throw new Error('A Lingva package exported no symbols.');\n`, 'utf8' ); await fs.writeFile( path.join(consumerDirectory, 'types.ts'), `${PUBLIC_PACKAGE_NAMES.map((name, index) => `import * as package${index} from '${name}';`).join('\n')}\n` + - `export const packageExportCounts = [${PUBLIC_PACKAGE_NAMES.map((_, index) => `package${index}`).join(', ')}].map((entry) => Object.keys(entry).length);\n`, + `export const packageExportCounts = [${PUBLIC_PACKAGE_NAMES.map((_, index) => `package${index}`).join(', ')}].map((entry) => Object.keys(entry).length);\n${guardedTypes}`, 'utf8' ); await fs.writeFile(