diff --git a/.changeset/cli-docs-links.md b/.changeset/cli-docs-links.md new file mode 100644 index 00000000..2cca07c0 --- /dev/null +++ b/.changeset/cli-docs-links.md @@ -0,0 +1,5 @@ +--- +"@evlog/cli": patch +--- + +Point the `map` report at the new CLI documentation. The footer of the default report links to `/cli/scoring`, the matrix legend links to `/cli/rules`, and a failed `--min-score` gate links to `/cli/ci` — three pages that explain, respectively, how the score is calculated, what every column checks, and how to gate a pull request. A rule with no docs link of its own now falls back to the rules reference instead of a page that did not exist. diff --git a/.changeset/cli-early-days-note.md b/.changeset/cli-early-days-note.md new file mode 100644 index 00000000..983c4af9 --- /dev/null +++ b/.changeset/cli-early-days-note.md @@ -0,0 +1,5 @@ +--- +"@evlog/cli": patch +--- + +Say out loud that the CLI is young. The README now carries an early-days note: `evlog map` is safe to run and covered by tests, but it has adapters for four frameworks and its rules are still being refined, so verdicts and scores can move between releases — pin the CLI as a dev dependency when a CI gate depends on the number. The command table and the `--json` examples were also brought back in line with what the command actually does today (`evlog map `, the `--all` check matrix, `--verbose`, `--cwd`, and the `map` payload alongside the `doctor` one), and the docs links now point at the new CLI reference. diff --git a/.changeset/map-disable-comments.md b/.changeset/map-disable-comments.md new file mode 100644 index 00000000..2d9db423 --- /dev/null +++ b/.changeset/map-disable-comments.md @@ -0,0 +1,14 @@ +--- +"@evlog/cli": minor +--- + +Let a comment turn off an `evlog map` check. A verdict you disagree with — a false positive, or a rule you have decided not to apply to one handler — now costs one comment instead of your CI gate: + +```ts +// evlog-map-disable-next-line wide-event, context -- liveness probe, deliberately silent +export default defineEventHandler(() => ({ ok: true })) +``` + +`evlog-map-disable-line` covers the line it trails, and `evlog-map-disable` on its own covers the whole file — the right shape for a generated or vendored handler. Name several rule ids separated by commas or spaces, name none to cover every rule, and put your reason after `--`. + +A disabled check is reported as `n/a` with your reason attached, so it costs no score and stops failing `--min-score`. The rule still runs: what a directive waives is the finding, so a check that would have passed is still a `pass` and the count of disabled checks is the number of verdicts you actually chose not to see. And it stays visible — the report ends with `○ 2 checks disabled by comment in 1 entry point`, the matrix marks the cell `○`, and `evlog map ` lists the check with its reason. In the JSON, the check carries `"suppressed": true` with `evidence` pointing at the comment, and `summary.suppressedChecks` gives the project total, so a CI job can tell how much of a green score is suppressed. A rule id no rule answers to is warned about above the report rather than silently ignored. diff --git a/.changeset/rebuild-map-command.md b/.changeset/rebuild-map-command.md new file mode 100644 index 00000000..43ef10e9 --- /dev/null +++ b/.changeset/rebuild-map-command.md @@ -0,0 +1,13 @@ +--- +"@evlog/cli": minor +--- + +Add `evlog map` — a static observability score for your app, Lighthouse-style. Detects your framework (Nuxt, Nitro, Next.js App Router, or TanStack Start), scans every entry point, and scores wide-event coverage: `useLogger()`, request context (`log.set()`), structured errors (`createError({ why, fix })`), audit trails on sensitive routes, and error handling. + +`evlog map` prints the score, which areas of the app it comes from, and the three entry points to fix first with the file, the line, and a docs link for each. `evlog map --all` shows every entry point as a check matrix grouped by directory, and `evlog map ` explains one entry point in full: why it was scanned, why it was flagged sensitive, each rule's verdict, and the shape the handler could take in your framework. `evlog.map.json` is written to the project root (skip with `--no-write`), and `--min-score ` gates CI with an explicit pass/fail verdict. + +Coverage is checked by a rule engine rather than a bag of heuristics: each rule has a stable id, a documented weight, and a docs link, and every finding carries the exact file and line it came from. Detection is AST-based — a locally defined `useLogger()` stub or an unrelated `map.set()` call does not count as instrumentation, `log.audit?.deny()` counts as an audit record, evlog wrappers like `withEvlog` count as instrumentation, and a package only counts as sensitive when it is genuinely imported. A rule with nothing to look at reports itself as not applicable instead of passing for free, so the report never claims a handler catches errors it does not have, and the suggested shape is composed from the rules themselves — the audit action is read off the route, and a page fix stays inline instead of being wrapped in a server handler. Helpers re-exported through a local module count as evlog's, so the `import { useLogger } from '@/lib/evlog'` shape from the Next.js guide is scored as instrumented, and a route is only flagged sensitive when a term like `auth` or `refund` appears as a whole word in its path — `/api/authors` is left alone. + +The report lays itself out for the terminal it is given: the per-entry bar is sampled down to the width available instead of growing one glyph per entry point, and route lists show as many names as fit rather than a fixed three. + +The report also suggests going further with evlog features the project has already adopted: promoting an error that is spelled out identically in several handlers into an entry of your existing catalog, extending an existing audit trail to a state change it does not cover yet, and installing `evlog/ai` or `evlog/better-auth` when those packages are dependencies. Suggestions only appear once you use the feature somewhere, they are gated on evidence rather than on file names, and they never change the score — a `--min-score` gate cannot fail because of one. Setup-once suggestions are reported once for the whole project instead of on every entry point that could benefit. diff --git a/.gitignore b/.gitignore index d4b6dcb3..eed40bb0 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,9 @@ logs # Benchmarks bench/results.json +# evlog map reports +evlog.map.json + # Test artefacts (coverage report, Stryker mutation report, Stryker scratch) coverage/ reports/ diff --git a/apps/docs/app/app.config.ts b/apps/docs/app/app.config.ts index 81545895..f1cc16b4 100644 --- a/apps/docs/app/app.config.ts +++ b/apps/docs/app/app.config.ts @@ -52,6 +52,13 @@ export default defineAppConfig({ }, }, prose: { + pre: { + slots: { + // Scroll long lines instead of wrapping them: CLI output and check + // matrices are column-aligned, and a soft wrap destroys the alignment. + base: 'whitespace-pre wrap-normal', + }, + }, codeIcon: { 'nuxt': 'i-vscode-icons-file-type-nuxt', 'nuxt / nitro': 'i-vscode-icons-file-type-nuxt', diff --git a/apps/docs/app/components/app/AppHeaderCenter.vue b/apps/docs/app/components/app/AppHeaderCenter.vue index 85c41b3b..19a345a0 100644 --- a/apps/docs/app/components/app/AppHeaderCenter.vue +++ b/apps/docs/app/components/app/AppHeaderCenter.vue @@ -42,6 +42,18 @@ const landingItems = [ icon: 'i-lucide-bot', description: 'Use evlog with AI coding agents', to: '/reference/agent-skills' + }, + { + label: 'Configuration', + icon: 'i-lucide-settings', + description: 'Every option, env var, and default', + to: '/reference/configuration' + }, + { + label: 'Best Practices', + icon: 'i-lucide-shield-check', + description: 'What to log, what never to log', + to: '/reference/best-practices' } ] }, @@ -84,6 +96,60 @@ const landingItems = [ icon: 'i-lucide-filter', description: 'Keep all errors, drop healthy noise', to: '/learn/sampling' + }, + { + label: 'Auto-Redaction', + icon: 'i-lucide-eye-off', + description: 'Strip secrets before they leave the process', + to: '/learn/redaction' + }, + { + label: 'Typed Fields', + icon: 'i-simple-icons-typescript', + description: 'Autocomplete your own log.set fields', + to: '/learn/typed-fields' + } + ] + }, + { + label: 'CLI', + to: '/cli/overview', + children: [ + { + label: 'Overview', + icon: 'i-lucide-terminal', + description: 'Commands, flags, exit codes', + to: '/cli/overview' + }, + { + label: 'evlog map', + icon: 'i-lucide-radar', + description: 'Score every entry point in your app', + to: '/cli/map' + }, + { + label: 'Rules', + icon: 'i-lucide-list-checks', + description: 'Every check and how to satisfy it', + to: '/cli/rules' + }, + { + label: 'Scoring', + icon: 'i-lucide-gauge', + description: 'Weights, grades, and sensitivity', + to: '/cli/scoring' + }, + { + label: 'CI', + icon: 'i-lucide-git-pull-request', + description: 'Gate a pull request on the score', + to: '/cli/ci' + }, + { + label: 'evlog doctor', + icon: 'i-lucide-stethoscope', + description: 'Diagnose your evlog install', + to: '/cli/doctor' } ] }, @@ -115,6 +181,12 @@ const landingItems = [ description: 'Nitro v2 and v3 plugin', to: '/integrate/frameworks/nitro' }, + { + label: 'TanStack Start', + icon: 'i-custom-tanstack', + description: 'Nitro v3 module with async context', + to: '/integrate/frameworks/tanstack-start' + }, { label: 'Hono', icon: 'i-simple-icons-hono', @@ -127,6 +199,12 @@ const landingItems = [ description: 'Express middleware', to: '/integrate/frameworks/express' }, + { + label: 'NestJS', + icon: 'i-simple-icons-nestjs', + description: 'Module with global middleware', + to: '/integrate/frameworks/nestjs' + }, { label: 'Cloudflare Workers', icon: 'i-simple-icons-cloudflare', @@ -139,6 +217,12 @@ const landingItems = [ description: 'Scripts, jobs, libraries, anything', to: '/integrate/frameworks/standalone' }, + { + label: 'Custom framework', + icon: 'i-lucide-puzzle', + description: 'Wire up a framework evlog has no module for', + to: '/extend/custom-framework' + }, { label: 'All frameworks', icon: 'i-lucide-layers', @@ -205,6 +289,18 @@ const landingItems = [ description: 'Persist logs in NuxtHub D1', to: '/integrate/adapters/self-hosted/nuxthub' }, + { + label: 'Drain pipeline', + icon: 'i-lucide-workflow', + description: 'Batching, retries, fan-out to many sinks', + to: '/extend/drain-pipeline' + }, + { + label: 'Custom drains', + icon: 'i-lucide-share-2', + description: 'Send events anywhere with the toolkit', + to: '/extend/custom-drains' + }, { label: 'All adapters', icon: 'i-custom-plug', @@ -246,6 +342,24 @@ const landingItems = [ icon: 'i-lucide-sparkles', description: 'Auto-add User-Agent, geo, trace context', to: '/use-cases/enrichers' + }, + { + label: 'Telemetry', + icon: 'i-lucide-gauge', + description: 'One event per run for your own CLI', + to: '/use-cases/telemetry/overview' + }, + { + label: 'eve', + icon: 'i-custom-eve', + description: 'Observability for eve agents', + to: '/use-cases/eve' + }, + { + label: 'All use cases', + icon: 'i-lucide-layers', + description: 'See everything evlog is used for', + to: '/use-cases/overview' } ] } diff --git a/apps/docs/app/components/content/MapPrGate.vue b/apps/docs/app/components/content/MapPrGate.vue new file mode 100644 index 00000000..51674bd6 --- /dev/null +++ b/apps/docs/app/components/content/MapPrGate.vue @@ -0,0 +1,261 @@ + + + diff --git a/apps/docs/app/components/content/MapScanFlow.vue b/apps/docs/app/components/content/MapScanFlow.vue new file mode 100644 index 00000000..fc9bf8c7 --- /dev/null +++ b/apps/docs/app/components/content/MapScanFlow.vue @@ -0,0 +1,305 @@ + + + diff --git a/apps/docs/app/components/content/MapScoreClimb.vue b/apps/docs/app/components/content/MapScoreClimb.vue new file mode 100644 index 00000000..a3ffc524 --- /dev/null +++ b/apps/docs/app/components/content/MapScoreClimb.vue @@ -0,0 +1,250 @@ + + + diff --git a/apps/docs/app/components/content/StreamBus.vue b/apps/docs/app/components/content/StreamBus.vue index 995a0ac4..40689546 100644 --- a/apps/docs/app/components/content/StreamBus.vue +++ b/apps/docs/app/components/content/StreamBus.vue @@ -105,7 +105,7 @@ onMounted(() => { onBus.value = true state.value = { sync: 'delivered', iter: 'delivered', ring: 'delivered' } ringFill.value = RING_MAX - totalEmitted.value = EMITS + totalEmitted.value = EMIT_COUNT return } if (!wrapperRef.value) { diff --git a/apps/docs/app/components/features/FeatureCliMap.vue b/apps/docs/app/components/features/FeatureCliMap.vue new file mode 100644 index 00000000..54421f2e --- /dev/null +++ b/apps/docs/app/components/features/FeatureCliMap.vue @@ -0,0 +1,344 @@ + + + diff --git a/apps/docs/config/redirects.ts b/apps/docs/config/redirects.ts index 0b505b6f..0bb34a34 100644 --- a/apps/docs/config/redirects.ts +++ b/apps/docs/config/redirects.ts @@ -34,6 +34,7 @@ export const redirects: Record = { // New section roots (no content index page — 404 without an explicit redirect) '/start': r('/start/introduction'), '/learn': r('/learn/overview'), + '/cli': r('/cli/overview'), '/integrate': r('/integrate/overview'), '/reference': r('/reference/configuration'), '/examples': r('/integrate/frameworks/overview'), diff --git a/apps/docs/content/0.landing.md b/apps/docs/content/0.landing.md index fc474510..a00af588 100644 --- a/apps/docs/content/0.landing.md +++ b/apps/docs/content/0.landing.md @@ -47,6 +47,21 @@ A modern TypeScript logger built for everything you ship. Simple logs, wide even Structured fields, machine-readable context, and actionable metadata that give AI agents everything they need to diagnose and resolve issues on their own. Enable the file system drain to write NDJSON logs locally and let agents read them directly. ::: + :::features-feature-cli-map + --- + link: /cli/map + link-label: evlog map guide + --- + #headline + Observability Score + + #title + One command. :br Every blind spot + + #description + evlog map reads your project on disk and scores every entry point — handlers, pages, middleware, jobs, server actions. No traffic, no instrumentation, no guessing: the same code always produces the same verdict, each one carrying the file, the line, and the rule it broke. Watch the number move as you fix things, gate a pull request on it, or hand the report to an agent and let it work through the list. Early days — the rules are still being refined and more frameworks are on the way. + ::: + :::features-feature-adapters --- link: /integrate/adapters/overview diff --git a/apps/docs/content/1.start/4.quick-start.md b/apps/docs/content/1.start/4.quick-start.md index 85c5c0c5..66db531b 100644 --- a/apps/docs/content/1.start/4.quick-start.md +++ b/apps/docs/content/1.start/4.quick-start.md @@ -314,6 +314,7 @@ See [Client Logging](/use-cases/client-logging) for transport configuration, ide ## Next Steps +- [`evlog map`](/cli/map): Score what you just wired up and see which entry points are still dark - [Logging Overview](/learn/overview): Understand all three logging modes - [Wide Events](/learn/wide-events): Learn how to design effective wide events - [Typed Fields](/learn/typed-fields): Add compile-time type safety to your wide events diff --git a/apps/docs/content/2.learn/0.overview.md b/apps/docs/content/2.learn/0.overview.md index a9a26445..d1ef2d04 100644 --- a/apps/docs/content/2.learn/0.overview.md +++ b/apps/docs/content/2.learn/0.overview.md @@ -175,4 +175,4 @@ After the three modes, the rest of Learn covers the concepts that show up across - [Typed Fields](/learn/typed-fields) — augment `RequestLogger` so `log.set` is autocompleted - [Redaction](/learn/redaction) — the rules that strip `authorization`, `password`, `token`, etc. before drain -When you're done with Learn, head to [Integrate](/integrate/frameworks/overview) to wire evlog into your stack. +When you're done with Learn, head to [Integrate](/integrate/frameworks/overview) to wire evlog into your stack — or run [`evlog map`](/cli/map) first to see which parts of your app currently have no way of telling you what went wrong. diff --git a/apps/docs/content/3.cli/.navigation.yml b/apps/docs/content/3.cli/.navigation.yml new file mode 100644 index 00000000..0f52a8ea --- /dev/null +++ b/apps/docs/content/3.cli/.navigation.yml @@ -0,0 +1 @@ +title: CLI diff --git a/apps/docs/content/3.cli/0.overview.md b/apps/docs/content/3.cli/0.overview.md new file mode 100644 index 00000000..6128b5aa --- /dev/null +++ b/apps/docs/content/3.cli/0.overview.md @@ -0,0 +1,173 @@ +--- +title: evlog CLI +description: The evlog command line — map your app's observability coverage, diagnose your setup, and control telemetry. Install, global flags, output streams, exit codes, and monorepo behaviour. +navigation: + title: Overview + icon: i-lucide-terminal +links: + - label: evlog map + icon: i-lucide-radar + to: /cli/map + color: neutral + variant: subtle + - label: Rules + icon: i-lucide-list-checks + to: /cli/rules + color: neutral + variant: subtle +--- + +`@evlog/cli` is a separate package from `evlog` itself. It never runs in your app: it reads your source on disk, so there is nothing to configure and nothing to deploy. + +Its main job is [`evlog map`](/cli/map) — a static observability score for your app, in the spirit of Lighthouse. It finds every entry point in your project, checks each one for wide-event coverage, and tells you which three to fix first. + +::warning{icon="i-lucide-flask-conical"} +**Early days.** The CLI is safe to run on any project — it only reads files, and it is covered by tests — but it is young. `evlog map` understands four frameworks today, its rules are still being refined, and both will grow. Expect verdicts and scores to move between releases, and [pin the version](/cli/ci#pin-the-version) when you gate CI on the number. +:: + +::code-group +```bash [pnpm] +pnpm dlx @evlog/cli map +``` +```bash [bun] +bunx @evlog/cli map +``` +```bash [npm] +npx @evlog/cli map +``` +:: + +Add it as a dev dependency once you gate CI on the score, so every run uses the same version: + +::code-group +```bash [pnpm] +pnpm add -D @evlog/cli +``` +```bash [bun] +bun add -d @evlog/cli +``` +```bash [npm] +npm install --save-dev @evlog/cli +``` +:: + +::callout{icon="i-lucide-info" color="neutral"} +Requires Node 20 or later. The package installs a single `evlog` binary. +:: + +## Commands + +::card-group + :::card + --- + icon: i-lucide-radar + title: map + to: /cli/map + color: neutral + --- + Score wide-event coverage across every entry point, and name the ones to fix first. + ::: + :::card + --- + icon: i-lucide-stethoscope + title: doctor + to: /cli/doctor + color: neutral + --- + Check that evlog is installed, resolvable, and writing logs where you expect. + ::: + :::card + --- + icon: i-lucide-bar-chart-3 + title: telemetry + to: /cli/telemetry + color: neutral + --- + Show, enable, or disable the CLI's own anonymous usage telemetry. + ::: +:: + +## Global flags + +Every command accepts these: + +| Flag | What it does | +| --- | --- | +| `--json` | Machine-readable JSON on stdout instead of the report | +| `--debug` | Print a debug summary of the run, and emit it as a wide event | +| `--noHeader` | Skip the branded header | +| `--cwd ` | Run against another directory instead of the current one | +| `--help` | Usage for the command | +| `--version` | Print the CLI version and exit | + +## Human output goes to stderr + +The report you read is written to **stderr**. Stdout is reserved for `--json`, so a run can be piped into `jq` without the report getting in the way: + +```bash [Terminal] +evlog map --json | jq '.map.score' +``` + +Without `--json`, nothing is written to stdout at all. Colour is dropped when stdout is not a TTY or when `NO_COLOR` is set, and the report lays itself out for the width it is given — set `COLUMNS` to render at a fixed width. + +## Exit codes + +| Code | Meaning | +| --- | --- | +| `0` | The command ran and nothing failed | +| `1` | A check failed, or `--min-score` was not met | +| `2` | Usage error — an unknown flag or an invalid value | + +::warning +A pipe replaces `$?` with the exit code of the *last* command in it, so `evlog map --min-score 90 \| head` always looks successful. Use `set -o pipefail` when you pipe a gated run. +:: + +## When a check is wrong + +Every verdict can be turned off from the code it is about, so a false positive never becomes a reason to stop running the tool: + +```ts [server/api/health.get.ts] +// evlog-map-disable-next-line wide-event, context -- liveness probe, deliberately silent +export default defineEventHandler(() => ({ ok: true })) +``` + +The check becomes `n/a` with your reason attached — no score cost, no failed gate — and the report counts how many checks the project disabled, so the number stays honest. [Full syntax](/cli/rules#disabling-a-check). + +## Monorepos + +Both `map` and `doctor` resolve the nearest `package.json` above the working directory, then treat that package as the project. In a pnpm or npm workspace, running from `apps/web` scans `apps/web` — not the repo root. + +`evlog map` scans one app at a time. Running it from a bare workspace root, where there is no framework to detect, is an error rather than an empty report: + +```bash [Terminal] +cd apps/web && evlog map +# or +evlog map --cwd apps/web +``` + +## Debugging a run + +`--debug` prints what the command did — the steps it went through, the directory it resolved, and any findings — and emits the same information as an evlog wide event: + +```bash [Terminal] +evlog map --debug +``` + +```text [Output] +── debug ──────────────────────────────── +command map +env development +cwd /Users/you/apps/web +steps resolveProject → detectFramework → resolveEvlog → scan → writeMapFile → done +────────────────────────────────────────── +full event → --json --debug (stderr) +``` + +Add `--json` to get the whole event instead of the summary. `EVLOG_CLI_DEBUG=1` does the same as the flag, which is useful in a CI job you cannot easily edit. + +## Next + +- [`evlog map`](/cli/map) — what it scans and how to read the report +- [Rules](/cli/rules) — every check, what satisfies it, and how to fix it +- [Scoring](/cli/scoring) — how the number is calculated +- [CI](/cli/ci) — gate a pull request on the score diff --git a/apps/docs/content/3.cli/1.map.md b/apps/docs/content/3.cli/1.map.md new file mode 100644 index 00000000..a575843f --- /dev/null +++ b/apps/docs/content/3.cli/1.map.md @@ -0,0 +1,304 @@ +--- +title: evlog map +description: A static observability score for your app, Lighthouse-style. Scans every entry point in a Nuxt, Nitro, Next.js, or TanStack Start project, scores wide-event coverage, and names the entry points to fix first. +navigation: + title: map + icon: i-lucide-radar +links: + - label: Rules + icon: i-lucide-list-checks + to: /cli/rules + color: neutral + variant: subtle + - label: Scoring + icon: i-lucide-gauge + to: /cli/scoring + color: neutral + variant: subtle +--- + +`evlog map` reads your project on disk and answers one question: **if something goes wrong in production tonight, which parts of this app will be able to tell you why?** + +It finds every entry point — API handlers, pages that fetch, middleware, scheduled jobs, server actions — checks each one for wide-event coverage, scores it, and names the three worth fixing first. Nothing runs, nothing is instrumented, no traffic is needed: it is static analysis over your source. + +::map-scan-flow +:: + +```bash [Terminal] +evlog map +``` + +::warning{icon="i-lucide-flask-conical"} +**Early days.** The foundation is solid — AST-based, tested, with a versioned JSON contract — but the rule set is young and only four frameworks have adapters. A release that sharpens a rule can change a verdict on code you did not touch, so [pin the CLI version](/cli/ci#pin-the-version) if you gate a pull request on the score. +:: + +::prompt +--- +description: Raise my evlog map score +icon: i-lucide-radar +actions: + - copy + - cursor + - claude +--- + +Run `npx @evlog/cli map` in this project and read the report. + +- Fix the entry points listed under FIX FIRST, in order +- For each one, run `npx @evlog/cli map ` first to see the suggested shape +- Keep the changes minimal: add `useLogger()`, `log.set()`, `log.audit()`, or `createError({ why, fix })` where the report says they are missing +- Re-run `npx @evlog/cli map` and confirm the score went up + +Docs: https://www.evlog.dev/cli/map +Rules: https://www.evlog.dev/cli/rules + +:: + +## The report + +This is a real run against the evlog playground, a Nuxt app with 29 entry points: + +::code-collapse +```text [evlog map] +▀▀█ █▀▀ score /100 evlog-playground · Nuxt + █ █▀█ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▱▱▱▱▱ 29 entry points scanned + ▀ ▀▀▀ good ▂▂▂▃▃▃▃▃▄▆▆▆▆▆███████████████ + +COVERAGE +● API handlers ▰▰▰▰▰▰▰▰▱▱ 79 13 of 28 have gaps +● Middleware & jobs ▰▰▰▰▰▱▱▱▱▱ 45 run without any logging +● Money & auth ▰▰▰▰▰▰▰▱▱▱ 71 missing audit trails + +FIX FIRST +1. ANY /api/auth/:all* A — touches auth and logs nothing + server/api/auth/[...all].ts:1 · evlog.dev/learn/wide-events +2. GET /api/test/catalog/payment-declined $ — moves money with no audit trail + server/api/test/catalog/payment-declined.get.ts:11 · evlog.dev/use-cases/audit/overview +3. POST /api/auth/login A — missing log.audit + server/api/auth/login.post.ts:1 · evlog.dev/use-cases/audit/overview + +THEN +· add useLogger + log.set to /api/test/browser-ingest +4 +· add log.audit to /api/payment/process, /api/test/better-auth/whoami +· add log.set to /api/audit/deny +· add log.set + createError({ why, fix }) to /api/audit/with-audit +· add useLogger + log.set + createError({ why, fix }) to /api/test/h3-error +· add createError({ why, fix }) to /api/test/tail-sampling/error + +✓ Already solid: /api/audit/catalog/invoice-refund +14 +▲ 76 → 86 by fixing the 3 above + +──────────────────────────── +evlog.map.json updated · how this score works → evlog.dev/cli/scoring +▸ evlog map --all every entry point · evlog map inspect one + --min-score 80 CI gate +``` +:: + +Read from the top down, each block answers a different question. + +### The score + +The big digits are the global score out of 100: a weighted average of every entry point, where money and auth routes count double and pages count half. The word underneath is its grade — `excellent`, `good`, `needs work`, or `at risk`. + +The row of blocks on the right is every entry point in the project, worst on the left, best on the right. A wall of tall blocks on the right with a few short ones on the left is a healthy app with a handful of blind spots. A flat low row is an app with no instrumentation at all. On a large project the row is sampled down to the width of your terminal, showing the worst entry point in each bucket. + +::callout{icon="i-lucide-gauge" color="neutral"} +The full calculation — per-rule weights, route weighting, and grade thresholds — is on [Scoring](/cli/scoring). +:: + +### Coverage + +Where the score comes from, grouped the way you think about your app rather than by rule. Areas only appear when the project has them: a Nuxt app with no `pages/` never shows a Pages row. + +| Area | What it covers | +| --- | --- | +| API handlers | Server route handlers | +| Pages | Pages that fetch data server-side | +| Middleware & jobs | Middleware, scheduled tasks, server actions | +| Money & auth | Every entry point the sensitivity classifier flagged, wherever it lives | + +Money & auth deliberately overlaps the other rows. It is the group where a missing event costs the most, so it gets its own line and a `⚠` marker when it scores below the app as a whole. + +### Fix first + +The three entry points with the most to gain, sensitive ones first, worst score first. Each gets the method, the path, a sensitivity marker, a sentence naming the actual problem, and the file, the line, and a docs link for the rule that failed. + +`$` is money, `A` is auth, `@` is PII. These come from the [sensitivity classifier](/cli/scoring#sensitivity), and a flagged entry point is held to one extra requirement: an audit trail. + +### Then + +Everything else with a gap, batched by the fix rather than listed one entry point per line. `add useLogger + log.set to /api/test/browser-ingest +4` means five entry points need the same two lines, so you can work through them in one pass. + +### Going further + +A separate section that only appears when the project already uses an evlog feature that an entry point is not benefiting from: + +```text [Excerpt] +GOING FURTHER +you already use these — your app could get more out of them ++ Should these duplicated errors become catalog entries? — 2 entry points + server/api/orders/[id].get.ts:4 · evlog.dev/learn/catalogs +Suggestions never change the score. +``` + +These are suggestions, not gaps. They are gated on evidence that the feature is already in use somewhere in the project, they are never counted as failures, and a `--min-score` gate can never fail because of one. See [opportunities](/cli/rules#opportunities). + +### The last two lines + +`✓ Already solid` names entry points with nothing left to fix, so a good app gets told so. `▲ 76 → 86 by fixing the 3 above` is the score you would land on if you fixed exactly what is under **FIX FIRST** — the reason to start there rather than anywhere else. + +## Three views + +The default report answers "how am I doing". Two flags answer the other two questions you will have. + +### Every entry point + +`--all` prints the check matrix: one row per entry point, worst first, grouped by directory. + +```text [evlog map --all (trimmed)] +evlog-playground · Nuxt · 76/100 · 29 entry points, worst first + + log ctx err audit catch fetch +server/ +├─ api/auth/[...all].ts ▰▰▱▱▱▱▱▱▱▱ 20 A ● ● · ● · · +├─ …ment-declined.get.ts ▰▰▱▱▱▱▱▱▱▱ 20 $ ● ● ● ● · · +├─ …test/h3-error.get.ts ▰▰▰▱▱▱▱▱▱▱ 25 ● ● ● · · · +├─ …owser-ingest.post.ts ▰▰▰▰▰▱▱▱▱▱ 45 ● ● · · · · +├─ …t/with-audit.post.ts ▰▰▰▰▰▰▰▱▱▱ 65 ● ● ● · ● · +├─ …i/auth/login.post.ts ▰▰▰▰▰▰▰▰▱▱ 75 A ● ● · ● · · +├─ …ampling/error.get.ts ▰▰▰▰▰▰▰▰▱▱ 80 ● ● ● · · · +└─ …st/wide-event.get.ts ▰▰▰▰▰▰▰▰▰▰ 100 ● ● · · · · + +● covered ● gap · not applicable $ money A auth @ pii +what each column checks → evlog.dev/cli/rules +``` + +One column per rule, in the order they cost points. A dot means the rule does not apply here — a handler that throws nothing is not asked whether its errors carry `why` and `fix`, and that is a dot rather than a free pass. A hollow `○` is a check you [disabled with a comment](/cli/rules#disabling-a-check). Every column is explained on [Rules](/cli/rules). + +### One entry point + +Pass a route or a file path to get the full explanation of a single entry point: + +```bash [Terminal] +evlog map server/api/auth/login.post.ts +# or by route +evlog map /api/auth/login +``` + +::code-collapse +```text [evlog map server/api/auth/login.post.ts] +POST /api/auth/login A ▰▰▰▰▰▰▰▰▱▱ 75/100 +server/api/auth/login.post.ts · Nuxt + +WHY THIS FILE IS SCANNED +▍ POST /api/auth/login — server handler + +FLAGGED SENSITIVE BECAUSE +▍ auth: path says "auth" + +CHECKS +✓ useLogger wide event emitted per request +✓ log.set context attached with log.set() +✗ log.audit sensitive action with no audit trail evlog.dev/use-cases/audit/overview + +SUGGESTED SHAPE — Nuxt +│ export default defineEventHandler(async (event) => { +│ log.audit({ +│ action: 'auth.login', +│ actor: { type: 'user', id: user.id }, +│ }) +│ }) + +▲ fixing this entry point: 75 → 100 +``` +:: + +Four things worth noting: + +- **Why this file is scanned** says what the CLI thinks this file is. If that is wrong, everything below it is wrong, and this is where you see it. +- **Flagged sensitive because** shows the exact reason, so a false positive is one line to spot instead of a mystery. +- **Suggested shape** is composed from the rules that actually failed, in your framework's idiom. The audit action is read off the route — `/api/auth/login` suggests `auth.login`, not a placeholder. +- When every requirement passes but there are suggestions left, the verdict splits in two: nothing to fix, and *n* things left to gain. + +## What counts as an entry point + +Detection is per framework, from the file layout. `--framework` overrides it when detection guesses wrong. + +::code-group +```text [Nuxt] +server/api/** → API handler, path prefixed /api, method from the filename suffix +server/routes/** → API handler, path as written +pages/**/*.vue → page +server/middleware/** → middleware +server/tasks/** → scheduled job +``` +```text [Nitro] +routes/** → API handler, path as written +api/** → API handler, path prefixed /api +middleware/** → middleware +``` +```text [Next.js App Router] +app/**/route.ts → one API handler per exported HTTP method (GET, POST, …) +app/**/page.tsx → page +middleware.ts → middleware +"use server" file → one server action per exported function +``` +```text [TanStack Start] +src/routes/** → API handler when the route declares server handlers or createServerFn, + page otherwise. __root files are skipped. +``` +:: + +Both `app/` and `src/app/` are supported for Next.js, and `src/middleware.ts` alongside `middleware.ts`. A `route.ts` with no HTTP method exports is listed once with the method `ANY`. + +Kinds show up in the report as `ANY`, `PAGE`, `MID`, `ACT` (server action), `CRON`, and `WS`, or as the HTTP method when the entry point has one. + +::callout{icon="i-lucide-shield-off" color="neutral"} +evlog's own client-log ingest endpoints are exempt. They are plumbing, not app code, so every rule reports `n/a` for them rather than failing. +:: + +## When a verdict is wrong + +A check you disagree with should cost you one comment, not your CI gate: + +```ts [server/api/health.get.ts] +// evlog-map-disable-next-line wide-event, context -- liveness probe, deliberately silent +export default defineEventHandler(() => ({ ok: true })) +``` + +The check becomes `n/a` with your reason attached, so it stops costing score — and the report says how many checks the project has disabled, so a high score never hides an app that logs nothing. Full syntax on [Rules](/cli/rules#disabling-a-check). + +## Flags + +| Flag | Default | What it does | +| --- | --- | --- | +| `` | — | Inspect one entry point, by route path or file path | +| `--all` | off | Every entry point as a check matrix | +| `--min-score ` | off | Exit 1 when the global score is below `n` | +| `--framework ` | detected | Force `nuxt`, `nitro`, `next`, or `tanstack-start` | +| `--no-write` | writes | Skip writing `evlog.map.json` | +| `--verbose` | off | Show per-file parse warnings | +| `--cwd ` | current | Scan another directory | +| `--json` | off | The full map as JSON on stdout | + +## evlog.map.json + +Every run writes `evlog.map.json` to the project root: the score, the framework, and every entry point with its checks, its suggestions, its sensitivity, and its own score. It is the same data `--json` prints. + +Use `--no-write` when you do not want the file — CI runs, or a quick look at somebody else's project. The file is a build artifact, so [gitignore it](/cli/ci#the-map-file) unless you have a reason to track it. + +## What it will not tell you + +Static analysis has limits, and knowing them is the difference between trusting the score and being annoyed by it. + +- **It reads code, not traffic.** An entry point can score 100 and still emit useless events at runtime if the context it attaches is wrong. The score says the shape is there. +- **It follows imports one hop.** Helpers re-exported through a local module are resolved — `import { useLogger } from '@/lib/evlog'` counts — but a logger passed through three layers of your own abstraction may not be recognised. +- **Four frameworks.** Nuxt, Nitro, Next.js App Router, and TanStack Start have adapters. Other frameworks that evlog integrates with are not scanned yet. +- **Sensitivity is a heuristic.** It reads imports and route paths. `evlog map ` always shows the reason, so a wrong call is visible rather than silent. + +## Next + +- [Rules](/cli/rules) — every check, what satisfies it, and the exact fix +- [Scoring](/cli/scoring) — weights, grades, and the sensitivity classifier +- [CI](/cli/ci) — gate a pull request on the score diff --git a/apps/docs/content/3.cli/2.rules.md b/apps/docs/content/3.cli/2.rules.md new file mode 100644 index 00000000..aba36357 --- /dev/null +++ b/apps/docs/content/3.cli/2.rules.md @@ -0,0 +1,304 @@ +--- +title: Map rules +description: Every check evlog map runs — the six requirements that move the score, the four suggestions that never do, what satisfies each one, and how evlog helpers are recognised in your code. +navigation: + title: Rules + icon: i-lucide-list-checks +links: + - label: Scoring + icon: i-lucide-gauge + to: /cli/scoring + color: neutral + variant: subtle + - label: evlog map + icon: i-lucide-radar + to: /cli/map + color: neutral + variant: subtle +--- + +Coverage is checked by a rule engine, not a bag of heuristics. Each rule has a stable id, a documented weight, a docs link, and a set of entry point kinds it applies to — and every finding carries the file and line it came from, so a verdict is always something you can go and look at. + +::warning{icon="i-lucide-flask-conical"} +**This list is not final.** Ten rules is where the engine starts, not where it ends. Rules will be added, existing ones will get more precise about what counts, and a sharper rule can change a verdict on code you did not touch. Ids and weights are documented so the change is always explainable — but do not treat a score as comparable across CLI versions. +:: + +Rules come in two categories, and the difference matters: + +| | Requirements | Opportunities | +| --- | --- | --- | +| Effect on the score | Costs points when it fails | None, ever | +| When it appears | Whenever it applies | Only when the project already uses the feature | +| In the report | `FIX FIRST` and `THEN` | `GOING FURTHER` | +| In the JSON | `checks` | `suggestions` | +| Can fail a CI gate | Yes | No | + +## Three statuses + +Every rule returns one of three verdicts for an entry point. + +| Status | Meaning | +| --- | --- | +| `pass` | The rule looked and found what it wanted | +| `fail` | The rule looked and did not — costs weight, if it is a requirement | +| `n/a` | The question does not make sense here, or you [disabled it](#disabling-a-check) | + +`n/a` is doing real work. A handler that throws nothing is never asked whether its errors carry `why` and `fix`; a handler with no `catch` is never asked whether its catches log. Those used to pass for free, which made the report claim a file handled errors it did not have. Now they are dots in the matrix, and the score is calculated over the rules that actually applied. + +## Requirements + +Six rules move the score. They apply to handler-like entry points — API handlers, middleware, scheduled jobs, and server actions — except `fetch`, which is the pages-only rule. + +| Column | Id | Weight | Expects | +| --- | --- | --- | --- | +| `log` | `wide-event` | 40 | `useLogger()` | +| `audit` | `audit` | 25 | `log.audit()` | +| `err` | `structured-errors` | 20 | `createError({ why, fix })` | +| `fetch` | `page-error-handling` | 20 | fetch error handling | +| `ctx` | `context` | 15 | `log.set()` | +| `catch` | `error-handling` | 15 | logging or rethrow in `catch` | + +### log — does this entry point emit a wide event? + +The heaviest rule, because everything else depends on it. An entry point with no logger produces no event, and no amount of good error handling will tell you what happened inside it. + +Satisfied by a resolved evlog logger (`useLogger`, `createLogger`, `createRequestLogger`, `initLogger`) or an evlog wrapper (`withEvlog`, `withAudit`). + +The message depends on your framework. With evlog's Nitro plugin an event is emitted for every request whether the handler asks or not, so the failure there is not silence, it is emptiness: + +```text [Nuxt / Nitro] +handler adds nothing to its request event — only method, path and status are recorded +``` + +```text [Next.js / TanStack Start] +no useLogger() — handler is a dark event +``` + +::code-group +```ts [Nuxt] +export default defineEventHandler(async (event) => { + const log = useLogger(event) +}) +``` +```ts [Next.js] +export async function POST(request: Request) { + const log = useLogger() +} +``` +:: + +[Wide events →](/learn/wide-events) + +### ctx — is request context attached? + +A logger with no `log.set()` produces a technically valid event that says nothing about the request it describes. That is the most common way a wide event ends up useless in production: you get one line per request, and none of them can answer a question. + +Only `set()` on a resolved evlog logger counts. An unrelated `Map.set()` does not. + +```ts +log.set({ user: { id }, order: { id, total } }) +``` + +[Wide events →](/learn/wide-events) + +### err — do thrown errors carry why and fix? + +`throw new Error('failed')` reaches the client as a string with no cause and no remedy. `createError({ why, fix })` is what makes an error actionable for whoever reads it at 3am. + +Applies only when the handler raises something — a `throw` or a `createError()` call. The message names exactly what is missing: + +```text +throw new Error() — use createError({ why, fix }) +createError() missing why and fix +createError() has why but missing fix +``` + +A `createError()` that is returned rather than thrown is checked too, since it still shapes the response. + +```ts +throw createError({ + status: 400, + message: 'what the caller sees', + why: 'what actually went wrong', + fix: 'what to do about it', +}) +``` + +[Structured errors →](/learn/structured-errors) + +### audit — does this sensitive entry point leave a trail? + +Applies only where the [sensitivity classifier](/cli/scoring#sensitivity) found money or auth. Everywhere else an audit record would be noise, so the rule reports `n/a` rather than passing for free. + +`log.audit()` satisfies it, including through optional chaining — `log.audit?.deny()` counts. + +The suggested action is read off the route, so `/api/auth/login` suggests `auth.login` and `/api/orders/[id]/refund` suggests `orders.refund`: + +```ts +log.audit({ + action: 'auth.login', + actor: { type: 'user', id: user.id }, +}) +``` + +[Audit logs →](/use-cases/audit/overview) + +### catch — is every caught error logged or rethrown? + +A swallowed error is worse than an unhandled one: the request looks successful, the event says nothing, and the failure is invisible until a user reports it. + +A `catch` counts as handled when it logs (`log.error`, `log.warn`, `log.set`, `log.audit`, `captureException`, or any `console.*`), rethrows, or returns. Two failures are reported separately: + +```text +empty catch block swallows errors +catch block swallows error without logging or rethrow +``` + +A handler with no `catch` at all is `n/a`, not a gap. evlog's framework integrations hook the runtime's error channel, so an exception that escapes your handler is still recorded on the event with its status. + +```ts +catch (error) { + log.error(error) +} +``` + +[Structured errors →](/learn/structured-errors) + +### fetch — does this page survive its data fetch failing? + +The only pages rule. Applies only to pages that actually fetch something server-side — a purely presentational page has nothing to fail. + +Satisfied by a `catch`, a `.catch()`, an `onError` handler, or an `error` binding destructured from the fetch itself. + +::code-group +```vue [Nuxt] + +``` +```tsx [Next.js] +try { + const orders = await getOrders() +} catch (error) { + log.error(error) +} +``` +:: + +[Lifecycle →](/learn/lifecycle) + +## Opportunities + +Four rules suggest going further. They never touch the score, and they only ever fire when the project has **already adopted** the feature somewhere — the point is to get more out of what you chose, not to sell you something. + +Adoption is confirmed against the AST, not by searching text, so a feature mentioned in a comment does not count. + +| Column | Id | Fires when | Scope | +| --- | --- | --- | --- | +| `catalog` | `error-catalog` | The project declares a catalog **and** the same inline error appears in two or more files | Per entry point | +| `audit+` | `audit-coverage` | The project records audit events, and this handler changes state without one | Per entry point | +| `ai` | `ai-logging` | `ai` is a dependency and the AI SDK is called without `evlog/ai` | Once per project | +| `identity` | `auth-identity` | `better-auth` is a dependency and `evlog/better-auth` is not installed | Once per project | + +### catalog — should these duplicated errors become catalog entries? + +Deliberately narrow. An earlier version fired on any inline `createError()`, which meant handlers with perfectly good errors got lectured. Duplication is the one signal that makes the case on its own: the same status and message maintained in three places will drift. + +```text +"402 Card declined" is spelled out here and in 2 other files — one catalog entry would cover them +``` + +The suggestion names a catalog you already have, rather than inventing one. [Catalogs →](/learn/catalogs) + +### audit+ — should this state change be on the audit trail too? + +Complements the `audit` requirement, which only fires on money and auth. This one is softer and wider: once you have an audit trail, every state change is a candidate, and you are the one who knows which ones matter. It looks for `create`, `update`, `insert`, `upsert`, `delete`, or `destroy` calls in a handler with no audit record. Entry points already covered by the `audit` requirement are skipped, so a gap is never reported twice. [Recording audit events →](/use-cases/audit/recording) + +### ai — are model calls, tokens and latency on the event? + +Fires on `generateText`, `streamText`, `generateObject`, `streamObject`, `embed`, and `embedMany` when `evlog/ai` is not imported. Without it the event records that the request happened but not what the model cost, which is usually the most expensive and most variable part of it. Reported once for the whole project — one wrapped model serves every handler. [AI SDK →](/use-cases/ai-sdk/overview) + +### identity — do events carry the authenticated user? + +Fires on entry points where auth is actually in play: the auth routes themselves, or a handler that reads the session. `evlog/better-auth` attaches the user and session to every event, which is what turns "a request failed" into "this user's request failed". Reported once for the whole project — it is one plugin, installed once. [Better Auth →](/use-cases/better-auth/overview) + +## How evlog helpers are recognised + +Every rule that looks for a logger asks the same question: *is this evlog's?* It is answered from the AST, which is why a locally defined stub does not earn you points. + +- **Imported from evlog** — `import { useLogger } from 'evlog'`, including subpath imports. +- **Auto-imported** — in Nuxt and Nitro, evlog's module injects `useLogger` and `createEvlogError`, so an un-imported call counts. Unless the file declares its own, in which case the local declaration wins. +- **Re-exported from a local module** — `import { useLogger } from '@/lib/evlog'` counts when that module forwards evlog's export, which is the shape [the Next.js guide](/integrate/frameworks/nextjs) recommends. Exports destructured from a factory (`export const { useLogger } = createEvlog(...)`) are resolved too. +- **Through an evlog wrapper** — `withEvlog` and `withAudit` instrument a handler without it ever naming a logger. + +Two things deliberately do **not** count: + +- **A local stub.** `function useLogger() { ... }` in your own file, or an import from `./my-logger` that does not forward evlog's export, is not evlog's logger. +- **evlog's `log` export.** `log.info()` is the [simple logging API](/learn/simple-logging) — it emits its own line rather than contributing to the request's wide event, and it has no `set` or `audit`. It does not satisfy the `log` column. + +## Disabling a check + +A static analyser you cannot argue with is one you stop running. When a rule is wrong about your code — or right about it and you have decided not to care — turn it off with a comment, next to the code it is about: + +```ts [server/api/health.get.ts] +// evlog-map-disable-next-line wide-event, context -- liveness probe, deliberately silent +export default defineEventHandler(() => ({ ok: true })) +``` + +Three forms, matching what you would expect from a linter: + +| Directive | Covers | +| --- | --- | +| `// evlog-map-disable-next-line ` | The line below the comment | +| `// evlog-map-disable-line ` | The line the comment is on, as a trailing comment | +| `// evlog-map-disable ` | The whole file, wherever it appears | + +The ids are the ones in the tables above — `wide-event`, `audit`, `structured-errors`, `context`, `error-handling`, `page-error-handling`, and any opportunity id. Separate several with commas or spaces. **Name no id and the directive covers every rule**, which is the right shape for a generated or vendored file and the wrong one for a handler you simply have not got to yet. Block comments work the same way, which is what you want at the top of a file: `/* evlog-map-disable -- generated by the SDK */`. + +Everything after `--` is your reason. It is optional, and worth writing anyway: it is what the report shows, so the next person reads the decision rather than guessing at it. + +### What a disabled check does to the score + +It becomes `n/a` with your reason attached — the same status as a rule that never applied — so it costs no points, and a `--min-score` gate stops failing on it. + +The rule still runs. What a directive waives is the *finding*, not the question: a check that would have passed is still reported as a `pass`, and a rule that never applied to that handler stays a plain `n/a`. So a file-wide directive on an already-instrumented handler disables nothing, and the number of disabled checks is the number of verdicts you actually chose not to see. + +Which means a disabled check has to stay visible, or the escape hatch would quietly become a way to score 100 on an app that logs nothing. It shows up in three places: + +```text [evlog map] +○ 2 checks disabled by comment in 1 entry point +``` + +```text [evlog map ] +CHECKS +✓ log.set context attached with log.set() +○ useLogger disabled at line 1 — liveness probe, deliberately silent +``` + +In `--all`, a disabled cell is `○` rather than the `·` of a rule that did not apply. And in the JSON, the check carries `"suppressed": true` next to its `n/a`, with `evidence` pointing at the comment — so a CI job can report how much of a green score is suppressed, and `summary.suppressedChecks` gives the project total. + +### A typo is loud + +An id no rule answers to does not silently do nothing — the scan warns above the report, and the check keeps failing: + +```text +⚠ server/api/probe.get.ts:1 disables "wide-evnt", which is not a check evlog map runs +``` + +Believing a check is off while it is still failing is worse than either state on its own, so this one is never quiet. + +## Exempt entry points + +evlog's own client-log ingest endpoints (`/api/evlog/ingest` and friends) are plumbing, not app code. Every rule reports `n/a` for them with the reason attached, they are never listed as something to fix, and the summary counts them as `exempt` rather than as your own instrumented entry points. + +## Reporting a wrong verdict + +Rules are one file each with their own test bench, so a wrong verdict is a local fix rather than an archaeology session. If `evlog map ` claims something you can see is untrue, that is a bug worth [opening an issue](https://github.com/HugoRCD/evlog/issues) for — include the entry point's output and the handler, and the fix lands in one rule. + +In the meantime, [disable the check](#disabling-a-check) on that line. A false positive should cost you one comment, not your CI gate. + +## Next + +- [Scoring](/cli/scoring) — how weights become a number, and how sensitivity is decided +- [CI](/cli/ci) — gate a pull request on requirements without suggestions getting in the way diff --git a/apps/docs/content/3.cli/3.scoring.md b/apps/docs/content/3.cli/3.scoring.md new file mode 100644 index 00000000..ccfadfb6 --- /dev/null +++ b/apps/docs/content/3.cli/3.scoring.md @@ -0,0 +1,147 @@ +--- +title: Map scoring +description: How evlog map turns rule results into a score — per-entry weights, the weighted project average, grade thresholds, coverage classification, and how routes are flagged as money, auth, or PII. +navigation: + title: Scoring + icon: i-lucide-gauge +links: + - label: Rules + icon: i-lucide-list-checks + to: /cli/rules + color: neutral + variant: subtle + - label: CI + icon: i-lucide-git-pull-request + to: /cli/ci + color: neutral + variant: subtle +--- + +The score exists to be compared against itself. It is a number you can watch move as you fix things, and gate a pull request on — not a benchmark against other projects. + +## One entry point + +Every entry point starts at 100 and loses the weight of each **requirement** it fails, floored at 0. + +| Requirement | Weight | +| --- | --- | +| `wide-event` | 40 | +| `audit` | 25 | +| `structured-errors` | 20 | +| `page-error-handling` | 20 | +| `context` | 15 | +| `error-handling` | 15 | + +A rule that passes costs nothing. A rule that reports `n/a` costs nothing either — it never applied, so it is not held against the entry point. [Opportunities](/cli/rules#opportunities) carry no weight at all and cannot appear here. + +A check you [disabled with a comment](/cli/rules#disabling-a-check) is also `n/a`, so it costs nothing — and the report counts how many, because a score that is partly the result of disabled checks has to say so. + +Take the login handler from the playground: + +```text [evlog map server/api/auth/login.post.ts] +CHECKS +✓ useLogger wide event emitted per request +✓ log.set context attached with log.set() +✗ log.audit sensitive action with no audit trail +``` + +`structured-errors` and `error-handling` were `n/a` — the handler throws nothing and catches nothing. One requirement failed, so the score is `100 − 25 = 75`. + +::callout{icon="i-lucide-info" color="neutral"} +Weights add up to more than 100 on purpose. A handler that fails everything lands at 0, and the ordering of what to fix first stays meaningful: `wide-event` at 40 outweighs any pair of the smaller rules. +:: + +Which makes the arithmetic legible in both directions. Here is the worst entry point in the playground going from `20` to `100`, one line at a time, each fix worth exactly the weight of the rule it satisfies: + +::map-score-climb +:: + +## The project score + +The global score is the average of every entry point, weighted by how much a blind spot there would cost you: + +| Entry point | Weight | +| --- | --- | +| Flagged money or auth | ×2 | +| Page | ×0.5 | +| Everything else | ×1 | + +Pages weigh less because a page that swallows a fetch error is a worse user experience than an observability hole, and they are usually the most numerous files in an app. Sensitive handlers weigh double because that is where you will need the event. + +Three entry points — a sensitive handler at 75, a plain handler at 100, and a page at 50: + +```text +(75 × 2) + (100 × 1) + (50 × 0.5) 275 +───────────────────────────────── = ───── = 79 + 2 + 1 + 0.5 3.5 +``` + +A project with no entry points at all scores 100. + +## Grades + +| Score | Grade | +| --- | --- | +| 90–100 | `excellent` | +| 70–89 | `good` | +| 50–69 | `needs work` | +| 0–49 | `at risk` | + +## Coverage classification + +Alongside the score, each entry point is classified — this is what the `summary` block in the JSON counts, and what the coverage rows in the report are built from. + +| Class | When | +| --- | --- | +| `instrumented` | A handler that passes both `wide-event` and `context`, or a page that handles its fetch errors | +| `partial` | A handler that passes one of the two | +| `dark` | A handler that passes neither, or a page that swallows fetch errors | +| `exempt` | evlog infrastructure — every rule is `n/a`, so it sits at 100 and is counted apart from your own entry points | + +`dark` is the number to watch. A dark entry point produces nothing you can query: when it misbehaves, the only evidence you will have is the user's description of it. + +## Sensitivity + +Sensitivity is what promotes an entry point to double weight and adds the `audit` requirement, so it is worth knowing exactly how it is decided. + +### Money — `$` + +- **Imports** `stripe`, `@stripe/stripe-js`, `paddle-sdk`, or `@lemonsqueezy/lemonsqueezy.js` +- **Path** contains `checkout`, `payment`, `billing`, `invoice`, `refund`, `subscription`, `charge`, or `payout` + +### Auth — `A` + +- **Imports** `better-auth`, `next-auth`, `lucia`, `@auth/core`, or `@auth/nextjs` +- **Path** contains `auth`, `oauth`, `login`, `logout`, `signin`, `signup`, `register`, `password`, `token`, `session`, `mfa`, or `otp` + +### PII — `@` + +Fields matching `email`, `phone`, `address`, `ssn`, or `iban` **and** a write call (`create`, `update`, `insert`, `upsert`) in the same handler. + +Money and auth are `high` sensitivity: double weight, and an audit trail is required. PII is `medium`: no extra requirement, but it is marked in the report. + +### How the matching works + +Two decisions keep this from producing noise. + +**Imports are read from the AST.** A package counts only when it is genuinely imported, so a `// TODO: drop stripe` comment does not make a route handle money. + +**Path terms match whole words**, allowing a plural. `/api/authors` is not an auth route, and `/api/refunds` is a money route. This matters more than it looks: a wrongly flagged route is handed a 25-point requirement it has no reason to satisfy, and counts double in the average — the fastest way to make the whole number untrustworthy. + +Every reason is shown in full when you inspect an entry point, so a wrong call is one line to spot: + +```text [evlog map server/api/auth/login.post.ts] +FLAGGED SENSITIVE BECAUSE +▍ auth: path says "auth" +``` + +## Reading the score honestly + +- **A high score is not proof of good observability.** It says the shape is there: an event per entry point, context attached, errors explainable, sensitive actions audited. Whether the context you attach is the context you will need is a judgement no static analyser can make. [Best practices →](/reference/best-practices) +- **Compare runs, not projects.** A 200-route app that scores 70 is in better shape than a 6-route app that scores 70. +- **Watch `dark` and `Money & auth`** rather than the headline number. Those are the two places where the next incident is hiding. + +## Next + +- [CI](/cli/ci) — turn the score into a pass/fail check +- [Rules](/cli/rules) — what each requirement actually looks for diff --git a/apps/docs/content/3.cli/4.ci.md b/apps/docs/content/3.cli/4.ci.md new file mode 100644 index 00000000..fcc57ba2 --- /dev/null +++ b/apps/docs/content/3.cli/4.ci.md @@ -0,0 +1,236 @@ +--- +title: evlog map in CI +description: Gate a pull request on your observability score with --min-score, read the JSON contract, and keep the map file out of the way. Exit codes, GitHub Actions, and jq recipes. +navigation: + title: CI + icon: i-lucide-git-pull-request +links: + - label: Scoring + icon: i-lucide-gauge + to: /cli/scoring + color: neutral + variant: subtle + - label: Rules + icon: i-lucide-list-checks + to: /cli/rules + color: neutral + variant: subtle +--- + +A score you look at once is a nice afternoon. A score in CI is what stops the next handler from shipping dark. + +## The gate + +`--min-score ` prints an explicit verdict and exits 1 when the project is below the threshold: + +```bash [Terminal] +evlog map --min-score 80 +``` + +```text [Below the threshold] + GATE score 76 is below --min-score 90 — exit code 1 +fix what is listed under FIX FIRST to pass · evlog.dev/cli/ci +``` + +```text [At or above it] + GATE score 76 meets --min-score 70 — exit code 0 +``` + +The full report is printed either way, so a failed job tells you what to fix without a second run. + +Which turns the score into something a pull request can move. One run says the app is short of the bar and names the three entry points responsible, the next one says it is over: + +::map-pr-gate +:: + +::callout{icon="i-lucide-shield-check" color="neutral"} +[Opportunities](/cli/rules#opportunities) never affect the score, so a gate can never fail because the CLI suggested you adopt a feature. Only requirements can fail a build. +:: + +## Exit codes + +| Code | Meaning | +| --- | --- | +| `0` | Score met the threshold, or no threshold was given | +| `1` | Score below `--min-score`, or the scan could not run | +| `2` | Usage error — unknown flag, or an invalid `--framework` | + +::warning +A pipe replaces `$?` with the exit code of the last command in it, so `evlog map --min-score 90 \| tee map.log` always looks green. Add `set -o pipefail` to the step. +:: + +## GitHub Actions + +```yaml [.github/workflows/observability.yml] +name: Observability + +on: pull_request + +jobs: + map: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - uses: actions/setup-node@v5 + with: + node-version: 22 + - run: npx @evlog/cli map --min-score 80 --no-write +``` + +`--no-write` keeps the job from producing an `evlog.map.json` nobody will read. + +### Pin the version + +The CLI is young: rules are still being refined and new ones will be added, so a release can change a verdict on code nobody touched. On a gated job that shows up as a pull request failing for reasons its author cannot see in the diff. + +Install the CLI as a dev dependency and let your lockfile hold it still: + +```bash [Terminal] +pnpm add -D @evlog/cli +``` + +```yaml [.github/workflows/observability.yml] + - run: pnpm install --frozen-lockfile + - run: pnpm evlog map --min-score 80 --no-write +``` + +Then a score change is always something you did, and upgrading the CLI is its own pull request — where a moved score is the point rather than a surprise. + +### Ratchet, don't cliff + +Setting the threshold to 90 on an app that scores 41 fails every pull request and teaches the team to ignore the job. Set it to today's score, then raise it as you fix things: + +```bash [Terminal] +# what are we at right now? +evlog map --json --no-write | jq '.map.score' +``` + +Each pull request that raises the score raises the floor with it. The report already tells you what the next step is worth: `▲ 76 → 86 by fixing the 3 above`. + +## The JSON contract + +`--json` writes the whole map to stdout. The report goes to stderr, so the two never mix. + +```bash [Terminal] +evlog map --json --no-write > map.json +``` + +```json [Shape] +{ + "schemaVersion": 2, + "environment": "production", + "map": { + "version": 1, + "generatedAt": "2026-07-25T18:42:10.114Z", + "framework": "nuxt", + "projectName": "evlog-playground", + "score": 76, + "routes": [] + }, + "summary": { "instrumented": 19, "partial": 2, "dark": 8, "exempt": 0, "suppressedChecks": 0 }, + "mapPath": "/path/to/app/evlog.map.json" +} +``` + +`mapPath` is `null` under `--no-write`. Each entry in `map.routes` looks like this: + +::code-collapse +```json [One entry point] +{ + "framework": "nuxt", + "kind": "api", + "method": "POST", + "path": "/api/auth/login", + "file": "server/api/auth/login.post.ts", + "handler": { "line": 1, "column": 0 }, + "id": "337325358269", + "checks": { + "wide-event": { "status": "pass" }, + "context": { "status": "pass" }, + "structured-errors": { "status": "n/a" }, + "error-handling": { "status": "n/a" }, + "audit": { + "status": "fail", + "message": "has logger + context but no log.audit() — sensitive route needs audit trail", + "evidence": { "file": "server/api/auth/login.post.ts", "line": 1 } + } + }, + "suggestions": {}, + "sensitivity": { "level": "high", "reasons": ["auth: path says \"auth\""] }, + "score": 75 +} +``` +:: + +`checks` holds requirements, `suggestions` holds opportunities. They are separate keys precisely so a consumer — or a CI script — can never mistake a suggestion for a failure. Rule ids are stable: the registry and the published id union are checked against each other at build time, so a release cannot silently change what you receive. + +A check somebody [disabled with a comment](/cli/rules#disabling-a-check) is `n/a` with `"suppressed": true`, and its `evidence` points at the comment rather than at the handler: + +```json [A disabled check] +"wide-event": { + "status": "n/a", + "suppressed": true, + "message": "disabled at line 1 — liveness probe, deliberately silent", + "evidence": { "file": "server/api/health.get.ts", "line": 1 } +} +``` + +`summary.suppressedChecks` is the project total. It is the number to watch alongside the score: the gate only measures what the rules were allowed to look at. + +### Recipes + +```bash [Terminal] +# the score, for a badge or a comment +evlog map --json --no-write | jq '.map.score' + +# every entry point with no event at all +evlog map --json --no-write \ + | jq -r '.map.routes[] | select(.checks["wide-event"].status == "fail") | .file' + +# every failure as file:line — message +evlog map --json --no-write \ + | jq -r '.map.routes[].checks | to_entries[] | select(.value.status == "fail") + | "\(.value.evidence.file):\(.value.evidence.line) — \(.value.message)"' + +# fail a script when anything is dark +test "$(evlog map --json --no-write | jq '.summary.dark')" -eq 0 + +# how much of the score is disabled checks +evlog map --json --no-write | jq '.summary.suppressedChecks' +``` + +## The map file + +Unless you pass `--no-write`, every run writes `evlog.map.json` to the project root. It holds the same data as `--json` and is a build artifact, so ignore it: + +```bash [.gitignore] +evlog.map.json +``` + +Track it instead if you want the diff in review — a pull request then shows exactly which entry points changed class, which is a useful thing to argue about. Just expect the file to churn on every run, since `generatedAt` changes each time. + +## Monorepos + +`evlog map` scans one app at a time. Gate each one: + +```yaml [.github/workflows/observability.yml] +jobs: + map: + runs-on: ubuntu-latest + strategy: + matrix: + app: [apps/web, apps/admin] + steps: + - uses: actions/checkout@v5 + - uses: actions/setup-node@v5 + with: + node-version: 22 + - run: npx @evlog/cli map --cwd ${{ matrix.app }} --min-score 80 --no-write +``` + +Different apps can carry different thresholds, which is usually what you want: the app that takes payments should be held higher than the marketing site. + +## Next + +- [Rules](/cli/rules) — what a failing check means and how to fix it +- [Scoring](/cli/scoring) — how the number you are gating on is calculated diff --git a/apps/docs/content/3.cli/5.doctor.md b/apps/docs/content/3.cli/5.doctor.md new file mode 100644 index 00000000..5d6b9ccf --- /dev/null +++ b/apps/docs/content/3.cli/5.doctor.md @@ -0,0 +1,76 @@ +--- +title: evlog doctor +description: Diagnose an evlog setup — Node version, project resolution, the installed evlog version, the detected framework, and whether local logs are being written. +navigation: + title: doctor + icon: i-lucide-stethoscope +links: + - label: Installation + icon: i-lucide-download + to: /start/installation + color: neutral + variant: subtle +--- + +`evlog doctor` answers "is evlog actually wired up here?" — the question you have when you followed the setup guide and nothing is showing up. + +```bash [Terminal] +evlog doctor +``` + +```text [Output] +pnpm workspace + +ENVIRONMENT +│ ✓ node v24.18.0 +│ ✓ project evlog-playground · pnpm · apps/playground +│ ✓ stack nuxt + +EVLOG +│ ✓ evlog v2.22.3 (workspace:*) +│ ✓ logs 1 file · .evlog/logs + +5 ok · 0 warn · 0 fail +``` + +## What it checks + +| Check | Passes when | Warns or fails when | +| --- | --- | --- | +| `node` | Node 20 or later | Older than 20 — the CLI will not run reliably (fail) | +| `project` | A `package.json` was resolved | None found above the working directory | +| `stack` | A framework was detected and evlog is installed | A framework was detected but evlog is not wired to it | +| `evlog` | `evlog` resolves from `node_modules` | Declared in `package.json` but not installed, or missing entirely | +| `logs` | A local sink exists under `.evlog/logs` | Nothing has been written yet | + +In a workspace, the header names the workspace kind and `project` shows which package was resolved — the fastest way to notice you are diagnosing the repo root instead of your app. + +An empty `logs` sink is not a problem in itself: the directory is created on first write by the [fs drain](/integrate/adapters/self-hosted/fs). It is only a signal when you expected local logs and there are none. + +## Exit code + +`0` when nothing failed, `1` when any check failed. Warnings do not fail the command — a project that has not written logs yet is not broken. + +## JSON + +```bash [Terminal] +evlog doctor --json | jq '.checks' +``` + +The payload carries the resolved project (`cwd`, `root`, `packageDir`, workspace kind, package name, detected stack), every check with its status, and the summary counts. + +Each warning and failure also carries a code from the CLI's own error catalog — `cli.EVLOG_NOT_FOUND`, `cli.EVLOG_DECLARED_NOT_INSTALLED`, `cli.LOGS_SINK_MISSING`, `cli.NODE_TOO_OLD`, `cli.PROJECT_NO_PACKAGE` — each with a `why` and a `fix`, the same way [structured errors](/learn/structured-errors) work in your app. + +## Options + +| Flag | What it does | +| --- | --- | +| `--cwd ` | Diagnose another directory | +| `--json` | Machine-readable output on stdout | +| `--debug` | Print the steps the command went through | +| `--noHeader` | Skip the branded header | + +## Next + +- [Installation](/start/installation) — wire evlog into your framework +- [`evlog map`](/cli/map) — once it is installed, see where it is missing diff --git a/apps/docs/content/3.cli/6.telemetry.md b/apps/docs/content/3.cli/6.telemetry.md new file mode 100644 index 00000000..0d25f072 --- /dev/null +++ b/apps/docs/content/3.cli/6.telemetry.md @@ -0,0 +1,77 @@ +--- +title: CLI telemetry +description: What the evlog CLI collects about its own usage, how to see it, and the three ways to turn it off — DO_NOT_TRACK, EVLOG_TELEMETRY=0, or evlog telemetry disable. +navigation: + title: telemetry + icon: i-lucide-bar-chart-3 +links: + - label: Telemetry for your own CLI + icon: i-lucide-radio + to: /use-cases/telemetry/overview + color: neutral + variant: subtle +--- + +The evlog CLI records one anonymous wide event per run, so we know which commands people use and which ones error. It is the same [telemetry toolkit](/use-cases/telemetry/overview) evlog ships for your own CLIs, pointed at itself. + +::callout{icon="i-lucide-info" color="neutral"} +This page is about the CLI's own telemetry. If you are instrumenting a CLI **you** are building, you want [Telemetry](/use-cases/telemetry/overview) instead. +:: + +## See what is collected + +```bash [Terminal] +evlog telemetry status +``` + +The command prints whether telemetry is on, where its data directory is, and the full disclosure table — every field, its type, and what it is for. The disclosure is generated from the code that sends the event, so it cannot drift from what actually goes over the wire. + +```text [Output] +Telemetry: enabled (preference: enabled) +Data directory: ~/.config/evlog-cli/telemetry +``` + +## What is in an event + +One event per run, with the command name, how long it took, whether it succeeded, and the error code when it did not. Alongside that: the Node version, the OS and architecture, whether the run was in CI and on which provider, whether stdout is a TTY, and whether an AI coding agent was driving it. + +Flags are recorded as booleans and numbers; string values are recorded as *present* rather than by value, unless the flag is explicitly allowlisted. The machine id is a hash, and it is omitted entirely in ephemeral CI. + +::callout{icon="i-lucide-lock" color="neutral"} +No file paths, no source code, no project names, no route paths. Your map score never leaves your machine. +:: + +## Turn it off + +Any one of these is enough: + +```bash [Terminal] +# persisted preference +evlog telemetry disable + +# per-run, or in a shell profile +EVLOG_TELEMETRY=0 evlog map + +# the cross-tool standard, respected everywhere +export DO_NOT_TRACK=1 +``` + +`evlog telemetry disable` also purges anything that had been queued and not yet delivered. `evlog telemetry enable` turns it back on. + +## Inspect before trusting + +To see exactly what a run would send, without sending it: + +```bash [Terminal] +EVLOG_TELEMETRY_DEBUG=1 evlog map +``` + +The would-be payload is printed to stderr. + +## Commands + +| Command | What it does | +| --- | --- | +| `evlog telemetry status` | Current state, data directory, and the full disclosure | +| `evlog telemetry enable` | Enable anonymous usage telemetry | +| `evlog telemetry disable` | Disable it and purge undelivered data | diff --git a/apps/docs/content/3.integrate/.navigation.yml b/apps/docs/content/4.integrate/.navigation.yml similarity index 100% rename from apps/docs/content/3.integrate/.navigation.yml rename to apps/docs/content/4.integrate/.navigation.yml diff --git a/apps/docs/content/3.integrate/0.overview.md b/apps/docs/content/4.integrate/0.overview.md similarity index 100% rename from apps/docs/content/3.integrate/0.overview.md rename to apps/docs/content/4.integrate/0.overview.md diff --git a/apps/docs/content/3.integrate/adapters/.navigation.yml b/apps/docs/content/4.integrate/adapters/.navigation.yml similarity index 100% rename from apps/docs/content/3.integrate/adapters/.navigation.yml rename to apps/docs/content/4.integrate/adapters/.navigation.yml diff --git a/apps/docs/content/3.integrate/adapters/01.overview.md b/apps/docs/content/4.integrate/adapters/01.overview.md similarity index 100% rename from apps/docs/content/3.integrate/adapters/01.overview.md rename to apps/docs/content/4.integrate/adapters/01.overview.md diff --git a/apps/docs/content/3.integrate/adapters/cloud/.navigation.yml b/apps/docs/content/4.integrate/adapters/cloud/.navigation.yml similarity index 100% rename from apps/docs/content/3.integrate/adapters/cloud/.navigation.yml rename to apps/docs/content/4.integrate/adapters/cloud/.navigation.yml diff --git a/apps/docs/content/3.integrate/adapters/cloud/01.axiom.md b/apps/docs/content/4.integrate/adapters/cloud/01.axiom.md similarity index 100% rename from apps/docs/content/3.integrate/adapters/cloud/01.axiom.md rename to apps/docs/content/4.integrate/adapters/cloud/01.axiom.md diff --git a/apps/docs/content/3.integrate/adapters/cloud/02.otlp.md b/apps/docs/content/4.integrate/adapters/cloud/02.otlp.md similarity index 100% rename from apps/docs/content/3.integrate/adapters/cloud/02.otlp.md rename to apps/docs/content/4.integrate/adapters/cloud/02.otlp.md diff --git a/apps/docs/content/3.integrate/adapters/cloud/03.posthog.md b/apps/docs/content/4.integrate/adapters/cloud/03.posthog.md similarity index 100% rename from apps/docs/content/3.integrate/adapters/cloud/03.posthog.md rename to apps/docs/content/4.integrate/adapters/cloud/03.posthog.md diff --git a/apps/docs/content/3.integrate/adapters/cloud/04.sentry.md b/apps/docs/content/4.integrate/adapters/cloud/04.sentry.md similarity index 100% rename from apps/docs/content/3.integrate/adapters/cloud/04.sentry.md rename to apps/docs/content/4.integrate/adapters/cloud/04.sentry.md diff --git a/apps/docs/content/3.integrate/adapters/cloud/05.better-stack.md b/apps/docs/content/4.integrate/adapters/cloud/05.better-stack.md similarity index 100% rename from apps/docs/content/3.integrate/adapters/cloud/05.better-stack.md rename to apps/docs/content/4.integrate/adapters/cloud/05.better-stack.md diff --git a/apps/docs/content/3.integrate/adapters/cloud/06.datadog.md b/apps/docs/content/4.integrate/adapters/cloud/06.datadog.md similarity index 100% rename from apps/docs/content/3.integrate/adapters/cloud/06.datadog.md rename to apps/docs/content/4.integrate/adapters/cloud/06.datadog.md diff --git a/apps/docs/content/3.integrate/adapters/cloud/07.hyperdx.md b/apps/docs/content/4.integrate/adapters/cloud/07.hyperdx.md similarity index 100% rename from apps/docs/content/3.integrate/adapters/cloud/07.hyperdx.md rename to apps/docs/content/4.integrate/adapters/cloud/07.hyperdx.md diff --git a/apps/docs/content/3.integrate/adapters/self-hosted/.navigation.yml b/apps/docs/content/4.integrate/adapters/self-hosted/.navigation.yml similarity index 100% rename from apps/docs/content/3.integrate/adapters/self-hosted/.navigation.yml rename to apps/docs/content/4.integrate/adapters/self-hosted/.navigation.yml diff --git a/apps/docs/content/3.integrate/adapters/self-hosted/01.fs.md b/apps/docs/content/4.integrate/adapters/self-hosted/01.fs.md similarity index 100% rename from apps/docs/content/3.integrate/adapters/self-hosted/01.fs.md rename to apps/docs/content/4.integrate/adapters/self-hosted/01.fs.md diff --git a/apps/docs/content/3.integrate/adapters/self-hosted/02.nuxthub.md b/apps/docs/content/4.integrate/adapters/self-hosted/02.nuxthub.md similarity index 100% rename from apps/docs/content/3.integrate/adapters/self-hosted/02.nuxthub.md rename to apps/docs/content/4.integrate/adapters/self-hosted/02.nuxthub.md diff --git a/apps/docs/content/3.integrate/adapters/self-hosted/03.memory.md b/apps/docs/content/4.integrate/adapters/self-hosted/03.memory.md similarity index 100% rename from apps/docs/content/3.integrate/adapters/self-hosted/03.memory.md rename to apps/docs/content/4.integrate/adapters/self-hosted/03.memory.md diff --git a/apps/docs/content/3.integrate/frameworks/.navigation.yml b/apps/docs/content/4.integrate/frameworks/.navigation.yml similarity index 100% rename from apps/docs/content/3.integrate/frameworks/.navigation.yml rename to apps/docs/content/4.integrate/frameworks/.navigation.yml diff --git a/apps/docs/content/3.integrate/frameworks/00.overview.md b/apps/docs/content/4.integrate/frameworks/00.overview.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/00.overview.md rename to apps/docs/content/4.integrate/frameworks/00.overview.md diff --git a/apps/docs/content/3.integrate/frameworks/01.nuxt.md b/apps/docs/content/4.integrate/frameworks/01.nuxt.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/01.nuxt.md rename to apps/docs/content/4.integrate/frameworks/01.nuxt.md diff --git a/apps/docs/content/3.integrate/frameworks/02.nextjs.md b/apps/docs/content/4.integrate/frameworks/02.nextjs.md similarity index 99% rename from apps/docs/content/3.integrate/frameworks/02.nextjs.md rename to apps/docs/content/4.integrate/frameworks/02.nextjs.md index e3855b8a..d28a2482 100644 --- a/apps/docs/content/3.integrate/frameworks/02.nextjs.md +++ b/apps/docs/content/4.integrate/frameworks/02.nextjs.md @@ -186,6 +186,7 @@ defineNodeInstrumentation({ A real-world `lib/evlog.ts` with enrichers, batched drain, tail sampling, and route-based service names: +::code-collapse ```typescript [lib/evlog.ts] import type { DrainContext } from 'evlog' import { createEvlog } from 'evlog/next' @@ -241,6 +242,7 @@ export const { withEvlog, useLogger, log, createError } = createEvlog({ drain, }) ``` +:: ## Wide Events @@ -304,6 +306,7 @@ export const POST = withEvlog(async () => { Use `createError` for structured errors with `why`, `fix`, and `link` fields that help developers debug in both logs and API responses: +::code-collapse ```typescript [app/api/payment/process/route.ts] import { withEvlog, useLogger, createError } from '@/lib/evlog' @@ -338,6 +341,7 @@ export const POST = withEvlog(async (request: Request) => { return Response.json({ success: true }) }) ``` +:: `withEvlog()` catches `EvlogError` and returns a structured JSON response (like Nitro does for Nuxt): diff --git a/apps/docs/content/3.integrate/frameworks/03.sveltekit.md b/apps/docs/content/4.integrate/frameworks/03.sveltekit.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/03.sveltekit.md rename to apps/docs/content/4.integrate/frameworks/03.sveltekit.md diff --git a/apps/docs/content/3.integrate/frameworks/04.nitro.md b/apps/docs/content/4.integrate/frameworks/04.nitro.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/04.nitro.md rename to apps/docs/content/4.integrate/frameworks/04.nitro.md diff --git a/apps/docs/content/3.integrate/frameworks/05.tanstack-start.md b/apps/docs/content/4.integrate/frameworks/05.tanstack-start.md similarity index 99% rename from apps/docs/content/3.integrate/frameworks/05.tanstack-start.md rename to apps/docs/content/4.integrate/frameworks/05.tanstack-start.md index 726f616b..4ff7784d 100644 --- a/apps/docs/content/3.integrate/frameworks/05.tanstack-start.md +++ b/apps/docs/content/4.integrate/frameworks/05.tanstack-start.md @@ -153,6 +153,7 @@ All fields are merged into a single wide event emitted when the request complete Use `createError` for structured errors with `why`, `fix`, and `link` fields: +::code-collapse ```typescript [src/routes/api/checkout.ts] import { createFileRoute } from '@tanstack/react-router' import { useRequest } from 'nitro/context' @@ -188,6 +189,7 @@ export const Route = createFileRoute('/api/checkout')({ }, }) ``` +:: The error is captured and logged with both the custom context and structured error fields: diff --git a/apps/docs/content/3.integrate/frameworks/06.nestjs.md b/apps/docs/content/4.integrate/frameworks/06.nestjs.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/06.nestjs.md rename to apps/docs/content/4.integrate/frameworks/06.nestjs.md diff --git a/apps/docs/content/3.integrate/frameworks/07.express.md b/apps/docs/content/4.integrate/frameworks/07.express.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/07.express.md rename to apps/docs/content/4.integrate/frameworks/07.express.md diff --git a/apps/docs/content/3.integrate/frameworks/08.hono.md b/apps/docs/content/4.integrate/frameworks/08.hono.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/08.hono.md rename to apps/docs/content/4.integrate/frameworks/08.hono.md diff --git a/apps/docs/content/3.integrate/frameworks/09.fastify.md b/apps/docs/content/4.integrate/frameworks/09.fastify.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/09.fastify.md rename to apps/docs/content/4.integrate/frameworks/09.fastify.md diff --git a/apps/docs/content/3.integrate/frameworks/10.elysia.md b/apps/docs/content/4.integrate/frameworks/10.elysia.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/10.elysia.md rename to apps/docs/content/4.integrate/frameworks/10.elysia.md diff --git a/apps/docs/content/3.integrate/frameworks/11.react-router.md b/apps/docs/content/4.integrate/frameworks/11.react-router.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/11.react-router.md rename to apps/docs/content/4.integrate/frameworks/11.react-router.md diff --git a/apps/docs/content/3.integrate/frameworks/12.cloudflare-workers.md b/apps/docs/content/4.integrate/frameworks/12.cloudflare-workers.md similarity index 99% rename from apps/docs/content/3.integrate/frameworks/12.cloudflare-workers.md rename to apps/docs/content/4.integrate/frameworks/12.cloudflare-workers.md index 434ccd46..71570d3a 100644 --- a/apps/docs/content/3.integrate/frameworks/12.cloudflare-workers.md +++ b/apps/docs/content/4.integrate/frameworks/12.cloudflare-workers.md @@ -117,6 +117,7 @@ export default defineWorkerFetch(async (request, env, _ctx, log) => { Use `createError` for structured errors and handle them with try/catch: +::code-collapse ```typescript [src/worker.ts] import { createError, parseError } from 'evlog' import { defineWorkerFetch, initWorkersLogger } from 'evlog/workers' @@ -152,6 +153,7 @@ export default defineWorkerFetch(async (request, env, _ctx, log) => { } }) ``` +:: ## Configuration diff --git a/apps/docs/content/3.integrate/frameworks/13.standalone.md b/apps/docs/content/4.integrate/frameworks/13.standalone.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/13.standalone.md rename to apps/docs/content/4.integrate/frameworks/13.standalone.md diff --git a/apps/docs/content/3.integrate/frameworks/14.astro.md b/apps/docs/content/4.integrate/frameworks/14.astro.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/14.astro.md rename to apps/docs/content/4.integrate/frameworks/14.astro.md diff --git a/apps/docs/content/3.integrate/frameworks/15.orpc.md b/apps/docs/content/4.integrate/frameworks/15.orpc.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/15.orpc.md rename to apps/docs/content/4.integrate/frameworks/15.orpc.md diff --git a/apps/docs/content/3.integrate/frameworks/16.aws-lambda.md b/apps/docs/content/4.integrate/frameworks/16.aws-lambda.md similarity index 100% rename from apps/docs/content/3.integrate/frameworks/16.aws-lambda.md rename to apps/docs/content/4.integrate/frameworks/16.aws-lambda.md diff --git a/apps/docs/content/4.use-cases/.navigation.yml b/apps/docs/content/5.use-cases/.navigation.yml similarity index 100% rename from apps/docs/content/4.use-cases/.navigation.yml rename to apps/docs/content/5.use-cases/.navigation.yml diff --git a/apps/docs/content/4.use-cases/0.overview.md b/apps/docs/content/5.use-cases/0.overview.md similarity index 100% rename from apps/docs/content/4.use-cases/0.overview.md rename to apps/docs/content/5.use-cases/0.overview.md diff --git a/apps/docs/content/4.use-cases/1.client-logging.md b/apps/docs/content/5.use-cases/1.client-logging.md similarity index 100% rename from apps/docs/content/4.use-cases/1.client-logging.md rename to apps/docs/content/5.use-cases/1.client-logging.md diff --git a/apps/docs/content/4.use-cases/2.ai-sdk/.navigation.yml b/apps/docs/content/5.use-cases/2.ai-sdk/.navigation.yml similarity index 100% rename from apps/docs/content/4.use-cases/2.ai-sdk/.navigation.yml rename to apps/docs/content/5.use-cases/2.ai-sdk/.navigation.yml diff --git a/apps/docs/content/4.use-cases/2.ai-sdk/01.overview.md b/apps/docs/content/5.use-cases/2.ai-sdk/01.overview.md similarity index 100% rename from apps/docs/content/4.use-cases/2.ai-sdk/01.overview.md rename to apps/docs/content/5.use-cases/2.ai-sdk/01.overview.md diff --git a/apps/docs/content/4.use-cases/2.ai-sdk/02.usage.md b/apps/docs/content/5.use-cases/2.ai-sdk/02.usage.md similarity index 100% rename from apps/docs/content/4.use-cases/2.ai-sdk/02.usage.md rename to apps/docs/content/5.use-cases/2.ai-sdk/02.usage.md diff --git a/apps/docs/content/4.use-cases/2.ai-sdk/03.options.md b/apps/docs/content/5.use-cases/2.ai-sdk/03.options.md similarity index 100% rename from apps/docs/content/4.use-cases/2.ai-sdk/03.options.md rename to apps/docs/content/5.use-cases/2.ai-sdk/03.options.md diff --git a/apps/docs/content/4.use-cases/2.ai-sdk/04.metadata.md b/apps/docs/content/5.use-cases/2.ai-sdk/04.metadata.md similarity index 100% rename from apps/docs/content/4.use-cases/2.ai-sdk/04.metadata.md rename to apps/docs/content/5.use-cases/2.ai-sdk/04.metadata.md diff --git a/apps/docs/content/4.use-cases/2.ai-sdk/05.telemetry.md b/apps/docs/content/5.use-cases/2.ai-sdk/05.telemetry.md similarity index 100% rename from apps/docs/content/4.use-cases/2.ai-sdk/05.telemetry.md rename to apps/docs/content/5.use-cases/2.ai-sdk/05.telemetry.md diff --git a/apps/docs/content/4.use-cases/3.better-auth/.navigation.yml b/apps/docs/content/5.use-cases/3.better-auth/.navigation.yml similarity index 100% rename from apps/docs/content/4.use-cases/3.better-auth/.navigation.yml rename to apps/docs/content/5.use-cases/3.better-auth/.navigation.yml diff --git a/apps/docs/content/4.use-cases/3.better-auth/01.overview.md b/apps/docs/content/5.use-cases/3.better-auth/01.overview.md similarity index 100% rename from apps/docs/content/4.use-cases/3.better-auth/01.overview.md rename to apps/docs/content/5.use-cases/3.better-auth/01.overview.md diff --git a/apps/docs/content/4.use-cases/3.better-auth/02.identify-user.md b/apps/docs/content/5.use-cases/3.better-auth/02.identify-user.md similarity index 100% rename from apps/docs/content/4.use-cases/3.better-auth/02.identify-user.md rename to apps/docs/content/5.use-cases/3.better-auth/02.identify-user.md diff --git a/apps/docs/content/4.use-cases/3.better-auth/03.middleware.md b/apps/docs/content/5.use-cases/3.better-auth/03.middleware.md similarity index 100% rename from apps/docs/content/4.use-cases/3.better-auth/03.middleware.md rename to apps/docs/content/5.use-cases/3.better-auth/03.middleware.md diff --git a/apps/docs/content/4.use-cases/3.better-auth/04.client-sync.md b/apps/docs/content/5.use-cases/3.better-auth/04.client-sync.md similarity index 100% rename from apps/docs/content/4.use-cases/3.better-auth/04.client-sync.md rename to apps/docs/content/5.use-cases/3.better-auth/04.client-sync.md diff --git a/apps/docs/content/4.use-cases/3.better-auth/05.performance.md b/apps/docs/content/5.use-cases/3.better-auth/05.performance.md similarity index 100% rename from apps/docs/content/4.use-cases/3.better-auth/05.performance.md rename to apps/docs/content/5.use-cases/3.better-auth/05.performance.md diff --git a/apps/docs/content/4.use-cases/4.audit/.navigation.yml b/apps/docs/content/5.use-cases/4.audit/.navigation.yml similarity index 100% rename from apps/docs/content/4.use-cases/4.audit/.navigation.yml rename to apps/docs/content/5.use-cases/4.audit/.navigation.yml diff --git a/apps/docs/content/4.use-cases/4.audit/01.overview.md b/apps/docs/content/5.use-cases/4.audit/01.overview.md similarity index 100% rename from apps/docs/content/4.use-cases/4.audit/01.overview.md rename to apps/docs/content/5.use-cases/4.audit/01.overview.md diff --git a/apps/docs/content/4.use-cases/4.audit/02.schema.md b/apps/docs/content/5.use-cases/4.audit/02.schema.md similarity index 99% rename from apps/docs/content/4.use-cases/4.audit/02.schema.md rename to apps/docs/content/5.use-cases/4.audit/02.schema.md index 33a1ac04..c252b2e3 100644 --- a/apps/docs/content/4.use-cases/4.audit/02.schema.md +++ b/apps/docs/content/5.use-cases/4.audit/02.schema.md @@ -21,6 +21,7 @@ links: ## `AuditFields` type +::code-collapse ```typescript interface AuditFields { action: string // 'invoice.refund' @@ -55,6 +56,7 @@ interface AuditFields { hash?: string } ``` +:: ## Action naming diff --git a/apps/docs/content/4.use-cases/4.audit/03.recording.md b/apps/docs/content/5.use-cases/4.audit/03.recording.md similarity index 100% rename from apps/docs/content/4.use-cases/4.audit/03.recording.md rename to apps/docs/content/5.use-cases/4.audit/03.recording.md diff --git a/apps/docs/content/4.use-cases/4.audit/04.pipeline.md b/apps/docs/content/5.use-cases/4.audit/04.pipeline.md similarity index 100% rename from apps/docs/content/4.use-cases/4.audit/04.pipeline.md rename to apps/docs/content/5.use-cases/4.audit/04.pipeline.md diff --git a/apps/docs/content/4.use-cases/4.audit/05.compliance.md b/apps/docs/content/5.use-cases/4.audit/05.compliance.md similarity index 100% rename from apps/docs/content/4.use-cases/4.audit/05.compliance.md rename to apps/docs/content/5.use-cases/4.audit/05.compliance.md diff --git a/apps/docs/content/4.use-cases/4.audit/06.recipes.md b/apps/docs/content/5.use-cases/4.audit/06.recipes.md similarity index 100% rename from apps/docs/content/4.use-cases/4.audit/06.recipes.md rename to apps/docs/content/5.use-cases/4.audit/06.recipes.md diff --git a/apps/docs/content/4.use-cases/4.telemetry/.navigation.yml b/apps/docs/content/5.use-cases/4.telemetry/.navigation.yml similarity index 100% rename from apps/docs/content/4.use-cases/4.telemetry/.navigation.yml rename to apps/docs/content/5.use-cases/4.telemetry/.navigation.yml diff --git a/apps/docs/content/4.use-cases/4.telemetry/01.overview.md b/apps/docs/content/5.use-cases/4.telemetry/01.overview.md similarity index 100% rename from apps/docs/content/4.use-cases/4.telemetry/01.overview.md rename to apps/docs/content/5.use-cases/4.telemetry/01.overview.md diff --git a/apps/docs/content/4.use-cases/4.telemetry/02.setup.md b/apps/docs/content/5.use-cases/4.telemetry/02.setup.md similarity index 99% rename from apps/docs/content/4.use-cases/4.telemetry/02.setup.md rename to apps/docs/content/5.use-cases/4.telemetry/02.setup.md index efa6ba3d..3d315fd2 100644 --- a/apps/docs/content/4.use-cases/4.telemetry/02.setup.md +++ b/apps/docs/content/5.use-cases/4.telemetry/02.setup.md @@ -96,6 +96,7 @@ The root `meta.name` is not prefixed when the root only delegates to `subCommand Call `telemetry.set()` anywhere inside a command handler — or in helpers that run on the same async stack (the run context is preserved via AsyncLocalStorage). +::code-collapse ```ts [src/commands/doctor.ts] import { telemetry } from '@evlog/telemetry' import { existsSync } from 'node:fs' @@ -135,6 +136,7 @@ export const doctorCommand = { }, } ``` +:: Throw an error with a `code` property and `outcome: "error"` plus `errorCode` are recorded automatically: diff --git a/apps/docs/content/4.use-cases/4.telemetry/03.ingest.md b/apps/docs/content/5.use-cases/4.telemetry/03.ingest.md similarity index 100% rename from apps/docs/content/4.use-cases/4.telemetry/03.ingest.md rename to apps/docs/content/5.use-cases/4.telemetry/03.ingest.md diff --git a/apps/docs/content/4.use-cases/4.telemetry/04.reference.md b/apps/docs/content/5.use-cases/4.telemetry/04.reference.md similarity index 100% rename from apps/docs/content/4.use-cases/4.telemetry/04.reference.md rename to apps/docs/content/5.use-cases/4.telemetry/04.reference.md diff --git a/apps/docs/content/4.use-cases/5.enrichers.md b/apps/docs/content/5.use-cases/5.enrichers.md similarity index 100% rename from apps/docs/content/4.use-cases/5.enrichers.md rename to apps/docs/content/5.use-cases/5.enrichers.md diff --git a/apps/docs/content/4.use-cases/5.eve.md b/apps/docs/content/5.use-cases/5.eve.md similarity index 100% rename from apps/docs/content/4.use-cases/5.eve.md rename to apps/docs/content/5.use-cases/5.eve.md diff --git a/apps/docs/content/5.extend/.navigation.yml b/apps/docs/content/6.extend/.navigation.yml similarity index 100% rename from apps/docs/content/5.extend/.navigation.yml rename to apps/docs/content/6.extend/.navigation.yml diff --git a/apps/docs/content/5.extend/0.overview.md b/apps/docs/content/6.extend/0.overview.md similarity index 100% rename from apps/docs/content/5.extend/0.overview.md rename to apps/docs/content/6.extend/0.overview.md diff --git a/apps/docs/content/5.extend/1.stream.md b/apps/docs/content/6.extend/1.stream.md similarity index 100% rename from apps/docs/content/5.extend/1.stream.md rename to apps/docs/content/6.extend/1.stream.md diff --git a/apps/docs/content/5.extend/10.custom-framework.md b/apps/docs/content/6.extend/10.custom-framework.md similarity index 99% rename from apps/docs/content/5.extend/10.custom-framework.md rename to apps/docs/content/6.extend/10.custom-framework.md index 64c78dc6..fddf334e 100644 --- a/apps/docs/content/5.extend/10.custom-framework.md +++ b/apps/docs/content/6.extend/10.custom-framework.md @@ -98,6 +98,7 @@ Types like `RequestLogger`, `DrainContext`, `EnrichContext`, `WideEvent`, and `T Most frameworks fit a `(ctx, next)` middleware shape. For those, write a manifest describing how to extract the request and attach the logger — `defineFrameworkIntegration` does the rest. +::code-collapse ```typescript [my-framework-evlog.ts] import type { IncomingMessage, ServerResponse } from 'node:http' import { @@ -149,6 +150,7 @@ export function evlog(options: MyFrameworkEvlogOptions = {}) { } } ``` +:: That's it. This middleware gets every feature for free: route filtering, drain adapters, enrichers, tail sampling, error capture, plugin lifecycle hooks, `log.fork()`, and duration tracking. diff --git a/apps/docs/content/5.extend/2.fs-reader.md b/apps/docs/content/6.extend/2.fs-reader.md similarity index 100% rename from apps/docs/content/5.extend/2.fs-reader.md rename to apps/docs/content/6.extend/2.fs-reader.md diff --git a/apps/docs/content/5.extend/3.consumer-recipes.md b/apps/docs/content/6.extend/3.consumer-recipes.md similarity index 99% rename from apps/docs/content/5.extend/3.consumer-recipes.md rename to apps/docs/content/6.extend/3.consumer-recipes.md index 109441d8..e9ad8b4b 100644 --- a/apps/docs/content/5.extend/3.consumer-recipes.md +++ b/apps/docs/content/6.extend/3.consumer-recipes.md @@ -36,6 +36,7 @@ A live event panel is essentially `EventSource` + a list. The full wire format a ### Vanilla HTML + JS (drop into any page) +::code-collapse ```html @@ -83,11 +84,13 @@ A live event panel is essentially `EventSource` + a list. The full wire format a ``` +:: Save as `devtool.html`, open in any browser tab while your evlog-instrumented dev server is running. That's the whole MVP. ### Vue 3 component +::code-collapse ```vue + + diff --git a/packages/cli/test/map/fixtures/nuxt-basic/pages/orders/[id].vue b/packages/cli/test/map/fixtures/nuxt-basic/pages/orders/[id].vue new file mode 100644 index 00000000..53e89089 --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/pages/orders/[id].vue @@ -0,0 +1,12 @@ + + + diff --git a/packages/cli/test/map/fixtures/nuxt-basic/server/api/broken-error.get.ts b/packages/cli/test/map/fixtures/nuxt-basic/server/api/broken-error.get.ts new file mode 100644 index 00000000..3990ce58 --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/server/api/broken-error.get.ts @@ -0,0 +1,7 @@ +export default defineEventHandler(async () => { + throw createError({ + message: 'Bad request', + status: 400, + why: 'Missing field', + }) +}) diff --git a/packages/cli/test/map/fixtures/nuxt-basic/server/api/checkout.post.ts b/packages/cli/test/map/fixtures/nuxt-basic/server/api/checkout.post.ts new file mode 100644 index 00000000..4e5fecf4 --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/server/api/checkout.post.ts @@ -0,0 +1,6 @@ +export default defineEventHandler(async (event) => { + const log = useLogger(event) + log.set({ user: { id: '123' } }) + log.audit({ action: 'checkout.completed', resource: 'order' }) + return { ok: true } +}) diff --git a/packages/cli/test/map/fixtures/nuxt-basic/server/api/docs/[...slug].get.ts b/packages/cli/test/map/fixtures/nuxt-basic/server/api/docs/[...slug].get.ts new file mode 100644 index 00000000..04a70cdf --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/server/api/docs/[...slug].get.ts @@ -0,0 +1,3 @@ +export default defineEventHandler(async () => { + return { docs: true } +}) diff --git a/packages/cli/test/map/fixtures/nuxt-basic/server/api/orders/[id].get.ts b/packages/cli/test/map/fixtures/nuxt-basic/server/api/orders/[id].get.ts new file mode 100644 index 00000000..8d24e90f --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/server/api/orders/[id].get.ts @@ -0,0 +1,10 @@ +export default defineEventHandler(async (event) => { + const log = useLogger(event) + log.set({ item: 'test' }) + throw createError({ + message: 'Not found', + status: 404, + why: 'Resource does not exist', + fix: 'Check the ID and try again', + }) +}) diff --git a/packages/cli/test/map/fixtures/nuxt-basic/server/api/orders/[id].head.ts b/packages/cli/test/map/fixtures/nuxt-basic/server/api/orders/[id].head.ts new file mode 100644 index 00000000..366fe66d --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/server/api/orders/[id].head.ts @@ -0,0 +1,11 @@ +export default defineEventHandler(async (event) => { + const log = useLogger(event) + log.set({ item: 'test' }) + // Same error as the GET handler: the duplication the catalog rule looks for. + throw createError({ + message: 'Not found', + status: 404, + why: 'Resource does not exist', + fix: 'Check the ID and try again', + }) +}) diff --git a/packages/cli/test/map/fixtures/nuxt-basic/server/api/payments/stripe.post.ts b/packages/cli/test/map/fixtures/nuxt-basic/server/api/payments/stripe.post.ts new file mode 100644 index 00000000..044de78c --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/server/api/payments/stripe.post.ts @@ -0,0 +1,10 @@ +import Stripe from 'stripe' + +export default defineEventHandler(async (event) => { + const stripe = new Stripe('sk_test') + try { + await stripe.checkout.sessions.create({}) + } + catch {} + return { ok: true } +}) diff --git a/packages/cli/test/map/fixtures/nuxt-basic/server/api/plain-error.get.ts b/packages/cli/test/map/fixtures/nuxt-basic/server/api/plain-error.get.ts new file mode 100644 index 00000000..e30713a8 --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/server/api/plain-error.get.ts @@ -0,0 +1,3 @@ +export default defineEventHandler(async () => { + throw new Error('Something went wrong') +}) diff --git a/packages/cli/test/map/fixtures/nuxt-basic/server/middleware/auth.ts b/packages/cli/test/map/fixtures/nuxt-basic/server/middleware/auth.ts new file mode 100644 index 00000000..085df50e --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/server/middleware/auth.ts @@ -0,0 +1,3 @@ +export default defineEventHandler(async (event) => { + event.context.log = event.context.log +}) diff --git a/packages/cli/test/map/fixtures/nuxt-basic/server/routes/health.get.ts b/packages/cli/test/map/fixtures/nuxt-basic/server/routes/health.get.ts new file mode 100644 index 00000000..7c17f052 --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/server/routes/health.get.ts @@ -0,0 +1,3 @@ +export default defineEventHandler(async () => { + return { health: true } +}) diff --git a/packages/cli/test/map/fixtures/nuxt-basic/server/tasks/cleanup.ts b/packages/cli/test/map/fixtures/nuxt-basic/server/tasks/cleanup.ts new file mode 100644 index 00000000..86c08825 --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/server/tasks/cleanup.ts @@ -0,0 +1,6 @@ +export default defineTask({ + meta: { name: 'cleanup', description: 'Daily cleanup' }, + run() { + return { result: 'ok' } + }, +}) diff --git a/packages/cli/test/map/fixtures/nuxt-basic/server/utils/errors.ts b/packages/cli/test/map/fixtures/nuxt-basic/server/utils/errors.ts new file mode 100644 index 00000000..78a7f3f2 --- /dev/null +++ b/packages/cli/test/map/fixtures/nuxt-basic/server/utils/errors.ts @@ -0,0 +1,10 @@ +import { defineErrorCatalog } from 'evlog' + +export const orderErrors = defineErrorCatalog('order', { + NOT_FOUND: { + status: 404, + message: 'Order not found', + why: 'No order matches this id', + fix: 'Check the id and try again', + }, +}) diff --git a/packages/cli/test/map/fixtures/tanstack-basic/package.json b/packages/cli/test/map/fixtures/tanstack-basic/package.json new file mode 100644 index 00000000..431c08c8 --- /dev/null +++ b/packages/cli/test/map/fixtures/tanstack-basic/package.json @@ -0,0 +1,9 @@ +{ + "name": "tanstack-basic-fixture", + "private": true, + "type": "module", + "dependencies": { + "@tanstack/react-start": "^1.0.0", + "evlog": "workspace:*" + } +} diff --git a/packages/cli/test/map/fixtures/tanstack-basic/src/routes/api/admin.ts b/packages/cli/test/map/fixtures/tanstack-basic/src/routes/api/admin.ts new file mode 100644 index 00000000..cdf7e23f --- /dev/null +++ b/packages/cli/test/map/fixtures/tanstack-basic/src/routes/api/admin.ts @@ -0,0 +1,15 @@ +import { createFileRoute } from '@tanstack/react-router' + +export const Route = createFileRoute('/api/admin')({ + server: { + handlers: { + POST: async () => { + try { + await fetch('/api/auth') + } + catch {} + return { ok: true } + }, + }, + }, +}) diff --git a/packages/cli/test/map/fixtures/tanstack-basic/src/routes/api/checkout.ts b/packages/cli/test/map/fixtures/tanstack-basic/src/routes/api/checkout.ts new file mode 100644 index 00000000..c07ade25 --- /dev/null +++ b/packages/cli/test/map/fixtures/tanstack-basic/src/routes/api/checkout.ts @@ -0,0 +1,19 @@ +import { createFileRoute } from '@tanstack/react-router' +import { createError, useLogger } from 'evlog' + +export const Route = createFileRoute('/api/checkout')({ + server: { + handlers: { + POST: async () => { + const log = useLogger() + log.set({ cart: { total: 100 } }) + log.audit({ action: 'checkout' }) + throw createError({ + message: 'Payment failed', + why: 'Card declined', + fix: 'Try another card', + }) + }, + }, + }, +}) diff --git a/packages/cli/test/map/fixtures/tanstack-basic/src/routes/api/hello.ts b/packages/cli/test/map/fixtures/tanstack-basic/src/routes/api/hello.ts new file mode 100644 index 00000000..68c25fb3 --- /dev/null +++ b/packages/cli/test/map/fixtures/tanstack-basic/src/routes/api/hello.ts @@ -0,0 +1,11 @@ +import { createFileRoute } from '@tanstack/react-router' + +export const Route = createFileRoute('/api/hello')({ + server: { + handlers: { + GET: async () => { + return { hello: 'world' } + }, + }, + }, +}) diff --git a/packages/cli/test/map/fixtures/tanstack-basic/src/routes/index.tsx b/packages/cli/test/map/fixtures/tanstack-basic/src/routes/index.tsx new file mode 100644 index 00000000..34a91450 --- /dev/null +++ b/packages/cli/test/map/fixtures/tanstack-basic/src/routes/index.tsx @@ -0,0 +1,9 @@ +import { createFileRoute } from '@tanstack/react-router' + +export const Route = createFileRoute('/')({ + component: Home, +}) + +function Home() { + return
Home
+} diff --git a/packages/cli/test/map/rules.test.ts b/packages/cli/test/map/rules.test.ts new file mode 100644 index 00000000..329560a8 --- /dev/null +++ b/packages/cli/test/map/rules.test.ts @@ -0,0 +1,636 @@ +import { describe, expect, it } from 'vitest' +import { buildFileFacts } from '../../src/lib/map/facts' +import { parseSource } from '../../src/lib/map/parse' +import type { + EvlogFeature, + PairablePackage, + ProjectFacts, + RepeatedError, +} from '../../src/lib/map/project-facts' +import { auditAction } from '../../src/lib/map/rules/audit' +import { OPPORTUNITIES, REQUIREMENTS, RULES, getRule, runRuleSet } from '../../src/lib/map/rules/index' +import { scoreRoute } from '../../src/lib/map/score' +import type { FrameworkCapabilities, MapRule, RuleTarget } from '../../src/lib/map/rules/index' +import { classifySensitivity } from '../../src/lib/map/sensitivity' +import type { CheckId, CheckResult, Framework, RouteKind, ScanContext } from '../../src/lib/map/types' +import { getAdapter } from '../../src/lib/map/adapters/index' + +interface Case { + name: string + code: string + /** Defaults to `api`. */ + kind?: RouteKind + /** Defaults to `nuxt`. */ + framework?: Framework + /** Defaults to `/api/thing` — pick a sensitive path to arm the audit rule. */ + path?: string + /** Defaults to `true`. */ + hasEvlog?: boolean + /** evlog features the project already uses — the gate for opportunities. */ + features?: EvlogFeature[] + /** Third-party packages present that evlog integrates with. */ + pairable?: PairablePackage[] + /** Error catalogs the project declares — lets a suggestion name one. */ + catalogs?: string[] + /** + * Local modules that re-export evlog, as `moduleKey` → forwarded names. + * + * `{ evlog: ['useLogger'] }` stands for a `lib/evlog.ts` that does + * `export { useLogger } from 'evlog'`. + */ + barrels?: Record + /** + * Inline errors that also exist elsewhere in the project. + * + * Given as the literal payload, e.g. `{ status: 404, why: 'Gone' }`, and + * turned into the same signature the real scan computes — so a case cannot + * pass by inventing a signature the analyser would never produce. + */ + repeatedErrors?: string[] +} + +interface RuleCases { + valid: Case[] + invalid: Array + /** Cases the rule should report as not-applicable rather than passing. */ + notApplicable?: Case[] +} + +/** + * Run one rule against inline source, the way `RuleTester` does. + * + * Everything the real scan does is reused — parse, facts, sensitivity — so a + * case here fails for the same reasons a real project would. + */ +function check(rule: MapRule, testCase: Case): CheckResult | undefined { + const framework = testCase.framework ?? 'nuxt' + const file = framework === 'nuxt' ? 'server/api/thing.post.ts' : 'app/api/thing/route.ts' + const parsed = parseSource(file, testCase.code) + if (!parsed) throw new Error('fixture did not parse') + + const adapter = getAdapter(framework) + const capabilities: FrameworkCapabilities = { + requestLogger: adapter.requestLogger, + evlogAutoImports: adapter.evlogAutoImports ?? [], + } + const evlogBarrels = new Map( + Object.entries(testCase.barrels ?? {}).map(([key, names]) => [key, new Set(names)]), + ) + const facts = buildFileFacts(parsed, { + evlogAutoImports: capabilities.evlogAutoImports, + evlogBarrels, + }) + const raw = { + framework, + kind: testCase.kind ?? ('api' as RouteKind), + method: 'POST', + path: testCase.path ?? '/api/thing', + file, + handler: { line: 1, column: 0 }, + } + const target: RuleTarget = { ...raw, sensitivity: classifySensitivity(raw, facts) } + const ctx: ScanContext = { + projectRoot: '/tmp', + framework, + projectName: 'test', + hasEvlog: testCase.hasEvlog ?? true, + verbose: false, + } + const project: ProjectFacts = { + dependencies: new Set(testCase.pairable ?? []), + features: new Set(testCase.features ?? []), + pairable: new Set(testCase.pairable ?? []), + catalogs: testCase.catalogs ?? [], + evlogBarrels, + repeatedErrors: buildRepeatedErrors(testCase.repeatedErrors ?? []), + } + + const results = runRuleSet([rule], { ctx, target, parsed, facts, project, capabilities }) + return rule.category === 'requirement' + ? results.checks[rule.id] + : results.suggestions[rule.id] +} + +/** + * Signatures for errors the project repeats, computed the real way. + * + * The signature format is an implementation detail of `buildFileFacts`, so the + * test asks the analyser for it rather than hard-coding a string that could + * silently stop matching. + */ +function buildRepeatedErrors(payloads: string[]): Map { + const repeated = new Map() + for (const payload of payloads) { + const parsed = parseSource('other.ts', `throw createError(${payload})`) + if (!parsed) throw new Error(`repeated error payload did not parse: ${payload}`) + const [error] = buildFileFacts(parsed).inlineErrors + if (!error) throw new Error(`repeated error payload has no comparable literal: ${payload}`) + repeated.set(error.signature, { + label: error.label, + files: ['server/api/other.post.ts', 'server/api/third.post.ts'], + }) + } + return repeated +} + +const CASES: Record = { + 'wide-event': { + valid: [ + { + name: 'nuxt auto-imported useLogger', + code: 'export default defineEventHandler((event) => { const log = useLogger(event) })', + }, + { + name: 'explicit evlog import', + framework: 'next', + code: 'import { useLogger } from \'evlog\'\nexport async function POST() { const log = useLogger() }', + }, + { + name: 'subpath evlog import', + framework: 'next', + code: 'import { useLogger } from \'evlog/nuxt\'\nexport async function POST() { const log = useLogger() }', + }, + { + name: 'withEvlog wrapper instruments without naming a logger', + framework: 'next', + code: 'import { withEvlog } from \'evlog/next\'\nexport const POST = withEvlog(async () => Response.json({ ok: true }))', + }, + { + name: 'withAudit writes onto the ambient event', + code: 'import { withAudit } from \'evlog\'\nconst run = withAudit({ action: \'a\' }, () => ({ ok: true }))\nexport default defineEventHandler(() => run({}))', + }, + { + name: 'createLogger in a job', + kind: 'cron', + code: 'import { createLogger } from \'evlog\'\nexport default defineTask({ run() { const log = createLogger({ job: \'x\' }) } })', + }, + { + name: 'useLogger re-exported by a local barrel — evlog\'s own Next.js shape', + framework: 'next', + barrels: { evlog: ['useLogger'] }, + code: 'import { useLogger } from \'@/lib/evlog\'\nexport async function POST() { const log = useLogger() }', + }, + { + name: 'a barrel that re-exports everything forwards useLogger too', + framework: 'next', + barrels: { observability: ['*'] }, + code: 'import { useLogger } from \'~/lib/observability\'\nexport async function POST() { const log = useLogger() }', + }, + ], + invalid: [ + { + name: 'nothing at all, on an ambient framework, says the event is empty not absent', + code: 'export default defineEventHandler(() => ({ ok: true }))', + message: /adds nothing to its request event/, + }, + { + name: 'nothing at all, on an explicit framework, says the event is missing', + framework: 'next', + code: 'export async function POST() { return Response.json({}) }', + message: /dark event/, + }, + { + name: 'a local stub named useLogger is not evlog', + code: 'function useLogger() { return { set() {} } }\nexport default defineEventHandler(() => { const log = useLogger() })', + message: /adds nothing/, + }, + { + name: 'a local withAudit is not evlog\'s', + code: 'function withAudit(o, f) { return f }\nexport default defineEventHandler(() => withAudit({}, () => 1)())', + message: /adds nothing/, + }, + { + name: 'useLogger with no auto-import and no import', + framework: 'next', + code: 'export async function POST() { const log = useLogger() }', + message: /dark event/, + }, + { + name: 'a local module that re-exports nothing from evlog is still local', + framework: 'next', + code: 'import { useLogger } from \'@/lib/logger\'\nexport async function POST() { const log = useLogger() }', + message: /dark event/, + }, + { + name: 'a barrel only vouches for the names it forwards', + framework: 'next', + barrels: { evlog: ['withEvlog'] }, + code: 'import { useLogger } from \'@/lib/evlog\'\nexport async function POST() { const log = useLogger() }', + message: /dark event/, + }, + { + name: 'the simple log API is not the request wide event', + code: 'export default defineEventHandler(() => { log.info(\'done\'); return { ok: true } })', + message: /adds nothing/, + }, + { + name: 'evlog not installed says so instead', + code: 'export default defineEventHandler(() => ({ ok: true }))', + hasEvlog: false, + message: /evlog not installed/, + }, + ], + notApplicable: [{ name: 'pages do not own a server event', kind: 'page', code: 'const x = 1' },], + }, + + 'context': { + valid: [ + { + name: 'log.set on a resolved logger', + code: 'export default defineEventHandler((event) => { const log = useLogger(event); log.set({ a: 1 }) })', + }, + { + name: 'renamed logger binding', + code: 'export default defineEventHandler((event) => { const wide = useLogger(event); wide.set({ a: 1 }) })', + }, + ], + invalid: [ + { + name: 'logger with no context', + code: 'export default defineEventHandler((event) => { const log = useLogger(event) })', + message: /no log\.set\(\)/, + }, + { + name: 'a Map.set() is not request context', + code: 'export default defineEventHandler((event) => { const cache = new Map(); cache.set(\'a\', 1) })', + message: /no log\.set\(\)/, + }, + ], + }, + + 'structured-errors': { + valid: [ + { + name: 'createError with why and fix', + code: 'export default defineEventHandler(() => { throw createError({ status: 400, why: \'w\', fix: \'f\' }) })', + }, + ], + invalid: [ + { + name: 'plain Error', + code: 'export default defineEventHandler(() => { throw new Error(\'boom\') })', + message: /use createError/, + }, + { + name: 'createError missing fix', + code: 'export default defineEventHandler(() => { throw createError({ why: \'w\' }) })', + message: /missing fix/, + }, + { + name: 'createError missing why', + code: 'export default defineEventHandler(() => { throw createError({ fix: \'f\' }) })', + message: /missing why/, + }, + { + name: 'createError with neither', + code: 'export default defineEventHandler(() => { throw createError({ status: 400 }) })', + message: /missing why and fix/, + }, + ], + notApplicable: [ + { + name: 'a handler that raises nothing has no error to shape', + code: 'export default defineEventHandler(() => ({ ok: true }))', + }, + ], + }, + + 'audit': { + valid: [ + { + name: 'money path with an audit record', + path: '/api/checkout', + code: 'export default defineEventHandler((event) => { const log = useLogger(event); log.audit({ action: \'a\' }) })', + }, + { + name: 'a denial through an optional chain still counts', + path: '/api/checkout', + code: 'export default defineEventHandler((event) => { const log = useLogger(event); log.audit?.deny(\'nope\', { action: \'a\' }) })', + }, + ], + invalid: [ + { + name: 'money path without an audit record', + path: '/api/checkout', + code: 'export default defineEventHandler((event) => { const log = useLogger(event) })', + message: /audit trail/, + }, + { + name: 'a stub logger cannot produce an audit trail', + path: '/api/checkout', + code: 'function useLogger() { return { audit() {} } }\nexport default defineEventHandler(() => { const log = useLogger(); log.audit({}) })', + message: /audit trail/, + }, + ], + notApplicable: [ + { + name: 'an ordinary path needs no audit record', + path: '/api/health', + code: 'export default defineEventHandler(() => ({ ok: true }))', + }, + ], + }, + + 'error-handling': { + valid: [ + { + name: 'catch that logs', + code: 'export default defineEventHandler((event) => { const log = useLogger(event); try { go() } catch (e) { log.error(e) } })', + }, + { + name: 'catch that rethrows', + code: 'export default defineEventHandler(() => { try { go() } catch (e) { throw e } })', + }, + { + name: 'catch that falls back with a return', + code: 'export default defineEventHandler(() => { try { go() } catch { return { ok: false } } })', + }, + ], + invalid: [ + { + name: 'empty catch', + code: 'export default defineEventHandler(() => { try { go() } catch {} })', + message: /empty catch/, + }, + { + name: 'catch that only increments a counter', + code: 'export default defineEventHandler(() => { let n = 0; try { go() } catch { n++ } })', + message: /swallows error/, + }, + ], + notApplicable: [ + { + name: 'no catch to inspect — the framework integration logs what escapes', + code: 'export default defineEventHandler(async () => await $fetch(\'/api/x\'))', + }, + ], + }, + + 'page-error-handling': { + valid: [ + { + name: 'useFetch with an error binding', + kind: 'page', + code: 'const { data, error } = await useFetch(\'/api/x\')', + }, + { + name: 'try/catch around $fetch', + kind: 'page', + code: 'try { await $fetch(\'/api/x\') } catch (e) { console.error(e) }', + }, + { + name: 'promise catch', + kind: 'page', + code: 'const data = await $fetch(\'/api/x\').catch(() => null)', + }, + ], + invalid: [ + { + name: 'bare useFetch', + kind: 'page', + code: 'const { data } = await useFetch(\'/api/x\')', + message: /without error handling/, + }, + ], + notApplicable: [{ name: 'a page that fetches nothing', kind: 'page', code: 'const title = \'hello\'' }], + }, + + 'error-catalog': { + valid: [ + { + name: 'nothing to promote when no error is thrown inline', + features: ['error-catalog'], + code: 'export default defineEventHandler(() => ({ ok: true }))', + }, + { + name: 'a one-off inline error is left alone — duplication is the whole signal', + features: ['error-catalog'], + code: 'export default defineEventHandler(() => { throw createError({ status: 402, message: \'Card declined\' }) })', + }, + { + name: 'a different error is not the repeated one', + features: ['error-catalog'], + repeatedErrors: ['{ status: 404, message: \'Order not found\' }'], + code: 'export default defineEventHandler(() => { throw createError({ status: 402, message: \'Card declined\' }) })', + }, + { + name: 'an error built from variables cannot be compared, so it is not claimed', + features: ['error-catalog'], + repeatedErrors: ['{ status: 404, message: \'Order not found\' }'], + code: 'export default defineEventHandler(() => { throw createError({ status, message: reason }) })', + }, + ], + invalid: [ + { + name: 'the same error is spelled out here and elsewhere', + features: ['error-catalog'], + repeatedErrors: ['{ status: 402, message: \'Card declined\' }'], + code: 'export default defineEventHandler(() => { throw createError({ status: 402, message: \'Card declined\' }) })', + message: /"402 Card declined" is spelled out here and in 1 other file/, + }, + { + name: 'extra non-literal properties do not break the match', + features: ['error-catalog'], + repeatedErrors: ['{ status: 402, message: \'Card declined\' }'], + code: 'export default defineEventHandler(() => { throw createError({ status: 402, message: \'Card declined\', context: { id } }) })', + message: /one catalog entry would cover them/, + }, + ], + notApplicable: [ + { + name: 'silent when the project has no catalog — never sell a feature', + repeatedErrors: ['{ status: 402, message: \'Card declined\' }'], + code: 'export default defineEventHandler(() => { throw createError({ status: 402, message: \'Card declined\' }) })', + }, + ], + }, + + 'audit-coverage': { + valid: [ + { + name: 'the write is already audited', + features: ['audit'], + code: 'export default defineEventHandler((event) => { const log = useLogger(event); db.update({}); log.audit({ action: \'a\' }) })', + }, + ], + invalid: [ + { + name: 'unaudited write while the project audits elsewhere', + features: ['audit'], + code: 'export default defineEventHandler(() => { db.update({ id: 1 }) })', + message: /no audit record/, + }, + ], + notApplicable: [ + { + name: 'silent when the project does not audit at all', + code: 'export default defineEventHandler(() => { db.update({ id: 1 }) })', + }, + { + name: 'silent with no state change', + features: ['audit'], + code: 'export default defineEventHandler(() => db.find({}))', + }, + { + name: 'left to the audit requirement on a money path', + features: ['audit'], + path: '/api/checkout', + code: 'export default defineEventHandler(() => { db.update({ id: 1 }) })', + }, + ], + }, + + 'ai-logging': { + valid: [ + { + name: 'model call already wrapped with evlog/ai', + pairable: ['ai'], + code: 'import { createAIMiddleware } from \'evlog/ai\'\nexport default defineEventHandler(() => generateText({}))', + }, + ], + invalid: [ + { + name: 'model call with the AI SDK installed and no evlog/ai', + pairable: ['ai'], + code: 'export default defineEventHandler(() => streamText({ model }))', + message: /without evlog\/ai/, + }, + ], + notApplicable: [ + { + name: 'silent without the ai package', + code: 'export default defineEventHandler(() => streamText({ model }))', + }, + { + name: 'silent when nothing calls a model', + pairable: ['ai'], + code: 'export default defineEventHandler(() => ({ ok: true }))', + }, + ], + }, + + 'auth-identity': { + valid: [], + invalid: [ + { + name: 'auth path with better-auth installed and no evlog integration', + pairable: ['better-auth'], + path: '/api/auth/login', + code: 'export default defineEventHandler(event => auth.handler(event))', + message: /no user identity/, + }, + ], + notApplicable: [ + { + name: 'silent without better-auth', + path: '/api/auth/login', + code: 'export default defineEventHandler(event => auth.handler(event))', + }, + { + name: 'silent once evlog/better-auth is adopted', + pairable: ['better-auth'], + features: ['better-auth'], + path: '/api/auth/login', + code: 'export default defineEventHandler(event => auth.handler(event))', + }, + { + name: 'silent on a route unrelated to auth', + pairable: ['better-auth'], + path: '/api/products', + code: 'export default defineEventHandler(() => db.find({}))', + }, + ], + }, +} + +describe('rule registry', () => { + it('every rule is covered by the case table', () => { + expect(RULES.map(rule => rule.id).sort()).toEqual(Object.keys(CASES).sort()) + }) + + it('every rule carries the metadata the report needs', () => { + for (const rule of RULES) { + expect(rule.title.length, `${rule.id} title`).toBeLessThanOrEqual(8) + expect(rule.expects, `${rule.id} expects`).toBeTruthy() + expect(rule.question, `${rule.id} question`).toMatch(/\?$/) + expect(rule.docs, `${rule.id} docs`).toMatch(/^\//) + expect(rule.appliesTo.kinds.length, `${rule.id} kinds`).toBeGreaterThan(0) + } + }) + + it('only requirements carry a weight, so a suggestion cannot cost points', () => { + for (const rule of REQUIREMENTS) { + expect(rule.weight, `${rule.id} weight`).toBeGreaterThan(0) + } + for (const rule of OPPORTUNITIES) { + expect(rule, `${rule.id} weight`).not.toHaveProperty('weight') + } + expect(OPPORTUNITIES.length).toBeGreaterThan(0) + }) + + it('every opportunity is gated on the project already using the feature', () => { + for (const rule of OPPORTUNITIES) { + expect(rule.appliesTo.when, `${rule.id} must declare a gate`).toBeTypeOf('function') + } + }) +}) + +describe('suggested audit action', () => { + const cases: Array<[string, string | null, string]> = [ + ['/api/auth/login', 'POST', 'auth.login'], + ['/api/payments/stripe', 'POST', 'payments.stripe'], + ['/api/orders/:id/refund', 'POST', 'orders.refund'], + ['/api/orders', 'POST', 'orders.created'], + ['/api/orders/:id', 'DELETE', 'orders.deleted'], + ['/api/:id', null, 'resource.action'], + ] + + for (const [path, method, expected] of cases) { + it(`reads ${expected} off ${method ?? 'ANY'} ${path}`, () => { + expect(auditAction({ path, method })).toBe(expected) + }) + } +}) + +describe('score neutrality', () => { + it('a failing opportunity removes no points', () => { + const rule = OPPORTUNITIES[0]! + const withSuggestion = scoreRoute({ [rule.id]: { status: 'fail' } }) + expect(withSuggestion).toBe(100) + }) +}) + +for (const [id, cases] of Object.entries(CASES) as Array<[CheckId, RuleCases]>) { + describe(id, () => { + const rule = getRule(id)! + + for (const testCase of cases.valid) { + it(`passes: ${testCase.name}`, () => { + const result = check(rule, testCase) + /* An opportunity with nothing to say says nothing — it never occupies a + row in the report just to report success. */ + if (rule.category === 'opportunity') { + expect(result).toBeUndefined() + return + } + expect(result).toEqual({ status: 'pass' }) + }) + } + + for (const testCase of cases.invalid) { + it(`fails: ${testCase.name}`, () => { + const result = check(rule, testCase) + expect(result?.status).toBe('fail') + expect(result?.message).toMatch(testCase.message) + expect(result?.evidence?.line).toBeGreaterThan(0) + }) + } + + for (const testCase of cases.notApplicable ?? []) { + it(`skips: ${testCase.name}`, () => { + const result = check(rule, testCase) + expect(result === undefined || result.status === 'n/a').toBe(true) + }) + } + }) +} diff --git a/packages/cli/test/map/scan.test.ts b/packages/cli/test/map/scan.test.ts new file mode 100644 index 00000000..5529bf3d --- /dev/null +++ b/packages/cli/test/map/scan.test.ts @@ -0,0 +1,167 @@ +import { join } from 'node:path' +import { describe, expect, it } from 'vitest' +import { getAdapter } from '../../src/lib/map/adapters/index' +import { detectFramework } from '../../src/lib/map/detect' +import { scan } from '../../src/lib/map/scan' +import type { ScanContext } from '../../src/lib/map/types' +import { extractMethodFromFilename, segmentsToPath } from '../../src/lib/map/utils' +import { mapForSnapshot } from '../../src/lib/map/write' +import { resolveProject } from '../../src/lib/project' + +const FIXTURES = join(import.meta.dirname, 'fixtures') + +async function ctx(root: string, framework: ScanContext['framework']): Promise { + const project = await resolveProject(root) + const deps = { ...project.packageJson?.dependencies, ...project.packageJson?.devDependencies } + return { + projectRoot: project.packageDir, + framework, + projectName: project.packageName ?? 'unknown', + hasEvlog: 'evlog' in deps, + verbose: false, + } +} + +describe('utils', () => { + it('extracts HTTP method from filename', () => { + expect(extractMethodFromFilename('checkout.post.ts')).toBe('POST') + expect(extractMethodFromFilename('health.get.ts')).toBe('GET') + expect(extractMethodFromFilename('index.ts')).toBeNull() + }) + + it('converts segments to path', () => { + expect(segmentsToPath(['orders', '[id]'], '/api')).toBe('/api/orders/:id') + expect(segmentsToPath(['docs', '[...slug]'], '/api')).toBe('/api/docs/:slug*') + expect(segmentsToPath(['(group)', 'about'])).toBe('/about') + }) +}) + +describe('detect', () => { + it('detects nuxt in fixture', async () => { + const project = await resolveProject(join(FIXTURES, 'nuxt-basic')) + const result = detectFramework(project) + expect(result.framework).toBe('nuxt') + }) + + it('detects next in fixture', async () => { + const project = await resolveProject(join(FIXTURES, 'next-app-router')) + const result = detectFramework(project) + expect(result.framework).toBe('next') + }) + + it('detects tanstack-start in fixture', async () => { + const project = await resolveProject(join(FIXTURES, 'tanstack-basic')) + const result = detectFramework(project) + expect(result.framework).toBe('tanstack-start') + }) +}) + +describe('nuxt extraction', () => { + it('extracts all routes from nuxt-basic fixture', async () => { + const root = join(FIXTURES, 'nuxt-basic') + const adapter = getAdapter('nuxt') + const routes = await adapter.extractRoutes(await ctx(root, 'nuxt')) + + const paths = routes.map(r => `${r.method ?? '*'} ${r.path} (${r.kind})`).sort() + expect(paths).toMatchInlineSnapshot(` + [ + "* * (middleware)", + "* / (page)", + "* /orders/:id (page)", + "* /tasks/cleanup (cron)", + "GET /api/broken-error (api)", + "GET /api/docs/:slug* (api)", + "GET /api/orders/:id (api)", + "GET /api/plain-error (api)", + "GET /health (api)", + "HEAD /api/orders/:id (api)", + "POST /api/checkout (api)", + "POST /api/payments/stripe (api)", + ] + `) + }) +}) + +describe('next extraction', () => { + it('extracts all routes from next-app-router fixture', async () => { + const root = join(FIXTURES, 'next-app-router') + const adapter = getAdapter('next') + const routes = await adapter.extractRoutes(await ctx(root, 'next')) + + const paths = routes.map(r => `${r.method ?? '*'} ${r.path} (${r.kind})`).sort() + expect(paths).toContain('GET /api/health (api)') + expect(paths).toContain('POST /api/checkout (api)') + expect(paths).toContain('POST /api/payments (api)') + expect(paths).toContain('GET /api/error (api)') + expect(paths).toContain('* / (page)') + expect(paths).toContain('POST action:createOrder (server-action)') + expect(paths).toContain('* * (middleware)') + }) +}) + +describe('tanstack extraction', () => { + it('extracts routes from tanstack-basic fixture', async () => { + const root = join(FIXTURES, 'tanstack-basic') + const adapter = getAdapter('tanstack-start') + const routes = await adapter.extractRoutes(await ctx(root, 'tanstack-start')) + + const paths = routes.map(r => `${r.method ?? '*'} ${r.path} (${r.kind})`).sort() + expect(paths).toContain('POST /api/checkout (api)') + expect(paths).toContain('GET /api/hello (api)') + expect(paths).toContain('* / (page)') + expect(paths).toContain('POST /api/admin (api)') + }) +}) + +describe('full scan snapshots', () => { + it('nuxt-basic map snapshot', async () => { + const root = join(FIXTURES, 'nuxt-basic') + const result = await scan(await ctx(root, 'nuxt')) + expect(mapForSnapshot(result.map)).toMatchSnapshot() + }) + + it('next-app-router map snapshot', async () => { + const root = join(FIXTURES, 'next-app-router') + const result = await scan(await ctx(root, 'next')) + expect(mapForSnapshot(result.map)).toMatchSnapshot() + }) + + it('tanstack-basic map snapshot', async () => { + const root = join(FIXTURES, 'tanstack-basic') + const result = await scan(await ctx(root, 'tanstack-start')) + expect(mapForSnapshot(result.map)).toMatchSnapshot() + }) +}) + +describe('checks', () => { + it('flags empty catch blocks', async () => { + const root = join(FIXTURES, 'nuxt-basic') + const result = await scan(await ctx(root, 'nuxt')) + const stripe = result.map.routes.find(r => r.path === '/api/payments/stripe') + expect(stripe?.checks['error-handling']?.status).toBe('fail') + }) + + it('passes instrumented checkout route', async () => { + const root = join(FIXTURES, 'nuxt-basic') + const result = await scan(await ctx(root, 'nuxt')) + const checkout = result.map.routes.find(r => r.path === '/api/checkout') + expect(checkout?.checks['wide-event']?.status).toBe('pass') + expect(checkout?.checks['context']?.status).toBe('pass') + expect(checkout?.checks['audit']?.status).toBe('pass') + expect(checkout?.score).toBe(100) + }) + + it('flags createError missing fix', async () => { + const root = join(FIXTURES, 'nuxt-basic') + const result = await scan(await ctx(root, 'nuxt')) + const broken = result.map.routes.find(r => r.path === '/api/broken-error') + expect(broken?.checks['structured-errors']?.status).toBe('fail') + }) + + it('flags plain throw new Error', async () => { + const root = join(FIXTURES, 'nuxt-basic') + const result = await scan(await ctx(root, 'nuxt')) + const plain = result.map.routes.find(r => r.path === '/api/plain-error') + expect(plain?.checks['structured-errors']?.status).toBe('fail') + }) +}) diff --git a/packages/cli/test/map/score.test.ts b/packages/cli/test/map/score.test.ts new file mode 100644 index 00000000..86a5df5e --- /dev/null +++ b/packages/cli/test/map/score.test.ts @@ -0,0 +1,28 @@ +import { describe, expect, it } from 'vitest' +import { gradeFromScore, scoreGlobal, scoreRoute } from '../../src/lib/map/score' +import type { CheckResult, RouteEntry } from '../../src/lib/map/types' + +describe('score', () => { + it('subtracts weights for failed checks', () => { + const checks: Record = { + 'wide-event': { status: 'fail' }, + 'context': { status: 'pass' }, + } + expect(scoreRoute(checks)).toBe(60) + }) + + it('computes weighted global score', () => { + const routes = [ + { score: 100, sensitivity: { level: 'none', reasons: [] }, kind: 'api' }, + { score: 50, sensitivity: { level: 'high', reasons: ['money'] }, kind: 'api' }, + ] as RouteEntry[] + expect(scoreGlobal(routes)).toBe(67) + }) + + it('maps grades', () => { + expect(gradeFromScore(95)).toBe('excellent') + expect(gradeFromScore(75)).toBe('good') + expect(gradeFromScore(55)).toBe('needs-work') + expect(gradeFromScore(30)).toBe('at-risk') + }) +}) diff --git a/packages/cli/test/map/sensitivity.test.ts b/packages/cli/test/map/sensitivity.test.ts new file mode 100644 index 00000000..9133724c --- /dev/null +++ b/packages/cli/test/map/sensitivity.test.ts @@ -0,0 +1,108 @@ +import { describe, expect, it } from 'vitest' +import { buildFileFacts } from '../../src/lib/map/facts' +import { parseSource } from '../../src/lib/map/parse' +import { classifySensitivity, sensitivityBadge, sensitivityLabel } from '../../src/lib/map/sensitivity' +import type { RawRouteEntry, Sensitivity } from '../../src/lib/map/types' + +/** + * Sensitivity is the gate on the `audit` rule and doubles a route's weight in + * the global score, so a wrong verdict here costs more than a wrong rule: it + * invents a 25-point requirement, or hides one, without any rule being at fault. + * The false positives below are the ones that matter — `/api/authors` is not an + * authentication endpoint. + */ +function classify(path: string, code = 'export default defineEventHandler(() => ({ ok: true }))'): Sensitivity { + const parsed = parseSource('server/api/thing.post.ts', code) + if (!parsed) throw new Error('fixture did not parse') + + const route: RawRouteEntry = { + framework: 'nuxt', + kind: 'api', + method: 'POST', + path, + file: 'server/api/thing.post.ts', + handler: { line: 1, column: 0 }, + } + return classifySensitivity(route, buildFileFacts(parsed)) +} + +describe('sensitivity from the route path', () => { + const money = ['/api/checkout', '/api/payments/stripe', '/api/billing/portal', '/api/invoices/:id', '/api/orders/:id/refund', '/api/subscriptions', '/api/payouts', '/api/refund-requests'] + const auth = ['/api/auth/login', '/api/oauth/callback', '/api/signup', '/api/password/reset', '/api/tokens', '/api/sessions', '/api/mfa/verify'] + /* Each of these contains a sensitive term as a substring of a longer word, + which the previous substring matching could not tell apart. */ + const neutral = ['/api/authors', '/api/authors/:id/posts', '/api/health', '/api/blog/posts', '/api/tokenizer', '/api/sessionize', '/api/logistics'] + + for (const path of money) { + it(`flags ${path} as money`, () => { + const sensitivity = classify(path) + expect(sensitivity.level).toBe('high') + expect(sensitivityLabel(sensitivity)).toBe('money') + expect(sensitivityBadge(sensitivity)).toBe('$') + }) + } + + for (const path of auth) { + it(`flags ${path} as auth`, () => { + const sensitivity = classify(path) + expect(sensitivity.level).toBe('high') + expect(sensitivityLabel(sensitivity)).toBe('auth') + expect(sensitivityBadge(sensitivity)).toBe('A') + }) + } + + for (const path of neutral) { + it(`leaves ${path} alone`, () => { + const sensitivity = classify(path) + expect(sensitivity.level).toBe('none') + expect(sensitivity.reasons).toEqual([]) + }) + } + + it('names the word it matched rather than echoing the path back', () => { + expect(classify('/api/auth/login').reasons).toEqual(['auth: path says "auth"']) + expect(classify('/api/orders/:id/refund').reasons).toEqual(['money: path says "refund"']) + }) +}) + +describe('sensitivity from the code', () => { + it('flags a payment SDK import wherever the route lives', () => { + const sensitivity = classify('/api/webhooks/incoming', 'import Stripe from \'stripe\'\nexport default defineEventHandler(() => new Stripe(\'k\'))') + + expect(sensitivity.level).toBe('high') + expect(sensitivity.reasons).toContain('money: imports stripe') + }) + + it('flags an auth library through a subpath import', () => { + const sensitivity = classify('/api/me', 'import { getSession } from \'better-auth/api\'\nexport default defineEventHandler(() => getSession())') + + expect(sensitivity.level).toBe('high') + expect(sensitivity.reasons).toContain('auth: imports better-auth') + }) + + it('ignores a package named only in a comment', () => { + const sensitivity = classify('/api/me', '// TODO: drop stripe once migrated\nexport default defineEventHandler(() => ({ ok: true }))') + + expect(sensitivity.level).toBe('none') + }) + + it('treats a write touching personal fields as medium, not high', () => { + const sensitivity = classify('/api/profile', 'export default defineEventHandler(async () => db.update({ email: \'a@b.c\', phone: \'1\' }))') + + expect(sensitivity.level).toBe('medium') + expect(sensitivityLabel(sensitivity)).toBe('pii') + expect(sensitivity.reasons).toEqual(['pii: write operation with sensitive fields']) + }) + + it('does not flag personal fields that are only read', () => { + const sensitivity = classify('/api/profile', 'export default defineEventHandler(async () => db.find({ email: \'a@b.c\' }))') + + expect(sensitivity.level).toBe('none') + }) + + it('reports every reason it found, not just the first', () => { + const sensitivity = classify('/api/checkout', 'import Stripe from \'stripe\'\nexport default defineEventHandler(() => new Stripe(\'k\'))') + + expect(sensitivity.reasons).toEqual(['money: imports stripe', 'money: path says "checkout"']) + }) +}) diff --git a/packages/evlog/README.md b/packages/evlog/README.md index 5262487f..0ba37c19 100644 --- a/packages/evlog/README.md +++ b/packages/evlog/README.md @@ -1423,6 +1423,38 @@ try { | **Vinxi** | Nitro v2 module setup | | **SolidStart** | Nitro v2 module setup ([example](./examples/solidstart)) | +## CLI + +[`@evlog/cli`](https://npmjs.com/package/@evlog/cli) scores what your app can tell you when something goes wrong. It reads your project on disk — no traffic, no instrumentation — finds every entry point, and names the ones to fix first. + +```bash +npx @evlog/cli map +``` + +``` +▀▀█ █▀▀ score /100 your-app · Nuxt + █ █▀█ ▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▱▱▱▱▱ 29 entry points scanned + ▀ ▀▀▀ good ▂▂▂▃▃▃▃▃▄▆▆▆▆▆███████████████ + +FIX FIRST +1. ANY /api/auth/:all* A — touches auth and logs nothing + server/api/auth/[...all].ts:1 · evlog.dev/learn/wide-events +``` + +| Command | What it does | +|---------|-------------| +| `evlog map` | Score every entry point and list the three worth fixing first | +| `evlog map ` | Explain one entry point in full, with the shape it could take | +| `evlog map --all` | Every entry point as a check matrix | +| `evlog map --min-score ` | Exit 1 below the threshold — a CI gate | +| `evlog doctor` | Diagnose the install: Node, workspace, evlog version, local logs | + +Same code in, same verdict out, with the file and line for every finding — which also makes it something you can hand to an agent: run it, fix the list, run it again. + +> **Early days:** the CLI is tested and safe to run on any project, but it is young — four framework adapters today, rules still being refined. Expect verdicts and scores to move between releases; pin it as a dev dependency when you gate CI on the number. + +Docs: [CLI](https://www.evlog.dev/cli/overview) · [`evlog map`](https://www.evlog.dev/cli/map) · [Rules](https://www.evlog.dev/cli/rules) · [Scoring](https://www.evlog.dev/cli/scoring) + ## Agent Skills evlog provides [Agent Skills](https://www.evlog.dev/reference/agent-skills) to help AI coding assistants understand and implement proper logging patterns in your codebase. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a2750d7..7e3a0170 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,40 +64,40 @@ importers: dependencies: '@databuddy/nuxt': specifier: ^2.4.20 - version: 2.4.20(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(react@19.2.6)(vue@3.5.40(typescript@6.0.3)) + version: 2.4.20(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(react@19.2.6)(vue@3.5.40(typescript@6.0.3)) '@nuxt/fonts': specifier: 0.14.0 version: 0.14.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) '@nuxt/ui': specifier: ^4.10.0 - version: 4.10.0(342679e81daec34fb4ebc5f1215784ba) + version: 4.10.0(9dd74825632101caae164786bfef9095) '@resvg/resvg-js': specifier: ^2.6.2 version: 2.6.2 '@vercel/analytics': specifier: ^2.0.1 - version: 2.0.1(@sveltejs/kit@2.69.3(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.55.5(@typescript-eslint/types@8.59.1))(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(react@19.2.6)(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vue@3.5.40(typescript@6.0.3)) + version: 2.0.1(@sveltejs/kit@2.69.3(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.55.5(@typescript-eslint/types@8.59.1))(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(react@19.2.6)(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vue@3.5.40(typescript@6.0.3)) '@vercel/speed-insights': specifier: ^2.0.0 - version: 2.0.0(@sveltejs/kit@2.69.3(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.55.5(@typescript-eslint/types@8.59.1))(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(react@19.2.6)(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vue@3.5.40(typescript@6.0.3)) + version: 2.0.0(@sveltejs/kit@2.69.3(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.55.5(@typescript-eslint/types@8.59.1))(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(react@19.2.6)(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vue@3.5.40(typescript@6.0.3)) better-sqlite3: specifier: ^12.11.1 version: 12.11.1 docus: specifier: ^5.12.3 - version: 5.12.3(a0b6e862aa0ce19fb90c10e383495f25) + version: 5.12.3(e1bb249dd6de9d4db5840172da917fe9) motion-v: specifier: ^2.3.0 version: 2.3.0(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3)))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vue@3.5.40(typescript@6.0.3)) nuxt: specifier: ^4.4.4 - version: 4.4.4(7d1ca556969269fd1f41ac0abb31bc74) + version: 4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5) nuxt-studio: specifier: ^1.7.0 - version: 1.7.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(srvx@0.11.22)(vue@3.5.40(typescript@6.0.3)) + version: 1.7.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(srvx@0.11.22)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@6.0.3)) satori: specifier: ^0.28.0 - version: 0.28.0 + version: 0.28.2 shaders: specifier: ^2.5.135 version: 2.5.135(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(solid-js@1.9.12)(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vue@3.5.40(typescript@6.0.3)) @@ -119,10 +119,10 @@ importers: version: 3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) '@nuxt/ui': specifier: ^4.9.0 - version: 4.10.0(1aad4d54899ef5c334c82429a3d5e1c2) + version: 4.10.0(91360aae90a0729fe907655509b87ef2) '@nuxtjs/sitemap': specifier: ^8.2.2 - version: 8.2.2(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76) + version: 8.2.2(@nuxt/schema@4.5.0)(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76) '@vercel/analytics': specifier: ^2.0.1 version: 2.0.1(@sveltejs/kit@2.69.3(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.55.5(@typescript-eslint/types@8.59.1))(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(react@19.2.6)(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vue@3.5.40(typescript@6.0.3)) @@ -156,7 +156,7 @@ importers: version: link:../../packages/evlog next: specifier: ^16.2.10 - version: 16.2.10(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + version: 16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) react: specifier: ^19.2.7 version: 19.2.7 @@ -231,7 +231,7 @@ importers: version: 1.0.0(@types/markdown-it@14.1.2)(react@19.2.6)(solid-js@1.9.12)(vue@3.5.40(typescript@5.9.3)) nuxt: specifier: ^4.4.2 - version: 4.4.4(d331503cc652b8b0dc91dfdee719201c) + version: 4.5.0(d0b081e3ea844aa3953445e0cdf8d794) zod: specifier: ^4.4.3 version: 4.4.3 @@ -240,7 +240,7 @@ importers: dependencies: '@nuxt/ui': specifier: ^4.9.0 - version: 4.10.0(9544d347d5c55f21e8018f343dea7214) + version: 4.10.0(16ede3a4a3f5881e23838e9d4f8f988e) better-auth: specifier: ^1.6.23 version: 1.6.23(45d050b1f52f671ed6239fb5e0be6ef8) @@ -277,13 +277,13 @@ importers: version: 0.14.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) '@nuxt/ui': specifier: ^4.10.0 - version: 4.10.0(1b446c4a581dc5097e46f48d13fb9d61) + version: 4.10.0(de89ca55adde23fab0252e9bd2d5a9c0) '@nuxthub/core': specifier: ^0.10.8 version: 0.10.8(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magicast@0.5.3)(typescript@6.0.3)(vue-tsc@3.2.7(typescript@6.0.3)) '@nuxtjs/mcp-toolkit': specifier: ^0.18.0 - version: 0.18.0(@vue/compiler-sfc@3.5.39)(h3@1.15.11)(magicast@0.5.3)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + version: 0.18.0(@vue/compiler-sfc@3.5.40)(h3@1.15.11)(magicast@0.5.3)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) drizzle-kit: specifier: ^0.31.10 version: 0.31.10 @@ -806,6 +806,12 @@ importers: evlog: specifier: workspace:* version: link:../evlog + oxc-parser: + specifier: ^0.82.3 + version: 0.82.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + tinyglobby: + specifier: ^0.2.17 + version: 0.2.17 devDependencies: tsdown: specifier: ^0.22.8 @@ -930,10 +936,10 @@ importers: version: 3.0.260311-beta(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(chokidar@5.0.0)(dotenv@17.4.2)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(giget@3.2.0)(ioredis@5.10.1)(jiti@2.7.0)(lru-cache@11.3.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) nitropack: specifier: ^2.13.4 - version: 2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.140.0)(rolldown@1.1.5)(srvx@0.11.15)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + version: 2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.140.0)(rolldown@1.2.0)(srvx@0.11.15)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) nuxt: specifier: ^4.4.2 - version: 4.4.4(3a628c60eb3c5faf2e1974943d1ba369) + version: 4.4.4(798471e5840d715482aeb7b47cc070f1) pino: specifier: ^10.3.1 version: 10.3.1 @@ -1026,18 +1032,6 @@ packages: bcrypt: optional: true - '@ai-sdk/gateway@3.0.109': - resolution: {integrity: sha512-r6dOqThjODp1vOhGRJg2OCmyB/ZOQtGx1esZ2SDvwDX5XoX8dBqYaYjLg8MPXTzMGJSgOkJyCxWgUcZtAl16pw==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/gateway@3.0.134': - resolution: {integrity: sha512-PfUkQp01EihEyNM6e+nexXmVANiY5KcHMui/MmaHsC4KVVQYh/MwPeOsD3bTPu63e581BKO+AwaPPNmD4x943A==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/gateway@3.0.151': resolution: {integrity: sha512-gsKEm1LleR/xm1FiJjnNxf1ZUKZryj20STsKJB7TdMcaiRqQgeHrdYWv/DNSA8ZBkRahHC+wEYHaI0VR9/EOwQ==} engines: {node: '>=18'} @@ -1062,18 +1056,6 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@4.0.26': - resolution: {integrity: sha512-CsKNLKsOpvPujRlIYvoz+Ybw+kGn7J4/fIZa/58+R7iWLLfwn6ifE2G6Yq8K9XvH/I/3bzaDAJ3NhRwEMsLBKQ==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - '@ai-sdk/provider-utils@4.0.30': - resolution: {integrity: sha512-VO7I+vPffqI5sMnPoUq5DCSqKIgQIk/naJWRdQVpz2ma2zoprC/lqiJiUEl2s6DfvTD76TbhD3q39ROjlA6rGw==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@4.0.39': resolution: {integrity: sha512-XPR6o7561RYUkfYlLYouWsvm6Gv2tYIQy5pttGRkvML98u138ClPThn5yiQg5rMQutTtZLB+GUC8qFFCzDKQQQ==} engines: {node: '>=18'} @@ -1092,10 +1074,6 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider@3.0.10': - resolution: {integrity: sha512-Q3BZ27qfpYqnCYGvE3vt+Qi6LGOF9R5Nmzn+9JoM1lCRsD9mYaIhfJLkSunN48nfGXJ6n+XNV0J/XVpqGQl7Dw==} - engines: {node: '>=18'} - '@ai-sdk/provider@3.0.14': resolution: {integrity: sha512-5X1k57JBJ4H7H1QjX7CnJYAB1I19r/trVZTMcSms7/kLNZ8RaU4Nt2agcwZzv82Hfx6Q7/TOLU7agAKeFfc8cA==} engines: {node: '>=18'} @@ -1108,12 +1086,6 @@ packages: resolution: {integrity: sha512-e0CpNWJUY7OxAFAnCZkw+ri9QOHWwTs1tXP42782KFGCU07qt8NiXCrCVowyCB5dP2r5/Uls+g2oPd8kOJn9dw==} engines: {node: '>=22'} - '@ai-sdk/vue@3.0.174': - resolution: {integrity: sha512-lc8dmKIRNn3kCtKw5jnRZzI/AErCsN9qo9BXNq9GfZGxSbR3FBLwHyhFCBze9zSWR5RQ68h/vR/olvPxHoIUUw==} - engines: {node: '>=18'} - peerDependencies: - vue: ^3.3.4 - '@ai-sdk/vue@3.0.228': resolution: {integrity: sha512-8+t7DEJt97r7ZmYR641oxr0KLes27tnx3TybYhi/KQm/UUtuq66nhMKealZY6y6Tq3Yg9+gsOgcoCAu13YWtWA==} engines: {node: '>=18'} @@ -2687,15 +2659,9 @@ packages: '@fingerprintjs/botd@2.0.0': resolution: {integrity: sha512-yhuz23NKEcBDTHmGz/ULrXlGnbHenO+xZmVwuBkuqHUkqvaZ5TAA0kAgcRy4Wyo5dIBdkIf57UXX8/c9UlMLJg==} - '@floating-ui/core@1.7.5': - resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} - '@floating-ui/core@1.8.0': resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==} - '@floating-ui/dom@1.7.6': - resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} - '@floating-ui/dom@1.8.0': resolution: {integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==} @@ -2705,9 +2671,6 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.11': - resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} - '@floating-ui/utils@0.2.12': resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==} @@ -2745,9 +2708,6 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@iconify-json/lucide@1.2.105': - resolution: {integrity: sha512-tbE+cGEixWcRFtW8xkzX1HaGRqp7CDhZb01uPBh7PnRoxXzVET9E73rHOXDdsLKUGoTuYGZKhhX6oirvoy5NDg==} - '@iconify-json/lucide@1.2.117': resolution: {integrity: sha512-7isYKJKWRZ8NfLNSY8pIYmRWiMBkopL4/X22gZfFmePFhc7az0hQ5biqBLG6vdDEvMctFu2suZB3yQ29RL+8tA==} @@ -3884,10 +3844,6 @@ packages: resolution: {integrity: sha512-7FDMuD+skbFMgfF2ORYKEAKEuEFbu2oS60dln5uVtn94c8DHWCseJSrT3FUHzVUlVwyhztPU6stzB44dEoWAzw==} engines: {node: ^14.18.0 || >=16.10.0} - '@nuxt/schema@4.4.8': - resolution: {integrity: sha512-igfWuMF0x0Pmx/XwhPwH/bcXgbuwNnjUjqxCAsY6VQhmGKo0e9soJq3Q0ohj+rBkBfX6o2ysTP1/t2M82aK4qA==} - engines: {node: ^14.18.0 || >=16.10.0} - '@nuxt/schema@4.5.0': resolution: {integrity: sha512-RY4cH0z2JRlmcsAIrBBXlmRW8FnCBTRdHCByttog+lAxg1hrJ2W5OdnoHO0KMeZSJg67MdeYPOZu7ZszFEymgA==} engines: {node: ^14.18.0 || >=16.10.0} @@ -4116,10 +4072,6 @@ packages: resolution: {integrity: sha512-hAX0pT/73190NLqBPPWSdBVGtbY6VOhWYK3qqHqtXQ1gK7kS2yz4+ivsN07hpJ6I3aeMtKP6J6npsEKOAzuTLA==} engines: {node: '>=20.0'} - '@opentelemetry/api@1.9.0': - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} - engines: {node: '>=8.0.0'} - '@opentelemetry/api@1.9.1': resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} engines: {node: '>=8.0.0'} @@ -4411,6 +4363,12 @@ packages: cpu: [arm64] os: [android] + '@oxc-parser/binding-android-arm64@0.82.3': + resolution: {integrity: sha512-hU9TSCa/dmYx0UCQyH+b9iONRGv5cfnvoSMKFf0v9xNwqlQu7mEil4po1d0a3Yjb7YyI9mz6e6bfg0XcjbMdBg==} + engines: {node: '>=20.0.0'} + cpu: [arm64] + os: [android] + '@oxc-parser/binding-darwin-arm64@0.128.0': resolution: {integrity: sha512-tRUHPt80417QmvNpoSslJT1VY8NUbWdrWR+L14Zn+RbOTcaqB8E6PYE/ZGN8jjWBzqporiA/H4MfO50ew/NCNA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4435,6 +4393,12 @@ packages: cpu: [arm64] os: [darwin] + '@oxc-parser/binding-darwin-arm64@0.82.3': + resolution: {integrity: sha512-LjBFMUtYYGZyA2g3+ajNPcn6RwsBoDbKELSf/pwVNCWHmAQwptw8zRc4VVDnBqANvkjmoe7MSp6TqKGi359/rw==} + engines: {node: '>=20.0.0'} + cpu: [arm64] + os: [darwin] + '@oxc-parser/binding-darwin-x64@0.128.0': resolution: {integrity: sha512-rWI2Hb1Nt3U/vKsjyNvZzDC8i/l144U20DKjhzaTmwIhIiSRGeroPWWiImwypmKLqrw8GuIixbWJkpGWLbkzrQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4459,6 +4423,12 @@ packages: cpu: [x64] os: [darwin] + '@oxc-parser/binding-darwin-x64@0.82.3': + resolution: {integrity: sha512-/d4uUlq2F3S0lwXnMjcGWkFUgZsPT/urypIQKFuumXbf9cHsy4bnkRDLL67+KpQ373R9boOEH+yUBYrLE9+LxA==} + engines: {node: '>=20.0.0'} + cpu: [x64] + os: [darwin] + '@oxc-parser/binding-freebsd-x64@0.128.0': resolution: {integrity: sha512-hhpdVMaNCLgQxjgNPeeFzSeJMmZPc5lKfv0NGSI3egZq9EdnEGqeC8JsYsQjK7PoQgbvZ17xlj0SO5ziH5Obkg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4483,6 +4453,12 @@ packages: cpu: [x64] os: [freebsd] + '@oxc-parser/binding-freebsd-x64@0.82.3': + resolution: {integrity: sha512-H8wJ8LNrRAZ1Q75r+bnEn79pPAq8zQKnbE5+mWu9Xq5qcaQ6l/ZgjdamjvK05hZZXicCV5xji315f+OKK2BayQ==} + engines: {node: '>=20.0.0'} + cpu: [x64] + os: [freebsd] + '@oxc-parser/binding-linux-arm-gnueabihf@0.128.0': resolution: {integrity: sha512-093zNw0zZ/e/obML+rhlSdmnzR0mVZluPcAkxunEc5E3F0yBVsFn24Y1ILfsEte11Ud041qn/gp2OJ1jxNqUng==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4507,6 +4483,12 @@ packages: cpu: [arm] os: [linux] + '@oxc-parser/binding-linux-arm-gnueabihf@0.82.3': + resolution: {integrity: sha512-iomV7aBUubRHcsLkEnl8ORsPc2yIRfB4AD6N9KweUUZMEAiNFjS5DU83NcdmkMajejWqCNczzeFIyBkyRkptDw==} + engines: {node: '>=20.0.0'} + cpu: [arm] + os: [linux] + '@oxc-parser/binding-linux-arm-musleabihf@0.128.0': resolution: {integrity: sha512-fq7DmKmfC+dvD97IXrgbph6Jzwe0EDu+PYMofmzZ6fv5X1k9vtaqLpDGMuICO9MmUnyKAQmVl+wIv2RNy4Dz8g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4531,6 +4513,12 @@ packages: cpu: [arm] os: [linux] + '@oxc-parser/binding-linux-arm-musleabihf@0.82.3': + resolution: {integrity: sha512-DUZT8W//2MwQCbz7XSFSp/F4qwIq5ZSZVcLp/G++4Fo38ERzc8CvcQHiHOJXKY68BHHlBrkGp81RjhvWiRUJVw==} + engines: {node: '>=20.0.0'} + cpu: [arm] + os: [linux] + '@oxc-parser/binding-linux-arm64-gnu@0.128.0': resolution: {integrity: sha512-Xvm48jJah8TlIrURIjNOP/gNiGe6aKvCB+r06VliflFo8Kq7VOLE8PxtgShJzZIqubrgdMdYfvuPPozn7F6MbQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4559,6 +4547,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-arm64-gnu@0.82.3': + resolution: {integrity: sha512-p66Mlm9ZpraOf1YyyJTIlastfDWMr4For132Ns8iT4AWc1L+Ml4hJew5x/5Y0HXw6zX5q290FvHfWMIh499hxg==} + engines: {node: '>=20.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-arm64-musl@0.128.0': resolution: {integrity: sha512-M7iwBGmYJTx+pKOYFjI0buop4gJvlmcVzFGaXPt21DKpQkbQZG1f63Yg7LloIYT/t9yLxCw0Lhfx/RFlAlMSjA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4587,6 +4582,13 @@ packages: os: [linux] libc: [musl] + '@oxc-parser/binding-linux-arm64-musl@0.82.3': + resolution: {integrity: sha512-eTeubc6GaGSGa09s9vffbg3Nxve4okUe79UQAd/vXPCPaGcbC/3VXoMutEjRyewOEEXihdYzggxa3v9yv7bNoA==} + engines: {node: '>=20.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + '@oxc-parser/binding-linux-ppc64-gnu@0.128.0': resolution: {integrity: sha512-21LGNIZb1Pcfk5/EGsqabrxv4yqQOWis1407JJrClS7XpFCrbvr74YAB1V+m54cYbwvO6UWwQqS4WecxiyfCRg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4643,6 +4645,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-riscv64-gnu@0.82.3': + resolution: {integrity: sha512-gOLpW5RZLajzc/PfPBxYGLLQu9ErBJBZSboBpDafP1Vv8t/vmwEr0WA95oxPdFo0lMl2xkjcVNbOiVQA70U56Q==} + engines: {node: '>=20.0.0'} + cpu: [riscv64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-riscv64-musl@0.128.0': resolution: {integrity: sha512-X6Q2oKUrP5GyDd2xniuEBLk6aFQCZ97W2+aVXGgJXdjx5t4/oFuA9ri0wLOUrBIX+qdSuK581snMBio4z910eA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4699,6 +4708,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-s390x-gnu@0.82.3': + resolution: {integrity: sha512-K8FiSCsjUxwo5uKIlwoQd8Dgtvjplk1fYXLnU4CKH0BxWVihf34NQ3DCyELMjAOhyrslfih5cWULIyKOdWSUqw==} + engines: {node: '>=20.0.0'} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-x64-gnu@0.128.0': resolution: {integrity: sha512-OO1nW2Q7sSYYvJZpDHdvyFSdRaVcQqRijZSSmWVMqFxPYy8cEF45zJ9fcdIYuzIT3jYq6YRhEFm/VMWNWhE22Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4727,6 +4743,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-x64-gnu@0.82.3': + resolution: {integrity: sha512-/n13gpaEWlDHGWExq5lfZpvxKkA2w+zWA79C13F4yVskEzfZSk1x6dTBrkGSf3pFAUFHtzrlT/LPHiUyMJt5Tg==} + engines: {node: '>=20.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-x64-musl@0.128.0': resolution: {integrity: sha512-4NehAe404MRdoZVS9DW8C5XbJwbXIc/KfVlYdpi5vE4081zc9Y0YzKVqyOYj/Puye7/Do+ohaONBFWlEHYl9hw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4755,6 +4778,13 @@ packages: os: [linux] libc: [musl] + '@oxc-parser/binding-linux-x64-musl@0.82.3': + resolution: {integrity: sha512-P6eBYtOmAP0uihOeteOzXwAS4s5FB79gt1THYEMBGNe482PPhesqEXyq5jFCwBzpM1QKg7xG7N+EC+ZUktXOTg==} + engines: {node: '>=20.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + '@oxc-parser/binding-openharmony-arm64@0.128.0': resolution: {integrity: sha512-kVbqgW9xLL8bh8oc7aYOJilRKXE5G33+tE0jan+duo/9OriaFRpijcCwT2waWs2oqYROYq0GlE7/p3ywoshVeg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4799,6 +4829,11 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] + '@oxc-parser/binding-wasm32-wasi@0.82.3': + resolution: {integrity: sha512-oFL0vJfrR7Qkj+n3q9MQhqOsaWGiDg4B1Ch/mJMZGXJAkZ1dnYKQWLVymJkWsl4Ydgs82h6L20mX2IthbF0wHQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@oxc-parser/binding-win32-arm64-msvc@0.128.0': resolution: {integrity: sha512-xgvO35GyHBtjlQ5AEpaYr7Rll1rvY7zqIhT6ty8E3ezBW2J1SFLjIDEvI/tcgDg6oaseDAqVcM+jU1HuCekgZw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4823,6 +4858,12 @@ packages: cpu: [arm64] os: [win32] + '@oxc-parser/binding-win32-arm64-msvc@0.82.3': + resolution: {integrity: sha512-2t3j5pWgL7ZWj/3Q1aiUBnH79oAzQO+KOM5tTVawIWpsHFqsuGEL5ckikap1JczHaugAaEvc067ihTjpSDoXVA==} + engines: {node: '>=20.0.0'} + cpu: [arm64] + os: [win32] + '@oxc-parser/binding-win32-ia32-msvc@0.128.0': resolution: {integrity: sha512-OY+3eM2SN72prHKRB22mPz8o5A/7dJ+f5DFLBVvggyZhEaNDAH9IB+ElMjmOkOIwf5MDCUAowCK7pAncNxzpBA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4871,6 +4912,12 @@ packages: cpu: [x64] os: [win32] + '@oxc-parser/binding-win32-x64-msvc@0.82.3': + resolution: {integrity: sha512-MeMOFDIZ3vSZyjgjSkWKb/zdRc4eSwK0kUl5OmysjRIIyIK7LEFLpuk7R+Of4nUGYAQNRHyC8BcMJKO2OLBeqA==} + engines: {node: '>=20.0.0'} + cpu: [x64] + os: [win32] + '@oxc-project/types@0.103.0': resolution: {integrity: sha512-bkiYX5kaXWwUessFRSoXFkGIQTmc6dLGdxuRTrC+h8PSnIdZyuXHHlLAeTmOue5Br/a0/a7dHH0Gca6eXn9MKg==} @@ -4892,6 +4939,9 @@ packages: '@oxc-project/types@0.140.0': resolution: {integrity: sha512-h5LUOzGArYemnW1NMz/DuuQhBi96J6JL2Bk8zE4kvqxB5Sg3jxmCiH4uyOWHDkiKSt5vWlG4FIwCR/DbstcNRQ==} + '@oxc-project/types@0.82.3': + resolution: {integrity: sha512-6nCUxBnGX0c6qfZW5MaF6/fmu5dHJDMiMPaioKHKs5mi5+8/FHQ7WGjgQIz1zxpmceMYfdIXkOaLYE+ejbuOtA==} + '@oxc-transform/binding-android-arm-eabi@0.128.0': resolution: {integrity: sha512-qVO4izEs88ZSo7KOK4P+O5nAXXJmkSadInvFjGkhVnm2R2Wr8trU/GLhjAK0S0u8Qv9bkXspNhgpECk+CTQ/ew==} engines: {node: ^20.19.0 || >=22.12.0} @@ -6788,10 +6838,6 @@ packages: '@shikijs/core@3.23.0': resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} - '@shikijs/core@4.0.2': - resolution: {integrity: sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw==} - engines: {node: '>=20'} - '@shikijs/core@4.1.0': resolution: {integrity: sha512-jLJtSJeuFffqX6/inRE1zqU5aFv2hrszvYgq3OjbAgFRZiWv7abKMDdQzYxuSDfmUPQozZvI/kuy6VMTvnvqTQ==} engines: {node: '>=20'} @@ -6842,10 +6888,6 @@ packages: resolution: {integrity: sha512-m0l9nsDqgBHvbZbk7A0/kXz/impK3uB/c6rAn6Gpg/uPtdZRQ+alsN/17MU5thb68XTj/4DxkZAotrM0GGSpDQ==} engines: {node: '>=20'} - '@shikijs/primitive@4.0.2': - resolution: {integrity: sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw==} - engines: {node: '>=20'} - '@shikijs/primitive@4.1.0': resolution: {integrity: sha512-zx2/2Uwj2q9X3KSyYREEhXO23xBw5WUhP4orK2lE4r+t9JGITmEe0JH+wPmJhqHpOT2bRRs6lAL945+LDvOAGw==} engines: {node: '>=20'} @@ -6886,10 +6928,6 @@ packages: resolution: {integrity: sha512-dgpoJ4WqNi2yTmizQHBJ5zcX6j2lE6icN/0yt4l1kkf16jrY/pwPLoTb1ETsWMz0OBLf9ZNvwmxft+cH+N9qSA==} engines: {node: '>=20'} - '@shikijs/transformers@4.0.2': - resolution: {integrity: sha512-1+L0gf9v+SdDXs08vjaLb3mBFa8U7u37cwcBQIv/HCocLwX69Tt6LpUCjtB+UUTvQxI7BnjZKhN/wMjhHBcJGg==} - engines: {node: '>=20'} - '@shikijs/transformers@4.3.1': resolution: {integrity: sha512-z6ir0bGDgWcF2FduktEfPgIsdOtIlDiLAjFBgBzE42Q9xHbkkIXZtORHzlLVB71iZP9elEcqKg6keajvOUwE2A==} engines: {node: '>=20'} @@ -6900,10 +6938,6 @@ packages: '@shikijs/types@3.23.0': resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} - '@shikijs/types@4.0.2': - resolution: {integrity: sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg==} - engines: {node: '>=20'} - '@shikijs/types@4.1.0': resolution: {integrity: sha512-3EQWX54fMpniOrDblzAhiwiJwpiTMW6+B9DWyUd9ska483tbayFYuw47UxwuPknI31bKnySfVQ/QW+jFL4rFdA==} engines: {node: '>=20'} @@ -7809,9 +7843,6 @@ packages: resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} engines: {node: '>=12'} - '@tanstack/virtual-core@3.14.0': - resolution: {integrity: sha512-JLANqGy/D6k4Ujmh8Tr25lGimuOXNiaVyXaCAZS0W+1390sADdGnyUdSWNIfd49gebtIxGMij4IktRVzrdr12Q==} - '@tanstack/virtual-core@3.17.4': resolution: {integrity: sha512-nGm5KteqxasUdThLc2izl6dHUqLv0LQj7Nuyo5gYalTPf/U8a9ermvsl7reT+6ioBW1l8WfpP/mcU338nLXpqw==} @@ -7826,11 +7857,6 @@ packages: peerDependencies: vue: '>=3.2' - '@tanstack/vue-virtual@3.13.24': - resolution: {integrity: sha512-A0k2qF0zFSUStXSZkGXABouXr2Tw2Ztl/cVIYG9qy84uR8W7UNjAcX3DvzBS3YnDcwvLxab8v7dbmYBZ39itDA==} - peerDependencies: - vue: ^2.7.0 || ^3.0.0 - '@tanstack/vue-virtual@3.13.32': resolution: {integrity: sha512-E8OCutx7QnwZdvpJijz0Q2PHsYDWBWjnGr3TvgWiqxTU35jB1kVhtkd93scRV7tTFuId2tg3x2iFiw+IE4evjQ==} peerDependencies: @@ -8918,36 +8944,24 @@ packages: '@vue/compiler-core@3.5.33': resolution: {integrity: sha512-3PZLQwFw4Za3TC8t0FvTy3wI16Kt+pmwcgNZca4Pj9iWL2E72a/gZlpBtAJvEdDMdCxdG/qq0C7PN0bsJuv0Rw==} - '@vue/compiler-core@3.5.39': - resolution: {integrity: sha512-16KBTEXAJCpDr0mwlw+AZyhu8iyC7R3S2vBwsI7QnWJU6X3WKc9VKeNEZpiMdZ569qWhz9574L3vV55qRL0Vtw==} - '@vue/compiler-core@3.5.40': resolution: {integrity: sha512-39E8IgOhTbVDnoJFMKc2DvYnypcZwUqgUhQkccva/0m6FUwtIKSGV7n1hpVmYcFaoRAwf9pBcwnKlCEsN63ZEQ==} '@vue/compiler-dom@3.5.33': resolution: {integrity: sha512-PXq0yrfCLzzL07rbXO4awtXY1Z06LG2eu6Adg3RJFa/j3Cii217XxxLXG22N330gw7GmALCY0Z8RgXEviwgpjA==} - '@vue/compiler-dom@3.5.39': - resolution: {integrity: sha512-oQPigALqYbNxTNPvNgSOe+czwVExfbVF02lz8jP0S3AXJiu3jxYDygNUiqSep4ezzW8XgnubqH63My2A7JR/vg==} - '@vue/compiler-dom@3.5.40': resolution: {integrity: sha512-pwkx4vqlqOspFstrcmzwkKLePVMD3PT65imRzLhanU2V1Fj4K13g6OXjanOyzw3aTAuRk84BOmY8f3rEHqPaVA==} '@vue/compiler-sfc@3.5.33': resolution: {integrity: sha512-UTUvRO9cY+rROrx/pvN9P5Z7FgA6QGfokUCfhQE4EnmUj3rVnK+CHI0LsEO1pg+I7//iRYMUfcNcCPe7tg0CoA==} - '@vue/compiler-sfc@3.5.39': - resolution: {integrity: sha512-d0ki86iOyN8LoZPBmk5SJWNwHP19CnDDCfuo//+2WJa2g5Ke0Jay983PIBIcSSzldC68I8DrD5GrHV3OSDfodg==} - '@vue/compiler-sfc@3.5.40': resolution: {integrity: sha512-gIf497P4kpuALcvs5n3AEg1Vdn0pSY4XbjASIfHNYF1/MP3T2Mf2STERTubysBxCRxzJGJYtF/O7vwJrxFB3Vw==} '@vue/compiler-ssr@3.5.33': resolution: {integrity: sha512-IErjYdnj1qIupG5xxiVIYiiRvDhGWV4zuh/RCrwfYpuL+HWQzeU6lCk/nF9r7olWMnjKxCAkOctT2qFWFkzb1A==} - '@vue/compiler-ssr@3.5.39': - resolution: {integrity: sha512-Ce7/wvwMHai74bdszfXExdazFigYnlF9zgCmEQUcM1j0fOymlouZ7XilTYNo8oUjhlnjYOZbGrcYKuqjz89Ucw==} - '@vue/compiler-ssr@3.5.40': resolution: {integrity: sha512-rrE5xiXG663+vHCHa3J9p2z5OcBRjXmoqenprJxAFQxg5pSshzeBiCE6pu46axapRJ2Adk0YDA2BRZVjiHXnhg==} @@ -9274,18 +9288,6 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ai@6.0.174: - resolution: {integrity: sha512-bTrfLUWHWtkjzWyCY4bmyuk4Qvmj4S4NSNsXyNSVVqkmftQNtxRj7dzUoMeQDBBwlJO6fC7m2Q/lNOPqQQfAGA==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - - ai@6.0.209: - resolution: {integrity: sha512-NE7uErmxOe+i77BPT1+AhW4wr7xzilbQLsKVmvGEyil5AjaF6C/m92hlPI4Xwtnv5n77D/29bizwcR27/S/gSQ==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - ai@6.0.228: resolution: {integrity: sha512-3TXPF+meV/B0ObVWqLZDfTo0UjT9eKQX+QO5B8n7TSyLxnU3U9FHKxRp7U9mGuTVh7fdo2OtU0J8uGFR4EStsg==} engines: {node: '>=18'} @@ -12386,10 +12388,6 @@ packages: resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} hasBin: true - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} - hasBin: true - js-yaml@4.3.0: resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} hasBin: true @@ -13579,15 +13577,9 @@ packages: zod: optional: true - nuxt-site-config-kit@4.0.8: - resolution: {integrity: sha512-7g3giKXt0M2vssCUg8XFfR6+u4U0zywQ8p8i4msy4p+9etteFNrkrCmVHZ83xiWGFbnoTgiaymPjbaQH3KZqAg==} - nuxt-site-config-kit@4.1.1: resolution: {integrity: sha512-xa341q3+RbpfNNKTwQ2Nsn980WZqF3zZPIR4PlF0xsm2M8Qfxtuaa1I7wMq6/fg/E2J9IyUm0DQ+B4mnKtMs4Q==} - nuxt-site-config@4.0.8: - resolution: {integrity: sha512-H7wHoOJ5Z6ZnTqD5vUugaKkWZbejZ9kGmzpr2dheOaC6RdT8JafCfMrmJG7W+cyJiJJ3YmzL+bzPBW2bW6MExA==} - nuxt-site-config@4.1.1: resolution: {integrity: sha512-hYf7YtYng5fsuxeAH5hE11sC/Q18pPa8MOULYS2GKb9KjIMiK+d57mDIU/8i4AabVyxrYKJkNuqIg/c4dWrYAw==} @@ -13620,20 +13612,6 @@ packages: '@types/node': optional: true - nuxtseo-shared@5.1.3: - resolution: {integrity: sha512-euCaYANxdjeLzJcxvEczKpLuikxPy/LUT/v69orStKlG2U4pvWaqDv74QO8YMCCmUbAO+8BoRj/SJccu9GcJGQ==} - peerDependencies: - '@nuxt/schema': ^3.16.0 || ^4.0.0 - nuxt: ^3.16.0 || ^4.0.0 - nuxt-site-config: ^3.2.0 || ^4.0.0 - vue: ^3.5.0 - zod: ^3.23.0 || ^4.0.0 - peerDependenciesMeta: - nuxt-site-config: - optional: true - zod: - optional: true - nuxtseo-shared@5.3.2: resolution: {integrity: sha512-0A+oVQJUvcNKFqB/lzhG5+YhthZmrpzRv2os0LRsPbGNXwj1w3qUbmd0d7SRIP80cto1lKhZfSNZ/HxoCsbI4A==} peerDependencies: @@ -13785,6 +13763,10 @@ packages: resolution: {integrity: sha512-h6QFWd6lBMfjESqgQ27GjzrSDb0qbznp7VDQqp2zvgsrWut4vcchyMIzOVXvGQ2GMZgKw9RWrFNWv9WqGL0p7Q==} engines: {node: ^20.19.0 || >=22.12.0} + oxc-parser@0.82.3: + resolution: {integrity: sha512-mJGrcrzaPYfCJwXsqPRJ8yeS3/Brn0qpt8jq7tPg3B7n3VSvKuKYhXhC0gBFQ+aIa9TdttdR/NWGh48lvUodjg==} + engines: {node: '>=20.0.0'} + oxc-transform@0.128.0: resolution: {integrity: sha512-8DfEHlmUiLOHlCK9DGX+d5tORc1xwPPvoRSHSJCYgLHyGjKp4PvfBrvgi59DkEW0SMOWfO8GL9t+R7vdKtupbg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -14808,9 +14790,6 @@ packages: remark-math@6.0.0: resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} - remark-mdc@3.10.0: - resolution: {integrity: sha512-gJhrSs4bGyqr7eSuLoaLlpmiDZrJ9fP/8gTA/w1CnKnW/mfxc9VKM+ndzpOxHQnpAU4tjD8QqF6SMLiOvIVTYA==} - remark-mdc@3.11.1: resolution: {integrity: sha512-bjH7Q1OO1BSXVPmUxYIrGH2dUAZkizNY3i9WJUEcIFLowZAEjLTT7fUAH2vH0Tpkeh+/MrzwFFmeWcZ66QLh7A==} @@ -15029,8 +15008,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - satori@0.28.0: - resolution: {integrity: sha512-FhOx2irXIrxbNpPyE0x/+k3p8G+FVWfaTPAKuwMaB4kk02PehHFumYyJ4NtiLNC7moNAspeDt06S+DqUjJ9Fsg==} + satori@0.28.2: + resolution: {integrity: sha512-AZBuptlBvlMf+EC/WI6Ss5MJwSEstrC6Pf1o5b2keg6h1QbvjStmrnJXUDGWOrfC1KSU0FApyGhF2xnBwmJRgA==} engines: {node: '>=16'} sax@1.6.0: @@ -15243,11 +15222,6 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - site-config-stack@4.0.8: - resolution: {integrity: sha512-Su+57p7CGqd3QSMmaDV+qU9EqWmgAT3SGX4Wurb5VsEBMFC3oXvai8BlrXVUnH1ay9hA1WOn0g0i6+y/RJX5Yw==} - peerDependencies: - vue: ^3.5.30 - site-config-stack@4.1.1: resolution: {integrity: sha512-sJoqaL3ihMkAGgOXBfg28zL55qZdzgNj0BQBQf3QSw2ilCYSGRNYWgg6kucxmmcyFtRC89WlOXAqG0OR422Xng==} peerDependencies: @@ -16921,24 +16895,6 @@ packages: pinia: optional: true - vue-router@5.1.0: - resolution: {integrity: sha512-HAbiLzLEHQwxPgvsbOJDAwtavszEgLwri6XfyrsPECIFez8+59xc9LofWVdc/HEaSRT822lJ8H9Ns38VVond5g==} - peerDependencies: - '@pinia/colada': '>=0.21.2' - '@vue/compiler-sfc': ^3.5.34 - pinia: ^3.0.4 - vite: ^7.0.0 || ^8.0.0 - vue: ^3.5.34 - peerDependenciesMeta: - '@pinia/colada': - optional: true - '@vue/compiler-sfc': - optional: true - pinia: - optional: true - vite: - optional: true - vue-router@5.2.0: resolution: {integrity: sha512-QAC5i0LEb1GLG0LXDQmHu8L7FX12j0KwU/JTKmLQUJMrn04gQdKP6Du+p0QwpHb3iy71vBlqnHQ8WAfOSAWhqw==} peerDependencies: @@ -17316,20 +17272,6 @@ snapshots: '@phc/format': 1.0.0 '@poppinss/utils': 6.10.1 - '@ai-sdk/gateway@3.0.109(zod@4.4.3)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.26(zod@4.4.3) - '@vercel/oidc': 3.2.0 - zod: 4.4.3 - - '@ai-sdk/gateway@3.0.134(zod@4.4.3)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.4.3) - '@vercel/oidc': 3.2.0 - zod: 4.4.3 - '@ai-sdk/gateway@3.0.151(zod@4.4.3)': dependencies: '@ai-sdk/provider': 3.0.14 @@ -17366,20 +17308,6 @@ snapshots: pkce-challenge: 5.0.1 zod: 4.4.3 - '@ai-sdk/provider-utils@4.0.26(zod@4.4.3)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@standard-schema/spec': 1.1.0 - eventsource-parser: 3.0.8 - zod: 4.4.3 - - '@ai-sdk/provider-utils@4.0.30(zod@4.4.3)': - dependencies: - '@ai-sdk/provider': 3.0.10 - '@standard-schema/spec': 1.1.0 - eventsource-parser: 3.0.8 - zod: 4.4.3 - '@ai-sdk/provider-utils@4.0.39(zod@4.4.3)': dependencies: '@ai-sdk/provider': 3.0.14 @@ -17412,10 +17340,6 @@ snapshots: eventsource-parser: 3.0.8 zod: 4.4.3 - '@ai-sdk/provider@3.0.10': - dependencies: - json-schema: 0.4.0 - '@ai-sdk/provider@3.0.14': dependencies: json-schema: 0.4.0 @@ -17428,15 +17352,6 @@ snapshots: dependencies: json-schema: 0.4.0 - '@ai-sdk/vue@3.0.174(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)': - dependencies: - '@ai-sdk/provider-utils': 4.0.26(zod@4.4.3) - ai: 6.0.174(zod@4.4.3) - swrv: 1.2.0(vue@3.5.40(typescript@6.0.3)) - vue: 3.5.40(typescript@6.0.3) - transitivePeerDependencies: - - zod - '@ai-sdk/vue@3.0.228(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)': dependencies: '@ai-sdk/provider-utils': 4.0.39(zod@4.4.3) @@ -18050,7 +17965,7 @@ snapshots: '@changesets/parse@0.4.3': dependencies: '@changesets/types': 6.1.0 - js-yaml: 4.1.1 + js-yaml: 4.3.0 '@changesets/pre@2.0.2': dependencies: @@ -18213,12 +18128,12 @@ snapshots: enabled: 2.0.0 kuler: 2.0.0 - '@databuddy/nuxt@2.4.20(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(react@19.2.6)(vue@3.5.40(typescript@6.0.3))': + '@databuddy/nuxt@2.4.20(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(react@19.2.6)(vue@3.5.40(typescript@6.0.3))': dependencies: '@databuddy/sdk': 2.4.20(react@19.2.6)(vue@3.5.40(typescript@6.0.3)) '@nuxt/kit': 4.4.6(magicast@0.5.3) '@nuxt/schema': 4.4.6 - nuxt: 4.4.4(7d1ca556969269fd1f41ac0abb31bc74) + nuxt: 4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5) optionalDependencies: vue: 3.5.40(typescript@6.0.3) transitivePeerDependencies: @@ -18314,11 +18229,11 @@ snapshots: - vite - webpack - '@devframes/hub@0.5.4(devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': + '@devframes/hub@0.5.4(devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': dependencies: birpc: 4.0.0 - devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - nostics: 0.2.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + nostics: 0.2.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) pathe: 2.0.3 perfect-debounce: 2.1.0 tinyexec: 1.2.4 @@ -18335,18 +18250,6 @@ snapshots: '@drizzle-team/brocli@0.10.2': {} - '@dxup/nuxt@0.4.1(magicast@0.5.3)(typescript@5.9.3)': - dependencies: - '@dxup/unimport': 0.1.2 - '@nuxt/kit': 4.4.8(magicast@0.5.3) - chokidar: 5.0.0 - pathe: 2.0.3 - tinyglobby: 0.2.17 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - magicast - '@dxup/nuxt@0.4.1(magicast@0.5.3)(typescript@6.0.3)': dependencies: '@dxup/unimport': 0.1.2 @@ -18359,11 +18262,11 @@ snapshots: transitivePeerDependencies: - magicast - '@dxup/nuxt@0.5.3(esbuild@0.28.0)(magicast@0.5.3)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': + '@dxup/nuxt@0.5.3(esbuild@0.28.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': dependencies: '@dxup/unimport': 0.1.2 - '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@vue/compiler-dom': 3.5.39 + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@vue/compiler-dom': 3.5.40 chokidar: 5.0.0 knitwork: 1.3.0 magic-string: 0.30.21 @@ -18376,6 +18279,7 @@ snapshots: - bun-types-no-globals - esbuild - magicast + - oxc-parser - rolldown - rollup - unloader @@ -18383,11 +18287,11 @@ snapshots: - webpack optional: true - '@dxup/nuxt@0.5.3(esbuild@0.28.0)(magicast@0.5.3)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': + '@dxup/nuxt@0.5.3(esbuild@0.28.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': dependencies: '@dxup/unimport': 0.1.2 - '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@vue/compiler-dom': 3.5.39 + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@vue/compiler-dom': 3.5.40 chokidar: 5.0.0 knitwork: 1.3.0 magic-string: 0.30.21 @@ -18400,6 +18304,7 @@ snapshots: - bun-types-no-globals - esbuild - magicast + - oxc-parser - rolldown - rollup - unloader @@ -18985,19 +18890,10 @@ snapshots: '@fingerprintjs/botd@2.0.0': {} - '@floating-ui/core@1.7.5': - dependencies: - '@floating-ui/utils': 0.2.11 - '@floating-ui/core@1.8.0': dependencies: '@floating-ui/utils': 0.2.12 - '@floating-ui/dom@1.7.6': - dependencies: - '@floating-ui/core': 1.7.5 - '@floating-ui/utils': 0.2.11 - '@floating-ui/dom@1.8.0': dependencies: '@floating-ui/core': 1.8.0 @@ -19005,18 +18901,16 @@ snapshots: '@floating-ui/react-dom@2.1.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@floating-ui/dom': 1.7.6 + '@floating-ui/dom': 1.8.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) - '@floating-ui/utils@0.2.11': {} - '@floating-ui/utils@0.2.12': {} '@floating-ui/vue@1.1.11(vue@3.5.40(typescript@6.0.3))': dependencies: - '@floating-ui/dom': 1.7.6 - '@floating-ui/utils': 0.2.11 + '@floating-ui/dom': 1.8.0 + '@floating-ui/utils': 0.2.12 vue-demi: 0.14.10(vue@3.5.40(typescript@6.0.3)) transitivePeerDependencies: - '@vue/composition-api' @@ -19074,10 +18968,6 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@iconify-json/lucide@1.2.105': - dependencies: - '@iconify/types': 2.0.0 - '@iconify-json/lucide@1.2.117': dependencies: '@iconify/types': 2.0.0 @@ -19461,12 +19351,12 @@ snapshots: '@intlify/shared@11.4.0': {} - '@intlify/unplugin-vue-i18n@11.1.2(@vue/compiler-dom@3.5.39)(eslint@9.39.5(jiti@2.7.0))(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-i18n@11.4.0(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3))': + '@intlify/unplugin-vue-i18n@11.1.2(@vue/compiler-dom@3.5.40)(eslint@9.39.5(jiti@2.7.0))(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-i18n@11.4.0(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3))': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.5(jiti@2.7.0)) '@intlify/bundle-utils': 11.1.2(vue-i18n@11.4.0(vue@3.5.40(typescript@6.0.3))) '@intlify/shared': 11.4.0 - '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.4.0)(@vue/compiler-dom@3.5.39)(vue-i18n@11.4.0(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3)) + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.4.0)(@vue/compiler-dom@3.5.40)(vue-i18n@11.4.0(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3)) '@rollup/pluginutils': 5.3.0(rollup@4.60.2) '@typescript-eslint/scope-manager': 8.59.1 '@typescript-eslint/typescript-estree': 8.59.1(typescript@6.0.3) @@ -19490,12 +19380,12 @@ snapshots: '@intlify/utils@0.14.1': {} - '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.4.0)(@vue/compiler-dom@3.5.39)(vue-i18n@11.4.0(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3))': + '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.4.0)(@vue/compiler-dom@3.5.40)(vue-i18n@11.4.0(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3))': dependencies: '@babel/parser': 7.29.7 optionalDependencies: '@intlify/shared': 11.4.0 - '@vue/compiler-dom': 3.5.39 + '@vue/compiler-dom': 3.5.40 vue: 3.5.40(typescript@6.0.3) vue-i18n: 11.4.0(vue@3.5.40(typescript@6.0.3)) @@ -20014,10 +19904,10 @@ snapshots: - magicast - supports-color - '@nuxt/content@3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': + '@nuxt/content@3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': dependencies: - '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) - '@nuxtjs/mdc': 0.22.1(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxtjs/mdc': 0.22.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@shikijs/langs': 4.3.1 '@sqlite.org/sqlite-wasm': 3.50.4-build1 '@standard-schema/spec': 1.1.0 @@ -20044,7 +19934,7 @@ snapshots: micromatch: 4.0.8 minimark: 0.2.0 minimatch: 10.2.5 - nuxt-component-meta: 0.17.2(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + nuxt-component-meta: 0.17.2(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) nypm: 0.6.8 ohash: 2.0.11 pathe: 2.0.3 @@ -20089,10 +19979,10 @@ snapshots: - vite - webpack - '@nuxt/content@3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': + '@nuxt/content@3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': dependencies: - '@nuxt/kit': 4.5.0(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) - '@nuxtjs/mdc': 0.22.1(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxtjs/mdc': 0.22.1(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@shikijs/langs': 4.3.1 '@sqlite.org/sqlite-wasm': 3.50.4-build1 '@standard-schema/spec': 1.1.0 @@ -20119,7 +20009,7 @@ snapshots: micromatch: 4.0.8 minimark: 0.2.0 minimatch: 10.2.5 - nuxt-component-meta: 0.17.2(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + nuxt-component-meta: 0.17.2(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) nypm: 0.6.8 ohash: 2.0.11 pathe: 2.0.3 @@ -20164,10 +20054,10 @@ snapshots: - vite - webpack - '@nuxt/content@3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magicast@0.5.3)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': + '@nuxt/content@3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': dependencies: - '@nuxt/kit': 4.5.0(magicast@0.5.3)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) - '@nuxtjs/mdc': 0.22.1(magicast@0.5.3)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxtjs/mdc': 0.22.1(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@shikijs/langs': 4.3.1 '@sqlite.org/sqlite-wasm': 3.50.4-build1 '@standard-schema/spec': 1.1.0 @@ -20194,7 +20084,7 @@ snapshots: micromatch: 4.0.8 minimark: 0.2.0 minimatch: 10.2.5 - nuxt-component-meta: 0.17.2(magicast@0.5.3)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + nuxt-component-meta: 0.17.2(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) nypm: 0.6.8 ohash: 2.0.11 pathe: 2.0.3 @@ -20275,13 +20165,41 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/devtools-kit@4.0.0-alpha.3(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': + '@nuxt/devtools-kit@4.0.0-alpha.3(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': dependencies: - '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + tinyexec: 1.2.4 + vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + transitivePeerDependencies: + - magic-string + - magicast + - oxc-parser + - rolldown + - unplugin + + '@nuxt/devtools-kit@4.0.0-alpha.3(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': + dependencies: + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + tinyexec: 1.2.4 + vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + transitivePeerDependencies: + - magic-string + - magicast + - oxc-parser + - rolldown + - unplugin + + '@nuxt/devtools-kit@4.0.0-alpha.3(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': + dependencies: + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) tinyexec: 1.2.4 vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) transitivePeerDependencies: + - magic-string - magicast + - oxc-parser + - rolldown + - unplugin '@nuxt/devtools-wizard@3.2.4': dependencies: @@ -20336,12 +20254,12 @@ snapshots: - vue optional: true - '@nuxt/devtools@3.2.4(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3))': + '@nuxt/devtools@3.2.4(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3))': dependencies: '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) '@nuxt/devtools-wizard': 3.2.4 '@nuxt/kit': 4.4.4(magicast@0.5.2) - '@vue/devtools-core': 8.1.1(vue@3.5.33(typescript@5.9.3)) + '@vue/devtools-core': 8.1.1(vue@3.5.33(typescript@6.0.3)) '@vue/devtools-kit': 8.1.1 birpc: 4.0.0 consola: 3.4.2 @@ -20368,7 +20286,7 @@ snapshots: tinyglobby: 0.2.17 vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) vite-plugin-inspect: 11.3.3(@nuxt/kit@4.4.4(magicast@0.5.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - vite-plugin-vue-tracer: 1.3.0(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3)) + vite-plugin-vue-tracer: 1.3.0(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) which: 6.0.1 ws: 8.20.0 transitivePeerDependencies: @@ -20377,12 +20295,12 @@ snapshots: - utf-8-validate - vue - '@nuxt/devtools@3.2.4(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3))': + '@nuxt/devtools@3.2.4(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))': dependencies: '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) '@nuxt/devtools-wizard': 3.2.4 '@nuxt/kit': 4.4.4(magicast@0.5.2) - '@vue/devtools-core': 8.1.1(vue@3.5.33(typescript@6.0.3)) + '@vue/devtools-core': 8.1.1(vue@3.5.40(typescript@5.9.3)) '@vue/devtools-kit': 8.1.1 birpc: 4.0.0 consola: 3.4.2 @@ -20408,8 +20326,8 @@ snapshots: structured-clone-es: 2.0.0 tinyglobby: 0.2.17 vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vite-plugin-inspect: 11.3.3(@nuxt/kit@4.4.4(magicast@0.5.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - vite-plugin-vue-tracer: 1.3.0(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) + vite-plugin-inspect: 11.3.3(@nuxt/kit@4.4.4(magicast@0.5.2))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + vite-plugin-vue-tracer: 1.3.0(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) which: 6.0.1 ws: 8.20.0 transitivePeerDependencies: @@ -20508,14 +20426,14 @@ snapshots: - uploadthing - vite - '@nuxt/icon@2.3.1(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))': + '@nuxt/icon@2.3.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))': dependencies: '@iconify/collections': 1.0.709 '@iconify/types': 2.0.0 '@iconify/utils': 3.1.4 '@iconify/vue': 5.0.1(vue@3.5.40(typescript@6.0.3)) '@nuxt/devtools-kit': 3.2.4(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) consola: 3.4.2 local-pkg: 1.2.1 mlly: 1.8.2 @@ -20525,13 +20443,42 @@ snapshots: tinyglobby: 0.2.17 ufo: 1.6.4 transitivePeerDependencies: + - magic-string - magicast + - oxc-parser + - rolldown + - unplugin - vite - vue - '@nuxt/image@2.0.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magicast@0.5.3)(srvx@0.11.22)': + '@nuxt/icon@2.3.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))': dependencies: - '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@iconify/collections': 1.0.709 + '@iconify/types': 2.0.0 + '@iconify/utils': 3.1.4 + '@iconify/vue': 5.0.1(vue@3.5.40(typescript@6.0.3)) + '@nuxt/devtools-kit': 3.2.4(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + consola: 3.4.2 + local-pkg: 1.2.1 + mlly: 1.8.2 + ohash: 2.0.11 + picomatch: 4.0.5 + std-env: 4.2.0 + tinyglobby: 0.2.17 + ufo: 1.6.4 + transitivePeerDependencies: + - magic-string + - magicast + - oxc-parser + - rolldown + - unplugin + - vite + - vue + + '@nuxt/image@2.0.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(srvx@0.11.22)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': + dependencies: + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) consola: 3.4.2 defu: 6.1.7 h3: 1.15.11 @@ -20562,8 +20509,12 @@ snapshots: - db0 - idb-keyval - ioredis + - magic-string - magicast + - oxc-parser + - rolldown - srvx + - unplugin - uploadthing '@nuxt/kit@3.21.4(magicast@0.5.3)': @@ -20717,7 +20668,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/kit@4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': + '@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': dependencies: c12: 3.3.4(magicast@0.5.3) consola: 3.4.2 @@ -20738,7 +20689,7 @@ snapshots: semver: 7.8.5 tinyglobby: 0.2.17 ufo: 1.6.4 - unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + unctx: 3.0.0(magic-string@0.30.21)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) untyped: 2.0.0 transitivePeerDependencies: - magic-string @@ -20746,9 +20697,8 @@ snapshots: - oxc-parser - rolldown - unplugin - optional: true - '@nuxt/kit@4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': + '@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': dependencies: c12: 3.3.4(magicast@0.5.3) consola: 3.4.2 @@ -20769,7 +20719,7 @@ snapshots: semver: 7.8.5 tinyglobby: 0.2.17 ufo: 1.6.4 - unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + unctx: 3.0.0(magic-string@0.30.21)(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) untyped: 2.0.0 transitivePeerDependencies: - magic-string @@ -20778,7 +20728,7 @@ snapshots: - rolldown - unplugin - '@nuxt/kit@4.5.0(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)': + '@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': dependencies: c12: 3.3.4(magicast@0.5.3) consola: 3.4.2 @@ -20799,7 +20749,7 @@ snapshots: semver: 7.8.5 tinyglobby: 0.2.17 ufo: 1.6.4 - unctx: 3.0.0(oxc-parser@0.128.0)(rolldown@1.2.0) + unctx: 3.0.0(magic-string@0.30.21)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) untyped: 2.0.0 transitivePeerDependencies: - magic-string @@ -20807,8 +20757,9 @@ snapshots: - oxc-parser - rolldown - unplugin + optional: true - '@nuxt/kit@4.5.0(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': + '@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': dependencies: c12: 3.3.4(magicast@0.5.3) consola: 3.4.2 @@ -20829,7 +20780,7 @@ snapshots: semver: 7.8.5 tinyglobby: 0.2.17 ufo: 1.6.4 - unctx: 3.0.0(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + unctx: 3.0.0(magic-string@0.30.21)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) untyped: 2.0.0 transitivePeerDependencies: - magic-string @@ -20838,7 +20789,7 @@ snapshots: - rolldown - unplugin - '@nuxt/kit@4.5.0(magicast@0.5.3)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': + '@nuxt/kit@4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': dependencies: c12: 3.3.4(magicast@0.5.3) consola: 3.4.2 @@ -20859,7 +20810,7 @@ snapshots: semver: 7.8.5 tinyglobby: 0.2.17 ufo: 1.6.4 - unctx: 3.0.0(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) untyped: 2.0.0 transitivePeerDependencies: - magic-string @@ -20869,6 +20820,36 @@ snapshots: - unplugin optional: true + '@nuxt/kit@4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': + dependencies: + c12: 3.3.4(magicast@0.5.3) + consola: 3.4.2 + defu: 6.1.7 + destr: 2.0.5 + errx: 0.1.0 + exsolve: 1.1.0 + ignore: 7.0.6 + jiti: 2.7.0 + klona: 2.0.6 + mlly: 1.8.2 + nostics: 1.2.0 + ohash: 2.0.11 + pathe: 2.0.3 + pkg-types: 2.3.1 + rc9: 3.0.1 + scule: 1.3.0 + semver: 7.8.5 + tinyglobby: 0.2.17 + ufo: 1.6.4 + unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + untyped: 2.0.0 + transitivePeerDependencies: + - magic-string + - magicast + - oxc-parser + - rolldown + - unplugin + '@nuxt/module-builder@1.0.2(@nuxt/cli@3.37.0(@nuxt/schema@4.5.0)(cac@6.7.14)(commander@14.0.3)(magicast@0.5.3))(@vue/compiler-core@3.5.40)(esbuild@0.28.0)(typescript@6.0.3)(vue-tsc@3.2.7(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))': dependencies: '@nuxt/cli': 3.37.0(@nuxt/schema@4.5.0)(cac@6.7.14)(commander@14.0.3)(magicast@0.5.3) @@ -20892,92 +20873,6 @@ snapshots: - vue - vue-tsc - '@nuxt/nitro-server@4.4.4(0b7d41c34615ca00c005d85c374e1c2e)': - dependencies: - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) - '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 4.4.4(magicast@0.5.3) - '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@5.9.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3)) - '@vue/shared': 3.5.39 - consola: 3.4.2 - defu: 6.1.7 - destr: 2.0.5 - devalue: 5.8.1 - errx: 0.1.0 - escape-string-regexp: 5.0.0 - exsolve: 1.1.0 - h3: 1.15.11 - impound: 1.1.5(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - klona: 2.0.6 - mocked-exports: 0.1.1 - nitropack: 2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.128.0)(rolldown@1.2.0)(srvx@0.11.22)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - nuxt: 4.4.4(d331503cc652b8b0dc91dfdee719201c) - nypm: 0.6.8 - ohash: 2.0.11 - pathe: 2.0.3 - rou3: 0.8.1 - std-env: 4.2.0 - ufo: 1.6.4 - unctx: 2.5.0 - unstorage: 1.17.5(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1) - vue: 3.5.33(typescript@5.9.3) - vue-bundle-renderer: 2.2.0 - vue-devtools-stub: 0.1.0 - optionalDependencies: - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@babel/core' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@farmfe/core' - - '@libsql/client' - - '@modelcontextprotocol/sdk' - - '@netlify/blobs' - - '@planetscale/database' - - '@rspack/core' - - '@unhead/cli' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bare-abort-controller - - bare-buffer - - better-sqlite3 - - bufferutil - - bun-types-no-globals - - crossws - - db0 - - drizzle-orm - - encoding - - esbuild - - idb-keyval - - ioredis - - lightningcss - - magicast - - mysql2 - - oxc-parser - - react-native-b4a - - rolldown - - rollup - - sqlite3 - - srvx - - supports-color - - typescript - - unloader - - uploadthing - - utf-8-validate - - vite - - webpack - - xml2js - '@nuxt/nitro-server@4.4.4(0c1ec4a00f672ce52179279500a0e18f)': dependencies: '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) @@ -21150,98 +21045,12 @@ snapshots: - webpack - xml2js - '@nuxt/nitro-server@4.4.4(3b7cba74bae154e6382e375c13212373)': + '@nuxt/nitro-server@4.4.4(eccf4b57a53062a178be2b5263dbe4e5)': dependencies: '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.4.4(magicast@0.5.3) - '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) - '@vue/shared': 3.5.39 - consola: 3.4.2 - defu: 6.1.7 - destr: 2.0.5 - devalue: 5.8.1 - errx: 0.1.0 - escape-string-regexp: 5.0.0 - exsolve: 1.1.0 - h3: 1.15.11 - impound: 1.1.5(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - klona: 2.0.6 - mocked-exports: 0.1.1 - nitropack: 2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.128.0)(rolldown@1.1.5)(srvx@0.11.15)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - nuxt: 4.4.4(3a628c60eb3c5faf2e1974943d1ba369) - nypm: 0.6.8 - ohash: 2.0.11 - pathe: 2.0.3 - rou3: 0.8.1 - std-env: 4.2.0 - ufo: 1.6.4 - unctx: 2.5.0 - unstorage: 1.17.5(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1) - vue: 3.5.33(typescript@6.0.3) - vue-bundle-renderer: 2.2.0 - vue-devtools-stub: 0.1.0 - optionalDependencies: - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@babel/core' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@farmfe/core' - - '@libsql/client' - - '@modelcontextprotocol/sdk' - - '@netlify/blobs' - - '@planetscale/database' - - '@rspack/core' - - '@unhead/cli' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - bare-abort-controller - - bare-buffer - - better-sqlite3 - - bufferutil - - bun-types-no-globals - - crossws - - db0 - - drizzle-orm - - encoding - - esbuild - - idb-keyval - - ioredis - - lightningcss - - magicast - - mysql2 - - oxc-parser - - react-native-b4a - - rolldown - - rollup - - sqlite3 - - srvx - - supports-color - - typescript - - unloader - - uploadthing - - utf-8-validate - - vite - - webpack - - xml2js - - '@nuxt/nitro-server@4.4.4(56077375bb4c1cd3722387df026bbff6)': - dependencies: - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) - '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 4.4.4(magicast@0.5.3) - '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) + '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) '@vue/shared': 3.5.39 consola: 3.4.2 defu: 6.1.7 @@ -21254,8 +21063,8 @@ snapshots: impound: 1.1.5(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.128.0)(rolldown@1.2.0)(srvx@0.11.22)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - nuxt: 4.4.4(7d1ca556969269fd1f41ac0abb31bc74) + nitropack: 2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.128.0)(rolldown@1.2.0)(srvx@0.11.15)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + nuxt: 4.4.4(798471e5840d715482aeb7b47cc070f1) nypm: 0.6.8 ohash: 2.0.11 pathe: 2.0.3 @@ -21327,7 +21136,7 @@ snapshots: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) - '@vue/shared': 3.5.39 + '@vue/shared': 3.5.40 consola: 3.4.2 defu: 6.1.7 destr: 2.0.5 @@ -21410,12 +21219,12 @@ snapshots: - webpack - xml2js - '@nuxt/nitro-server@4.5.0(9b15569c862cffbeaea5a83374e901a1)': + '@nuxt/nitro-server@4.5.0(54440eaafe1040d72649c71d25711e2f)': dependencies: '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) - '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@5.9.3)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) - '@vue/shared': 3.5.39 + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@5.9.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + '@vue/shared': 3.5.40 consola: 3.4.2 defu: 6.1.7 destr: 2.0.5 @@ -21424,19 +21233,107 @@ snapshots: escape-string-regexp: 5.0.0 exsolve: 1.1.0 h3: 1.15.11 - impound: 1.1.5(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + impound: 1.1.5(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.140.0)(rolldown@1.2.0)(srvx@0.11.22)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + nitropack: 2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.140.0)(rolldown@1.2.0)(srvx@0.11.22)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) nostics: 1.2.0 - nuxt: 4.5.0(89ef07b0b9a25f097ff130a690b7b14c) + nuxt: 4.5.0(d0b081e3ea844aa3953445e0cdf8d794) nypm: 0.6.8 ohash: 2.0.11 pathe: 2.0.3 rou3: 0.9.1 std-env: 4.2.0 ufo: 1.6.4 - unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + unstorage: 1.17.5(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1) + vue: 3.5.40(typescript@5.9.3) + vue-bundle-renderer: 2.3.1 + vue-devtools-stub: 0.1.0 + optionalDependencies: + '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.0) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@farmfe/core' + - '@libsql/client' + - '@modelcontextprotocol/sdk' + - '@netlify/blobs' + - '@planetscale/database' + - '@rspack/core' + - '@unhead/cli' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bare-abort-controller + - bare-buffer + - better-sqlite3 + - bufferutil + - bun-types-no-globals + - crossws + - db0 + - drizzle-orm + - encoding + - esbuild + - idb-keyval + - ioredis + - lightningcss + - magic-string + - magicast + - mysql2 + - oxc-parser + - react-native-b4a + - rolldown + - rollup + - sqlite3 + - srvx + - supports-color + - typescript + - unloader + - unplugin + - uploadthing + - utf-8-validate + - vite + - webpack + - xml2js + + '@nuxt/nitro-server@4.5.0(9b15569c862cffbeaea5a83374e901a1)': + dependencies: + '@nuxt/devalue': 2.0.2 + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@5.9.3)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + '@vue/shared': 3.5.40 + consola: 3.4.2 + defu: 6.1.7 + destr: 2.0.5 + devalue: 5.8.1 + errx: 0.1.0 + escape-string-regexp: 5.0.0 + exsolve: 1.1.0 + h3: 1.15.11 + impound: 1.1.5(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + klona: 2.0.6 + mocked-exports: 0.1.1 + nitropack: 2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.140.0)(rolldown@1.2.0)(srvx@0.11.22)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + nostics: 1.2.0 + nuxt: 4.5.0(89ef07b0b9a25f097ff130a690b7b14c) + nypm: 0.6.8 + ohash: 2.0.11 + pathe: 2.0.3 + rou3: 0.9.1 + std-env: 4.2.0 + ufo: 1.6.4 + unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) unstorage: 1.17.5(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1) vue: 3.5.40(typescript@5.9.3) vue-bundle-renderer: 2.3.1 @@ -21515,14 +21412,6 @@ snapshots: pkg-types: 2.3.1 std-env: 4.2.0 - '@nuxt/schema@4.4.8': - dependencies: - '@vue/shared': 3.5.39 - defu: 6.1.7 - pathe: 2.0.3 - pkg-types: 2.3.1 - std-env: 4.2.0 - '@nuxt/schema@4.5.0': dependencies: '@vue/shared': 3.5.40 @@ -21600,15 +21489,15 @@ snapshots: - typescript - vite - '@nuxt/ui@4.10.0(1aad4d54899ef5c334c82429a3d5e1c2)': + '@nuxt/ui@4.10.0(16ede3a4a3f5881e23838e9d4f8f988e)': dependencies: '@floating-ui/dom': 1.8.0 '@iconify/vue': 5.0.1(vue@3.5.40(typescript@6.0.3)) '@nuxt/fonts': 0.14.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - '@nuxt/icon': 2.3.1(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) - '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@nuxt/schema': 4.4.8 - '@nuxtjs/color-mode': 4.0.1(magicast@0.5.3) + '@nuxt/icon': 2.3.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/schema': 4.5.0 + '@nuxtjs/color-mode': 4.0.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@standard-schema/spec': 1.1.0 '@tailwindcss/postcss': 4.3.2 '@tailwindcss/vite': 4.3.2(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) @@ -21631,7 +21520,7 @@ snapshots: '@tiptap/starter-kit': 3.22.5 '@tiptap/suggestion': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) '@tiptap/vue-3': 3.22.5(@floating-ui/dom@1.8.0)(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)(vue@3.5.40(typescript@6.0.3)) - '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@3.25.76))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) '@vueuse/core': 14.3.0(vue@3.5.40(typescript@6.0.3)) '@vueuse/integrations': 14.3.0(axios@1.16.0)(fuse.js@7.5.0)(vue@3.5.40(typescript@6.0.3)) '@vueuse/shared': 14.3.0(vue@3.5.40(typescript@6.0.3)) @@ -21662,17 +21551,18 @@ snapshots: typescript: 6.0.3 ufo: 1.6.4 unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-auto-import: 21.0.0(@nuxt/kit@4.4.8(magicast@0.5.3))(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))) - unplugin-vue-components: 32.1.0(@nuxt/kit@4.4.8(magicast@0.5.3))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + unplugin-auto-import: 21.0.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))) + unplugin-vue-components: 32.1.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) vaul-vue: 0.4.1(reka-ui@2.10.1(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3)) vue-component-type-helpers: 3.3.7 optionalDependencies: '@internationalized/date': 3.12.1 '@internationalized/number': 3.6.6 - '@nuxt/content': 3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - ai: 7.0.29(zod@3.25.76) + '@nuxt/content': 3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + ai: 7.0.29(zod@4.4.3) valibot: 1.4.2(typescript@6.0.3) - zod: 3.25.76 + vue-router: 5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + zod: 4.4.3 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -21712,6 +21602,7 @@ snapshots: - lightningcss - magicast - nprogress + - oxc-parser - qrcode - react - react-dom @@ -21726,15 +21617,15 @@ snapshots: - vue - webpack - '@nuxt/ui@4.10.0(1b446c4a581dc5097e46f48d13fb9d61)': + '@nuxt/ui@4.10.0(91360aae90a0729fe907655509b87ef2)': dependencies: '@floating-ui/dom': 1.8.0 '@iconify/vue': 5.0.1(vue@3.5.40(typescript@6.0.3)) '@nuxt/fonts': 0.14.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - '@nuxt/icon': 2.3.1(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) - '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@nuxt/schema': 4.4.8 - '@nuxtjs/color-mode': 4.0.1(magicast@0.5.3) + '@nuxt/icon': 2.3.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/schema': 4.5.0 + '@nuxtjs/color-mode': 4.0.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@standard-schema/spec': 1.1.0 '@tailwindcss/postcss': 4.3.2 '@tailwindcss/vite': 4.3.2(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) @@ -21757,7 +21648,7 @@ snapshots: '@tiptap/starter-kit': 3.22.5 '@tiptap/suggestion': 3.22.5(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5) '@tiptap/vue-3': 3.22.5(@floating-ui/dom@1.8.0)(@tiptap/core@3.22.5(@tiptap/pm@3.22.5))(@tiptap/pm@3.22.5)(vue@3.5.40(typescript@6.0.3)) - '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@3.25.76))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) '@vueuse/core': 14.3.0(vue@3.5.40(typescript@6.0.3)) '@vueuse/integrations': 14.3.0(axios@1.16.0)(fuse.js@7.5.0)(vue@3.5.40(typescript@6.0.3)) '@vueuse/shared': 14.3.0(vue@3.5.40(typescript@6.0.3)) @@ -21776,7 +21667,7 @@ snapshots: knitwork: 1.3.0 magic-string: 0.30.21 mlly: 1.8.2 - motion-v: 2.3.0(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3)) + motion-v: 2.3.0(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3)))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vue@3.5.40(typescript@6.0.3)) ohash: 2.0.11 pathe: 2.0.3 reka-ui: 2.10.1(vue@3.5.40(typescript@6.0.3)) @@ -21788,18 +21679,17 @@ snapshots: typescript: 6.0.3 ufo: 1.6.4 unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-auto-import: 21.0.0(@nuxt/kit@4.4.8(magicast@0.5.3))(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))) - unplugin-vue-components: 32.1.0(@nuxt/kit@4.4.8(magicast@0.5.3))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + unplugin-auto-import: 21.0.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))) + unplugin-vue-components: 32.1.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) vaul-vue: 0.4.1(reka-ui@2.10.1(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3)) vue-component-type-helpers: 3.3.7 optionalDependencies: '@internationalized/date': 3.12.1 '@internationalized/number': 3.6.6 '@nuxt/content': 3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - ai: 7.0.29(zod@4.4.3) + ai: 7.0.29(zod@3.25.76) valibot: 1.4.2(typescript@6.0.3) - vue-router: 5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) - zod: 4.4.3 + zod: 3.25.76 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -21839,6 +21729,7 @@ snapshots: - lightningcss - magicast - nprogress + - oxc-parser - qrcode - react - react-dom @@ -21853,15 +21744,15 @@ snapshots: - vue - webpack - '@nuxt/ui@4.10.0(342679e81daec34fb4ebc5f1215784ba)': + '@nuxt/ui@4.10.0(9dd74825632101caae164786bfef9095)': dependencies: '@floating-ui/dom': 1.8.0 '@iconify/vue': 5.0.1(vue@3.5.40(typescript@6.0.3)) '@nuxt/fonts': 0.14.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - '@nuxt/icon': 2.3.1(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) - '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@nuxt/schema': 4.4.8 - '@nuxtjs/color-mode': 4.0.1(magicast@0.5.3) + '@nuxt/icon': 2.3.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/schema': 4.5.0 + '@nuxtjs/color-mode': 4.0.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@standard-schema/spec': 1.1.0 '@tailwindcss/postcss': 4.3.2 '@tailwindcss/vite': 4.3.2(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) @@ -21915,15 +21806,15 @@ snapshots: typescript: 6.0.3 ufo: 1.6.4 unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-auto-import: 21.0.0(@nuxt/kit@4.4.8(magicast@0.5.3))(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))) - unplugin-vue-components: 32.1.0(@nuxt/kit@4.4.8(magicast@0.5.3))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + unplugin-auto-import: 21.0.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))) + unplugin-vue-components: 32.1.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) vaul-vue: 0.4.1(reka-ui@2.10.1(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3)) vue-component-type-helpers: 3.3.7 optionalDependencies: '@internationalized/date': 3.12.1 '@internationalized/number': 3.6.6 - '@nuxt/content': 3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - ai: 6.0.209(zod@4.4.3) + '@nuxt/content': 3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + ai: 6.0.228(zod@4.4.3) valibot: 1.4.2(typescript@6.0.3) zod: 4.4.3 transitivePeerDependencies: @@ -21965,6 +21856,7 @@ snapshots: - lightningcss - magicast - nprogress + - oxc-parser - qrcode - react - react-dom @@ -21979,15 +21871,15 @@ snapshots: - vue - webpack - '@nuxt/ui@4.10.0(9544d347d5c55f21e8018f343dea7214)': + '@nuxt/ui@4.10.0(de89ca55adde23fab0252e9bd2d5a9c0)': dependencies: '@floating-ui/dom': 1.8.0 '@iconify/vue': 5.0.1(vue@3.5.40(typescript@6.0.3)) '@nuxt/fonts': 0.14.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - '@nuxt/icon': 2.3.1(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) - '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@nuxt/schema': 4.4.8 - '@nuxtjs/color-mode': 4.0.1(magicast@0.5.3) + '@nuxt/icon': 2.3.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/schema': 4.5.0 + '@nuxtjs/color-mode': 4.0.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@standard-schema/spec': 1.1.0 '@tailwindcss/postcss': 4.3.2 '@tailwindcss/vite': 4.3.2(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) @@ -22041,14 +21933,14 @@ snapshots: typescript: 6.0.3 ufo: 1.6.4 unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-auto-import: 21.0.0(@nuxt/kit@4.4.8(magicast@0.5.3))(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))) - unplugin-vue-components: 32.1.0(@nuxt/kit@4.4.8(magicast@0.5.3))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + unplugin-auto-import: 21.0.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))) + unplugin-vue-components: 32.1.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) vaul-vue: 0.4.1(reka-ui@2.10.1(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3)) vue-component-type-helpers: 3.3.7 optionalDependencies: '@internationalized/date': 3.12.1 '@internationalized/number': 3.6.6 - '@nuxt/content': 3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magicast@0.5.3)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@nuxt/content': 3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) ai: 7.0.29(zod@4.4.3) valibot: 1.4.2(typescript@6.0.3) vue-router: 5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) @@ -22092,6 +21984,7 @@ snapshots: - lightningcss - magicast - nprogress + - oxc-parser - qrcode - react - react-dom @@ -22168,7 +22061,7 @@ snapshots: - vue-tsc - yaml - '@nuxt/vite-builder@4.4.4(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(eslint@9.39.5(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.3)(nuxt@4.4.4(3a628c60eb3c5faf2e1974943d1ba369))(optionator@0.9.4)(rolldown@1.1.5)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.5)(rollup@4.60.2))(rollup@4.60.2)(terser@5.46.2)(tsx@4.23.1)(typescript@6.0.3)(vue-tsc@3.3.7(typescript@6.0.3))(vue@3.5.33(typescript@6.0.3))(yaml@2.9.0)': + '@nuxt/vite-builder@4.4.4(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(eslint@9.39.5(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.3)(nuxt@4.4.4(798471e5840d715482aeb7b47cc070f1))(optionator@0.9.4)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(rollup@4.60.2)(terser@5.46.2)(tsx@4.23.1)(typescript@6.0.3)(vue-tsc@3.3.7(typescript@6.0.3))(vue@3.5.33(typescript@6.0.3))(yaml@2.9.0)': dependencies: '@nuxt/kit': 4.4.4(magicast@0.5.3) '@rollup/plugin-replace': 6.0.3(rollup@4.60.2) @@ -22186,69 +22079,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.4.4(3a628c60eb3c5faf2e1974943d1ba369) - nypm: 0.6.8 - pathe: 2.0.3 - pkg-types: 2.3.1 - postcss: 8.5.19 - seroval: 1.5.2 - std-env: 4.2.0 - ufo: 1.6.4 - unenv: 2.0.0-rc.24 - vite: 7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vite-node: 5.3.0(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vite-plugin-checker: 0.13.0(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@6.0.3)(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.3.7(typescript@6.0.3)) - vue: 3.5.33(typescript@6.0.3) - vue-bundle-renderer: 2.2.0 - optionalDependencies: - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) - rolldown: 1.1.5 - rollup-plugin-visualizer: 7.0.1(rolldown@1.1.5)(rollup@4.60.2) - transitivePeerDependencies: - - '@biomejs/biome' - - '@types/node' - - eslint - - less - - lightningcss - - magicast - - meow - - optionator - - oxlint - - rollup - - sass - - sass-embedded - - stylelint - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - vls - - vti - - vue-tsc - - yaml - - '@nuxt/vite-builder@4.4.4(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(eslint@9.39.5(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(optionator@0.9.4)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(rollup@4.60.2)(terser@5.46.2)(tsx@4.23.1)(typescript@6.0.3)(vue-tsc@3.3.7(typescript@6.0.3))(vue@3.5.33(typescript@6.0.3))(yaml@2.9.0)': - dependencies: - '@nuxt/kit': 4.4.4(magicast@0.5.3) - '@rollup/plugin-replace': 6.0.3(rollup@4.60.2) - '@vitejs/plugin-vue': 6.0.8(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) - '@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) - autoprefixer: 10.5.0(postcss@8.5.19) - consola: 3.4.2 - cssnano: 7.1.8(postcss@8.5.19) - defu: 6.1.7 - escape-string-regexp: 5.0.0 - exsolve: 1.1.0 - get-port-please: 3.2.0 - jiti: 2.7.0 - knitwork: 1.3.0 - magic-string: 0.30.21 - mlly: 1.8.2 - mocked-exports: 0.1.1 - nuxt: 4.4.4(7d1ca556969269fd1f41ac0abb31bc74) + nuxt: 4.4.4(798471e5840d715482aeb7b47cc070f1) nypm: 0.6.8 pathe: 2.0.3 pkg-types: 2.3.1 @@ -22354,38 +22185,38 @@ snapshots: - vue-tsc - yaml - '@nuxt/vite-builder@4.4.4(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(eslint@9.39.5(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.3)(nuxt@4.4.4(d331503cc652b8b0dc91dfdee719201c))(optionator@0.9.4)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(rollup@4.60.2)(terser@5.46.2)(tsx@4.23.1)(typescript@5.9.3)(vue-tsc@3.2.7(typescript@5.9.3))(vue@3.5.33(typescript@5.9.3))(yaml@2.9.0)': + '@nuxt/vite-builder@4.5.0(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@22.19.17)(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.5.0(89ef07b0b9a25f097ff130a690b7b14c))(optionator@0.9.4)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(terser@5.46.2)(tsx@4.23.1)(typescript@5.9.3)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue-tsc@3.3.7(typescript@5.9.3))(vue@3.5.40(typescript@5.9.3))(yaml@2.9.0)': dependencies: - '@nuxt/kit': 4.4.4(magicast@0.5.3) - '@rollup/plugin-replace': 6.0.3(rollup@4.60.2) - '@vitejs/plugin-vue': 6.0.8(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3)) - '@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3)) - autoprefixer: 10.5.0(postcss@8.5.19) + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@vitejs/plugin-vue': 6.0.8(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + '@vitejs/plugin-vue-jsx': 5.1.6(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + autoprefixer: 10.5.4(postcss@8.5.19) consola: 3.4.2 - cssnano: 7.1.8(postcss@8.5.19) + cssnano: 8.0.2(postcss@8.5.19) defu: 6.1.7 escape-string-regexp: 5.0.0 exsolve: 1.1.0 get-port-please: 3.2.0 jiti: 2.7.0 + js-tokens: 10.0.0 knitwork: 1.3.0 - magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.4.4(d331503cc652b8b0dc91dfdee719201c) + nuxt: 4.5.0(89ef07b0b9a25f097ff130a690b7b14c) nypm: 0.6.8 pathe: 2.0.3 pkg-types: 2.3.1 postcss: 8.5.19 - seroval: 1.5.2 + rolldown-string: 0.3.1(rolldown@1.2.0) + seroval: 1.5.5 std-env: 4.2.0 ufo: 1.6.4 unenv: 2.0.0-rc.24 - vite: 7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vite-node: 5.3.0(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vite-plugin-checker: 0.13.0(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.2.7(typescript@5.9.3)) - vue: 3.5.33(typescript@5.9.3) - vue-bundle-renderer: 2.2.0 + vite: 8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + vite-node: 6.0.0(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + vite-plugin-checker: 0.14.4(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@5.9.3)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.3.7(typescript@5.9.3)) + vue: 3.5.40(typescript@5.9.3) + vue-bundle-renderer: 2.3.1 optionalDependencies: '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) @@ -22394,14 +22225,16 @@ snapshots: transitivePeerDependencies: - '@biomejs/biome' - '@types/node' + - '@vitejs/devtools' + - esbuild - eslint - less - - lightningcss + - magic-string - magicast - meow - optionator + - oxc-parser - oxlint - - rollup - sass - sass-embedded - stylelint @@ -22411,16 +22244,16 @@ snapshots: - terser - tsx - typescript - - vls - - vti + - unplugin - vue-tsc - yaml + optional: true - '@nuxt/vite-builder@4.5.0(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@22.19.17)(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.5.0(89ef07b0b9a25f097ff130a690b7b14c))(optionator@0.9.4)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(terser@5.46.2)(tsx@4.23.1)(typescript@5.9.3)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue-tsc@3.3.7(typescript@5.9.3))(vue@3.5.40(typescript@5.9.3))(yaml@2.9.0)': + '@nuxt/vite-builder@4.5.0(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.5.0(4ad5267ef2a8e696f3cd111576c35145))(optionator@0.9.4)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(terser@5.46.2)(tsx@4.23.1)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue-tsc@3.2.7(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0)': dependencies: - '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) - '@vitejs/plugin-vue': 6.0.8(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) - '@vitejs/plugin-vue-jsx': 5.1.6(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@vitejs/plugin-vue': 6.0.8(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@vitejs/plugin-vue-jsx': 5.1.6(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) autoprefixer: 10.5.4(postcss@8.5.19) consola: 3.4.2 cssnano: 8.0.2(postcss@8.5.19) @@ -22433,7 +22266,7 @@ snapshots: knitwork: 1.3.0 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.5.0(89ef07b0b9a25f097ff130a690b7b14c) + nuxt: 4.5.0(4ad5267ef2a8e696f3cd111576c35145) nypm: 0.6.8 pathe: 2.0.3 pkg-types: 2.3.1 @@ -22443,10 +22276,10 @@ snapshots: std-env: 4.2.0 ufo: 1.6.4 unenv: 2.0.0-rc.24 - vite: 8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vite-node: 6.0.0(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vite-plugin-checker: 0.14.4(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@5.9.3)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.3.7(typescript@5.9.3)) - vue: 3.5.40(typescript@5.9.3) + vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + vite-node: 6.0.0(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + vite-plugin-checker: 0.14.4(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.2.7(typescript@6.0.3)) + vue: 3.5.40(typescript@6.0.3) vue-bundle-renderer: 2.3.1 optionalDependencies: '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) @@ -22478,13 +22311,12 @@ snapshots: - unplugin - vue-tsc - yaml - optional: true - '@nuxt/vite-builder@4.5.0(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.5.0(4ad5267ef2a8e696f3cd111576c35145))(optionator@0.9.4)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(terser@5.46.2)(tsx@4.23.1)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue-tsc@3.2.7(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0)': + '@nuxt/vite-builder@4.5.0(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.5.0(d0b081e3ea844aa3953445e0cdf8d794))(optionator@0.9.4)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(terser@5.46.2)(tsx@4.23.1)(typescript@5.9.3)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue-tsc@3.2.7(typescript@5.9.3))(vue@3.5.40(typescript@5.9.3))(yaml@2.9.0)': dependencies: '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) - '@vitejs/plugin-vue': 6.0.8(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) - '@vitejs/plugin-vue-jsx': 5.1.6(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@vitejs/plugin-vue': 6.0.8(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + '@vitejs/plugin-vue-jsx': 5.1.6(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) autoprefixer: 10.5.4(postcss@8.5.19) consola: 3.4.2 cssnano: 8.0.2(postcss@8.5.19) @@ -22497,7 +22329,7 @@ snapshots: knitwork: 1.3.0 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.5.0(4ad5267ef2a8e696f3cd111576c35145) + nuxt: 4.5.0(d0b081e3ea844aa3953445e0cdf8d794) nypm: 0.6.8 pathe: 2.0.3 pkg-types: 2.3.1 @@ -22509,8 +22341,8 @@ snapshots: unenv: 2.0.0-rc.24 vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) vite-node: 6.0.0(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vite-plugin-checker: 0.14.4(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.2.7(typescript@6.0.3)) - vue: 3.5.40(typescript@6.0.3) + vite-plugin-checker: 0.14.4(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@5.9.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.2.7(typescript@5.9.3)) + vue: 3.5.40(typescript@5.9.3) vue-bundle-renderer: 2.3.1 optionalDependencies: '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) @@ -22665,27 +22497,45 @@ snapshots: - uploadthing - vue-tsc - '@nuxtjs/color-mode@4.0.1(magicast@0.5.3)': + '@nuxtjs/color-mode@4.0.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': dependencies: - '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) exsolve: 1.1.0 pathe: 2.0.3 pkg-types: 2.3.1 semver: 7.8.5 transitivePeerDependencies: + - magic-string - magicast + - oxc-parser + - rolldown + - unplugin - '@nuxtjs/i18n@10.4.1(@vue/compiler-dom@3.5.39)(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(ioredis@5.10.1)(magicast@0.5.3)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))': + '@nuxtjs/color-mode@4.0.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': + dependencies: + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + exsolve: 1.1.0 + pathe: 2.0.3 + pkg-types: 2.3.1 + semver: 7.8.5 + transitivePeerDependencies: + - magic-string + - magicast + - oxc-parser + - rolldown + - unplugin + + '@nuxtjs/i18n@10.4.1(@vue/compiler-dom@3.5.40)(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(ioredis@5.10.1)(magicast@0.5.3)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))': dependencies: '@intlify/core': 11.4.0 '@intlify/h3': 0.7.4 '@intlify/shared': 11.4.0 - '@intlify/unplugin-vue-i18n': 11.1.2(@vue/compiler-dom@3.5.39)(eslint@9.39.5(jiti@2.7.0))(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-i18n@11.4.0(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3)) + '@intlify/unplugin-vue-i18n': 11.1.2(@vue/compiler-dom@3.5.40)(eslint@9.39.5(jiti@2.7.0))(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-i18n@11.4.0(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3)) '@intlify/utils': 0.14.1 '@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.60.2) - '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@rollup/plugin-yaml': 4.1.2(rollup@4.60.2) - '@vue/compiler-sfc': 3.5.33 + '@vue/compiler-sfc': 3.5.40 defu: 6.1.7 devalue: 5.8.1 h3: 1.15.11 @@ -22702,7 +22552,7 @@ snapshots: unrouting: 0.1.7 unstorage: 1.17.5(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1) vue-i18n: 11.4.0(vue@3.5.40(typescript@6.0.3)) - vue-router: 5.1.0(@vue/compiler-sfc@3.5.33)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + vue-router: 5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -22742,7 +22592,7 @@ snapshots: - vue - webpack - '@nuxtjs/mcp-toolkit@0.18.0(@vue/compiler-sfc@3.5.33)(h3@1.15.11)(magicast@0.5.3)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)': + '@nuxtjs/mcp-toolkit@0.18.0(@vue/compiler-sfc@3.5.40)(h3@1.15.11)(magicast@0.5.3)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)': dependencies: '@modelcontextprotocol/sdk': 1.29.0(zod@4.4.3) '@nuxt/kit': 4.4.8(magicast@0.5.3) @@ -22752,26 +22602,7 @@ snapshots: vite-plugin-singlefile: 2.3.3(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) zod: 4.4.3 optionalDependencies: - '@vue/compiler-sfc': 3.5.33 - vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vue: 3.5.40(typescript@6.0.3) - transitivePeerDependencies: - - '@cfworker/json-schema' - - magicast - - rollup - - supports-color - - '@nuxtjs/mcp-toolkit@0.18.0(@vue/compiler-sfc@3.5.39)(h3@1.15.11)(magicast@0.5.3)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)': - dependencies: - '@modelcontextprotocol/sdk': 1.29.0(zod@4.4.3) - '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@vitejs/plugin-vue': 6.0.8(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) - h3: 1.15.11 - tinyglobby: 0.2.17 - vite-plugin-singlefile: 2.3.3(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - zod: 4.4.3 - optionalDependencies: - '@vue/compiler-sfc': 3.5.39 + '@vue/compiler-sfc': 3.5.40 vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) vue: 3.5.40(typescript@6.0.3) transitivePeerDependencies: @@ -22780,61 +22611,11 @@ snapshots: - rollup - supports-color - '@nuxtjs/mdc@0.21.1(magicast@0.5.3)': + '@nuxtjs/mdc@0.21.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': dependencies: - '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@shikijs/core': 4.1.0 '@shikijs/engine-javascript': 4.1.0 - '@shikijs/langs': 4.1.0 - '@shikijs/themes': 4.1.0 - '@shikijs/transformers': 4.0.2 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@vue/compiler-core': 3.5.33 - consola: 3.4.2 - debug: 4.4.3 - defu: 6.1.7 - destr: 2.0.5 - detab: 3.0.2 - github-slugger: 2.0.0 - hast-util-format: 1.1.0 - hast-util-to-mdast: 10.1.2 - hast-util-to-string: 3.0.1 - mdast-util-to-hast: 13.2.1 - micromark-util-sanitize-uri: 2.0.1 - parse5: 8.0.1 - pathe: 2.0.3 - property-information: 7.1.0 - rehype-external-links: 3.0.0 - rehype-minify-whitespace: 6.0.2 - rehype-raw: 7.0.0 - rehype-remark: 10.0.1 - rehype-slug: 6.0.0 - rehype-sort-attribute-values: 5.0.1 - rehype-sort-attributes: 5.0.1 - remark-emoji: 5.0.2 - remark-gfm: 4.0.1 - remark-mdc: 3.10.0 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - remark-stringify: 11.0.0 - scule: 1.3.0 - shiki: 4.1.0 - ufo: 1.6.4 - unified: 11.0.5 - unist-builder: 4.0.0 - unist-util-visit: 5.1.0 - unwasm: 0.5.3 - vfile: 6.0.3 - transitivePeerDependencies: - - magicast - - supports-color - - '@nuxtjs/mdc@0.22.1(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': - dependencies: - '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) - '@shikijs/core': 4.3.1 - '@shikijs/engine-javascript': 4.3.1 '@shikijs/langs': 4.3.1 '@shikijs/themes': 4.3.1 '@shikijs/transformers': 4.3.1 @@ -22884,9 +22665,9 @@ snapshots: - supports-color - unplugin - '@nuxtjs/mdc@0.22.1(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)': + '@nuxtjs/mdc@0.22.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': dependencies: - '@nuxt/kit': 4.5.0(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@shikijs/core': 4.3.1 '@shikijs/engine-javascript': 4.3.1 '@shikijs/langs': 4.3.1 @@ -22938,9 +22719,9 @@ snapshots: - supports-color - unplugin - '@nuxtjs/mdc@0.22.1(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': + '@nuxtjs/mdc@0.22.1(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': dependencies: - '@nuxt/kit': 4.5.0(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@shikijs/core': 4.3.1 '@shikijs/engine-javascript': 4.3.1 '@shikijs/langs': 4.3.1 @@ -22992,9 +22773,9 @@ snapshots: - supports-color - unplugin - '@nuxtjs/mdc@0.22.1(magicast@0.5.3)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': + '@nuxtjs/mdc@0.22.1(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))': dependencies: - '@nuxt/kit': 4.5.0(magicast@0.5.3)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@shikijs/core': 4.3.1 '@shikijs/engine-javascript': 4.3.1 '@shikijs/langs': 4.3.1 @@ -23055,15 +22836,15 @@ snapshots: transitivePeerDependencies: - encoding - '@nuxtjs/robots@6.1.2(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)': + '@nuxtjs/robots@6.1.2(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3)': dependencies: '@fingerprintjs/botd': 2.0.0 - '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) consola: 3.4.2 defu: 6.1.7 h3: 1.15.11 - nuxt-site-config: 4.1.1(@nuxt/schema@4.5.0)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) - nuxtseo-shared: 5.3.2(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + nuxt-site-config: 4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + nuxtseo-shared: 5.3.2(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) pathe: 2.0.3 pkg-types: 2.3.1 ufo: 1.6.4 @@ -23071,19 +22852,23 @@ snapshots: zod: 4.4.3 transitivePeerDependencies: - '@nuxt/schema' + - magic-string - magicast - nuxt + - oxc-parser + - rolldown + - unplugin - vite - vue - '@nuxtjs/sitemap@8.2.2(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76)': + '@nuxtjs/sitemap@8.2.2(@nuxt/schema@4.5.0)(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76)': dependencies: '@nuxt/kit': 4.4.8(magicast@0.5.3) consola: 3.4.2 defu: 6.1.7 fast-xml-parser: 5.10.0 - nuxt-site-config: 4.1.1(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76) - nuxtseo-shared: 5.3.2(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76))(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76) + nuxt-site-config: 4.1.1(@nuxt/schema@4.5.0)(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76) + nuxtseo-shared: 5.3.2(@nuxt/schema@4.5.0)(magic-string@1.0.0)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76))(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76) ofetch: 1.5.1 pathe: 2.0.3 pkg-types: 2.3.1 @@ -23094,8 +22879,12 @@ snapshots: zod: 3.25.76 transitivePeerDependencies: - '@nuxt/schema' + - magic-string - magicast - nuxt + - oxc-parser + - rolldown + - unplugin - vite - vue @@ -23116,8 +22905,6 @@ snapshots: '@oozcitak/util@10.0.0': {} - '@opentelemetry/api@1.9.0': {} - '@opentelemetry/api@1.9.1': {} '@opentelemetry/semantic-conventions@1.40.0': {} @@ -23454,6 +23241,9 @@ snapshots: '@oxc-parser/binding-android-arm64@0.140.0': optional: true + '@oxc-parser/binding-android-arm64@0.82.3': + optional: true + '@oxc-parser/binding-darwin-arm64@0.128.0': optional: true @@ -23466,6 +23256,9 @@ snapshots: '@oxc-parser/binding-darwin-arm64@0.140.0': optional: true + '@oxc-parser/binding-darwin-arm64@0.82.3': + optional: true + '@oxc-parser/binding-darwin-x64@0.128.0': optional: true @@ -23478,6 +23271,9 @@ snapshots: '@oxc-parser/binding-darwin-x64@0.140.0': optional: true + '@oxc-parser/binding-darwin-x64@0.82.3': + optional: true + '@oxc-parser/binding-freebsd-x64@0.128.0': optional: true @@ -23490,6 +23286,9 @@ snapshots: '@oxc-parser/binding-freebsd-x64@0.140.0': optional: true + '@oxc-parser/binding-freebsd-x64@0.82.3': + optional: true + '@oxc-parser/binding-linux-arm-gnueabihf@0.128.0': optional: true @@ -23502,6 +23301,9 @@ snapshots: '@oxc-parser/binding-linux-arm-gnueabihf@0.140.0': optional: true + '@oxc-parser/binding-linux-arm-gnueabihf@0.82.3': + optional: true + '@oxc-parser/binding-linux-arm-musleabihf@0.128.0': optional: true @@ -23514,6 +23316,9 @@ snapshots: '@oxc-parser/binding-linux-arm-musleabihf@0.140.0': optional: true + '@oxc-parser/binding-linux-arm-musleabihf@0.82.3': + optional: true + '@oxc-parser/binding-linux-arm64-gnu@0.128.0': optional: true @@ -23526,6 +23331,9 @@ snapshots: '@oxc-parser/binding-linux-arm64-gnu@0.140.0': optional: true + '@oxc-parser/binding-linux-arm64-gnu@0.82.3': + optional: true + '@oxc-parser/binding-linux-arm64-musl@0.128.0': optional: true @@ -23538,6 +23346,9 @@ snapshots: '@oxc-parser/binding-linux-arm64-musl@0.140.0': optional: true + '@oxc-parser/binding-linux-arm64-musl@0.82.3': + optional: true + '@oxc-parser/binding-linux-ppc64-gnu@0.128.0': optional: true @@ -23562,6 +23373,9 @@ snapshots: '@oxc-parser/binding-linux-riscv64-gnu@0.140.0': optional: true + '@oxc-parser/binding-linux-riscv64-gnu@0.82.3': + optional: true + '@oxc-parser/binding-linux-riscv64-musl@0.128.0': optional: true @@ -23586,6 +23400,9 @@ snapshots: '@oxc-parser/binding-linux-s390x-gnu@0.140.0': optional: true + '@oxc-parser/binding-linux-s390x-gnu@0.82.3': + optional: true + '@oxc-parser/binding-linux-x64-gnu@0.128.0': optional: true @@ -23598,6 +23415,9 @@ snapshots: '@oxc-parser/binding-linux-x64-gnu@0.140.0': optional: true + '@oxc-parser/binding-linux-x64-gnu@0.82.3': + optional: true + '@oxc-parser/binding-linux-x64-musl@0.128.0': optional: true @@ -23610,6 +23430,9 @@ snapshots: '@oxc-parser/binding-linux-x64-musl@0.140.0': optional: true + '@oxc-parser/binding-linux-x64-musl@0.82.3': + optional: true + '@oxc-parser/binding-openharmony-arm64@0.128.0': optional: true @@ -23650,6 +23473,14 @@ snapshots: '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) optional: true + '@oxc-parser/binding-wasm32-wasi@0.82.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': + dependencies: + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + optional: true + '@oxc-parser/binding-win32-arm64-msvc@0.128.0': optional: true @@ -23662,6 +23493,9 @@ snapshots: '@oxc-parser/binding-win32-arm64-msvc@0.140.0': optional: true + '@oxc-parser/binding-win32-arm64-msvc@0.82.3': + optional: true + '@oxc-parser/binding-win32-ia32-msvc@0.128.0': optional: true @@ -23686,6 +23520,9 @@ snapshots: '@oxc-parser/binding-win32-x64-msvc@0.140.0': optional: true + '@oxc-parser/binding-win32-x64-msvc@0.82.3': + optional: true + '@oxc-project/types@0.103.0': {} '@oxc-project/types@0.127.0': {} @@ -23700,6 +23537,8 @@ snapshots: '@oxc-project/types@0.140.0': {} + '@oxc-project/types@0.82.3': {} + '@oxc-transform/binding-android-arm-eabi@0.128.0': optional: true @@ -25181,7 +25020,7 @@ snapshots: '@rollup/plugin-yaml@4.1.2(rollup@4.60.2)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.60.2) - js-yaml: 4.1.1 + js-yaml: 4.3.0 tosource: 2.0.0-alpha.3 optionalDependencies: rollup: 4.60.2 @@ -25289,14 +25128,6 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/core@4.0.2': - dependencies: - '@shikijs/primitive': 4.0.2 - '@shikijs/types': 4.0.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 - '@shikijs/core@4.1.0': dependencies: '@shikijs/primitive': 4.1.0 @@ -25373,12 +25204,6 @@ snapshots: dependencies: '@shikijs/types': 4.3.1 - '@shikijs/primitive@4.0.2': - dependencies: - '@shikijs/types': 4.0.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - '@shikijs/primitive@4.1.0': dependencies: '@shikijs/types': 4.1.0 @@ -25416,11 +25241,6 @@ snapshots: dependencies: '@shikijs/types': 4.3.1 - '@shikijs/transformers@4.0.2': - dependencies: - '@shikijs/core': 4.0.2 - '@shikijs/types': 4.0.2 - '@shikijs/transformers@4.3.1': dependencies: '@shikijs/core': 4.3.1 @@ -25436,11 +25256,6 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - '@shikijs/types@4.0.2': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 - '@shikijs/types@4.1.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 @@ -26793,8 +26608,6 @@ snapshots: '@tanstack/table-core@8.21.3': {} - '@tanstack/virtual-core@3.14.0': {} - '@tanstack/virtual-core@3.17.4': {} '@tanstack/virtual-file-routes@1.161.7': {} @@ -26804,11 +26617,6 @@ snapshots: '@tanstack/table-core': 8.21.3 vue: 3.5.40(typescript@6.0.3) - '@tanstack/vue-virtual@3.13.24(vue@3.5.40(typescript@6.0.3))': - dependencies: - '@tanstack/virtual-core': 3.14.0 - vue: 3.5.40(typescript@6.0.3) - '@tanstack/vue-virtual@3.13.32(vue@3.5.40(typescript@6.0.3))': dependencies: '@tanstack/virtual-core': 3.17.4 @@ -27671,19 +27479,19 @@ snapshots: - unloader - utf-8-validate - '@unhead/bundler@3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(unhead@3.2.1(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': + '@unhead/bundler@3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(unhead@3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': dependencies: - '@vitejs/devtools-kit': 0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@vitejs/devtools-kit': 0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) magic-string: 1.0.0 oxc-parser: 0.140.0 - oxc-walker: 1.0.0(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + oxc-walker: 1.0.0(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) ufo: 1.6.4 - unhead: 3.2.1(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unhead: 3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) optionalDependencies: esbuild: 0.28.0 lightningcss: 1.32.0 - rolldown: 1.1.5 + rolldown: 1.2.0 vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' @@ -27773,13 +27581,13 @@ snapshots: - utf-8-validate optional: true - '@unhead/vue@3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@5.9.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3))': + '@unhead/vue@3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@5.9.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))': dependencies: '@unhead/bundler': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@5.9.3)(unhead@3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) hookable: 6.1.1 unhead: 3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - vue: 3.5.33(typescript@5.9.3) + vue: 3.5.40(typescript@5.9.3) optionalDependencies: vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) transitivePeerDependencies: @@ -27848,12 +27656,12 @@ snapshots: - unloader - utf-8-validate - '@unhead/vue@3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3))': + '@unhead/vue@3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3))': dependencies: - '@unhead/bundler': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(unhead@3.2.1(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@unhead/bundler': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(unhead@3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) hookable: 6.1.1 - unhead: 3.2.1(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unhead: 3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) vue: 3.5.33(typescript@6.0.3) optionalDependencies: vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) @@ -28051,11 +27859,11 @@ snapshots: svelte: 5.55.5(@typescript-eslint/types@8.59.1) vue: 3.5.40(typescript@6.0.3) - '@vercel/analytics@2.0.1(@sveltejs/kit@2.69.3(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.55.5(@typescript-eslint/types@8.59.1))(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(react@19.2.6)(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vue@3.5.40(typescript@6.0.3))': + '@vercel/analytics@2.0.1(@sveltejs/kit@2.69.3(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.55.5(@typescript-eslint/types@8.59.1))(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(react@19.2.6)(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vue@3.5.40(typescript@6.0.3))': optionalDependencies: '@sveltejs/kit': 2.69.3(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.55.5(@typescript-eslint/types@8.59.1))(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) next: 16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - nuxt: 4.4.4(7d1ca556969269fd1f41ac0abb31bc74) + nuxt: 4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5) react: 19.2.6 svelte: 5.55.5(@typescript-eslint/types@8.59.1) vue: 3.5.40(typescript@6.0.3) @@ -28105,11 +27913,11 @@ snapshots: '@vercel/cli-exec': 0.1.1 jose: 5.10.0 - '@vercel/speed-insights@2.0.0(@sveltejs/kit@2.69.3(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.55.5(@typescript-eslint/types@8.59.1))(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(react@19.2.6)(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vue@3.5.40(typescript@6.0.3))': + '@vercel/speed-insights@2.0.0(@sveltejs/kit@2.69.3(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.55.5(@typescript-eslint/types@8.59.1))(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(react@19.2.6)(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vue@3.5.40(typescript@6.0.3))': optionalDependencies: '@sveltejs/kit': 2.69.3(@opentelemetry/api@1.9.1)(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.55.5(@typescript-eslint/types@8.59.1))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(svelte@5.55.5(@typescript-eslint/types@8.59.1))(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) next: 16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - nuxt: 4.4.4(7d1ca556969269fd1f41ac0abb31bc74) + nuxt: 4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5) react: 19.2.6 svelte: 5.55.5(@typescript-eslint/types@8.59.1) vue: 3.5.40(typescript@6.0.3) @@ -28263,11 +28071,11 @@ snapshots: - utf-8-validate - webpack - '@vitejs/devtools-kit@0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': + '@vitejs/devtools-kit@0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))': dependencies: - '@devframes/hub': 0.5.4(devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@devframes/hub': 0.5.4(devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) birpc: 4.0.0 - devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) mlly: 1.8.2 nostics: 1.2.0 pathe: 2.0.3 @@ -28301,7 +28109,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@5.1.5(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.5(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) @@ -28309,34 +28117,34 @@ snapshots: '@rolldown/pluginutils': 1.0.1 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) vite: 7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vue: 3.5.33(typescript@5.9.3) + vue: 3.5.33(typescript@6.0.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@5.1.5(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3))': + '@vitejs/plugin-vue-jsx@5.1.6(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))': dependencies: '@babel/core': 7.29.0 - '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) - '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.0) '@rolldown/pluginutils': 1.0.1 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) - vite: 7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vue: 3.5.33(typescript@6.0.3) + vite: 8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + vue: 3.5.40(typescript@5.9.3) transitivePeerDependencies: - supports-color + optional: true - '@vitejs/plugin-vue-jsx@5.1.6(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.6(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.0) '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.0) '@rolldown/pluginutils': 1.0.1 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) - vite: 8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) vue: 3.5.40(typescript@5.9.3) transitivePeerDependencies: - supports-color - optional: true '@vitejs/plugin-vue-jsx@5.1.6(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))': dependencies: @@ -28350,12 +28158,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.8(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3))': - dependencies: - '@rolldown/pluginutils': 1.0.1 - vite: 7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vue: 3.5.33(typescript@5.9.3) - '@vitejs/plugin-vue@6.0.8(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 @@ -28369,6 +28171,12 @@ snapshots: vue: 3.5.40(typescript@5.9.3) optional: true + '@vitejs/plugin-vue@6.0.8(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))': + dependencies: + '@rolldown/pluginutils': 1.0.1 + vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + vue: 3.5.40(typescript@5.9.3) + '@vitejs/plugin-vue@6.0.8(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 @@ -28515,36 +28323,16 @@ snapshots: path-browserify: 1.0.1 vscode-uri: 3.1.0 - '@vue-macros/common@3.1.2(vue@3.5.33(typescript@5.9.3))': - dependencies: - '@vue/compiler-sfc': 3.5.39 - ast-kit: 2.2.0 - local-pkg: 1.2.1 - magic-string-ast: 1.0.3 - unplugin-utils: 0.3.1 - optionalDependencies: - vue: 3.5.33(typescript@5.9.3) - '@vue-macros/common@3.1.2(vue@3.5.33(typescript@6.0.3))': dependencies: - '@vue/compiler-sfc': 3.5.39 + '@vue/compiler-sfc': 3.5.40 ast-kit: 2.2.0 local-pkg: 1.2.1 magic-string-ast: 1.0.3 - unplugin-utils: 0.3.1 + unplugin-utils: 0.3.2 optionalDependencies: vue: 3.5.33(typescript@6.0.3) - '@vue-macros/common@3.1.2(vue@3.5.40(typescript@6.0.3))': - dependencies: - '@vue/compiler-sfc': 3.5.39 - ast-kit: 2.2.0 - local-pkg: 1.2.1 - magic-string-ast: 1.0.3 - unplugin-utils: 0.3.1 - optionalDependencies: - vue: 3.5.40(typescript@6.0.3) - '@vue-macros/common@3.1.4(vue@3.5.40(typescript@5.9.3))': dependencies: '@vue/compiler-sfc': 3.5.40 @@ -28554,7 +28342,6 @@ snapshots: unplugin-utils: 0.3.2 optionalDependencies: vue: 3.5.40(typescript@5.9.3) - optional: true '@vue-macros/common@3.1.4(vue@3.5.40(typescript@6.0.3))': dependencies: @@ -28578,7 +28365,7 @@ snapshots: '@babel/types': 7.29.7 '@vue/babel-helper-vue-transform-on': 2.0.1 '@vue/babel-plugin-resolve-type': 2.0.1(@babel/core@7.29.0) - '@vue/shared': 3.5.39 + '@vue/shared': 3.5.40 optionalDependencies: '@babel/core': 7.29.0 transitivePeerDependencies: @@ -28586,12 +28373,12 @@ snapshots: '@vue/babel-plugin-resolve-type@2.0.1(@babel/core@7.29.0)': dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 '@babel/core': 7.29.0 '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/parser': 7.29.7 - '@vue/compiler-sfc': 3.5.39 + '@vue/compiler-sfc': 3.5.40 transitivePeerDependencies: - supports-color @@ -28603,14 +28390,6 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-core@3.5.39': - dependencies: - '@babel/parser': 7.29.7 - '@vue/shared': 3.5.39 - entities: 7.0.1 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - '@vue/compiler-core@3.5.40': dependencies: '@babel/parser': 7.29.7 @@ -28624,11 +28403,6 @@ snapshots: '@vue/compiler-core': 3.5.33 '@vue/shared': 3.5.33 - '@vue/compiler-dom@3.5.39': - dependencies: - '@vue/compiler-core': 3.5.39 - '@vue/shared': 3.5.39 - '@vue/compiler-dom@3.5.40': dependencies: '@vue/compiler-core': 3.5.40 @@ -28646,18 +28420,6 @@ snapshots: postcss: 8.5.19 source-map-js: 1.2.1 - '@vue/compiler-sfc@3.5.39': - dependencies: - '@babel/parser': 7.29.7 - '@vue/compiler-core': 3.5.39 - '@vue/compiler-dom': 3.5.39 - '@vue/compiler-ssr': 3.5.39 - '@vue/shared': 3.5.39 - estree-walker: 2.0.2 - magic-string: 0.30.21 - postcss: 8.5.19 - source-map-js: 1.2.1 - '@vue/compiler-sfc@3.5.40': dependencies: '@babel/parser': 7.29.7 @@ -28675,11 +28437,6 @@ snapshots: '@vue/compiler-dom': 3.5.33 '@vue/shared': 3.5.33 - '@vue/compiler-ssr@3.5.39': - dependencies: - '@vue/compiler-dom': 3.5.39 - '@vue/shared': 3.5.39 - '@vue/compiler-ssr@3.5.40': dependencies: '@vue/compiler-dom': 3.5.40 @@ -28695,12 +28452,6 @@ snapshots: dependencies: '@vue/devtools-kit': 8.1.5 - '@vue/devtools-core@8.1.1(vue@3.5.33(typescript@5.9.3))': - dependencies: - '@vue/devtools-kit': 8.1.1 - '@vue/devtools-shared': 8.1.1 - vue: 3.5.33(typescript@5.9.3) - '@vue/devtools-core@8.1.1(vue@3.5.33(typescript@6.0.3))': dependencies: '@vue/devtools-kit': 8.1.1 @@ -28712,7 +28463,6 @@ snapshots: '@vue/devtools-kit': 8.1.1 '@vue/devtools-shared': 8.1.1 vue: 3.5.40(typescript@5.9.3) - optional: true '@vue/devtools-core@8.1.1(vue@3.5.40(typescript@6.0.3))': dependencies: @@ -28790,12 +28540,6 @@ snapshots: '@vue/shared': 3.5.40 csstype: 3.2.3 - '@vue/server-renderer@3.5.33(vue@3.5.33(typescript@5.9.3))': - dependencies: - '@vue/compiler-ssr': 3.5.33 - '@vue/shared': 3.5.33 - vue: 3.5.33(typescript@5.9.3) - '@vue/server-renderer@3.5.33(vue@3.5.33(typescript@6.0.3))': dependencies: '@vue/compiler-ssr': 3.5.33 @@ -28971,22 +28715,6 @@ snapshots: agent-base@7.1.4: {} - ai@6.0.174(zod@4.4.3): - dependencies: - '@ai-sdk/gateway': 3.0.109(zod@4.4.3) - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.26(zod@4.4.3) - '@opentelemetry/api': 1.9.0 - zod: 4.4.3 - - ai@6.0.209(zod@4.4.3): - dependencies: - '@ai-sdk/gateway': 3.0.134(zod@4.4.3) - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.4.3) - '@opentelemetry/api': 1.9.1 - zod: 4.4.3 - ai@6.0.228(zod@4.4.3): dependencies: '@ai-sdk/gateway': 3.0.151(zod@4.4.3) @@ -29586,15 +29314,15 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.28.2 - caniuse-lite: 1.0.30001791 + browserslist: 4.28.7 + caniuse-lite: 1.0.30001806 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 caniuse-api@4.0.0: dependencies: - browserslist: 4.28.2 - caniuse-lite: 1.0.30001791 + browserslist: 4.28.7 + caniuse-lite: 1.0.30001806 caniuse-lite@1.0.30001791: {} @@ -29792,7 +29520,7 @@ snapshots: dependencies: entities: 8.0.0 htmlparser2: 12.0.0 - js-yaml: 4.1.1 + js-yaml: 4.3.0 markdown-exit: 1.0.0-beta.9 optionalDependencies: katex: 0.16.47 @@ -29953,8 +29681,6 @@ snapshots: dependencies: uncrypto: 0.1.3 - crossws@0.4.10: {} - crossws@0.4.10(srvx@0.11.15): optionalDependencies: srvx: 0.11.15 @@ -30056,7 +29782,7 @@ snapshots: cssnano-preset-default@8.0.2(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 cssnano-utils: 6.0.1(postcss@8.5.19) postcss: 8.5.19 postcss-calc: 10.1.1(postcss@8.5.19) @@ -30524,14 +30250,14 @@ snapshots: - vite - webpack - devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): + devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@6.0.3)) birpc: 4.0.0 cac: 7.0.0 h3: 2.0.1-rc.22(crossws@0.4.5(srvx@0.11.15)) mrmime: 2.0.1 - nostics: 0.2.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + nostics: 0.2.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) pathe: 2.0.3 valibot: 1.4.2(typescript@6.0.3) ws: 8.21.0 @@ -30579,23 +30305,23 @@ snapshots: dependencies: path-type: 4.0.0 - docus@5.12.3(a0b6e862aa0ce19fb90c10e383495f25): + docus@5.12.3(e1bb249dd6de9d4db5840172da917fe9): dependencies: - '@ai-sdk/gateway': 3.0.134(zod@4.4.3) + '@ai-sdk/gateway': 3.0.151(zod@4.4.3) '@ai-sdk/mcp': 1.0.62(zod@4.4.3) '@ai-sdk/vue': 3.0.228(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) '@comark/vue': 0.4.0(katex@0.16.47)(shiki@4.3.1)(vue@3.5.40(typescript@6.0.3)) '@iconify-json/lucide': 1.2.117 '@iconify-json/simple-icons': 1.2.90 '@iconify-json/vscode-icons': 1.2.67 - '@nuxt/content': 3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - '@nuxt/image': 2.0.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magicast@0.5.3)(srvx@0.11.22) - '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@nuxt/ui': 4.10.0(342679e81daec34fb4ebc5f1215784ba) - '@nuxtjs/i18n': 10.4.1(@vue/compiler-dom@3.5.39)(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(ioredis@5.10.1)(magicast@0.5.3)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) - '@nuxtjs/mcp-toolkit': 0.18.0(@vue/compiler-sfc@3.5.33)(h3@1.15.11)(magicast@0.5.3)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) - '@nuxtjs/mdc': 0.22.1(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0) - '@nuxtjs/robots': 6.1.2(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + '@nuxt/content': 3.15.0(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3)))(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(esbuild@0.28.0)(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(rollup@4.60.2)(valibot@1.4.2(typescript@6.0.3))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@nuxt/image': 2.0.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(srvx@0.11.22)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/ui': 4.10.0(9dd74825632101caae164786bfef9095) + '@nuxtjs/i18n': 10.4.1(@vue/compiler-dom@3.5.40)(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(ioredis@5.10.1)(magicast@0.5.3)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@nuxtjs/mcp-toolkit': 0.18.0(@vue/compiler-sfc@3.5.40)(h3@1.15.11)(magicast@0.5.3)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + '@nuxtjs/mdc': 0.22.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxtjs/robots': 6.1.2(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) '@shikijs/core': 4.3.1 '@shikijs/engine-javascript': 4.3.1 '@shikijs/langs': 4.3.1 @@ -30603,15 +30329,15 @@ snapshots: '@shikijs/themes': 4.3.1 '@takumi-rs/core': 1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@vueuse/core': 14.3.0(vue@3.5.40(typescript@6.0.3)) - ai: 6.0.209(zod@4.4.3) + ai: 6.0.228(zod@4.4.3) better-sqlite3: 12.11.1 defu: 6.1.7 exsolve: 1.1.0 git-url-parse: 16.1.0 motion-v: 2.3.0(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3)))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vue@3.5.40(typescript@6.0.3)) - nuxt: 4.4.4(7d1ca556969269fd1f41ac0abb31bc74) - nuxt-llms: 0.2.0(magicast@0.5.3) - nuxt-og-image: 6.6.0(e8e809049ebb737f5fe470e3d1528ce4) + nuxt: 4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5) + nuxt-llms: 0.2.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + nuxt-og-image: 6.6.0(3d2f4708d9cbbec557345e3083469669) pathe: 2.0.3 pkg-types: 2.3.1 scule: 1.3.0 @@ -31962,12 +31688,6 @@ snapshots: fraction.js@5.3.4: {} - framer-motion@12.41.0: - dependencies: - motion-dom: 12.41.0 - motion-utils: 12.39.0 - tslib: 2.8.1 - framer-motion@12.41.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: motion-dom: 12.41.0 @@ -32320,7 +32040,7 @@ snapshots: '@types/unist': 3.0.3 devlop: 1.1.0 hastscript: 9.0.1 - property-information: 7.1.0 + property-information: 7.2.0 vfile: 6.0.3 vfile-location: 5.0.3 web-namespaces: 2.0.1 @@ -32439,7 +32159,7 @@ snapshots: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -32464,7 +32184,7 @@ snapshots: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 hex-rgb@4.3.0: {} @@ -32575,24 +32295,6 @@ snapshots: import-without-cache@0.4.0: {} - impound@1.1.5(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - es-module-lexer: 2.1.0 - pathe: 2.0.3 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-utils: 0.3.1 - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rolldown - - rollup - - unloader - - vite - - webpack - impound@1.1.5(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -32888,10 +32590,6 @@ snapshots: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.1: - dependencies: - argparse: 2.0.1 - js-yaml@4.3.0: dependencies: argparse: 2.0.1 @@ -33094,7 +32792,7 @@ snapshots: '@parcel/watcher-wasm': 2.5.6 citty: 0.2.2 consola: 3.4.2 - crossws: 0.4.10 + crossws: 0.4.10(srvx@0.8.16) defu: 6.1.7 get-port-please: 3.2.0 h3: 1.15.11 @@ -33244,23 +32942,6 @@ snapshots: ufo: 1.6.4 unplugin: 2.3.11 - magic-regexp@0.11.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): - dependencies: - magic-string: 0.30.21 - regexp-tree: 0.1.27 - type-level-regexp: 0.1.17 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rolldown - - rollup - - unloader - - vite - - webpack - magic-regexp@0.11.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: magic-string: 0.30.21 @@ -33366,7 +33047,7 @@ snapshots: '@types/linkify-it': 5.0.0 '@types/mdurl': 2.0.0 entities: 7.0.1 - linkify-it: 5.0.0 + linkify-it: 5.0.2 mdurl: 2.0.0 punycode.js: 2.3.1 uc.micro: 2.1.0 @@ -34044,19 +33725,6 @@ snapshots: - react - react-dom - motion-v@2.3.0(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3)))(vue@3.5.40(typescript@6.0.3)): - dependencies: - '@vueuse/core': 14.3.0(vue@3.5.40(typescript@6.0.3)) - framer-motion: 12.41.0 - hey-listen: 1.0.8 - motion-dom: 12.41.0 - motion-utils: 12.39.0 - vue: 3.5.40(typescript@6.0.3) - transitivePeerDependencies: - - '@emotion/is-prop-valid' - - react - - react-dom - motion@12.40.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: framer-motion: 12.41.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -34155,31 +33823,6 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@16.2.10(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7): - dependencies: - '@next/env': 16.2.10 - '@swc/helpers': 0.5.15 - baseline-browser-mapping: 2.11.0 - caniuse-lite: 1.0.30001806 - postcss: 8.4.31 - react: 19.2.7 - react-dom: 19.2.7(react@19.2.7) - styled-jsx: 5.1.6(react@19.2.7) - optionalDependencies: - '@next/swc-darwin-arm64': 16.2.10 - '@next/swc-darwin-x64': 16.2.10 - '@next/swc-linux-arm64-gnu': 16.2.10 - '@next/swc-linux-arm64-musl': 16.2.10 - '@next/swc-linux-x64-gnu': 16.2.10 - '@next/swc-linux-x64-musl': 16.2.10 - '@next/swc-win32-arm64-msvc': 16.2.10 - '@next/swc-win32-x64-msvc': 16.2.10 - '@opentelemetry/api': 1.9.1 - sharp: 0.34.5 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - next@16.2.4(@opentelemetry/api@1.9.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: '@next/env': 16.2.4 @@ -34409,7 +34052,7 @@ snapshots: rolldown: 1.2.0 srvx: 0.11.16 unenv: 2.0.0-rc.24 - unstorage: 2.0.0-alpha.7(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(ofetch@2.0.0-alpha.3) + unstorage: 2.0.0-alpha.7(chokidar@5.0.0)(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(lru-cache@11.3.5)(ofetch@2.0.0-alpha.3) optionalDependencies: dotenv: 17.4.2 giget: 3.2.0 @@ -34448,7 +34091,7 @@ snapshots: - uploadthing - wrangler - nitropack@2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.128.0)(rolldown@1.1.5)(srvx@0.11.15)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): + nitropack@2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.128.0)(rolldown@1.2.0)(srvx@0.11.15)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@rollup/plugin-alias': 6.0.0(rollup@4.60.2) @@ -34501,7 +34144,7 @@ snapshots: pretty-bytes: 7.1.0 radix3: 1.1.2 rollup: 4.60.2 - rollup-plugin-visualizer: 7.0.1(rolldown@1.1.5)(rollup@4.60.2) + rollup-plugin-visualizer: 7.0.1(rolldown@1.2.0)(rollup@4.60.2) scule: 1.3.0 semver: 7.8.5 serve-placeholder: 2.0.2 @@ -34513,7 +34156,7 @@ snapshots: uncrypto: 0.1.3 unctx: 2.5.0 unenv: 2.0.0-rc.24 - unimport: 6.3.1(esbuild@0.28.0)(oxc-parser@0.128.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unimport: 6.3.1(esbuild@0.28.0)(oxc-parser@0.128.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) unplugin-utils: 0.3.2 unstorage: 1.17.5(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1) untyped: 2.0.0 @@ -34670,7 +34313,7 @@ snapshots: - vite - webpack - nitropack@2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.140.0)(rolldown@1.1.5)(srvx@0.11.15)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): + nitropack@2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.140.0)(rolldown@1.2.0)(srvx@0.11.15)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@rollup/plugin-alias': 6.0.0(rollup@4.60.2) @@ -34723,7 +34366,7 @@ snapshots: pretty-bytes: 7.1.0 radix3: 1.1.2 rollup: 4.60.2 - rollup-plugin-visualizer: 7.0.1(rolldown@1.1.5)(rollup@4.60.2) + rollup-plugin-visualizer: 7.0.1(rolldown@1.2.0)(rollup@4.60.2) scule: 1.3.0 semver: 7.8.5 serve-placeholder: 2.0.2 @@ -34735,7 +34378,7 @@ snapshots: uncrypto: 0.1.3 unctx: 2.5.0 unenv: 2.0.0-rc.24 - unimport: 6.3.1(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unimport: 6.3.1(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) unplugin-utils: 0.3.2 unstorage: 1.17.5(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1) untyped: 2.0.0 @@ -35057,7 +34700,7 @@ snapshots: pretty-bytes: 7.1.0 radix3: 1.1.2 rollup: 4.60.2 - rollup-plugin-visualizer: 7.0.1(rollup@4.60.2) + rollup-plugin-visualizer: 7.0.1(rolldown@1.2.0)(rollup@4.60.2) scule: 1.3.0 semver: 7.8.5 serve-placeholder: 2.0.2 @@ -35150,22 +34793,6 @@ snapshots: normalize-path@3.0.0: {} - nostics@0.2.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): - dependencies: - magic-string: 0.30.21 - oxc-parser: 0.132.0 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rolldown - - rollup - - unloader - - vite - - webpack - nostics@0.2.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: magic-string: 0.30.21 @@ -35248,9 +34875,9 @@ snapshots: - supports-color - vue - nuxt-component-meta@0.17.2(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): + nuxt-component-meta@0.17.2(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): dependencies: - '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) citty: 0.1.6 mlly: 1.8.2 ohash: 2.0.11 @@ -35265,9 +34892,9 @@ snapshots: - rolldown - unplugin - nuxt-component-meta@0.17.2(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0): + nuxt-component-meta@0.17.2(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): dependencies: - '@nuxt/kit': 4.5.0(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0) + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) citty: 0.1.6 mlly: 1.8.2 ohash: 2.0.11 @@ -35282,9 +34909,9 @@ snapshots: - rolldown - unplugin - nuxt-component-meta@0.17.2(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): + nuxt-component-meta@0.17.2(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): dependencies: - '@nuxt/kit': 4.5.0(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) citty: 0.1.6 mlly: 1.8.2 ohash: 2.0.11 @@ -35298,41 +34925,28 @@ snapshots: - oxc-parser - rolldown - unplugin + optional: true + + nuxt-define@1.0.0: {} - nuxt-component-meta@0.17.2(magicast@0.5.3)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): + nuxt-llms@0.2.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): dependencies: - '@nuxt/kit': 4.5.0(magicast@0.5.3)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) - citty: 0.1.6 - mlly: 1.8.2 - ohash: 2.0.11 - scule: 1.3.0 - typescript: 5.9.3 - ufo: 1.6.4 - vue-component-meta: 3.2.7(typescript@5.9.3) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) transitivePeerDependencies: - magic-string - magicast - oxc-parser - rolldown - unplugin - optional: true - - nuxt-define@1.0.0: {} - nuxt-llms@0.2.0(magicast@0.5.3): - dependencies: - '@nuxt/kit': 4.4.8(magicast@0.5.3) - transitivePeerDependencies: - - magicast - - nuxt-og-image@6.6.0(e8e809049ebb737f5fe470e3d1528ce4): + nuxt-og-image@6.6.0(3d2f4708d9cbbec557345e3083469669): dependencies: '@clack/prompts': 1.7.0 - '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) '@unocss/config': 66.7.5 '@unocss/core': 66.7.5 - '@vue/compiler-sfc': 3.5.39 + '@vue/compiler-sfc': 3.5.40 chrome-launcher: 1.2.1 consola: 3.4.2 culori: 4.0.2 @@ -35343,8 +34957,8 @@ snapshots: magic-string: 0.30.21 magicast: 0.5.3 mocked-exports: 0.1.1 - nuxt-site-config: 4.0.8(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) - nuxtseo-shared: 5.3.2(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt-site-config@4.0.8(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + nuxt-site-config: 4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + nuxtseo-shared: 5.3.2(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) nypm: 0.6.8 ofetch: 1.5.1 ohash: 2.0.11 @@ -35358,7 +34972,7 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 ufo: 1.6.4 - ultrahtml: 1.6.0 + ultrahtml: 1.7.0 unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) unstorage: 2.0.0-alpha.7(chokidar@5.0.0)(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(lru-cache@11.3.5)(ofetch@1.5.1) optionalDependencies: @@ -35366,7 +34980,7 @@ snapshots: '@takumi-rs/core': 1.8.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) fontless: 0.2.1(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) nitropack: 2.13.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9))(oxc-parser@0.128.0)(rolldown@1.2.0)(srvx@0.11.22)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - satori: 0.28.0 + satori: 0.28.2 sharp: 0.34.5 tailwindcss: 4.3.2 unifont: 0.7.4 @@ -35386,97 +35000,132 @@ snapshots: - vue - webpack - nuxt-site-config-kit@4.0.8(magicast@0.5.3)(vue@3.5.40(typescript@6.0.3)): + nuxt-site-config-kit@4.1.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@6.0.3)): dependencies: - '@nuxt/kit': 4.4.8(magicast@0.5.3) - site-config-stack: 4.0.8(vue@3.5.40(typescript@6.0.3)) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + site-config-stack: 4.1.1(vue@3.5.40(typescript@6.0.3)) std-env: 4.2.0 ufo: 1.6.4 transitivePeerDependencies: + - magic-string - magicast + - oxc-parser + - rolldown + - unplugin - vue - nuxt-site-config-kit@4.1.1(magicast@0.5.3)(vue@3.5.40(typescript@6.0.3)): + nuxt-site-config-kit@4.1.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@6.0.3)): dependencies: - '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) site-config-stack: 4.1.1(vue@3.5.40(typescript@6.0.3)) std-env: 4.2.0 ufo: 1.6.4 transitivePeerDependencies: + - magic-string - magicast + - oxc-parser + - rolldown + - unplugin - vue - nuxt-site-config@4.0.8(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3): + nuxt-site-config-kit@4.1.1(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@6.0.3)): dependencies: + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + site-config-stack: 4.1.1(vue@3.5.40(typescript@6.0.3)) + std-env: 4.2.0 + ufo: 1.6.4 + transitivePeerDependencies: + - magic-string + - magicast + - oxc-parser + - rolldown + - unplugin + - vue + + nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3): + dependencies: + '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.4.8(magicast@0.5.3) h3: 1.15.11 - nuxt-site-config-kit: 4.0.8(magicast@0.5.3)(vue@3.5.40(typescript@6.0.3)) - nuxtseo-shared: 5.1.3(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt-site-config@4.0.8(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + nuxt-site-config-kit: 4.1.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@6.0.3)) + nuxtseo-shared: 5.3.2(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) pathe: 2.0.3 pkg-types: 2.3.1 - site-config-stack: 4.0.8(vue@3.5.40(typescript@6.0.3)) + site-config-stack: 4.1.1(vue@3.5.40(typescript@6.0.3)) ufo: 1.6.4 transitivePeerDependencies: - '@nuxt/schema' + - magic-string - magicast - nuxt + - oxc-parser + - rolldown + - unplugin - vite - vue - zod - nuxt-site-config@4.1.1(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76): + nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3): dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.4.8(magicast@0.5.3) h3: 1.15.11 - nuxt-site-config-kit: 4.1.1(magicast@0.5.3)(vue@3.5.40(typescript@6.0.3)) - nuxtseo-shared: 5.3.2(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76))(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76) + nuxt-site-config-kit: 4.1.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@6.0.3)) + nuxtseo-shared: 5.3.2(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) pathe: 2.0.3 pkg-types: 2.3.1 site-config-stack: 4.1.1(vue@3.5.40(typescript@6.0.3)) ufo: 1.6.4 transitivePeerDependencies: - '@nuxt/schema' + - magic-string - magicast - nuxt + - oxc-parser + - rolldown + - unplugin - vite - vue - zod - nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3): + nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76): dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.4.8(magicast@0.5.3) h3: 1.15.11 - nuxt-site-config-kit: 4.1.1(magicast@0.5.3)(vue@3.5.40(typescript@6.0.3)) - nuxtseo-shared: 5.3.2(@nuxt/schema@4.5.0)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + nuxt-site-config-kit: 4.1.1(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@6.0.3)) + nuxtseo-shared: 5.3.2(@nuxt/schema@4.5.0)(magic-string@1.0.0)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76))(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76) pathe: 2.0.3 pkg-types: 2.3.1 site-config-stack: 4.1.1(vue@3.5.40(typescript@6.0.3)) ufo: 1.6.4 transitivePeerDependencies: - '@nuxt/schema' + - magic-string - magicast - nuxt + - oxc-parser + - rolldown + - unplugin - vite - vue - zod - nuxt-studio@1.7.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(srvx@0.11.22)(vue@3.5.40(typescript@6.0.3)): + nuxt-studio@1.7.0(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(srvx@0.11.22)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue@3.5.40(typescript@6.0.3)): dependencies: - '@ai-sdk/gateway': 3.0.134(zod@4.4.3) - '@ai-sdk/vue': 3.0.174(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) - '@iconify-json/lucide': 1.2.105 - '@nuxtjs/mdc': 0.21.1(magicast@0.5.3) + '@ai-sdk/gateway': 3.0.151(zod@4.4.3) + '@ai-sdk/vue': 3.0.228(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + '@iconify-json/lucide': 1.2.117 + '@nuxtjs/mdc': 0.21.1(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@vueuse/core': 14.3.0(vue@3.5.40(typescript@6.0.3)) - ai: 6.0.209(zod@4.4.3) + ai: 6.0.228(zod@4.4.3) defu: 6.1.7 destr: 2.0.5 - js-yaml: 4.1.1 + js-yaml: 4.3.0 minimatch: 10.2.5 - nuxt-component-meta: 0.17.2(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0) - remark-mdc: 3.10.0 - shiki: 4.1.0 + nuxt-component-meta: 0.17.2(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + remark-mdc: 3.11.1 + shiki: 4.3.1 unstorage: 1.17.5(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1) zod: 4.4.3 zod-to-json-schema: 3.25.2(zod@4.4.3) @@ -35650,156 +35299,17 @@ snapshots: - xml2js - yaml - nuxt@4.4.4(3a628c60eb3c5faf2e1974943d1ba369): - dependencies: - '@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@6.0.3) - '@nuxt/cli': 3.35.1(@nuxt/schema@4.4.4)(cac@6.7.14)(magicast@0.5.3) - '@nuxt/devtools': 3.2.4(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) - '@nuxt/kit': 4.4.4(magicast@0.5.3) - '@nuxt/nitro-server': 4.4.4(3b7cba74bae154e6382e375c13212373) - '@nuxt/schema': 4.4.4 - '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.4.4(magicast@0.5.3)) - '@nuxt/vite-builder': 4.4.4(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(eslint@9.39.5(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.3)(nuxt@4.4.4(3a628c60eb3c5faf2e1974943d1ba369))(optionator@0.9.4)(rolldown@1.1.5)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.5)(rollup@4.60.2))(rollup@4.60.2)(terser@5.46.2)(tsx@4.23.1)(typescript@6.0.3)(vue-tsc@3.3.7(typescript@6.0.3))(vue@3.5.33(typescript@6.0.3))(yaml@2.9.0) - '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.1.5)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) - '@vue/shared': 3.5.33 - chokidar: 5.0.0 - compatx: 0.2.0 - consola: 3.4.2 - cookie-es: 2.0.1 - defu: 6.1.7 - devalue: 5.8.0 - errx: 0.1.0 - escape-string-regexp: 5.0.0 - exsolve: 1.0.8 - hookable: 6.1.1 - ignore: 7.0.5 - impound: 1.1.5(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - jiti: 2.6.1 - klona: 2.0.6 - knitwork: 1.3.0 - magic-string: 0.30.21 - mlly: 1.8.2 - nanotar: 0.3.0 - nypm: 0.6.6 - ofetch: 1.5.1 - ohash: 2.0.11 - on-change: 6.0.2 - oxc-minify: 0.128.0 - oxc-parser: 0.128.0 - oxc-transform: 0.128.0 - oxc-walker: 0.7.0(oxc-parser@0.128.0) - pathe: 2.0.3 - perfect-debounce: 2.1.0 - picomatch: 4.0.4 - pkg-types: 2.3.1 - rou3: 0.8.1 - scule: 1.3.0 - semver: 7.7.4 - std-env: 4.1.0 - tinyglobby: 0.2.16 - ufo: 1.6.4 - ultrahtml: 1.6.0 - uncrypto: 0.1.3 - unctx: 2.5.0 - unimport: 6.2.0(esbuild@0.28.0)(oxc-parser@0.128.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin: 3.0.0 - unrouting: 0.1.7 - untyped: 2.0.0 - vue: 3.5.33(typescript@6.0.3) - vue-router: 5.0.6(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) - optionalDependencies: - '@parcel/watcher': 2.5.6 - '@types/node': 25.9.5 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@babel/core' - - '@babel/plugin-proposal-decorators' - - '@babel/plugin-syntax-jsx' - - '@biomejs/biome' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@farmfe/core' - - '@libsql/client' - - '@modelcontextprotocol/sdk' - - '@netlify/blobs' - - '@pinia/colada' - - '@planetscale/database' - - '@rollup/plugin-babel' - - '@rspack/core' - - '@unhead/cli' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - '@vitejs/devtools' - - '@vue/compiler-sfc' - - aws4fetch - - bare-abort-controller - - bare-buffer - - better-sqlite3 - - bufferutil - - bun-types-no-globals - - cac - - commander - - crossws - - db0 - - drizzle-orm - - encoding - - esbuild - - eslint - - idb-keyval - - ioredis - - less - - lightningcss - - magicast - - meow - - mysql2 - - optionator - - oxlint - - pinia - - react-native-b4a - - rolldown - - rollup - - rollup-plugin-visualizer - - sass - - sass-embedded - - sqlite3 - - srvx - - stylelint - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - unloader - - uploadthing - - utf-8-validate - - vite - - vls - - vti - - vue-tsc - - webpack - - xml2js - - yaml - - nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74): + nuxt@4.4.4(798471e5840d715482aeb7b47cc070f1): dependencies: '@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@6.0.3) '@nuxt/cli': 3.35.1(@nuxt/schema@4.4.4)(cac@6.7.14)(magicast@0.5.3) '@nuxt/devtools': 3.2.4(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) '@nuxt/kit': 4.4.4(magicast@0.5.3) - '@nuxt/nitro-server': 4.4.4(56077375bb4c1cd3722387df026bbff6) + '@nuxt/nitro-server': 4.4.4(eccf4b57a53062a178be2b5263dbe4e5) '@nuxt/schema': 4.4.4 '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.4.4(magicast@0.5.3)) - '@nuxt/vite-builder': 4.4.4(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(eslint@9.39.5(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(optionator@0.9.4)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(rollup@4.60.2)(terser@5.46.2)(tsx@4.23.1)(typescript@6.0.3)(vue-tsc@3.3.7(typescript@6.0.3))(vue@3.5.33(typescript@6.0.3))(yaml@2.9.0) - '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) + '@nuxt/vite-builder': 4.4.4(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(eslint@9.39.5(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.3)(nuxt@4.4.4(798471e5840d715482aeb7b47cc070f1))(optionator@0.9.4)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(rollup@4.60.2)(terser@5.46.2)(tsx@4.23.1)(typescript@6.0.3)(vue-tsc@3.3.7(typescript@6.0.3))(vue@3.5.33(typescript@6.0.3))(yaml@2.9.0) + '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.5(srvx@0.11.15))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) '@vue/shared': 3.5.33 chokidar: 5.0.0 compatx: 0.2.0 @@ -35845,7 +35355,7 @@ snapshots: unrouting: 0.1.7 untyped: 2.0.0 vue: 3.5.33(typescript@6.0.3) - vue-router: 5.0.6(@vue/compiler-sfc@3.5.33)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) + vue-router: 5.0.6(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)) optionalDependencies: '@parcel/watcher': 2.5.6 '@types/node': 25.9.5 @@ -36067,63 +35577,67 @@ snapshots: - xml2js - yaml - nuxt@4.4.4(d331503cc652b8b0dc91dfdee719201c): + nuxt@4.5.0(4ad5267ef2a8e696f3cd111576c35145): dependencies: - '@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@5.9.3) - '@nuxt/cli': 3.35.1(@nuxt/schema@4.4.4)(cac@6.7.14)(magicast@0.5.3) - '@nuxt/devtools': 3.2.4(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3)) - '@nuxt/kit': 4.4.4(magicast@0.5.3) - '@nuxt/nitro-server': 4.4.4(0b7d41c34615ca00c005d85c374e1c2e) - '@nuxt/schema': 4.4.4 - '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.4.4(magicast@0.5.3)) - '@nuxt/vite-builder': 4.4.4(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(eslint@9.39.5(jiti@2.7.0))(lightningcss@1.32.0)(magicast@0.5.3)(nuxt@4.4.4(d331503cc652b8b0dc91dfdee719201c))(optionator@0.9.4)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(rollup@4.60.2)(terser@5.46.2)(tsx@4.23.1)(typescript@5.9.3)(vue-tsc@3.2.7(typescript@5.9.3))(vue@3.5.33(typescript@5.9.3))(yaml@2.9.0) - '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@5.9.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3)) - '@vue/shared': 3.5.33 + '@dxup/nuxt': 0.5.3(esbuild@0.28.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@nuxt/cli': 3.37.0(@nuxt/schema@4.5.0)(cac@6.7.14)(commander@14.0.3)(magicast@0.5.3) + '@nuxt/devtools': 3.2.4(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/nitro-server': 4.5.0(3c88cc2e4a4fd55546c43727f945c208) + '@nuxt/schema': 4.5.0 + '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))) + '@nuxt/vite-builder': 4.5.0(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.5.0(4ad5267ef2a8e696f3cd111576c35145))(optionator@0.9.4)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(terser@5.46.2)(tsx@4.23.1)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue-tsc@3.2.7(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0) + '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + '@vue/shared': 3.5.40 chokidar: 5.0.0 compatx: 0.2.0 consola: 3.4.2 - cookie-es: 2.0.1 + cookie-es: 3.1.1 defu: 6.1.7 - devalue: 5.8.0 + devalue: 5.8.1 errx: 0.1.0 escape-string-regexp: 5.0.0 - exsolve: 1.0.8 + exsolve: 1.1.0 + fnv1a-64: 0.1.1 hookable: 6.1.1 - ignore: 7.0.5 + ignore: 7.0.6 impound: 1.1.5(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - jiti: 2.6.1 + jiti: 2.7.0 klona: 2.0.6 knitwork: 1.3.0 - magic-string: 0.30.21 + magic-string: 1.0.0 mlly: 1.8.2 nanotar: 0.3.0 - nypm: 0.6.6 + nostics: 1.2.0 + nypm: 0.6.8 + object-identity: 0.2.3 ofetch: 1.5.1 ohash: 2.0.11 on-change: 6.0.2 - oxc-minify: 0.128.0 - oxc-parser: 0.128.0 - oxc-transform: 0.128.0 - oxc-walker: 0.7.0(oxc-parser@0.128.0) + oxc-walker: 1.0.0(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) pathe: 2.0.3 perfect-debounce: 2.1.0 - picomatch: 4.0.4 + picomatch: 4.0.5 pkg-types: 2.3.1 - rou3: 0.8.1 + rolldown: 1.2.0 + rolldown-string: 0.3.1(rolldown@1.2.0) + rou3: 0.9.1 scule: 1.3.0 - semver: 7.7.4 - std-env: 4.1.0 - tinyglobby: 0.2.16 + semver: 7.8.5 + std-env: 4.2.0 + tinyglobby: 0.2.17 ufo: 1.6.4 - ultrahtml: 1.6.0 + ultrahtml: 1.7.0 uncrypto: 0.1.3 - unctx: 2.5.0 - unimport: 6.2.0(esbuild@0.28.0)(oxc-parser@0.128.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin: 3.0.0 + unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + undici: 8.8.0 + unhead: 3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unimport: 6.3.1(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) unrouting: 0.1.7 untyped: 2.0.0 - vue: 3.5.33(typescript@5.9.3) - vue-router: 5.0.6(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.40(typescript@6.0.3) + vue-router: 5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) optionalDependencies: '@parcel/watcher': 2.5.6 '@types/node': 25.9.5 @@ -36134,9 +35648,9 @@ snapshots: - '@azure/identity' - '@azure/keyvault-secrets' - '@azure/storage-blob' - - '@babel/core' - '@babel/plugin-proposal-decorators' - '@babel/plugin-syntax-jsx' + - '@babel/plugin-syntax-typescript' - '@biomejs/biome' - '@capacitor/preferences' - '@deno/kv' @@ -36178,10 +35692,10 @@ snapshots: - meow - mysql2 - optionator + - oxc-parser - oxlint - pinia - react-native-b4a - - rolldown - rollup - rollup-plugin-visualizer - sass @@ -36199,25 +35713,23 @@ snapshots: - uploadthing - utf-8-validate - vite - - vls - - vti - vue-tsc - webpack - xml2js - yaml - nuxt@4.5.0(4ad5267ef2a8e696f3cd111576c35145): + nuxt@4.5.0(89ef07b0b9a25f097ff130a690b7b14c): dependencies: - '@dxup/nuxt': 0.5.3(esbuild@0.28.0)(magicast@0.5.3)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@dxup/nuxt': 0.5.3(esbuild@0.28.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) '@nuxt/cli': 3.37.0(@nuxt/schema@4.5.0)(cac@6.7.14)(commander@14.0.3)(magicast@0.5.3) - '@nuxt/devtools': 3.2.4(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) - '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) - '@nuxt/nitro-server': 4.5.0(3c88cc2e4a4fd55546c43727f945c208) + '@nuxt/devtools': 3.2.4(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/nitro-server': 4.5.0(9b15569c862cffbeaea5a83374e901a1) '@nuxt/schema': 4.5.0 - '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))) - '@nuxt/vite-builder': 4.5.0(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.5.0(4ad5267ef2a8e696f3cd111576c35145))(optionator@0.9.4)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(terser@5.46.2)(tsx@4.23.1)(typescript@6.0.3)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue-tsc@3.2.7(typescript@6.0.3))(vue@3.5.40(typescript@6.0.3))(yaml@2.9.0) - '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) - '@vue/shared': 3.5.39 + '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))) + '@nuxt/vite-builder': 4.5.0(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@22.19.17)(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.5.0(89ef07b0b9a25f097ff130a690b7b14c))(optionator@0.9.4)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(terser@5.46.2)(tsx@4.23.1)(typescript@5.9.3)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue-tsc@3.3.7(typescript@5.9.3))(vue@3.5.40(typescript@5.9.3))(yaml@2.9.0) + '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@5.9.3)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + '@vue/shared': 3.5.40 chokidar: 5.0.0 compatx: 0.2.0 consola: 3.4.2 @@ -36230,7 +35742,7 @@ snapshots: fnv1a-64: 0.1.1 hookable: 6.1.1 ignore: 7.0.6 - impound: 1.1.5(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + impound: 1.1.5(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) jiti: 2.7.0 klona: 2.0.6 knitwork: 1.3.0 @@ -36243,7 +35755,7 @@ snapshots: ofetch: 1.5.1 ohash: 2.0.11 on-change: 6.0.2 - oxc-walker: 1.0.0(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + oxc-walker: 1.0.0(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) pathe: 2.0.3 perfect-debounce: 2.1.0 picomatch: 4.0.5 @@ -36258,18 +35770,18 @@ snapshots: ufo: 1.6.4 ultrahtml: 1.7.0 uncrypto: 0.1.3 - unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) undici: 8.8.0 - unhead: 3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unimport: 6.3.1(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unhead: 3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unimport: 6.3.1(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) unrouting: 0.1.7 untyped: 2.0.0 - vue: 3.5.40(typescript@6.0.3) - vue-router: 5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)) + vue: 3.5.40(typescript@5.9.3) + vue-router: 5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) optionalDependencies: '@parcel/watcher': 2.5.6 - '@types/node': 25.9.5 + '@types/node': 22.19.17 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -36346,19 +35858,20 @@ snapshots: - webpack - xml2js - yaml + optional: true - nuxt@4.5.0(89ef07b0b9a25f097ff130a690b7b14c): + nuxt@4.5.0(d0b081e3ea844aa3953445e0cdf8d794): dependencies: - '@dxup/nuxt': 0.5.3(esbuild@0.28.0)(magicast@0.5.3)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@dxup/nuxt': 0.5.3(esbuild@0.28.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) '@nuxt/cli': 3.37.0(@nuxt/schema@4.5.0)(cac@6.7.14)(commander@14.0.3)(magicast@0.5.3) - '@nuxt/devtools': 3.2.4(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) - '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) - '@nuxt/nitro-server': 4.5.0(9b15569c862cffbeaea5a83374e901a1) + '@nuxt/devtools': 3.2.4(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + '@nuxt/kit': 4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@nuxt/nitro-server': 4.5.0(54440eaafe1040d72649c71d25711e2f) '@nuxt/schema': 4.5.0 - '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))) - '@nuxt/vite-builder': 4.5.0(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@22.19.17)(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.5.0(89ef07b0b9a25f097ff130a690b7b14c))(optionator@0.9.4)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(terser@5.46.2)(tsx@4.23.1)(typescript@5.9.3)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue-tsc@3.3.7(typescript@5.9.3))(vue@3.5.40(typescript@5.9.3))(yaml@2.9.0) - '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@5.9.3)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) - '@vue/shared': 3.5.39 + '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.5.0(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))) + '@nuxt/vite-builder': 4.5.0(@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0))(@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0))(@types/node@25.9.5)(esbuild@0.28.0)(eslint@9.39.5(jiti@2.7.0))(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.5.0(d0b081e3ea844aa3953445e0cdf8d794))(optionator@0.9.4)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2))(terser@5.46.2)(tsx@4.23.1)(typescript@5.9.3)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vue-tsc@3.2.7(typescript@5.9.3))(vue@3.5.40(typescript@5.9.3))(yaml@2.9.0) + '@unhead/vue': 3.2.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.0)(lightningcss@1.32.0)(rolldown@1.2.0)(rollup@4.60.2)(typescript@5.9.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + '@vue/shared': 3.5.40 chokidar: 5.0.0 compatx: 0.2.0 consola: 3.4.2 @@ -36371,7 +35884,7 @@ snapshots: fnv1a-64: 0.1.1 hookable: 6.1.1 ignore: 7.0.6 - impound: 1.1.5(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + impound: 1.1.5(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) jiti: 2.7.0 klona: 2.0.6 knitwork: 1.3.0 @@ -36384,7 +35897,7 @@ snapshots: ofetch: 1.5.1 ohash: 2.0.11 on-change: 6.0.2 - oxc-walker: 1.0.0(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + oxc-walker: 1.0.0(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) pathe: 2.0.3 perfect-debounce: 2.1.0 picomatch: 4.0.5 @@ -36399,18 +35912,18 @@ snapshots: ufo: 1.6.4 ultrahtml: 1.7.0 uncrypto: 0.1.3 - unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + unctx: 3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) undici: 8.8.0 - unhead: 3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unimport: 6.3.1(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unhead: 3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unimport: 6.3.1(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) unrouting: 0.1.7 untyped: 2.0.0 vue: 3.5.40(typescript@5.9.3) - vue-router: 5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + vue-router: 5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) optionalDependencies: '@parcel/watcher': 2.5.6 - '@types/node': 22.19.17 + '@types/node': 25.9.5 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -36487,43 +36000,17 @@ snapshots: - webpack - xml2js - yaml - optional: true - nuxtseo-shared@5.1.3(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt-site-config@4.0.8(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3): + nuxtseo-shared@5.3.2(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3): dependencies: '@clack/prompts': 1.7.0 - '@nuxt/devtools-kit': 4.0.0-alpha.3(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@nuxt/devtools-kit': 4.0.0-alpha.3(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@nuxt/schema': 4.4.8 - birpc: 4.0.0 - consola: 3.4.2 - defu: 6.1.7 - nuxt: 4.4.4(7d1ca556969269fd1f41ac0abb31bc74) - ofetch: 1.5.1 - pathe: 2.0.3 - pkg-types: 2.3.1 - radix3: 1.1.2 - sirv: 3.0.2 - std-env: 4.2.0 - ufo: 1.6.4 - vue: 3.5.40(typescript@6.0.3) - optionalDependencies: - nuxt-site-config: 4.0.8(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) - zod: 4.4.3 - transitivePeerDependencies: - - magicast - - vite - - nuxtseo-shared@5.3.2(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt-site-config@4.0.8(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3): - dependencies: - '@clack/prompts': 1.7.0 - '@nuxt/devtools-kit': 4.0.0-alpha.3(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@nuxt/schema': 4.4.8 + '@nuxt/schema': 4.5.0 birpc: 4.0.0 consola: 3.4.2 defu: 6.1.7 - nuxt: 4.4.4(7d1ca556969269fd1f41ac0abb31bc74) + nuxt: 4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5) nypm: 0.6.8 ofetch: 1.5.1 pathe: 2.0.3 @@ -36534,48 +36021,26 @@ snapshots: ufo: 1.6.4 vue: 3.5.40(typescript@6.0.3) optionalDependencies: - nuxt-site-config: 4.0.8(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + nuxt-site-config: 4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) zod: 4.4.3 transitivePeerDependencies: + - magic-string - magicast + - oxc-parser + - rolldown + - unplugin - vite - nuxtseo-shared@5.3.2(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76))(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76): - dependencies: - '@clack/prompts': 1.7.0 - '@nuxt/devtools-kit': 4.0.0-alpha.3(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@nuxt/schema': 4.4.8 - birpc: 4.0.0 - consola: 3.4.2 - defu: 6.1.7 - nuxt: 4.4.4(09b09526fd1ab36005775ddf9e14e3ce) - nypm: 0.6.8 - ofetch: 1.5.1 - pathe: 2.0.3 - pkg-types: 2.3.1 - radix3: 1.1.2 - sirv: 3.0.2 - std-env: 4.2.0 - ufo: 1.6.4 - vue: 3.5.40(typescript@6.0.3) - optionalDependencies: - nuxt-site-config: 4.1.1(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76) - zod: 3.25.76 - transitivePeerDependencies: - - magicast - - vite - - nuxtseo-shared@5.3.2(@nuxt/schema@4.4.8)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3): + nuxtseo-shared@5.3.2(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3): dependencies: '@clack/prompts': 1.7.0 - '@nuxt/devtools-kit': 4.0.0-alpha.3(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@nuxt/devtools-kit': 4.0.0-alpha.3(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@nuxt/schema': 4.4.8 + '@nuxt/schema': 4.5.0 birpc: 4.0.0 consola: 3.4.2 defu: 6.1.7 - nuxt: 4.4.4(7d1ca556969269fd1f41ac0abb31bc74) + nuxt: 4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5) nypm: 0.6.8 ofetch: 1.5.1 pathe: 2.0.3 @@ -36586,22 +36051,26 @@ snapshots: ufo: 1.6.4 vue: 3.5.40(typescript@6.0.3) optionalDependencies: - nuxt-site-config: 4.1.1(@nuxt/schema@4.5.0)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) + nuxt-site-config: 4.1.1(@nuxt/schema@4.5.0)(magic-string@0.30.21)(magicast@0.5.3)(nuxt@4.4.4(ac9d4ea474249d9a1d9f7a4a913f28d5))(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) zod: 4.4.3 transitivePeerDependencies: + - magic-string - magicast + - oxc-parser + - rolldown + - unplugin - vite - nuxtseo-shared@5.3.2(@nuxt/schema@4.5.0)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3))(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3): + nuxtseo-shared@5.3.2(@nuxt/schema@4.5.0)(magic-string@1.0.0)(magicast@0.5.3)(nuxt-site-config@4.1.1(@nuxt/schema@4.5.0)(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76))(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76): dependencies: '@clack/prompts': 1.7.0 - '@nuxt/devtools-kit': 4.0.0-alpha.3(magicast@0.5.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + '@nuxt/devtools-kit': 4.0.0-alpha.3(magic-string@1.0.0)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) '@nuxt/kit': 4.4.8(magicast@0.5.3) '@nuxt/schema': 4.5.0 birpc: 4.0.0 consola: 3.4.2 defu: 6.1.7 - nuxt: 4.4.4(7d1ca556969269fd1f41ac0abb31bc74) + nuxt: 4.4.4(09b09526fd1ab36005775ddf9e14e3ce) nypm: 0.6.8 ofetch: 1.5.1 pathe: 2.0.3 @@ -36612,10 +36081,14 @@ snapshots: ufo: 1.6.4 vue: 3.5.40(typescript@6.0.3) optionalDependencies: - nuxt-site-config: 4.1.1(@nuxt/schema@4.5.0)(magicast@0.5.3)(nuxt@4.4.4(7d1ca556969269fd1f41ac0abb31bc74))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@4.4.3) - zod: 4.4.3 + nuxt-site-config: 4.1.1(@nuxt/schema@4.5.0)(magic-string@1.0.0)(magicast@0.5.3)(nuxt@4.4.4(09b09526fd1ab36005775ddf9e14e3ce))(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)))(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3))(zod@3.25.76) + zod: 3.25.76 transitivePeerDependencies: + - magic-string - magicast + - oxc-parser + - rolldown + - unplugin - vite nypm@0.6.6: @@ -36865,6 +36338,29 @@ snapshots: '@oxc-parser/binding-win32-ia32-msvc': 0.140.0 '@oxc-parser/binding-win32-x64-msvc': 0.140.0 + oxc-parser@0.82.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2): + dependencies: + '@oxc-project/types': 0.82.3 + optionalDependencies: + '@oxc-parser/binding-android-arm64': 0.82.3 + '@oxc-parser/binding-darwin-arm64': 0.82.3 + '@oxc-parser/binding-darwin-x64': 0.82.3 + '@oxc-parser/binding-freebsd-x64': 0.82.3 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.82.3 + '@oxc-parser/binding-linux-arm-musleabihf': 0.82.3 + '@oxc-parser/binding-linux-arm64-gnu': 0.82.3 + '@oxc-parser/binding-linux-arm64-musl': 0.82.3 + '@oxc-parser/binding-linux-riscv64-gnu': 0.82.3 + '@oxc-parser/binding-linux-s390x-gnu': 0.82.3 + '@oxc-parser/binding-linux-x64-gnu': 0.82.3 + '@oxc-parser/binding-linux-x64-musl': 0.82.3 + '@oxc-parser/binding-wasm32-wasi': 0.82.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + '@oxc-parser/binding-win32-arm64-msvc': 0.82.3 + '@oxc-parser/binding-win32-x64-msvc': 0.82.3 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + oxc-transform@0.128.0: optionalDependencies: '@oxc-transform/binding-android-arm-eabi': 0.128.0 @@ -36909,22 +36405,6 @@ snapshots: - vite - webpack - oxc-walker@1.0.0(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): - dependencies: - magic-regexp: 0.11.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - optionalDependencies: - oxc-parser: 0.140.0 - rolldown: 1.1.5 - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rollup - - unloader - - vite - - webpack - oxc-walker@1.0.0(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: magic-regexp: 0.11.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) @@ -37165,7 +36645,7 @@ snapshots: pnpm-workspace-yaml@0.3.1: dependencies: - yaml: 2.8.4 + yaml: 2.9.0 point-in-polygon-hao@1.2.4: dependencies: @@ -37189,7 +36669,7 @@ snapshots: postcss-colormin@7.0.10(postcss@8.5.19): dependencies: '@colordx/core': 5.4.3 - browserslist: 4.28.2 + browserslist: 4.28.7 caniuse-api: 3.0.0 postcss: 8.5.19 postcss-value-parser: 4.2.0 @@ -37197,20 +36677,20 @@ snapshots: postcss-colormin@8.0.1(postcss@8.5.19): dependencies: '@colordx/core': 5.4.3 - browserslist: 4.28.2 + browserslist: 4.28.7 caniuse-api: 4.0.0 postcss: 8.5.19 postcss-value-parser: 4.2.0 postcss-convert-values@7.0.12(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 postcss: 8.5.19 postcss-value-parser: 4.2.0 postcss-convert-values@8.0.1(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 postcss: 8.5.19 postcss-value-parser: 4.2.0 @@ -37262,7 +36742,7 @@ snapshots: postcss-merge-rules@7.0.11(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 caniuse-api: 3.0.0 cssnano-utils: 5.0.3(postcss@8.5.19) postcss: 8.5.19 @@ -37270,7 +36750,7 @@ snapshots: postcss-merge-rules@8.0.1(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 caniuse-api: 4.0.0 cssnano-utils: 6.0.1(postcss@8.5.19) postcss: 8.5.19 @@ -37302,21 +36782,21 @@ snapshots: postcss-minify-params@7.0.9(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 cssnano-utils: 5.0.3(postcss@8.5.19) postcss: 8.5.19 postcss-value-parser: 4.2.0 postcss-minify-params@8.0.1(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 cssnano-utils: 6.0.1(postcss@8.5.19) postcss: 8.5.19 postcss-value-parser: 4.2.0 postcss-minify-selectors@7.1.1(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 caniuse-api: 3.0.0 cssesc: 3.0.0 postcss: 8.5.19 @@ -37324,7 +36804,7 @@ snapshots: postcss-minify-selectors@8.0.2(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 caniuse-api: 4.0.0 cssesc: 3.0.0 postcss: 8.5.19 @@ -37395,13 +36875,13 @@ snapshots: postcss-normalize-unicode@7.0.9(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 postcss: 8.5.19 postcss-value-parser: 4.2.0 postcss-normalize-unicode@8.0.1(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 postcss: 8.5.19 postcss-value-parser: 4.2.0 @@ -37439,13 +36919,13 @@ snapshots: postcss-reduce-initial@7.0.9(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 caniuse-api: 3.0.0 postcss: 8.5.19 postcss-reduce-initial@8.0.1(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 caniuse-api: 4.0.0 postcss: 8.5.19 @@ -37998,11 +37478,11 @@ snapshots: reka-ui@2.10.1(vue@3.5.40(typescript@6.0.3)): dependencies: - '@floating-ui/dom': 1.7.6 + '@floating-ui/dom': 1.8.0 '@floating-ui/vue': 1.1.11(vue@3.5.40(typescript@6.0.3)) '@internationalized/date': 3.12.1 '@internationalized/number': 3.6.6 - '@tanstack/vue-virtual': 3.13.24(vue@3.5.40(typescript@6.0.3)) + '@tanstack/vue-virtual': 3.13.32(vue@3.5.40(typescript@6.0.3)) '@vueuse/core': 14.3.0(vue@3.5.40(typescript@6.0.3)) '@vueuse/shared': 14.3.0(vue@3.5.40(typescript@6.0.3)) aria-hidden: 1.2.6 @@ -38063,29 +37543,6 @@ snapshots: transitivePeerDependencies: - supports-color - remark-mdc@3.10.0: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - flat: 6.0.1 - mdast-util-from-markdown: 2.0.3 - mdast-util-to-markdown: 2.1.2 - micromark: 4.0.2 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-types: 2.0.2 - parse-entities: 4.0.2 - scule: 1.3.0 - stringify-entities: 4.0.4 - unified: 11.0.5 - unist-util-visit: 5.1.0 - unist-util-visit-parents: 6.0.2 - yaml: 2.8.4 - transitivePeerDependencies: - - supports-color - remark-mdc@3.11.1: dependencies: '@types/mdast': 4.0.4 @@ -38333,16 +37790,6 @@ snapshots: dependencies: rollup-plugin-inject: 3.0.2 - rollup-plugin-visualizer@7.0.1(rolldown@1.1.5)(rollup@4.60.2): - dependencies: - open: 11.0.0 - picomatch: 4.0.5 - source-map: 0.7.6 - yargs: 18.0.0 - optionalDependencies: - rolldown: 1.1.5 - rollup: 4.60.2 - rollup-plugin-visualizer@7.0.1(rolldown@1.2.0)(rollup@4.60.2): dependencies: open: 11.0.0 @@ -38353,15 +37800,6 @@ snapshots: rolldown: 1.2.0 rollup: 4.60.2 - rollup-plugin-visualizer@7.0.1(rollup@4.60.2): - dependencies: - open: 11.0.0 - picomatch: 4.0.5 - source-map: 0.7.6 - yargs: 18.0.0 - optionalDependencies: - rollup: 4.60.2 - rollup-pluginutils@2.8.2: dependencies: estree-walker: 0.6.1 @@ -38446,7 +37884,7 @@ snapshots: safer-buffer@2.1.2: {} - satori@0.28.0: + satori@0.28.2: dependencies: '@shuding/opentype.js': 1.4.0-beta.0 css-background-parser: 0.1.0 @@ -38761,11 +38199,6 @@ snapshots: sisteransi@1.0.5: {} - site-config-stack@4.0.8(vue@3.5.40(typescript@6.0.3)): - dependencies: - ufo: 1.6.4 - vue: 3.5.40(typescript@6.0.3) - site-config-stack@4.1.1(vue@3.5.40(typescript@6.0.3)): dependencies: ufo: 1.6.4 @@ -39038,20 +38471,15 @@ snapshots: client-only: 0.0.1 react: 19.2.5 - styled-jsx@5.1.6(react@19.2.7): - dependencies: - client-only: 0.0.1 - react: 19.2.7 - stylehacks@7.0.11(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 postcss: 8.5.19 - postcss-selector-parser: 7.1.1 + postcss-selector-parser: 7.1.4 stylehacks@8.0.1(postcss@8.5.19): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.7 postcss: 8.5.19 postcss-selector-parser: 7.1.4 @@ -39248,8 +38676,8 @@ snapshots: tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 tinyqueue@2.0.3: {} @@ -39541,38 +38969,50 @@ snapshots: magic-string: 0.30.21 unplugin: 2.3.11 - unctx@3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): + unctx@3.0.0(magic-string@0.30.21)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): optionalDependencies: - magic-string: 1.0.0 - oxc-parser: 0.140.0 + magic-string: 0.30.21 + oxc-parser: 0.128.0 rolldown: 1.2.0 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - optional: true + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unctx@3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): + unctx@3.0.0(magic-string@0.30.21)(oxc-parser@0.135.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): optionalDependencies: - magic-string: 1.0.0 - oxc-parser: 0.140.0 + magic-string: 0.30.21 + oxc-parser: 0.135.0 rolldown: 1.2.0 unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unctx@3.0.0(oxc-parser@0.128.0)(rolldown@1.2.0): + unctx@3.0.0(magic-string@0.30.21)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): optionalDependencies: - oxc-parser: 0.128.0 + magic-string: 0.30.21 + oxc-parser: 0.140.0 rolldown: 1.2.0 + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + optional: true - unctx@3.0.0(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): + unctx@3.0.0(magic-string@0.30.21)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): optionalDependencies: - oxc-parser: 0.128.0 + magic-string: 0.30.21 + oxc-parser: 0.140.0 rolldown: 1.2.0 unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unctx@3.0.0(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): + unctx@3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): optionalDependencies: + magic-string: 1.0.0 + oxc-parser: 0.140.0 rolldown: 1.2.0 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) optional: true + unctx@3.0.0(magic-string@1.0.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))): + optionalDependencies: + magic-string: 1.0.0 + oxc-parser: 0.140.0 + rolldown: 1.2.0 + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + underscore@1.13.8: {} undici-types@5.28.4: {} @@ -39617,22 +39057,6 @@ snapshots: dependencies: pathe: 2.0.3 - unhead@3.2.1(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): - dependencies: - hookable: 6.1.1 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - optionalDependencies: - vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rolldown - - rollup - - unloader - - webpack - unhead@3.2.1(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: hookable: 6.1.1 @@ -39694,23 +39118,6 @@ snapshots: ohash: 2.0.11 unimport@5.7.0: - dependencies: - acorn: 8.16.0 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - local-pkg: 1.1.2 - magic-string: 0.30.21 - mlly: 1.8.2 - pathe: 2.0.3 - picomatch: 4.0.5 - pkg-types: 2.3.1 - scule: 1.3.0 - strip-literal: 3.1.0 - tinyglobby: 0.2.17 - unplugin: 2.3.11 - unplugin-utils: 0.3.1 - - unimport@6.2.0(esbuild@0.28.0)(oxc-parser@0.128.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: acorn: 8.17.0 escape-string-regexp: 5.0.0 @@ -39724,20 +39131,8 @@ snapshots: scule: 1.3.0 strip-literal: 3.1.0 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-utils: 0.3.1 - optionalDependencies: - oxc-parser: 0.128.0 - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rolldown - - rollup - - unloader - - vite - - webpack + unplugin: 2.3.11 + unplugin-utils: 0.3.2 unimport@6.2.0(esbuild@0.28.0)(oxc-parser@0.128.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: @@ -39768,35 +39163,6 @@ snapshots: - vite - webpack - unimport@6.3.1(esbuild@0.28.0)(oxc-parser@0.128.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): - dependencies: - acorn: 8.17.0 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - local-pkg: 1.2.1 - magic-string: 0.30.21 - mlly: 1.8.2 - pathe: 2.0.3 - picomatch: 4.0.5 - pkg-types: 2.3.1 - scule: 1.3.0 - strip-literal: 3.1.0 - tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-utils: 0.3.2 - optionalDependencies: - oxc-parser: 0.128.0 - rolldown: 1.1.5 - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rollup - - unloader - - vite - - webpack - unimport@6.3.1(esbuild@0.28.0)(oxc-parser@0.128.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: acorn: 8.17.0 @@ -39826,35 +39192,6 @@ snapshots: - vite - webpack - unimport@6.3.1(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): - dependencies: - acorn: 8.17.0 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - local-pkg: 1.2.1 - magic-string: 0.30.21 - mlly: 1.8.2 - pathe: 2.0.3 - picomatch: 4.0.5 - pkg-types: 2.3.1 - scule: 1.3.0 - strip-literal: 3.1.0 - tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-utils: 0.3.2 - optionalDependencies: - oxc-parser: 0.140.0 - rolldown: 1.1.5 - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rollup - - unloader - - vite - - webpack - unimport@6.3.1(esbuild@0.28.0)(oxc-parser@0.140.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: acorn: 8.17.0 @@ -39981,16 +39318,28 @@ snapshots: unpipe@1.0.0: {} - unplugin-auto-import@21.0.0(@nuxt/kit@4.4.8(magicast@0.5.3))(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))): + unplugin-auto-import@21.0.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))): dependencies: - local-pkg: 1.1.2 + local-pkg: 1.2.1 magic-string: 0.30.21 picomatch: 4.0.5 unimport: 5.7.0 unplugin: 2.3.11 - unplugin-utils: 0.3.1 + unplugin-utils: 0.3.2 optionalDependencies: - '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + '@vueuse/core': 14.3.0(vue@3.5.40(typescript@6.0.3)) + + unplugin-auto-import@21.0.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(@vueuse/core@14.3.0(vue@3.5.40(typescript@6.0.3))): + dependencies: + local-pkg: 1.2.1 + magic-string: 0.30.21 + picomatch: 4.0.5 + unimport: 5.7.0 + unplugin: 2.3.11 + unplugin-utils: 0.3.2 + optionalDependencies: + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) '@vueuse/core': 14.3.0(vue@3.5.40(typescript@6.0.3)) unplugin-swc@1.5.9(@swc/core@1.15.43(@swc/helpers@0.5.21))(rollup@4.60.2): @@ -40012,20 +39361,20 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.5 - unplugin-vue-components@32.1.0(@nuxt/kit@4.4.8(magicast@0.5.3))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)): + unplugin-vue-components@32.1.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)): dependencies: chokidar: 5.0.0 local-pkg: 1.2.1 magic-string: 0.30.21 mlly: 1.8.2 - obug: 2.1.1 + obug: 2.1.3 picomatch: 4.0.5 tinyglobby: 0.2.17 unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-utils: 0.3.1 + unplugin-utils: 0.3.2 vue: 3.5.40(typescript@6.0.3) optionalDependencies: - '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.128.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -40037,29 +39386,43 @@ snapshots: - vite - webpack - unplugin@2.3.11: + unplugin-vue-components@32.1.0(@nuxt/kit@4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))))(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)): dependencies: - '@jridgewell/remapping': 2.3.5 - acorn: 8.17.0 + chokidar: 5.0.0 + local-pkg: 1.2.1 + magic-string: 0.30.21 + mlly: 1.8.2 + obug: 2.1.3 picomatch: 4.0.5 - webpack-virtual-modules: 0.6.2 + tinyglobby: 0.2.17 + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unplugin-utils: 0.3.2 + vue: 3.5.40(typescript@6.0.3) + optionalDependencies: + '@nuxt/kit': 4.5.0(magic-string@0.30.21)(magicast@0.5.3)(oxc-parser@0.140.0)(rolldown@1.2.0)(unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))) + transitivePeerDependencies: + - '@farmfe/core' + - '@rspack/core' + - bun-types-no-globals + - esbuild + - rolldown + - rollup + - unloader + - vite + - webpack - unplugin@3.0.0: + unplugin@2.3.11: dependencies: '@jridgewell/remapping': 2.3.5 + acorn: 8.17.0 picomatch: 4.0.5 webpack-virtual-modules: 0.6.2 - unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): + unplugin@3.0.0: dependencies: '@jridgewell/remapping': 2.3.5 picomatch: 4.0.5 webpack-virtual-modules: 0.6.2 - optionalDependencies: - esbuild: 0.28.0 - rolldown: 1.1.5 - rollup: 4.60.2 - vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) unplugin@3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)): dependencies: @@ -40165,12 +39528,6 @@ snapshots: lru-cache: 11.3.5 ofetch: 2.0.0-alpha.3 - unstorage@2.0.0-alpha.7(db0@0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)))(ioredis@5.10.1)(ofetch@2.0.0-alpha.3): - optionalDependencies: - db0: 0.3.4(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(better-sqlite3@12.11.1)(drizzle-orm@0.45.2(@cloudflare/workers-types@4.20260503.1)(@electric-sql/pglite@0.5.4)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1)(@types/better-sqlite3@7.6.13)(better-sqlite3@12.11.1)(bun-types@1.3.14)(kysely@0.28.17)(postgres@3.4.9)) - ioredis: 5.10.1 - ofetch: 2.0.0-alpha.3 - untun@0.1.3: dependencies: citty: 0.1.6 @@ -40484,7 +39841,7 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.13.0(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@5.9.3)(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.2.7(typescript@5.9.3)): + vite-plugin-checker@0.13.0(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@6.0.3)(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.3.7(typescript@6.0.3)): dependencies: '@babel/code-frame': 7.29.0 chokidar: 4.0.3 @@ -40499,47 +39856,45 @@ snapshots: optionalDependencies: eslint: 9.39.5(jiti@2.7.0) optionator: 0.9.4 - typescript: 5.9.3 - vue-tsc: 3.2.7(typescript@5.9.3) + typescript: 6.0.3 + vue-tsc: 3.3.7(typescript@6.0.3) - vite-plugin-checker@0.13.0(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@6.0.3)(vite@7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.3.7(typescript@6.0.3)): + vite-plugin-checker@0.14.4(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@5.9.3)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.3.7(typescript@5.9.3)): dependencies: - '@babel/code-frame': 7.29.0 - chokidar: 4.0.3 + '@babel/code-frame': 7.29.7 + chokidar: 5.0.0 npm-run-path: 6.0.0 picocolors: 1.1.1 picomatch: 4.0.5 proper-lockfile: 4.1.2 tiny-invariant: 1.3.3 - tinyglobby: 0.2.17 - vite: 7.3.2(@types/node@25.9.5)(jiti@2.7.0)(lightningcss@1.32.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vscode-uri: 3.1.0 + vite: 8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) optionalDependencies: eslint: 9.39.5(jiti@2.7.0) optionator: 0.9.4 - typescript: 6.0.3 - vue-tsc: 3.3.7(typescript@6.0.3) + typescript: 5.9.3 + vue-tsc: 3.3.7(typescript@5.9.3) + optional: true - vite-plugin-checker@0.14.4(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@5.9.3)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.3.7(typescript@5.9.3)): + vite-plugin-checker@0.14.4(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@5.9.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.2.7(typescript@5.9.3)): dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 chokidar: 5.0.0 npm-run-path: 6.0.0 picocolors: 1.1.1 picomatch: 4.0.5 proper-lockfile: 4.1.2 tiny-invariant: 1.3.3 - vite: 8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) optionalDependencies: eslint: 9.39.5(jiti@2.7.0) optionator: 0.9.4 typescript: 5.9.3 - vue-tsc: 3.3.7(typescript@5.9.3) - optional: true + vue-tsc: 3.2.7(typescript@5.9.3) vite-plugin-checker@0.14.4(eslint@9.39.5(jiti@2.7.0))(optionator@0.9.4)(typescript@6.0.3)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue-tsc@3.2.7(typescript@6.0.3)): dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 chokidar: 5.0.0 npm-run-path: 6.0.0 picocolors: 1.1.1 @@ -40664,7 +40019,7 @@ snapshots: vue: 3.5.40(typescript@5.9.3) optional: true - vite-plugin-vue-tracer@1.3.0(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3)): + vite-plugin-vue-tracer@1.3.0(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.1.0 @@ -40672,9 +40027,9 @@ snapshots: pathe: 2.0.3 source-map-js: 1.2.1 vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vue: 3.5.33(typescript@5.9.3) + vue: 3.5.33(typescript@6.0.3) - vite-plugin-vue-tracer@1.3.0(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)): + vite-plugin-vue-tracer@1.3.0(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.1.0 @@ -40682,7 +40037,7 @@ snapshots: pathe: 2.0.3 source-map-js: 1.2.1 vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) - vue: 3.5.33(typescript@6.0.3) + vue: 3.5.40(typescript@5.9.3) vite-plugin-vue-tracer@1.3.0(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)): dependencies: @@ -41044,105 +40399,6 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.40(typescript@6.0.3) - vue-router@5.0.6(@vue/compiler-sfc@3.5.33)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)): - dependencies: - '@babel/generator': 7.29.1 - '@vue-macros/common': 3.1.2(vue@3.5.33(typescript@6.0.3)) - '@vue/devtools-api': 8.1.1 - ast-walker-scope: 0.8.3 - chokidar: 5.0.0 - json5: 2.2.3 - local-pkg: 1.1.2 - magic-string: 0.30.21 - mlly: 1.8.2 - muggle-string: 0.4.1 - pathe: 2.0.3 - picomatch: 4.0.5 - scule: 1.3.0 - tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-utils: 0.3.1 - vue: 3.5.33(typescript@6.0.3) - yaml: 2.8.4 - optionalDependencies: - '@vue/compiler-sfc': 3.5.33 - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rolldown - - rollup - - unloader - - vite - - webpack - - vue-router@5.0.6(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)): - dependencies: - '@babel/generator': 7.29.1 - '@vue-macros/common': 3.1.2(vue@3.5.33(typescript@6.0.3)) - '@vue/devtools-api': 8.1.1 - ast-walker-scope: 0.8.3 - chokidar: 5.0.0 - json5: 2.2.3 - local-pkg: 1.1.2 - magic-string: 0.30.21 - mlly: 1.8.2 - muggle-string: 0.4.1 - pathe: 2.0.3 - picomatch: 4.0.5 - scule: 1.3.0 - tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.1.5)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-utils: 0.3.1 - vue: 3.5.33(typescript@6.0.3) - yaml: 2.8.4 - optionalDependencies: - '@vue/compiler-sfc': 3.5.40 - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rolldown - - rollup - - unloader - - vite - - webpack - - vue-router@5.0.6(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@5.9.3)): - dependencies: - '@babel/generator': 7.29.1 - '@vue-macros/common': 3.1.2(vue@3.5.33(typescript@5.9.3)) - '@vue/devtools-api': 8.1.1 - ast-walker-scope: 0.8.3 - chokidar: 5.0.0 - json5: 2.2.3 - local-pkg: 1.1.2 - magic-string: 0.30.21 - mlly: 1.8.2 - muggle-string: 0.4.1 - pathe: 2.0.3 - picomatch: 4.0.5 - scule: 1.3.0 - tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-utils: 0.3.1 - vue: 3.5.33(typescript@5.9.3) - yaml: 2.8.4 - optionalDependencies: - '@vue/compiler-sfc': 3.5.40 - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rolldown - - rollup - - unloader - - vite - - webpack - vue-router@5.0.6(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.33(typescript@6.0.3)): dependencies: '@babel/generator': 7.29.1 @@ -41176,10 +40432,10 @@ snapshots: - vite - webpack - vue-router@5.1.0(@vue/compiler-sfc@3.5.33)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)): + vue-router@5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)): dependencies: '@babel/generator': 8.0.0 - '@vue-macros/common': 3.1.2(vue@3.5.40(typescript@6.0.3)) + '@vue-macros/common': 3.1.4(vue@3.5.40(typescript@5.9.3)) '@vue/devtools-api': 8.1.5 ast-walker-scope: 0.9.0 chokidar: 5.0.0 @@ -41188,17 +40444,18 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 muggle-string: 0.4.1 + nostics: 1.2.0 pathe: 2.0.3 picomatch: 4.0.5 scule: 1.3.0 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) - unplugin-utils: 0.3.1 - vue: 3.5.40(typescript@6.0.3) + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unplugin-utils: 0.3.2 + vue: 3.5.40(typescript@5.9.3) yaml: 2.9.0 optionalDependencies: - '@vue/compiler-sfc': 3.5.33 - vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + '@vue/compiler-sfc': 3.5.40 + vite: 8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -41208,8 +40465,9 @@ snapshots: - rollup - unloader - webpack + optional: true - vue-router@5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)): + vue-router@5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)): dependencies: '@babel/generator': 8.0.0 '@vue-macros/common': 3.1.4(vue@3.5.40(typescript@5.9.3)) @@ -41226,13 +40484,13 @@ snapshots: picomatch: 4.0.5 scule: 1.3.0 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0)) unplugin-utils: 0.3.2 vue: 3.5.40(typescript@5.9.3) yaml: 2.9.0 optionalDependencies: '@vue/compiler-sfc': 3.5.40 - vite: 8.1.4(@types/node@22.19.17)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -41242,7 +40500,6 @@ snapshots: - rollup - unloader - webpack - optional: true vue-router@5.2.0(@vue/compiler-sfc@3.5.40)(esbuild@0.28.0)(rolldown@1.2.0)(rollup@4.60.2)(vite@8.1.4(@types/node@25.9.5)(esbuild@0.28.0)(jiti@2.7.0)(terser@5.46.2)(tsx@4.23.1)(yaml@2.9.0))(vue@3.5.40(typescript@6.0.3)): dependencies: @@ -41312,16 +40569,6 @@ snapshots: '@vue/language-core': 3.3.7 typescript: 6.0.3 - vue@3.5.33(typescript@5.9.3): - dependencies: - '@vue/compiler-dom': 3.5.33 - '@vue/compiler-sfc': 3.5.33 - '@vue/runtime-dom': 3.5.33 - '@vue/server-renderer': 3.5.33(vue@3.5.33(typescript@5.9.3)) - '@vue/shared': 3.5.33 - optionalDependencies: - typescript: 5.9.3 - vue@3.5.33(typescript@6.0.3): dependencies: '@vue/compiler-dom': 3.5.33 diff --git a/turbo.json b/turbo.json index 07721d3e..cfa3ca4c 100644 --- a/turbo.json +++ b/turbo.json @@ -24,7 +24,7 @@ ], "tasks": { "build": { - "dependsOn": ["^build"], + "dependsOn": ["^build", "dev:prepare"], "outputs": [ "dist/**", ".nuxt/**", @@ -54,7 +54,7 @@ ] }, "dev:prepare": { - "dependsOn": ["^dev:prepare"], + "dependsOn": ["^dev:prepare", "^build"], "outputs": ["dist/**", ".nuxt/**", ".output/**"], "inputs": ["$TURBO_DEFAULT$", ".env", ".env.*"] },