From 0b19b1708627ab2a8847d3c37dcd41049f2a1254 Mon Sep 17 00:00:00 2001 From: Murat Sari Date: Mon, 1 Jun 2026 16:28:19 +0200 Subject: [PATCH 1/7] build: update ng --- .../skills/copilotkit-demo-parity/SKILL.md | 149 + .agents/skills/git-hooks/SKILL.md | 72 + .codex/config.toml | 9 + examples/v2/angular/demo/angular.json | 30 +- examples/v2/angular/demo/package.json | 27 +- .../v2/angular/demo/src/app/app.component.ts | 27 +- .../wildcard-tool-render.component.ts | 6 +- .../custom-chat-input.component.ts | 20 +- .../custom-input-chat.component.ts | 6 +- .../routes/default/default-chat.component.ts | 6 +- .../headless/headless-chat.component.ts | 39 +- .../ukg-port/co-pilot-port.component.ts | 2 +- examples/v2/angular/demo/src/main.ts | 9 +- examples/v2/angular/demo/tsconfig.json | 3 +- examples/v2/angular/storybook/package.json | 3 +- examples/v2/react/demo/tsconfig.json | 25 +- lefthook.yml | 9 +- migrations.json | 36 + package.json | 2 +- packages/angular/package.json | 30 +- pnpm-lock.yaml | 7834 ++++++++++++----- 21 files changed, 6120 insertions(+), 2224 deletions(-) create mode 100644 .agents/skills/copilotkit-demo-parity/SKILL.md create mode 100644 .agents/skills/git-hooks/SKILL.md create mode 100644 .codex/config.toml create mode 100644 migrations.json diff --git a/.agents/skills/copilotkit-demo-parity/SKILL.md b/.agents/skills/copilotkit-demo-parity/SKILL.md new file mode 100644 index 00000000000..e89533c4532 --- /dev/null +++ b/.agents/skills/copilotkit-demo-parity/SKILL.md @@ -0,0 +1,149 @@ +--- +name: copilotkit-demo-parity +description: Keeps examples/integrations/* demos aligned to the north-star (langgraph-python). Use when the user says "sync demos", "sync integrations", "port to north-star", "align integration demos", "parity check", or when working inside examples/integrations/ and tracked files diverge. Drives the pnpm parity:sync / parity:verify commands and handles the manual-merge zones (agent code, api route, Dockerfile). +metadata: + internal: true +--- + +# CopilotKit demo parity + +Keeps the three (soon more) integration demos under `examples/integrations/` +aligned. `langgraph-python` is north-star; every other entry is an instance +that tracks it via `examples/integrations/_parity/manifest.json`. + +## When this skill fires + +- User says "sync demos", "align integrations", "port to north-star", + "parity check", "run parity sync". +- User edits a file under `examples/integrations/langgraph-python/**` that is + listed in `manifest.json` → tracked.verbatimFiles. +- User is about to add a new integration under `examples/integrations/`. +- `pnpm parity:verify` is failing locally or in CI. + +## Ground truth + +Read these first before making any parity decision — they override +anything memorized: + +- `examples/integrations/_parity/manifest.json` — what is tracked, what is + allowed to diverge, per-instance overrides. +- `examples/integrations/_parity/canonical/PROMPT.md` — the canonical + system prompt. Every agent inlines this as a string literal in source. + The verifier greps the canonical first line against each agent's source. +- `examples/integrations/_parity/README.md` — human-facing how-to. + +## Procedure: sync from north-star to instance(s) + +Use when north-star changed and instances need to catch up, OR when a new +instance is being bootstrapped. + +1. **Confirm the north-star change is intentional.** If the user changed + a file under `langgraph-python/`, ask whether it should propagate. + Changes to `agent/` are never auto-propagated. +2. **Dry-run first.** + ```bash + pnpm parity:sync --target= --dry-run + ``` + Read the report: file count, rewritten package.json keys, prompt update. +3. **Apply.** + ```bash + pnpm parity:sync --target= + # or --all to sync every instance + ``` +4. **Resolve manual-merge zones.** Sync does NOT touch: + - `agent/**` — port agent code by hand. See `tracked.agentSurface.toolNames` + and `stateKeys` in `manifest.json` for what must be present. + - `src/app/api/copilotkit/**` — api route differs across instances + (north-star=LangGraphAgent, Docker instances=HttpAgent). + - `Dockerfile`, `docker/Dockerfile.agent`, `serve.py`, `scripts/**` — + language-specific. Each instance keeps its own. +5. **Verify.** + ```bash + pnpm parity:verify --target= + ``` + Exit 0 = green. Exit 1 = unresolved drift; fix until green. + +## Procedure: verify (CI-equivalent) + +```bash +pnpm parity:verify # all instances +pnpm parity:verify --target= +pnpm parity:verify --json # machine-readable +``` + +Output kinds: + +- `verbatim-file` — byte-compare against north-star. +- `package-json` — tracked key mismatch vs expected value. +- `prompt` — canonical prompt first line not found in instance agent + source. Instance agent needs the prompt inlined as a string literal. +- `agent-tool` — tool name from manifest not found in instance agent + source. Usually means a tool was renamed or dropped; update manifest + OR port the tool. +- `agent-state` — state key from manifest not found (warn only). + +## Procedure: add a new instance + +1. Create the demo dir under `examples/integrations//` with the + usual Next.js frontend root and an `agent/` subdir. +2. Add an entry to `manifest.json` → `instances`: + ```json + "": { + "role": "instance", + "agent": { "language": "...", "runtime": "..." }, + "allowedDivergence": [ + "agent/**", + "src/app/api/copilotkit/**", + "Dockerfile", + "docker/Dockerfile.agent", + "serve.py", + "scripts/**" + ], + "packageJsonOverrides": { + "scripts.dev:agent": "", + "scripts.install:agent": "" + } + } + ``` +3. `pnpm parity:sync --target=` +4. Port agent code (tool implementations, state schema, prompt loading). + Agent must read prompt from `agent/PROMPT.md` at startup. +5. `pnpm parity:verify --target=` until green. + +## Procedure: change the canonical prompt + +1. Edit `examples/integrations/_parity/canonical/PROMPT.md`. +2. `pnpm parity:sync --all` — writes the new prompt to every instance's + `agent/PROMPT.md`. +3. If the prompt change requires new tools or state keys, update + `manifest.json` → `tracked.agentSurface` to match, then port each + instance's agent. + +## Procedure: change the tracked surface + +To track a new file or key: + +1. Edit `manifest.json` → `tracked.verbatimFiles` or `tracked.packageJsonPaths`. +2. Run `pnpm parity:verify` — instances will flag as drifted until synced. +3. `pnpm parity:sync --all` to apply. + +To stop tracking something, remove it from `manifest.json`. The verifier +and sync stop touching it. Any drift that already exists stays. + +## Red flags + +| Signal | What it means | Do instead | +| ----------------------------------------------- | --------------------- | ----------------------------------------------- | +| "Just copy the file manually" | Bypasses the manifest | Add to `tracked.verbatimFiles` then sync | +| "Add a try/catch so verify doesn't fail" | Silencing drift | Resolve the drift or declare divergence | +| "Move this into `allowedDivergence` to unblock" | Scope creep | Only add to divergence with explicit reason | +| `pnpm parity:sync` on north-star directly | Overwrites canonical | Sync is instance-only; script refuses | +| Agent code copied between languages | Doesn't work | Port by hand; `tracked.agentSurface` names what | + +## Related skills + +- `copilotkit-integrations` — framework-specific wiring (LangGraph, CrewAI, + Mastra, etc.) when bootstrapping a new instance. +- `copilotkit-dev-workflow` — monorepo conventions, Nx, commit format. +- `docker-ci-safety` — Dockerfile safety when editing per-instance + container builds. diff --git a/.agents/skills/git-hooks/SKILL.md b/.agents/skills/git-hooks/SKILL.md new file mode 100644 index 00000000000..5786565f94b --- /dev/null +++ b/.agents/skills/git-hooks/SKILL.md @@ -0,0 +1,72 @@ +--- +name: git-hooks +description: CopilotKit pre-commit hook reference. Load automatically when the user mentions git hooks failing, pre-commit errors, lefthook issues, commit blocked, or "hooks don't work", or when user wants to commit/push anything Contains the full hook topology so debugging skips discovery and goes straight to diagnosis. +metadata: + internal: true +--- + +# CopilotKit Git Hooks Reference + +## Hook runner: Lefthook + +The repo uses **lefthook** (not husky). The git hook at `.git/hooks/pre-commit` calls lefthook, which reads `lefthook.yml` at the repo root. + +Config file: `lefthook.yml` + +## Pre-commit commands (run in parallel) + +``` +sync-lockfile lint-fix test-and-check-packages +``` + +### 1. `sync-lockfile` + +- **Trigger**: only when `**/package.json` files are staged +- **Command**: `pnpm i --lockfile-only` +- **`stage_fixed: true`**: auto-stages the updated lockfile +- **Fails if**: pnpm can't resolve dependencies + +### 2. `lint-fix` + +- **Command**: `pnpm run lint --fix && pnpm run format` +- Expands to: `nx run-many -t lint --projects=packages/**` then `prettier --write "**/*.{ts,tsx,md}"` +- **`stage_fixed: true`**: auto-stages any files it fixes +- **Fails if**: lint errors that `--fix` can't auto-correct + +### 3. `test-and-check-packages` ← most common failure + +- **Command**: `pnpm run test && pnpm run check:packages` +- Expands to: + 1. `nx run-many -t test` — runs all unit tests across all packages + 2. `nx run-many -t publint,attw --projects=packages/**` — checks package exports and types are correctly declared +- **`stage_fixed: false`** — does NOT auto-stage anything +- **Env**: `NX_TUI: "false"` (plain output, no interactive UI) +- **Fails if**: + - Any test fails + - `publint` finds malformed `package.json` exports + - `attw` (Are the Types Wrong?) finds type declaration issues + +## Diagnosing a failure + +The summary shows a boxing glove 🥊 for the failing command. +The error itself does not show directly. +To see the actual error: + +```bash +# Run only the failing command manually: +pnpm run test # if test-and-check-packages failed +pnpm run check:packages # isolate publint/attw from test failures +nx run-many -t test --projects= # narrow to a specific package + +# Re-run lefthook manually (without committing): +pnpm lefthook run pre-commit +``` + +## npm scripts involved + +| Script | Expands to | +| ------------------------- | ---------------------------------------------------- | +| `pnpm run lint` | `nx run-many -t lint --projects=packages/**` | +| `pnpm run format` | `prettier --write "**/*.{ts,tsx,md}"` | +| `pnpm run test` | `nx run-many -t test` | +| `pnpm run check:packages` | `nx run-many -t publint,attw --projects=packages/**` | diff --git a/.codex/config.toml b/.codex/config.toml new file mode 100644 index 00000000000..e7951324062 --- /dev/null +++ b/.codex/config.toml @@ -0,0 +1,9 @@ +[mcp_servers.copilotkit-docs] +url = "https://mcp.copilotkit.ai/mcp" + +[mcp_servers.nx-mcp] +command = "npx" +args = [ + "nx", + "mcp", +] diff --git a/examples/v2/angular/demo/angular.json b/examples/v2/angular/demo/angular.json index 0e6a6e9c52e..7471fc2eeb7 100644 --- a/examples/v2/angular/demo/angular.json +++ b/examples/v2/angular/demo/angular.json @@ -8,7 +8,7 @@ "sourceRoot": "src", "architect": { "build": { - "builder": "@angular-devkit/build-angular:application", + "builder": "@angular/build:application", "options": { "outputPath": "dist/angular-demo", "index": "src/index.html", @@ -20,7 +20,7 @@ } }, "serve": { - "builder": "@angular-devkit/build-angular:dev-server", + "builder": "@angular/build:dev-server", "options": { "buildTarget": "angular-demo:build" } @@ -30,5 +30,31 @@ }, "cli": { "analytics": "980356bd-241e-4f9c-91f9-6c7714a97a43" + }, + "schematics": { + "@schematics/angular:component": { + "type": "component" + }, + "@schematics/angular:directive": { + "type": "directive" + }, + "@schematics/angular:service": { + "type": "service" + }, + "@schematics/angular:guard": { + "typeSeparator": "." + }, + "@schematics/angular:interceptor": { + "typeSeparator": "." + }, + "@schematics/angular:module": { + "typeSeparator": "." + }, + "@schematics/angular:pipe": { + "typeSeparator": "." + }, + "@schematics/angular:resolver": { + "typeSeparator": "." + } } } diff --git a/examples/v2/angular/demo/package.json b/examples/v2/angular/demo/package.json index a8df052bdd5..dcd613370b0 100644 --- a/examples/v2/angular/demo/package.json +++ b/examples/v2/angular/demo/package.json @@ -15,14 +15,14 @@ "@ag-ui/core": "0.0.51", "@ag-ui/encoder": "0.0.51", "@ag-ui/proto": "0.0.51", - "@angular/animations": "^19.0.0", - "@angular/cdk": "^19.0.0", - "@angular/common": "^19.0.0", - "@angular/compiler": "^19.0.0", - "@angular/core": "^19.0.0", - "@angular/forms": "^19.0.0", - "@angular/platform-browser": "^19.0.0", - "@angular/platform-browser-dynamic": "^19.0.0", + "@angular/animations": "^21.2.15", + "@angular/cdk": "^21.2.13", + "@angular/common": "^21.2.15", + "@angular/compiler": "^21.2.15", + "@angular/core": "^21.2.15", + "@angular/forms": "^21.2.15", + "@angular/platform-browser": "^21.2.15", + "@angular/platform-browser-dynamic": "^21.2.15", "@copilotkit/angular": "link:../../../../packages/angular", "@copilotkit/web-inspector": "workspace:*", "@copilotkitnext/angular": "workspace:*", @@ -36,15 +36,14 @@ "untruncate-json": "^0.0.1", "uuid": "^11.1.0", "zod": "^3.25.75", - "zod-to-json-schema": "^3.24.6", - "zone.js": "^0.14.0" + "zod-to-json-schema": "^3.24.6" }, "devDependencies": { - "@angular-devkit/build-angular": "^19.0.0", - "@angular/cli": "^19.0.0", - "@angular/compiler-cli": "^19.0.0", + "@angular/build": "^21.2.13", + "@angular/cli": "^21.2.13", + "@angular/compiler-cli": "^21.2.15", "nodemon": "^3.1.7", "rimraf": "^6.0.1", - "typescript": "5.8.2" + "typescript": "5.9.3" } } diff --git a/examples/v2/angular/demo/src/app/app.component.ts b/examples/v2/angular/demo/src/app/app.component.ts index 2aecb06a83d..f6eb024984a 100644 --- a/examples/v2/angular/demo/src/app/app.component.ts +++ b/examples/v2/angular/demo/src/app/app.component.ts @@ -1,5 +1,5 @@ import { Component } from "@angular/core"; -import { CommonModule } from "@angular/common"; + import { HeadlessChatComponent } from "./routes/headless/headless-chat.component"; import { CustomInputChatComponent } from "./routes/custom-input/custom-input-chat.component"; import { DefaultChatComponent } from "./routes/default/default-chat.component"; @@ -9,7 +9,6 @@ import { CoPilotPortComponent } from "./routes/ukg-port/co-pilot-port.component" selector: "app-root", standalone: true, imports: [ - CommonModule, HeadlessChatComponent, CustomInputChatComponent, DefaultChatComponent, @@ -26,18 +25,18 @@ import { CoPilotPortComponent } from "./routes/ukg-port/co-pilot-port.component" display: block; " > - - - - - - - - - - - - + @if (isHeadless) { + + } + @if (isCustomInput) { + + } + @if (!isHeadless && !isCustomInput && !isUkgPort) { + + } + @if (isUkgPort) { + + } `, }) diff --git a/examples/v2/angular/demo/src/app/components/wildcard-tool-render.component.ts b/examples/v2/angular/demo/src/app/components/wildcard-tool-render.component.ts index faff385e46e..84fe1a94112 100644 --- a/examples/v2/angular/demo/src/app/components/wildcard-tool-render.component.ts +++ b/examples/v2/angular/demo/src/app/components/wildcard-tool-render.component.ts @@ -1,11 +1,11 @@ import { Component, input, Input } from "@angular/core"; -import { CommonModule } from "@angular/common"; -import { AngularToolCall, ToolRenderer } from "@copilotkit/angular"; + +import type { AngularToolCall, ToolRenderer } from "@copilotkit/angular"; @Component({ selector: "wildcard-tool-render", standalone: true, - imports: [CommonModule], + imports: [], template: `
@@ -48,7 +49,7 @@ export class RequireApprovalComponent implements HumanInTheLoopToolRenderer { @Component({ selector: "headless-chat", standalone: true, - imports: [CommonModule, FormsModule, RenderToolCalls], + imports: [FormsModule, RenderToolCalls, TitleCasePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: `
-
-
- {{ m.role | titlecase }} + @for (m of messages(); track m) { +
+
+ {{ m.role | titlecase }} +
+
{{ m.content }}
+ @if (m.role === "assistant") { + + }
-
{{ m.content }}
- - - -
-
- Thinking… -
+ } + @if (isRunning()) { +
Thinking…
+ }
- +
`, changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/examples/v2/angular/demo/src/main.ts b/examples/v2/angular/demo/src/main.ts index 39cebc4b4a4..83313b4bf75 100644 --- a/examples/v2/angular/demo/src/main.ts +++ b/examples/v2/angular/demo/src/main.ts @@ -1,8 +1,9 @@ -import "zone.js"; +import { provideZonelessChangeDetection } from "@angular/core"; import { bootstrapApplication } from "@angular/platform-browser"; import { AppComponent } from "./app/app.component"; import { appConfig } from "./app/app.config"; -bootstrapApplication(AppComponent, appConfig).catch((err) => - console.error(err), -); +bootstrapApplication(AppComponent, { + ...appConfig, + providers: [provideZonelessChangeDetection(), ...appConfig.providers], +}).catch((err) => console.error(err)); diff --git a/examples/v2/angular/demo/tsconfig.json b/examples/v2/angular/demo/tsconfig.json index a36687b142f..b269f275b76 100644 --- a/examples/v2/angular/demo/tsconfig.json +++ b/examples/v2/angular/demo/tsconfig.json @@ -2,8 +2,9 @@ "compilerOptions": { "target": "ES2022", "useDefineForClassFields": false, + "esModuleInterop": true, "module": "ES2020", - "moduleResolution": "Node", + "moduleResolution": "bundler", "strict": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, diff --git a/examples/v2/angular/storybook/package.json b/examples/v2/angular/storybook/package.json index f4037ddb444..0113b5f333b 100644 --- a/examples/v2/angular/storybook/package.json +++ b/examples/v2/angular/storybook/package.json @@ -20,8 +20,7 @@ "@copilotkit/core": "workspace:^", "rxjs": "^7.8.1", "tslib": "^2.8.1", - "zod": "^3.25.75", - "zone.js": "^0.14.0" + "zod": "^3.25.75" }, "devDependencies": { "@angular-devkit/build-angular": "^19.0.0", diff --git a/examples/v2/react/demo/tsconfig.json b/examples/v2/react/demo/tsconfig.json index 672291c4237..b28a6246117 100644 --- a/examples/v2/react/demo/tsconfig.json +++ b/examples/v2/react/demo/tsconfig.json @@ -1,7 +1,11 @@ { "compilerOptions": { "target": "ES2017", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -11,7 +15,7 @@ "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "preserve", + "jsx": "react-jsx", "incremental": true, "plugins": [ { @@ -19,9 +23,20 @@ } ], "paths": { - "@/*": ["./src/*"] + "@/*": [ + "./src/*" + ] } }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules", "mcp-apps"] + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + ".next/dev/types/**/*.ts" + ], + "exclude": [ + "node_modules", + "mcp-apps" + ] } diff --git a/lefthook.yml b/lefthook.yml index a8bd9f88c72..435001882f0 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -85,7 +85,14 @@ pre-commit: tags: test-packages env: NX_TUI: "false" - run: pnpm run test && pnpm run check:packages + run: | + set -- {staged_files} + if [ "$#" -gt 0 ]; then + projects=$(printf '%s\n' "$@" | pnpm nx show projects --affected --projects 'packages/*' --stdin --sep=,) + if [ -n "$projects" ]; then + pnpm nx run-many -t test,publint,attw --projects="$projects" --outputStyle=static + fi + fi check-plugin-skills: tags: plugin-skills diff --git a/migrations.json b/migrations.json new file mode 100644 index 00000000000..29345099a10 --- /dev/null +++ b/migrations.json @@ -0,0 +1,36 @@ +{ + "migrations": [ + { + "cli": "nx", + "version": "22.6.0-beta.10", + "description": "Adds .claude/worktrees to .gitignore", + "implementation": "./dist/src/migrations/update-22-6-0/add-claude-worktrees-to-git-ignore", + "package": "nx", + "name": "22-6-1-add-claude-worktrees-to-git-ignore" + }, + { + "cli": "nx", + "version": "22.7.0-beta.0", + "description": "Adds .nx/polygraph to .gitignore", + "implementation": "./dist/src/migrations/update-22-7-0/add-polygraph-to-git-ignore", + "package": "nx", + "name": "22-7-0-add-polygraph-to-git-ignore" + }, + { + "cli": "nx", + "version": "22.6.0-rc.0", + "description": "Adds .claude/settings.local.json to .gitignore", + "implementation": "./dist/src/migrations/update-17-3-0/update-nxw", + "package": "nx", + "name": "22-6-0-add-claude-settings-local-to-git-ignore" + }, + { + "cli": "nx", + "version": "22.7.0-beta.0", + "description": "Adds .nx/self-healing to .gitignore", + "implementation": "./dist/src/migrations/update-22-2-0/add-self-healing-to-gitignore", + "package": "nx", + "name": "22-7-0-add-self-healing-to-gitignore" + } + ] +} \ No newline at end of file diff --git a/package.json b/package.json index 52ee604bb7b..72a396e5afc 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "jscodeshift": "^17.3.0", "lefthook": "^2.1.1", "npm": "^10.7.0", - "nx": "^22.5.0", + "nx": "22.7.5", "oxfmt": "^0.36.0", "oxlint": "^1.51.0", "publint": "^0.3.17", diff --git a/packages/angular/package.json b/packages/angular/package.json index 0d44dae11c8..d9c21224829 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -11,9 +11,10 @@ "type": "module", "main": "dist/fesm2022/copilotkitnext-angular.mjs", "module": "dist/fesm2022/copilotkitnext-angular.mjs", - "types": "dist/index.d.ts", + "types": "dist/types/copilotkitnext-angular.d.ts", "exports": { ".": { + "types": "./dist/types/copilotkitnext-angular.d.ts", "import": "./dist/fesm2022/copilotkitnext-angular.mjs" }, "./styles.css": "./dist/styles.css" @@ -49,13 +50,13 @@ "devDependencies": { "@analogjs/vite-plugin-angular": "^1.20.2", "@analogjs/vitest-angular": "^1.20.2", - "@angular/cdk": "^19.0.0", - "@angular/common": "^19.0.0", - "@angular/compiler": "^19.0.0", - "@angular/compiler-cli": "^19.0.0", - "@angular/core": "^19.0.0", - "@angular/platform-browser": "^19.0.0", - "@angular/platform-browser-dynamic": "^19.0.0", + "@angular/cdk": "^21.2.13", + "@angular/common": "^21.2.15", + "@angular/compiler": "^21.2.15", + "@angular/compiler-cli": "^21.2.15", + "@angular/core": "^21.2.15", + "@angular/platform-browser": "^21.2.15", + "@angular/platform-browser-dynamic": "^21.2.15", "@copilotkit/typescript-config": "workspace:*", "@lucide/build-icons": "^1.1.0", "@tailwindcss/cli": "^4.1.11", @@ -67,7 +68,7 @@ "autoprefixer": "^10.4.16", "concurrently": "^9.1.0", "jsdom": "^24.0.0", - "ng-packagr": "^19.0.0", + "ng-packagr": "^21.2.3", "postcss": "^8.4.31", "reflect-metadata": "^0.2.2", "rimraf": "^6.0.1", @@ -75,16 +76,15 @@ "tailwindcss": "^4.0.8", "tslib": "^2.8.1", "tw-animate-css": "^1.3.5", - "typescript": "5.8.2", + "typescript": "5.9.3", "vite": "^7.1.4", "vitest": "^3.2.4", - "zod": "^3.22.4", - "zone.js": "^0.14.0" + "zod": "^3.22.4" }, "peerDependencies": { - "@angular/cdk": "^19.0.0", - "@angular/common": "^19.0.0", - "@angular/core": "^19.0.0", + "@angular/cdk": "^21.0.0", + "@angular/common": "^21.0.0", + "@angular/core": "^21.0.0", "rxjs": "^7.8.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f043c07b28b..3ee97201500 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -98,7 +98,7 @@ importers: version: 12.1.0(size-limit@12.1.0(jiti@2.7.0)) '@storybook/addon-docs': specifier: ^10.2.10 - version: 10.3.5(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + version: 10.3.5(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) '@storybook/addon-webpack5-compiler-swc': specifier: ^4.0.2 version: 4.0.2(@swc/helpers@0.5.18)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) @@ -131,7 +131,7 @@ importers: version: 0.13.0 jscodeshift: specifier: ^17.3.0 - version: 17.3.0(@babel/preset-env@7.28.5(@babel/core@7.28.5)) + version: 17.3.0(@babel/preset-env@7.28.5(@babel/core@7.29.0)) lefthook: specifier: ^2.1.1 version: 2.1.1 @@ -139,8 +139,8 @@ importers: specifier: ^10.7.0 version: 10.9.4 nx: - specifier: ^22.5.0 - version: 22.5.0(@swc/core@1.15.8(@swc/helpers@0.5.18)) + specifier: 22.7.5 + version: 22.7.5(@swc/core@1.15.8(@swc/helpers@0.5.18)) oxfmt: specifier: ^0.36.0 version: 0.36.0 @@ -185,7 +185,7 @@ importers: version: 5.1.0 vitest: specifier: ^4.1.3 - version: 4.1.3(@opentelemetry/api@1.9.0)(@types/node@18.19.130)(@vitest/coverage-v8@3.2.4)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.3(@opentelemetry/api@1.9.0)(@types/node@18.19.130)(@vitest/coverage-v8@3.2.4)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) examples/showcases/generative-ui-playground: dependencies: @@ -197,7 +197,7 @@ importers: version: 0.8.3(signal-polyfill@0.2.2) '@ag-ui/a2a': specifier: ^0.0.6 - version: 0.0.6(@ag-ui/client@0.0.42)(@ag-ui/core@0.0.54) + version: 0.0.6(@ag-ui/client@0.0.42)(@ag-ui/core@0.0.53) '@ag-ui/a2a-middleware': specifier: ^0.0.2 version: 0.0.2(rxjs@7.8.1) @@ -233,7 +233,7 @@ importers: version: 4.12.15 next: specifier: 16.2.3 - version: 16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.2.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) openai: specifier: ^6.16.0 version: 6.24.0(ws@8.19.0)(zod@3.25.76) @@ -312,7 +312,7 @@ importers: version: 0.476.0(react@19.2.3) next: specifier: 16.2.3 - version: 16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.2.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) react: specifier: 19.2.3 version: 19.2.3 @@ -397,7 +397,7 @@ importers: version: 0.476.0(react@19.2.3) next: specifier: ^16.0.10 - version: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) react: specifier: 19.2.3 version: 19.2.3 @@ -476,7 +476,7 @@ importers: version: 0.1.13 eslint-config-next: specifier: ^15.0.2 - version: 15.4.4(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2) + version: 15.4.4(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2) flowtoken: specifier: ^1.0.40 version: 1.0.40(@types/react@19.1.8)(react@19.2.3) @@ -488,10 +488,10 @@ importers: version: 0.3.37(@langchain/anthropic@0.3.34(@langchain/core@1.1.42(@opentelemetry/api@1.9.0)(openai@4.104.0(encoding@0.1.13)(ws@8.19.0)(zod@3.25.76))(ws@8.19.0))(zod@3.25.76))(@langchain/aws@1.1.1(@langchain/core@1.1.42(@opentelemetry/api@1.9.0)(openai@4.104.0(encoding@0.1.13)(ws@8.19.0)(zod@3.25.76))(ws@8.19.0)))(@langchain/core@1.1.42(@opentelemetry/api@1.9.0)(openai@4.104.0(encoding@0.1.13)(ws@8.19.0)(zod@3.25.76))(ws@8.19.0))(@opentelemetry/api@1.9.0)(axios@1.15.2)(encoding@0.1.13)(handlebars@4.7.9)(openai@4.104.0(encoding@0.1.13)(ws@8.19.0)(zod@3.25.76))(ws@8.19.0) next: specifier: ^16.0.10 - version: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) next-themes: specifier: ^0.2.1 - version: 0.2.1(next@16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 0.2.1(next@16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) openai: specifier: ^4.85.1 version: 4.104.0(encoding@0.1.13)(ws@8.19.0)(zod@3.25.76) @@ -510,7 +510,7 @@ importers: devDependencies: '@tailwindcss/typography': specifier: ^0.5.16 - version: 0.5.19(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3)) + version: 0.5.19(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)) '@types/node': specifier: ^18.11.17 version: 18.19.130 @@ -534,7 +534,7 @@ importers: version: link:../../../packages/tailwind-config tailwindcss: specifier: ^3.2.4 - version: 3.4.19(tsx@4.21.0)(yaml@2.8.3) + version: 3.4.19(tsx@4.21.0)(yaml@2.9.0) tsconfig: specifier: workspace:* version: link:../../../packages/tsconfig @@ -570,7 +570,7 @@ importers: version: 1.2.1 next: specifier: ^16.0.10 - version: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) openai: specifier: ^4.85.1 version: 4.104.0(encoding@0.1.13)(ws@8.19.0)(zod@3.25.76) @@ -601,7 +601,7 @@ importers: version: link:../../../packages/tailwind-config tailwindcss: specifier: ^3.2.4 - version: 3.4.19(tsx@4.21.0)(yaml@2.8.3) + version: 3.4.19(tsx@4.21.0)(yaml@2.9.0) tsconfig: specifier: workspace:* version: link:../../../packages/tsconfig @@ -717,7 +717,7 @@ importers: version: 0.451.0(react@19.2.3) next: specifier: ^16.0.10 - version: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) openai: specifier: ^4.85.1 version: 4.104.0(encoding@0.1.13)(ws@8.19.0)(zod@3.25.76) @@ -732,7 +732,7 @@ importers: version: 2.6.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3)) + version: 1.0.7(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)) devDependencies: '@types/node': specifier: ^22.0.0 @@ -751,7 +751,7 @@ importers: version: 8.5.6 tailwindcss: specifier: ^3.4.1 - version: 3.4.19(tsx@4.21.0)(yaml@2.8.3) + version: 3.4.19(tsx@4.21.0)(yaml@2.9.0) typescript: specifier: ^5 version: 5.9.2 @@ -778,7 +778,7 @@ importers: version: 11.18.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) next: specifier: ^16.0.10 - version: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) react: specifier: 19.2.3 version: 19.2.3 @@ -806,7 +806,7 @@ importers: version: 8.5.6 tailwindcss: specifier: ^3.4.1 - version: 3.4.19(tsx@4.21.0)(yaml@2.8.3) + version: 3.4.19(tsx@4.21.0)(yaml@2.9.0) typescript: specifier: ^5 version: 5.9.2 @@ -878,7 +878,7 @@ importers: version: 0.414.0(react@19.2.3) next: specifier: ^16.0.10 - version: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) openai: specifier: ^4.85.1 version: 4.104.0(encoding@0.1.13)(ws@8.19.0)(zod@3.25.76) @@ -899,7 +899,7 @@ importers: version: 2.6.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3)) + version: 1.0.7(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)) vaul: specifier: ^1.1.1 version: 1.1.2(@types/react-dom@19.2.3(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -924,7 +924,7 @@ importers: version: 8.5.6 tailwindcss: specifier: ^3.4.1 - version: 3.4.19(tsx@4.21.0)(yaml@2.8.3) + version: 3.4.19(tsx@4.21.0)(yaml@2.9.0) typescript: specifier: ^5 version: 5.9.2 @@ -944,29 +944,29 @@ importers: specifier: 0.0.51 version: 0.0.51 '@angular/animations': - specifier: ^19.0.0 - version: 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)) + specifier: ^21.2.15 + version: 21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) '@angular/cdk': - specifier: ^19.0.0 - version: 19.2.19(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + specifier: ^21.2.13 + version: 21.2.13(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(rxjs@7.8.1) '@angular/common': - specifier: ^19.0.0 - version: 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + specifier: ^21.2.15 + version: 21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.0 - version: 19.2.18 + specifier: ^21.2.15 + version: 21.2.15 '@angular/core': - specifier: ^19.0.0 - version: 19.2.18(rxjs@7.8.1)(zone.js@0.14.10) + specifier: ^21.2.15 + version: 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) '@angular/forms': - specifier: ^19.0.0 - version: 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1) + specifier: ^21.2.15 + version: 21.2.15(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(rxjs@7.8.1) '@angular/platform-browser': - specifier: ^19.0.0 - version: 19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)) + specifier: ^21.2.15 + version: 21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) '@angular/platform-browser-dynamic': - specifier: ^19.0.0 - version: 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@19.2.18)(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))) + specifier: ^21.2.15 + version: 21.2.15(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))) '@copilotkit/angular': specifier: link:../../../../packages/angular version: link:../../../../packages/angular @@ -1009,19 +1009,16 @@ importers: zod-to-json-schema: specifier: ^3.24.6 version: 3.25.1(zod@3.25.76) - zone.js: - specifier: ^0.14.0 - version: 0.14.10 devDependencies: - '@angular-devkit/build-angular': - specifier: ^19.0.0 - version: 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(chokidar@4.0.3)(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)))(jest@29.7.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)))(jiti@2.7.0)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@5.8.2))(tailwindcss@4.2.2)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + '@angular/build': + specifier: ^21.2.13 + version: 21.2.13(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.15)(tailwindcss@4.2.2)(terser@5.44.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@4.1.5)(yaml@2.9.0) '@angular/cli': - specifier: ^19.0.0 - version: 19.2.20(@types/node@25.6.0)(chokidar@4.0.3) + specifier: ^21.2.13 + version: 21.2.13(@cfworker/json-schema@4.1.1)(@types/node@25.6.0)(chokidar@5.0.0) '@angular/compiler-cli': - specifier: ^19.0.0 - version: 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) + specifier: ^21.2.15 + version: 21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3) nodemon: specifier: ^3.1.7 version: 3.1.11 @@ -1029,8 +1026,8 @@ importers: specifier: ^6.0.1 version: 6.1.2 typescript: - specifier: 5.8.2 - version: 5.8.2 + specifier: 5.9.3 + version: 5.9.3 examples/v2/angular/demo-server: dependencies: @@ -1076,25 +1073,25 @@ importers: version: 0.0.51 '@angular/animations': specifier: ^19.0.0 - version: 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)) + version: 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)) '@angular/common': specifier: ^19.0.0 - version: 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + version: 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) '@angular/compiler': specifier: ^19.0.0 version: 19.2.18 '@angular/core': specifier: ^19.0.0 - version: 19.2.18(rxjs@7.8.1)(zone.js@0.14.10) + version: 19.2.18(rxjs@7.8.1)(zone.js@0.15.1) '@angular/forms': specifier: ^19.0.0 - version: 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1) + version: 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(rxjs@7.8.1) '@angular/platform-browser': specifier: ^19.0.0 - version: 19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)) + version: 19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)) '@angular/platform-browser-dynamic': specifier: ^19.0.0 - version: 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@19.2.18)(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))) + version: 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/compiler@19.2.18)(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))) '@copilotkit/core': specifier: workspace:^ version: link:../../../../packages/core @@ -1107,16 +1104,13 @@ importers: zod: specifier: '>=3.22.3' version: 3.25.76 - zone.js: - specifier: ^0.14.0 - version: 0.14.10 devDependencies: '@angular-devkit/build-angular': specifier: ^19.0.0 - version: 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(chokidar@4.0.3)(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(typescript@5.8.2)))(jiti@2.7.0)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(tailwindcss@4.1.18)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) + version: 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(typescript@5.8.2)))(jiti@2.7.0)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(tailwindcss@4.1.18)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0) '@angular/cli': specifier: ^19.0.0 - version: 19.2.20(@types/node@22.19.3)(chokidar@4.0.3) + version: 19.2.20(@types/node@22.19.3) '@angular/compiler-cli': specifier: ^19.0.0 version: 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) @@ -1137,7 +1131,7 @@ importers: version: 8.6.15(storybook@8.6.17(prettier@3.7.4)) '@storybook/angular': specifier: ^8 - version: 8.6.15(6eee023515041662b2454e5916868400) + version: 8.6.15(cbfd53b94efdc49f67ddbf603e580465) '@storybook/test': specifier: ^8 version: 8.6.15(storybook@8.6.17(prettier@3.7.4)) @@ -1229,7 +1223,7 @@ importers: version: link:../../../../../packages/runtime next: specifier: 16.2.3 - version: 16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.2.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) react: specifier: 19.2.3 version: 19.2.3 @@ -1278,7 +1272,7 @@ importers: version: link:../../../packages/react-core next: specifier: ^16.0.10 - version: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) react: specifier: 19.2.3 version: 19.2.3 @@ -1472,13 +1466,13 @@ importers: devDependencies: '@react-router/dev': specifier: ^7.11.0 - version: 7.13.2(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(react-router@7.13.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(wrangler@4.80.0(@cloudflare/workers-types@4.20260405.1))(yaml@2.8.3) + version: 7.13.2(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(react-router@7.13.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(wrangler@4.80.0(@cloudflare/workers-types@4.20260405.1))(yaml@2.9.0) '@react-router/fs-routes': specifier: ^7.11.0 - version: 7.13.2(@react-router/dev@7.13.2(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(react-router@7.13.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(wrangler@4.80.0(@cloudflare/workers-types@4.20260405.1))(yaml@2.8.3))(typescript@5.7.3) + version: 7.13.2(@react-router/dev@7.13.2(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(react-router@7.13.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(wrangler@4.80.0(@cloudflare/workers-types@4.20260405.1))(yaml@2.9.0))(typescript@5.7.3) '@tailwindcss/vite': specifier: ^4.0.0 - version: 4.2.2(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.2.2(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@types/react': specifier: 19.1.8 version: 19.1.8 @@ -1493,10 +1487,10 @@ importers: version: 5.7.3 vite: specifier: ~7.3.2 - version: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) vite-tsconfig-paths: specifier: ^4.3.0 - version: 4.3.2(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.3.2(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) examples/v2/react/demo: dependencies: @@ -1535,7 +1529,7 @@ importers: version: 4.12.15 next: specifier: ^16.0.10 - version: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) openai: specifier: ^5.9.0 version: 5.23.2(ws@8.19.0)(zod@3.25.76) @@ -1581,19 +1575,19 @@ importers: version: 5.9.2 vitest: specifier: ^3.2.3 - version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.27)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.27)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) examples/v2/react/storybook: dependencies: '@storybook/nextjs': specifier: ^10.2.10 - version: 10.3.5(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(next@16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(type-fest@4.41.0)(typescript@5.8.2)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack-hot-middleware@2.26.1)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + version: 10.3.5(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(next@16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(type-fest@4.41.0)(typescript@5.8.2)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack-hot-middleware@2.26.1)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) '@storybook/react': specifier: ^10.2.10 version: 10.3.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(typescript@5.8.2) next: specifier: ^16.0.10 - version: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + version: 16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) react: specifier: 19.2.3 version: 19.2.3 @@ -1615,7 +1609,7 @@ importers: version: link:../../../../packages/typescript-config '@storybook/addon-docs': specifier: ^10 - version: 10.1.11(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + version: 10.1.11(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) '@storybook/addon-themes': specifier: ^10.2.10 version: 10.3.5(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) @@ -1780,7 +1774,7 @@ importers: version: 4.12.15 nuxt: specifier: 3.17.5 - version: 3.17.5(@parcel/watcher@2.5.6)(@types/node@22.19.11)(better-sqlite3@12.5.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(better-sqlite3@12.5.0))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.10.1)(less@4.5.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rollup@4.60.2)(sass@1.97.2)(srvx@0.11.15)(terser@5.44.1)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue-tsc@2.2.12(typescript@5.8.2))(xml2js@0.6.2)(yaml@2.8.3) + version: 3.17.5(@parcel/watcher@2.5.6)(@types/node@22.19.11)(better-sqlite3@12.5.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(better-sqlite3@12.5.0))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.10.1)(less@4.5.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rollup@4.60.2)(sass@1.97.3)(srvx@0.11.15)(terser@5.44.1)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.8.2))(xml2js@0.6.2)(yaml@2.9.0) openai: specifier: ^5.9.0 version: 5.23.2(ws@8.19.0)(zod@3.25.76) @@ -1826,7 +1820,7 @@ importers: dependencies: '@storybook/vue3-vite': specifier: 10.1.11 - version: 10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + version: 10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) storybook: specifier: 10.1.11 version: 10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -1845,7 +1839,7 @@ importers: version: link:../../../../packages/vue '@storybook/addon-docs': specifier: 10.1.11 - version: 10.1.11(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + version: 10.1.11(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) '@storybook/addon-themes': specifier: 10.1.11 version: 10.1.11(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) @@ -1854,7 +1848,7 @@ importers: version: 22.19.11 '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.7(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2)) + version: 6.0.7(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2)) concurrently: specifier: ^9.1.0 version: 9.2.1 @@ -1912,7 +1906,7 @@ importers: version: 5.9.2 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@26.1.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@26.1.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) packages/agentcore-runner: dependencies: @@ -1940,7 +1934,7 @@ importers: version: 5.8.2 vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) packages/angular: dependencies: @@ -1967,7 +1961,7 @@ importers: version: 0.16.27 lucide-angular: specifier: ^0.540.0 - version: 0.540.0(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)) + version: 0.540.0(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) marked: specifier: ^16.2.0 version: 16.4.2 @@ -1983,31 +1977,31 @@ importers: devDependencies: '@analogjs/vite-plugin-angular': specifier: ^1.20.2 - version: 1.22.5(f03bd5883d0378c53d0ac3c313357894) + version: 1.22.5(@angular-devkit/build-angular@20.3.26(fa163368fedd5cc784b6ba4d5453a633))(@angular/build@20.3.26(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@types/node@22.19.11)(chokidar@5.0.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.44.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@3.2.4)(yaml@2.9.0)) '@analogjs/vitest-angular': specifier: ^1.20.2 - version: 1.22.5(@analogjs/vite-plugin-angular@1.22.5(f03bd5883d0378c53d0ac3c313357894))(@angular-devkit/architect@0.1902.20(chokidar@4.0.3))(vitest@3.2.4) + version: 1.22.5(4e23c73094f199f594296d38a7293496) '@angular/cdk': - specifier: ^19.0.0 - version: 19.2.19(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + specifier: ^21.2.13 + version: 21.2.13(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(rxjs@7.8.1) '@angular/common': - specifier: ^19.0.0 - version: 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + specifier: ^21.2.15 + version: 21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) '@angular/compiler': - specifier: ^19.0.0 - version: 19.2.18 + specifier: ^21.2.15 + version: 21.2.15 '@angular/compiler-cli': - specifier: ^19.0.0 - version: 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) + specifier: ^21.2.15 + version: 21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3) '@angular/core': - specifier: ^19.0.0 - version: 19.2.18(rxjs@7.8.1)(zone.js@0.14.10) + specifier: ^21.2.15 + version: 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) '@angular/platform-browser': - specifier: ^19.0.0 - version: 19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)) + specifier: ^21.2.15 + version: 21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) '@angular/platform-browser-dynamic': - specifier: ^19.0.0 - version: 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@19.2.18)(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))) + specifier: ^21.2.15 + version: 21.2.15(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))) '@copilotkit/typescript-config': specifier: workspace:* version: link:../typescript-config @@ -2042,8 +2036,8 @@ importers: specifier: ^24.0.0 version: 24.1.3 ng-packagr: - specifier: ^19.0.0 - version: 19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2) + specifier: ^21.2.3 + version: 21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3) postcss: specifier: ^8.4.31 version: 8.5.6 @@ -2060,20 +2054,17 @@ importers: specifier: ^1.3.5 version: 1.4.0 typescript: - specifier: 5.8.2 - version: 5.8.2 + specifier: 5.9.3 + version: 5.9.3 vite: specifier: 7.3.2 - version: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@24.1.3)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@24.1.3)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) zod: specifier: '>=3.22.3' version: 3.25.76 - zone.js: - specifier: ^0.14.0 - version: 0.14.10 packages/core: dependencies: @@ -2122,7 +2113,7 @@ importers: version: 1.2.0(typescript@5.8.2) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) zod: specifier: '>=3.22.3' version: 3.25.76 @@ -2153,7 +2144,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.3 - version: 4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) packages/react-core: dependencies: @@ -2316,7 +2307,7 @@ importers: version: 1.2.0(typescript@5.9.3) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@26.1.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@26.1.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) zod: specifier: '>=3.22.3' version: 3.25.76 @@ -2337,25 +2328,25 @@ importers: version: link:../shared '@gorhom/bottom-sheet': specifier: ^5.0.0 - version: 5.2.13(@types/react@19.1.8)(react-native-gesture-handler@2.31.2(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native-reanimated@4.3.1(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + version: 5.2.13(@types/react@19.1.8)(react-native-gesture-handler@2.31.2(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native-reanimated@4.3.1(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) expo-document-picker: specifier: '>=12.0.0' version: 56.0.4(expo@56.0.3) expo-file-system: specifier: '>=17.0.0' - version: 56.0.7(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)) + version: 56.0.7(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)) react-native: specifier: '>=0.70' - version: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + version: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) react-native-gesture-handler: specifier: '>=2.0.0' - version: 2.31.2(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + version: 2.31.2(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) react-native-reanimated: specifier: '>=3.0.0' - version: 4.3.1(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + version: 4.3.1(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) react-native-streamdown: specifier: '>=0.1.0' - version: 0.1.1(react-native-enriched-markdown@0.4.0(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(remend@1.2.2) + version: 0.1.1(react-native-enriched-markdown@0.4.0(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(remend@1.2.2) text-encoding: specifier: ^0.7.0 version: 0.7.0 @@ -2389,7 +2380,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@26.1.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@26.1.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) packages/react-textarea: dependencies: @@ -2492,7 +2483,7 @@ importers: version: link:../tailwind-config tailwindcss: specifier: ^3.3.0 - version: 3.4.19(tsx@4.21.0)(yaml@2.8.3) + version: 3.4.19(tsx@4.21.0)(yaml@2.9.0) tsconfig: specifier: workspace:* version: link:../tsconfig @@ -2504,7 +2495,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) packages/react-ui: dependencies: @@ -2556,7 +2547,7 @@ importers: version: link:../tailwind-config tailwindcss: specifier: ^3.3.0 - version: 3.4.19(tsx@4.21.0)(yaml@2.8.3) + version: 3.4.19(tsx@4.21.0)(yaml@2.9.0) tsconfig: specifier: workspace:* version: link:../tsconfig @@ -2568,7 +2559,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) packages/runtime: dependencies: @@ -2785,7 +2776,7 @@ importers: version: 1.2.0(typescript@5.9.3) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@18.19.130)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@18.19.130)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) packages/runtime-client-gql: dependencies: @@ -2855,13 +2846,13 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.27)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.27)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) packages/sdk-js: dependencies: '@ag-ui/langgraph': specifier: 0.0.37 - version: 0.0.37(@ag-ui/client@0.0.53)(@ag-ui/core@0.0.54)(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vue@3.5.34(typescript@5.9.3))(ws@8.19.0)(zod-to-json-schema@3.25.1(zod@3.25.76)) + version: 0.0.37(@ag-ui/client@0.0.53)(@ag-ui/core@0.0.53)(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vue@3.5.34(typescript@5.9.3))(ws@8.19.0)(zod-to-json-schema@3.25.1(zod@3.25.76)) '@copilotkit/shared': specifier: workspace:* version: link:../shared @@ -2910,7 +2901,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@18.19.130)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@18.19.130)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) packages/shared: dependencies: @@ -2974,7 +2965,7 @@ importers: version: 1.2.0(typescript@5.9.3) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) packages/sqlite-runner: dependencies: @@ -3008,13 +2999,13 @@ importers: version: 5.8.2 vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) packages/tailwind-config: devDependencies: tailwindcss: specifier: ^3.2.4 - version: 3.4.19(tsx@4.21.0)(yaml@2.8.3) + version: 3.4.19(tsx@4.21.0)(yaml@2.9.0) packages/tsconfig: {} @@ -3043,7 +3034,7 @@ importers: version: 5.8.2 vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) packages/vue: dependencies: @@ -3107,7 +3098,7 @@ importers: version: 22.19.11 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2)) + version: 5.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2)) '@vue/compiler-sfc': specifier: ^3.5.14 version: 3.5.34 @@ -3158,10 +3149,10 @@ importers: version: 1.4.0(typescript@5.8.2) vite: specifier: '>=6.4.2' - version: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) vitest: specifier: ^4.1.3 - version: 4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@26.1.0)(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@26.1.0)(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) vue: specifier: ^3.5.28 version: 3.5.34(typescript@5.8.2) @@ -3213,7 +3204,7 @@ importers: version: 5.8.2 vitest: specifier: ^3.0.5 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) showcase/eval-webhook: dependencies: @@ -3296,7 +3287,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) showcase/scripts: dependencies: @@ -3342,7 +3333,7 @@ importers: version: 4.1.5(vitest@4.1.5) vitest: specifier: ^4.1.5 - version: 4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages: @@ -3420,9 +3411,6 @@ packages: '@ag-ui/core@0.0.53': resolution: {integrity: sha512-11UocR7fFdMWw503bWCX2IOK15vbWfxT11Mn9xOiPBVO/UVcn57ywGrlLL4UaBlPgmUTvuzr2yYR2ElSqiN2wQ==} - '@ag-ui/core@0.0.54': - resolution: {integrity: sha512-Ilx31OvRQaZfU7jSArGqz06JZKOsAt8zWiCPJljyp9zR6Tzl18oyfx8o6FsuGfAktGRe50GI9SCCxNXXysZwtA==} - '@ag-ui/encoder@0.0.36': resolution: {integrity: sha512-p8UNh6a77G/oe/4EZmwkTeYCN/5SnqSY2Cz8f8psZpk4LKzzrPkRNykrUAIBsi1wMp50/VQiM27oTRaade/Qkw==} @@ -3572,6 +3560,62 @@ packages: resolution: {integrity: sha512-jsElTJ0sQ4wHRz+C45tfect76BwbTbgkgKByOzpCN9xG61N5V6u/glvg1CsNJhq2xJIFpKHSwG3D2wPPuEYOrQ==} engines: {node: '>=18'} + '@algolia/abtesting@1.14.1': + resolution: {integrity: sha512-Dkj0BgPiLAaim9sbQ97UKDFHJE/880wgStAM18U++NaJ/2Cws34J5731ovJifr6E3Pv4T2CqvMXf8qLCC417Ew==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-abtesting@5.48.1': + resolution: {integrity: sha512-LV5qCJdj+/m9I+Aj91o+glYszrzd7CX6NgKaYdTOj4+tUYfbS62pwYgUfZprYNayhkQpVFcrW8x8ZlIHpS23Vw==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-analytics@5.48.1': + resolution: {integrity: sha512-/AVoMqHhPm14CcHq7mwB+bUJbfCv+jrxlNvRjXAuO+TQa+V37N8k1b0ijaRBPdmSjULMd8KtJbQyUyabXOu6Kg==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-common@5.48.1': + resolution: {integrity: sha512-VXO+qu2Ep6ota28ktvBm3sG53wUHS2n7bgLWmce5jTskdlCD0/JrV4tnBm1l7qpla1CeoQb8D7ShFhad+UoSOw==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-insights@5.48.1': + resolution: {integrity: sha512-zl+Qyb0nLg+Y5YvKp1Ij+u9OaPaKg2/EPzTwKNiVyOHnQJlFxmXyUZL1EInczAZsEY8hVpPCLtNfhMhfxluXKQ==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-personalization@5.48.1': + resolution: {integrity: sha512-r89Qf9Oo9mKWQXumRu/1LtvVJAmEDpn8mHZMc485pRfQUMAwSSrsnaw1tQ3sszqzEgAr1c7rw6fjBI+zrAXTOw==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-query-suggestions@5.48.1': + resolution: {integrity: sha512-TPKNPKfghKG/bMSc7mQYD9HxHRUkBZA4q1PEmHgICaSeHQscGqL4wBrKkhfPlDV1uYBKW02pbFMUhsOt7p4ZpA==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-search@5.48.1': + resolution: {integrity: sha512-4Fu7dnzQyQmMFknYwTiN/HxPbH4DyxvQ1m+IxpPp5oslOgz8m6PG5qhiGbqJzH4HiT1I58ecDiCAC716UyVA8Q==} + engines: {node: '>= 14.0.0'} + + '@algolia/ingestion@1.48.1': + resolution: {integrity: sha512-/RFq3TqtXDUUawwic/A9xylA2P3LDMO8dNhphHAUOU51b1ZLHrmZ6YYJm3df1APz7xLY1aht6okCQf+/vmrV9w==} + engines: {node: '>= 14.0.0'} + + '@algolia/monitoring@1.48.1': + resolution: {integrity: sha512-Of0jTeAZRyRhC7XzDSjJef0aBkgRcvRAaw0ooYRlOw57APii7lZdq+layuNdeL72BRq1snaJhoMMwkmLIpJScw==} + engines: {node: '>= 14.0.0'} + + '@algolia/recommend@5.48.1': + resolution: {integrity: sha512-bE7JcpFXzxF5zHwj/vkl2eiCBvyR1zQ7aoUdO+GDXxGp0DGw7nI0p8Xj6u8VmRQ+RDuPcICFQcCwRIJT5tDJFw==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-browser-xhr@5.48.1': + resolution: {integrity: sha512-MK3wZ2koLDnvH/AmqIF1EKbJlhRS5j74OZGkLpxI4rYvNi9Jn/C7vb5DytBnQ4KUWts7QsmbdwHkxY5txQHXVw==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-fetch@5.48.1': + resolution: {integrity: sha512-2oDT43Y5HWRSIQMPQI4tA/W+TN/N2tjggZCUsqQV440kxzzoPGsvv9QP1GhQ4CoDa+yn6ygUsGp6Dr+a9sPPSg==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-node-http@5.48.1': + resolution: {integrity: sha512-xcaCqbhupVWhuBP1nwbk1XNvwrGljozutEiLx06mvqDf3o8cHyEgQSHS4fKJM+UAggaWVnnFW+Nne5aQ8SUJXg==} + engines: {node: '>= 14.0.0'} + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -3605,6 +3649,15 @@ packages: resolution: {integrity: sha512-tEM8PX9RTIvgEPJH/9nDaGlhbjZf9BBFS2FXKuOwKB+NFvfZuuDpPH7CzJKyyvkQLPtoNh2Y9C92m2f+RXsBmQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/architect@0.2003.26': + resolution: {integrity: sha512-osaUGwmGhxHkc59t8Hy2tamzdonkSkz4Hi8CfpBGUuyRJiTFVck+MpOkrKYS0Ok1EFTTEYJI/x+obIKxud0oAA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + + '@angular-devkit/architect@0.2102.13': + resolution: {integrity: sha512-fheyi0gPx6b7tT+WQ+ePlzdGqKjPLUK72wg5Z9pkVtQ5+VN/8yB9mlRlmoivngd2FeNG9wMeNynWZGYycnOWVw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + hasBin: true + '@angular-devkit/build-angular@19.2.20': resolution: {integrity: sha512-m7J+k0lJEFvr6STGUQROx6TyoGn0WQsQiooO8WTkM8QUWKxSUmq4WImlPSq6y+thc+Jzx1EBw3yn73+phNIZag==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -3649,6 +3702,56 @@ packages: tailwindcss: optional: true + '@angular-devkit/build-angular@20.3.26': + resolution: {integrity: sha512-3lwKigDgzKUDlLno/AM7fm0Ig5TKq69BF1BoCgpEXict5/s4EvdXU5Kvi2lWQk2fMG+DJGitMHH/5HojOqOcFQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + '@angular/compiler-cli': ^20.0.0 + '@angular/core': ^20.0.0 + '@angular/localize': ^20.0.0 + '@angular/platform-browser': ^20.0.0 + '@angular/platform-server': ^20.0.0 + '@angular/service-worker': ^20.0.0 + '@angular/ssr': ^20.3.26 + '@web/test-runner': ^0.20.0 + browser-sync: ^3.0.2 + jest: ^29.5.0 || ^30.2.0 + jest-environment-jsdom: ^29.5.0 || ^30.2.0 + karma: ^6.3.0 + ng-packagr: ^20.0.0 + protractor: ^7.0.0 + tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 + typescript: '>=5.8 <6.0' + peerDependenciesMeta: + '@angular/core': + optional: true + '@angular/localize': + optional: true + '@angular/platform-browser': + optional: true + '@angular/platform-server': + optional: true + '@angular/service-worker': + optional: true + '@angular/ssr': + optional: true + '@web/test-runner': + optional: true + browser-sync: + optional: true + jest: + optional: true + jest-environment-jsdom: + optional: true + karma: + optional: true + ng-packagr: + optional: true + protractor: + optional: true + tailwindcss: + optional: true + '@angular-devkit/build-webpack@0.1902.20': resolution: {integrity: sha512-T8RLKZOR0+l3FBMBTUQk83I/Dr5RpNPCOE6tWqGjAMRPKoL1m5BbqhkQ7ygnyd8/ZRz/x1RUVM08l0AeuzWUmA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -3656,6 +3759,13 @@ packages: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 + '@angular-devkit/build-webpack@0.2003.26': + resolution: {integrity: sha512-qVi4AKhdDtHB63xZkHwVhSxqFOk+IffzeOYZYscOoHV4wOP4nevmff1Fc6wEEJh9X/jQbtC6HvbzGHIFvMH6wQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + webpack: ^5.30.0 + webpack-dev-server: ^5.0.2 + '@angular-devkit/core@19.2.20': resolution: {integrity: sha512-4AAmHlv+H1/2Nmsp6QsX8YQxjC/v5QAzc+76He7K/x3iIuLCntQE2BYxonSZMiQ3M8gc/yxTfyZoPYjSDDvWMA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -3665,10 +3775,32 @@ packages: chokidar: optional: true + '@angular-devkit/core@20.3.26': + resolution: {integrity: sha512-xzxI3OK+P1a/xLPqLrrhGHghifmv7oP8U3k7A/lX3fnYNYkqJzzyhqXsjWxs7U4sv3p3BvygqAJBg1oGFPiJBw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^4.0.0 + peerDependenciesMeta: + chokidar: + optional: true + + '@angular-devkit/core@21.2.13': + resolution: {integrity: sha512-9jLaHcUr6BumIY9nCsBib1q62p259nf++gd2igYJ7mLm1w/0wEacsZ1cC8wCGEe6vx8a+DrD+EVCQ6zivePG2A==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^5.0.0 + peerDependenciesMeta: + chokidar: + optional: true + '@angular-devkit/schematics@19.2.20': resolution: {integrity: sha512-o2eexF1fLZU93V3utiQLNgyNaGvFhDqpITNQcI1qzv2ZkvFHg9WZjFtZKtm805JAE/DND8oAJ1p+BoxU++Qg8g==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/schematics@21.2.13': + resolution: {integrity: sha512-gifpOcMNiAy49lQmQKhzpxoSfS3qJQSEdJSF5m7RVFkAcmllfcCD76GPN4dhho3wdAnbZ3qr54LtDqrGY4xNjw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular/animations@19.2.18': resolution: {integrity: sha512-c76x1t+OiSstPsvJdHmV8Q4taF+8SxWKqiY750fOjpd01it4jJbU6YQqIroC6Xie7154zZIxOTHH2uTj+nm5qA==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} @@ -3676,6 +3808,12 @@ packages: '@angular/common': 19.2.18 '@angular/core': 19.2.18 + '@angular/animations@21.2.15': + resolution: {integrity: sha512-Z8AsLTwc++Fcu0fJnclAF9zMfumAd5KXrwtSdyECqLpqd+lEmmsOpeOl6P7loqdDz99KYh/8UF4eJxdMvnsaKw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@angular/core': 21.2.15 + '@angular/build@19.2.20': resolution: {integrity: sha512-8bQ1afN8AJ6N9lJJgxYF08M0gp4R/4SIedSJfSLohscgHumYJ1mITEygoB1JK5O9CEKlr4YyLYfgay8xr92wbQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -3712,11 +3850,104 @@ packages: tailwindcss: optional: true - '@angular/cdk@19.2.19': - resolution: {integrity: sha512-PCpJagurPBqciqcq4Z8+3OtKLb7rSl4w/qBJoIMua8CgnrjvA1i+SWawhdtfI1zlY8FSwhzLwXV0CmWWfFzQPg==} + '@angular/build@20.3.26': + resolution: {integrity: sha512-WXpntiPE3YWprEvam7S2KJd8u/FwAYB5aZqeVniOoa4aru6a33waN8f1oWTM0DeNsvvjl3qI7UpEjbyjZ7QYmA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + '@angular/compiler': ^20.0.0 + '@angular/compiler-cli': ^20.0.0 + '@angular/core': ^20.0.0 + '@angular/localize': ^20.0.0 + '@angular/platform-browser': ^20.0.0 + '@angular/platform-server': ^20.0.0 + '@angular/service-worker': ^20.0.0 + '@angular/ssr': ^20.3.26 + karma: ^6.4.0 + less: ^4.2.0 + ng-packagr: ^20.0.0 + postcss: ^8.4.0 + tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 + tslib: ^2.3.0 + typescript: '>=5.8 <6.0' + vitest: ^3.1.1 + peerDependenciesMeta: + '@angular/core': + optional: true + '@angular/localize': + optional: true + '@angular/platform-browser': + optional: true + '@angular/platform-server': + optional: true + '@angular/service-worker': + optional: true + '@angular/ssr': + optional: true + karma: + optional: true + less: + optional: true + ng-packagr: + optional: true + postcss: + optional: true + tailwindcss: + optional: true + vitest: + optional: true + + '@angular/build@21.2.13': + resolution: {integrity: sha512-Y9TDAaTQ+E5LScCKA/hPZmns/7Mpu6J2BiPj2cETA1xNjvgRpeb5Mh32KuhZb20NSFLvjpdnLuBTTtbym7hevw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: - '@angular/common': ^19.0.0 || ^20.0.0 - '@angular/core': ^19.0.0 || ^20.0.0 + '@angular/compiler': ^21.0.0 + '@angular/compiler-cli': ^21.0.0 + '@angular/core': ^21.0.0 + '@angular/localize': ^21.0.0 + '@angular/platform-browser': ^21.0.0 + '@angular/platform-server': ^21.0.0 + '@angular/service-worker': ^21.0.0 + '@angular/ssr': ^21.2.13 + karma: ^6.4.0 + less: ^4.2.0 + ng-packagr: ^21.0.0 + postcss: ^8.4.0 + tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 + tslib: ^2.3.0 + typescript: '>=5.9 <6.0' + vitest: ^4.0.8 + peerDependenciesMeta: + '@angular/core': + optional: true + '@angular/localize': + optional: true + '@angular/platform-browser': + optional: true + '@angular/platform-server': + optional: true + '@angular/service-worker': + optional: true + '@angular/ssr': + optional: true + karma: + optional: true + less: + optional: true + ng-packagr: + optional: true + postcss: + optional: true + tailwindcss: + optional: true + vitest: + optional: true + + '@angular/cdk@21.2.13': + resolution: {integrity: sha512-nQGGJ6Efqi8n0qhT/PllsaIIY+vz+TL7/tpR7F2QKiqzS/9l4m7ea0vvS6fSMGrjEbqbkzTHbjLDsIg6X2hK+w==} + peerDependencies: + '@angular/common': ^21.0.0 || ^22.0.0 + '@angular/core': ^21.0.0 || ^22.0.0 + '@angular/platform-browser': ^21.0.0 || ^22.0.0 rxjs: ^6.5.3 || ^7.4.0 '@angular/cli@19.2.20': @@ -3724,6 +3955,11 @@ packages: engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true + '@angular/cli@21.2.13': + resolution: {integrity: sha512-j1kOV/f0og/3xCwG7Y8RyPd6V7uYfX2NuvXbvN1mzgxLLN2mu6CTsvPg5l/9Pu9SJI3KOPRgDxWyuP3k8KuzMg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + hasBin: true + '@angular/common@19.2.18': resolution: {integrity: sha512-CrV02Omzw/QtfjlEVXVPJVXipdx83NuA+qSASZYrxrhKFusUZyK3P/Zznqg+wiAeNDbedQwMUVqoAARHf0xQrw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} @@ -3731,6 +3967,13 @@ packages: '@angular/core': 19.2.18 rxjs: ^6.5.3 || ^7.4.0 + '@angular/common@21.2.15': + resolution: {integrity: sha512-PHbICQe4YCXnax2FcmKUpiffs8XPW9A0KlZF35qgJoQyBMBZx5F8c8geCh25jxtq77n3eBTmOa/WIAdSqiitkQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@angular/core': 21.2.15 + rxjs: ^6.5.3 || ^7.4.0 + '@angular/compiler-cli@19.2.18': resolution: {integrity: sha512-N4TMtLfImJIoMaRL6mx7885UBeQidywptHH6ACZj71Ar6++DBc1mMlcwuvbeJCd3r3y8MQ5nLv5PZSN/tHr13w==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} @@ -3739,10 +3982,25 @@ packages: '@angular/compiler': 19.2.18 typescript: '>=5.5 <5.9' + '@angular/compiler-cli@21.2.15': + resolution: {integrity: sha512-/MU7OA9d/e9P5SthR+N6JJObBmzcGsgNQaeQ2YfSUnU0lCRVQweTWwxLFDbfU6UX8MZFWB6pdI57zod8r5kXUw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + hasBin: true + peerDependencies: + '@angular/compiler': 21.2.15 + typescript: '>=5.9 <6.1' + peerDependenciesMeta: + typescript: + optional: true + '@angular/compiler@19.2.18': resolution: {integrity: sha512-3MscvODxRVxc3Cs0ZlHI5Pk5rEvE80otfvxZTMksOZuPlv1B+S8MjWfc3X3jk9SbyUEzODBEH55iCaBHD48V3g==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + '@angular/compiler@21.2.15': + resolution: {integrity: sha512-nwpNb+NbVUNzR3cck0QXbU/oFK7BpmXOXVnN/w7+P4+TsFUYeTtO1Ojbc15jkqe6mSM0lBvGlcoztVblHQkqcw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + '@angular/core@19.2.18': resolution: {integrity: sha512-+QRrf0Igt8ccUWXHA+7doK5W6ODyhHdqVyblSlcQ8OciwkzIIGGEYNZom5OZyWMh+oI54lcSeyV2O3xaDepSrQ==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} @@ -3750,6 +4008,19 @@ packages: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 + '@angular/core@21.2.15': + resolution: {integrity: sha512-J5JsUnNtQURdeA7EA3DoCsMBizW3l01gfqM326Al72Ou3woFWmRb5P3LOXpIOzAeMQhO6Z5tW+B1t+4qmoq7uw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@angular/compiler': 21.2.15 + rxjs: ^6.5.3 || ^7.4.0 + zone.js: ~0.15.0 || ~0.16.0 + peerDependenciesMeta: + '@angular/compiler': + optional: true + zone.js: + optional: true + '@angular/forms@19.2.18': resolution: {integrity: sha512-pe40934jWhoS7DyGl7jyZdoj1gvBgur2t1zrJD+csEkTitYnW14+La2Pv6SW1pNX5nIzFsgsS9Nex1KcH5S6Tw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} @@ -3759,6 +4030,15 @@ packages: '@angular/platform-browser': 19.2.18 rxjs: ^6.5.3 || ^7.4.0 + '@angular/forms@21.2.15': + resolution: {integrity: sha512-swGUHgbBrPNvODPR9qBP6+vT2EHiyW361iEgS3HpTmvDhF/kD4l8NE0vh3P5N0DnEtGh4umOCKfQ1w6hPJ7lqA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@angular/common': 21.2.15 + '@angular/core': 21.2.15 + '@angular/platform-browser': 21.2.15 + rxjs: ^6.5.3 || ^7.4.0 + '@angular/platform-browser-dynamic@19.2.18': resolution: {integrity: sha512-wqDtK2yVN5VDqVeOSOfqELdu40fyoIDknBGSxA27CEXzFVdMWJyIpuvUi+GMa+9eGjlS+1uVVBaRwxmnuvHj+A==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} @@ -3768,6 +4048,15 @@ packages: '@angular/core': 19.2.18 '@angular/platform-browser': 19.2.18 + '@angular/platform-browser-dynamic@21.2.15': + resolution: {integrity: sha512-3xvlWLZlsWjPyJFGatOOsod/f5AFjmSUDoOXo0zsr2ckHc4TxbDTnkLULhRSWv6m68fKOdQb8Si8rI15gC5yqA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@angular/common': 21.2.15 + '@angular/compiler': 21.2.15 + '@angular/core': 21.2.15 + '@angular/platform-browser': 21.2.15 + '@angular/platform-browser@19.2.18': resolution: {integrity: sha512-eahtsHPyXTYLARs9YOlXhnXGgzw0wcyOcDkBvNWK/3lA0NHIgIHmQgXAmBo+cJ+g9skiEQTD2OmSrrwbFKWJkw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} @@ -3779,6 +4068,17 @@ packages: '@angular/animations': optional: true + '@angular/platform-browser@21.2.15': + resolution: {integrity: sha512-O4ZHVV/rxkK1AuiD9M3UssL/HkoQvBcZy2+U421IMNibclGhwH9aRwc/0ZlQ7zpseS9+KPZ23FebvN4/92IbPg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@angular/animations': 21.2.15 + '@angular/common': 21.2.15 + '@angular/core': 21.2.15 + peerDependenciesMeta: + '@angular/animations': + optional: true + '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} @@ -4050,14 +4350,18 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} '@babel/compat-data@7.28.5': resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} + engines: {node: '>=6.9.0'} + '@babel/core@7.26.10': resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} engines: {node: '>=6.9.0'} @@ -4066,20 +4370,32 @@ packages: resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==} engines: {node: '>=6.9.0'} + '@babel/core@7.28.3': + resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} + engines: {node: '>=6.9.0'} + '@babel/core@7.28.5': resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} engines: {node: '>=6.9.0'} + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.26.10': resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.3': + resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.28.5': resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.1': - resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + '@babel/generator@7.29.7': + resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} engines: {node: '>=6.9.0'} '@babel/generator@8.0.0-rc.1': @@ -4098,6 +4414,10 @@ packages: resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.28.5': resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==} engines: {node: '>=6.9.0'} @@ -4125,6 +4445,10 @@ packages: resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.28.5': resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} engines: {node: '>=6.9.0'} @@ -4137,12 +4461,22 @@ packages: resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.28.3': resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.27.1': resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} @@ -4181,8 +4515,8 @@ packages: resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@8.0.0-rc.2': @@ -4193,6 +4527,10 @@ packages: resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@8.0.0-rc.1': resolution: {integrity: sha512-I4YnARytXC2RzkLNVnf5qFNFMzp679qZpmtw/V3Jt2uGnWiIxyJtaukjG7R8pSx8nG2NamICpGfljQsogj+FbQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4201,6 +4539,10 @@ packages: resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} + engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.28.3': resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} engines: {node: '>=6.9.0'} @@ -4209,6 +4551,10 @@ packages: resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.29.7': + resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.28.5': resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} engines: {node: '>=6.0.0'} @@ -4224,6 +4570,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/parser@8.0.0-rc.1': resolution: {integrity: sha512-6HyyU5l1yK/7h9Ki52i5h6mDAx4qJdiLQO4FdCyJNoB/gy3T3GGJdhQzzbZgvgZCugYBvwtQiWRt94QKedHnkA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4747,6 +5098,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-runtime@7.28.3': + resolution: {integrity: sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-runtime@7.28.5': resolution: {integrity: sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==} engines: {node: '>=6.9.0'} @@ -4819,6 +5176,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/preset-env@7.28.3': + resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/preset-env@7.28.5': resolution: {integrity: sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==} engines: {node: '>=6.9.0'} @@ -4858,6 +5221,10 @@ packages: resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.28.3': + resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==} + engines: {node: '>=6.9.0'} + '@babel/runtime@7.29.2': resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} engines: {node: '>=6.9.0'} @@ -4866,16 +5233,16 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} '@babel/traverse@7.28.5': resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.29.0': - resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + '@babel/traverse@7.29.7': + resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} engines: {node: '>=6.9.0'} '@babel/types@7.28.5': @@ -4886,6 +5253,10 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + engines: {node: '>=6.9.0'} + '@babel/types@8.0.0-rc.1': resolution: {integrity: sha512-ubmJ6TShyaD69VE9DQrlXcdkvJbmwWPB8qYj0H2kaJi29O7vJT9ajSdBd2W8CG34pwL9pYA74fi7RHC1qbLoVQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -5214,12 +5585,21 @@ packages: resolution: {integrity: sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==} engines: {node: '>=0.8.0'} + '@emnapi/core@1.4.5': + resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} + '@emnapi/core@1.8.1': resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} + '@emnapi/runtime@1.4.5': + resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} + '@emnapi/runtime@1.8.1': resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + '@emnapi/wasi-threads@1.0.4': + resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} + '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} @@ -5292,12 +5672,6 @@ packages: resolution: {integrity: sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg==} engines: {node: '>=18.0.0'} - '@esbuild/aix-ppc64@0.25.12': - resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.25.4': resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} engines: {node: '>=18'} @@ -5310,12 +5684,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.12': - resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.25.4': resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} engines: {node: '>=18'} @@ -5328,12 +5696,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.12': - resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.25.4': resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} engines: {node: '>=18'} @@ -5346,12 +5708,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.12': - resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.25.4': resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} engines: {node: '>=18'} @@ -5364,12 +5720,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.12': - resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.25.4': resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} engines: {node: '>=18'} @@ -5382,12 +5732,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.12': - resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.25.4': resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} engines: {node: '>=18'} @@ -5400,12 +5744,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.12': - resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.25.4': resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} engines: {node: '>=18'} @@ -5418,12 +5756,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.12': - resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.4': resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} engines: {node: '>=18'} @@ -5436,12 +5768,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.12': - resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.25.4': resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} engines: {node: '>=18'} @@ -5454,12 +5780,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.12': - resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.25.4': resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} engines: {node: '>=18'} @@ -5472,12 +5792,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.12': - resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.25.4': resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} engines: {node: '>=18'} @@ -5490,12 +5804,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.12': - resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.25.4': resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} engines: {node: '>=18'} @@ -5508,12 +5816,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.12': - resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.25.4': resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} engines: {node: '>=18'} @@ -5526,12 +5828,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.12': - resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.25.4': resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} engines: {node: '>=18'} @@ -5544,12 +5840,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.12': - resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.25.4': resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} engines: {node: '>=18'} @@ -5562,12 +5852,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.12': - resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.25.4': resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} engines: {node: '>=18'} @@ -5580,12 +5864,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.12': - resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.25.4': resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} engines: {node: '>=18'} @@ -5598,12 +5876,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.12': - resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.25.4': resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} engines: {node: '>=18'} @@ -5616,12 +5888,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.12': - resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.4': resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} engines: {node: '>=18'} @@ -5634,12 +5900,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.12': - resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.25.4': resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} engines: {node: '>=18'} @@ -5652,12 +5912,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.12': - resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.4': resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} engines: {node: '>=18'} @@ -5670,24 +5924,12 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.12': - resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/openharmony-arm64@0.27.3': resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.12': - resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.25.4': resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} engines: {node: '>=18'} @@ -5700,12 +5942,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.12': - resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.25.4': resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} engines: {node: '>=18'} @@ -5718,12 +5954,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.12': - resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.25.4': resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} engines: {node: '>=18'} @@ -5736,12 +5966,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.12': - resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.25.4': resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} engines: {node: '>=18'} @@ -5999,6 +6223,10 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + '@gar/promise-retry@1.0.3': + resolution: {integrity: sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==} + engines: {node: ^20.17.0 || >=22.9.0} + '@gitbeaker/core@38.12.1': resolution: {integrity: sha512-8XMVcBIdVAAoxn7JtqmZ2Ee8f+AZLcCPmqEmPFOXY2jPS84y/DERISg/+sbhhb18iRy+ZsZhpWgQ/r3CkYNJOQ==} engines: {node: '>=18.0.0'} @@ -6352,6 +6580,9 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@harperfast/extended-iterable@1.0.3': + resolution: {integrity: sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==} + '@headlessui/react@2.2.0': resolution: {integrity: sha512-RzCEg+LXsuI7mHiSomsu/gBJSjpupm6A1qIZ5sWjd7JhARNlMiSA4kKfJpCKwU9tE+zMRterhhrP74PvfJrpXQ==} engines: {node: '>=10'} @@ -6706,6 +6937,15 @@ packages: '@types/node': optional: true + '@inquirer/confirm@5.1.14': + resolution: {integrity: sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/confirm@5.1.21': resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} engines: {node: '>=18'} @@ -6791,6 +7031,15 @@ packages: '@types/node': optional: true + '@inquirer/prompts@7.10.1': + resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/prompts@7.3.2': resolution: {integrity: sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==} engines: {node: '>=18'} @@ -6909,10 +7158,6 @@ packages: resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/get-type@30.1.0': - resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/globals@29.7.0': resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6930,10 +7175,6 @@ packages: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/schemas@30.0.5': - resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/source-map@29.6.3': resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -7604,6 +7845,13 @@ packages: peerDependencies: '@inquirer/prompts': '>= 3 < 8' + '@listr2/prompt-adapter-inquirer@3.0.5': + resolution: {integrity: sha512-WELs+hj6xcilkloBXYf9XXK8tYEnKsgLj01Xl5ONUJpKjmT5hGVUzNUS5tooUxs7pGMrw+jFD/41WpqW4V3LDA==} + engines: {node: '>=20.0.0'} + peerDependencies: + '@inquirer/prompts': '>= 3 < 8' + listr2: 9.0.5 + '@lit-labs/react@2.1.3': resolution: {integrity: sha512-OD9h2JynerBQUMNzb563jiVpxfvPF0HjQkKY2mx0lpVYvD7F+rtJpOGz6ek+6ufMidV3i+MPT9SX62OKWHFrQg==} @@ -7629,31 +7877,101 @@ packages: cpu: [arm64] os: [darwin] + '@lmdb/lmdb-darwin-arm64@3.4.2': + resolution: {integrity: sha512-NK80WwDoODyPaSazKbzd3NEJ3ygePrkERilZshxBViBARNz21rmediktGHExoj9n5t9+ChlgLlxecdFKLCuCKg==} + cpu: [arm64] + os: [darwin] + + '@lmdb/lmdb-darwin-arm64@3.5.1': + resolution: {integrity: sha512-tpfN4kKrrMpQ+If1l8bhmoNkECJi0iOu6AEdrTJvWVC+32sLxTARX5Rsu579mPImRP9YFWfWgeRQ5oav7zApQQ==} + cpu: [arm64] + os: [darwin] + '@lmdb/lmdb-darwin-x64@3.2.6': resolution: {integrity: sha512-5BbCumsFLbCi586Bb1lTWQFkekdQUw8/t8cy++Uq251cl3hbDIGEwD9HAwh8H6IS2F6QA9KdKmO136LmipRNkg==} cpu: [x64] os: [darwin] + '@lmdb/lmdb-darwin-x64@3.4.2': + resolution: {integrity: sha512-zevaowQNmrp3U7Fz1s9pls5aIgpKRsKb3dZWDINtLiozh3jZI9fBrI19lYYBxqdyiIyNdlyiidPnwPShj4aK+w==} + cpu: [x64] + os: [darwin] + + '@lmdb/lmdb-darwin-x64@3.5.1': + resolution: {integrity: sha512-+a2tTfc3rmWhLAolFUWRgJtpSuu+Fw/yjn4rF406NMxhfjbMuiOUTDRvRlMFV+DzyjkwnokisskHbCWkS3Ly5w==} + cpu: [x64] + os: [darwin] + '@lmdb/lmdb-linux-arm64@3.2.6': resolution: {integrity: sha512-l5VmJamJ3nyMmeD1ANBQCQqy7do1ESaJQfKPSm2IG9/ADZryptTyCj8N6QaYgIWewqNUrcbdMkJajRQAt5Qjfg==} cpu: [arm64] os: [linux] + '@lmdb/lmdb-linux-arm64@3.4.2': + resolution: {integrity: sha512-ZBEfbNZdkneebvZs98Lq30jMY8V9IJzckVeigGivV7nTHJc+89Ctomp1kAIWKlwIG0ovCDrFI448GzFPORANYg==} + cpu: [arm64] + os: [linux] + + '@lmdb/lmdb-linux-arm64@3.5.1': + resolution: {integrity: sha512-aoERa5B6ywXdyFeYGQ1gbQpkMkDbEo45qVoXE5QpIRavqjnyPwjOulMkmkypkmsbJ5z4Wi0TBztON8agCTG0Vg==} + cpu: [arm64] + os: [linux] + '@lmdb/lmdb-linux-arm@3.2.6': resolution: {integrity: sha512-+6XgLpMb7HBoWxXj+bLbiiB4s0mRRcDPElnRS3LpWRzdYSe+gFk5MT/4RrVNqd2MESUDmb53NUXw1+BP69bjiQ==} cpu: [arm] os: [linux] + '@lmdb/lmdb-linux-arm@3.4.2': + resolution: {integrity: sha512-OmHCULY17rkx/RoCoXlzU7LyR8xqrksgdYWwtYa14l/sseezZ8seKWXcogHcjulBddER5NnEFV4L/Jtr2nyxeg==} + cpu: [arm] + os: [linux] + + '@lmdb/lmdb-linux-arm@3.5.1': + resolution: {integrity: sha512-0EgcE6reYr8InjD7V37EgXcYrloqpxVPINy3ig1MwDSbl6LF/vXTYRH9OE1Ti1D8YZnB35ZH9aTcdfSb5lql2A==} + cpu: [arm] + os: [linux] + '@lmdb/lmdb-linux-x64@3.2.6': resolution: {integrity: sha512-nDYT8qN9si5+onHYYaI4DiauDMx24OAiuZAUsEqrDy+ja/3EbpXPX/VAkMV8AEaQhy3xc4dRC+KcYIvOFefJ4Q==} cpu: [x64] os: [linux] + '@lmdb/lmdb-linux-x64@3.4.2': + resolution: {integrity: sha512-vL9nM17C77lohPYE4YaAQvfZCSVJSryE4fXdi8M7uWPBnU+9DJabgKVAeyDb84ZM2vcFseoBE4/AagVtJeRE7g==} + cpu: [x64] + os: [linux] + + '@lmdb/lmdb-linux-x64@3.5.1': + resolution: {integrity: sha512-SqNDY1+vpji7bh0sFH5wlWyFTOzjbDOl0/kB5RLLYDAFyd/uw3n7wyrmas3rYPpAW7z18lMOi1yKlTPv967E3g==} + cpu: [x64] + os: [linux] + + '@lmdb/lmdb-win32-arm64@3.4.2': + resolution: {integrity: sha512-SXWjdBfNDze4ZPeLtYIzsIeDJDJ/SdsA0pEXcUBayUIMO0FQBHfVZZyHXQjjHr4cvOAzANBgIiqaXRwfMhzmLw==} + cpu: [arm64] + os: [win32] + + '@lmdb/lmdb-win32-arm64@3.5.1': + resolution: {integrity: sha512-50v0O1Lt37cwrmR9vWZK5hRW0Aw+KEmxJJ75fge/zIYdvNKB/0bSMSVR5Uc2OV9JhosIUyklOmrEvavwNJ8D6w==} + cpu: [arm64] + os: [win32] + '@lmdb/lmdb-win32-x64@3.2.6': resolution: {integrity: sha512-XlqVtILonQnG+9fH2N3Aytria7P/1fwDgDhl29rde96uH2sLB8CHORIf2PfuLVzFQJ7Uqp8py9AYwr3ZUCFfWg==} cpu: [x64] os: [win32] + '@lmdb/lmdb-win32-x64@3.4.2': + resolution: {integrity: sha512-IY+r3bxKW6Q6sIPiMC0L533DEfRJSXibjSI3Ft/w9Q8KQBNqEIvUFXt+09wV8S5BRk0a8uSF19YWxuRwEfI90g==} + cpu: [x64] + os: [win32] + + '@lmdb/lmdb-win32-x64@3.5.1': + resolution: {integrity: sha512-qwosvPyl+zpUlp3gRb7UcJ3H8S28XHCzkv0Y0EgQToXjQP91ZD67EHSCDmaLjtKhe+GVIW5om1KUpzVLA0l6pg==} + cpu: [x64] + os: [win32] + '@loaderkit/resolve@1.0.4': resolution: {integrity: sha512-rJzYKVcV4dxJv+vW6jlvagF8zvGxHJ2+HTr1e2qOejfmGhAApgJHl8Aog4mMszxceTRiKTTbnpgmTO1bEZHV/A==} @@ -8108,6 +8426,14 @@ packages: typescript: '>=5.5 <5.9' webpack: ^5.54.0 + '@ngtools/webpack@20.3.26': + resolution: {integrity: sha512-SE6u+A8+lfgalx/zNLkyS5s6tDFK7aWioYU08uZjJhAO9J++KQna8xYVoDF73mmjIsdK85Ik0U5hhDWh6QpX4g==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + '@angular/compiler-cli': ^20.0.0 + typescript: '>=5.8 <6.0' + webpack: ^5.54.0 + '@noble/hashes@1.8.0': resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} engines: {node: ^14.21.3 || >=16} @@ -8132,35 +8458,72 @@ packages: resolution: {integrity: sha512-S79NdEgDQd/NGCay6TCoVzXSj74skRZIKJcpJjC5lOq34SZzyI6MqtiiWoiVWoVrTcGjNeC4ipbh1VIHlpfF5Q==} engines: {node: ^18.17.0 || >=20.5.0} + '@npmcli/agent@4.0.2': + resolution: {integrity: sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg==} + engines: {node: ^20.17.0 || >=22.9.0} + '@npmcli/fs@4.0.0': resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} engines: {node: ^18.17.0 || >=20.5.0} + '@npmcli/fs@5.0.0': + resolution: {integrity: sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==} + engines: {node: ^20.17.0 || >=22.9.0} + '@npmcli/git@6.0.3': resolution: {integrity: sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==} engines: {node: ^18.17.0 || >=20.5.0} + '@npmcli/git@7.0.2': + resolution: {integrity: sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==} + engines: {node: ^20.17.0 || >=22.9.0} + '@npmcli/installed-package-contents@3.0.0': resolution: {integrity: sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true + '@npmcli/installed-package-contents@4.0.0': + resolution: {integrity: sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + '@npmcli/node-gyp@4.0.0': resolution: {integrity: sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==} engines: {node: ^18.17.0 || >=20.5.0} + '@npmcli/node-gyp@5.0.0': + resolution: {integrity: sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==} + engines: {node: ^20.17.0 || >=22.9.0} + '@npmcli/package-json@6.2.0': resolution: {integrity: sha512-rCNLSB/JzNvot0SEyXqWZ7tX2B5dD2a1br2Dp0vSYVo5jh8Z0EZ7lS9TsZ1UtziddB1UfNUaMCc538/HztnJGA==} engines: {node: ^18.17.0 || >=20.5.0} + '@npmcli/package-json@7.0.5': + resolution: {integrity: sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==} + engines: {node: ^20.17.0 || >=22.9.0} + '@npmcli/promise-spawn@8.0.3': resolution: {integrity: sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==} engines: {node: ^18.17.0 || >=20.5.0} + '@npmcli/promise-spawn@9.0.1': + resolution: {integrity: sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==} + engines: {node: ^20.17.0 || >=22.9.0} + '@npmcli/redact@3.2.2': resolution: {integrity: sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==} engines: {node: ^18.17.0 || >=20.5.0} + '@npmcli/redact@4.0.0': + resolution: {integrity: sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==} + engines: {node: ^20.17.0 || >=22.9.0} + + '@npmcli/run-script@10.0.4': + resolution: {integrity: sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==} + engines: {node: ^20.17.0 || >=22.9.0} + '@npmcli/run-script@9.1.0': resolution: {integrity: sha512-aoNSbxtkePXUlbZB+anS1LqsJdctG5n3UVhfU47+CDdwMi6uNTBMF9gPcQRnqghQd2FGzcwwIFBruFMxjhBewg==} engines: {node: ^18.17.0 || >=20.5.0} @@ -8218,57 +8581,57 @@ packages: peerDependencies: vue: ^3.3.4 - '@nx/nx-darwin-arm64@22.5.0': - resolution: {integrity: sha512-MHnzv6tzucvLsh4oS9FTepj+ct/o8/DPXrQow+9Jid7GSgY59xrDX/8CleJOrwL5lqKEyGW7vv8TR+4wGtEWTA==} + '@nx/nx-darwin-arm64@22.7.5': + resolution: {integrity: sha512-eoPtwx0qZqvRUD+VVOHm150AlSYwYoPxkDHBBGqKCn5nzPspb0lLWw8q83crM/L1M928YgK0WmGf3C++7eqsTA==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@22.5.0': - resolution: {integrity: sha512-/0w43hbR5Kia0XeCDZHDt/18FHhpwQs+Y+8TO8/ZsF1RgCI0knJDCyJieYk1yEZAq6E8dStAJnuzxK9uvETs4A==} + '@nx/nx-darwin-x64@22.7.5': + resolution: {integrity: sha512-VLOn/ZoEn3HfjSj+yIHLCM56/el79r+9I28CkZNHaSXJQWZ3edSkcgcfYjVxCurpN2VEwDQHLBeFCH8M+lQ7wQ==} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@22.5.0': - resolution: {integrity: sha512-d4Pd1VFpD272R7kJTWm/Pj49BIz44GZ+QIVSfxlx3GWxyaPd25X9GBanUngL6qpactS+aLTwcoBmnSbZ4PEcEQ==} + '@nx/nx-freebsd-x64@22.7.5': + resolution: {integrity: sha512-LEVer/E2xfGvK9Go+imMQoEninOoq/38Z2bhV1SD3AThXrp1xaLFVkW5jQ6juebeVkAeztEoMLFlr576egS0vw==} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@22.5.0': - resolution: {integrity: sha512-cCyG23PikIlqE7I6s9j0aHJSqIxnpdOjFOXyRd224XmFyAB8tOyKl7vDD/WugcpAceos28i+Rgz4na189zm48A==} + '@nx/nx-linux-arm-gnueabihf@22.7.5': + resolution: {integrity: sha512-NP27EFGpmFJM6RL1Ey/AFJ7gA2xuqtIHaw6jjSNGvfrnZRUNaway30GrVaGGeODf0DsvAty/unqoBMPy6kDHbw==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@22.5.0': - resolution: {integrity: sha512-vkQw8737fpta6oVEEqskzwq+d0GeZkGhtyl+U3pAcuUcYTdqbsZaofSQACFnGfngsqpYmlJCWJGU5Te00qcPQw==} + '@nx/nx-linux-arm64-gnu@22.7.5': + resolution: {integrity: sha512-QLnkJl3HkHsPfpLiNiAiMfpfAeFpic0U1diAxF8RqChOkCpQ7ulvyBVgE1UrQxvhd+gFQ3ed5RNDxtCRw8nTiw==} cpu: [arm64] os: [linux] libc: [glibc] - '@nx/nx-linux-arm64-musl@22.5.0': - resolution: {integrity: sha512-BkEsFBsnKrDK11N914rr5YKyIJwYoSVItJ7VzsQZIqAX0C7PdJeQ7KzqOGwoezbabdLmzFOBNg6s/o1ujoEYxw==} + '@nx/nx-linux-arm64-musl@22.7.5': + resolution: {integrity: sha512-cEP6KmwBgnb38+jTTaibWCjwXcHmigqhTfy0tN1be7WZr6bHxbqNLsXqKRN70PSNA3HouZcxw1cdRL8tqbPBBA==} cpu: [arm64] os: [linux] libc: [musl] - '@nx/nx-linux-x64-gnu@22.5.0': - resolution: {integrity: sha512-Dsqoz4hWmqehMMm8oJY6Q0ckEUeeHz4+T/C8nHyDaaj/REKCSmqYf/+QV6f2Z5Up/CsQ/hoAsWYEhCHZ0tcSFg==} + '@nx/nx-linux-x64-gnu@22.7.5': + resolution: {integrity: sha512-tbaX1tZCSpGifDNBfDdEZAMxVF3Yg4bhFP/bm1needc0diqb+Zflc0u5tM5/6BWDMITQDwenJVsNiQ8ZdtJURA==} cpu: [x64] os: [linux] libc: [glibc] - '@nx/nx-linux-x64-musl@22.5.0': - resolution: {integrity: sha512-Lcj/61BpsT85Qhm3hNTwQFrqGtsjLC+y4Kk21dh22d1/E5pOdVAwPXBuWrSPNo4lX+ESNoKmwxWjfgW3uoB05g==} + '@nx/nx-linux-x64-musl@22.7.5': + resolution: {integrity: sha512-H0M7csOZIgPT822LqjxSXzf4MXRND15vIkAQe3F3Jlr3Si8LC3tzbL52aVcRfgb8MF/xOB5U47mSwxWt1M2bPQ==} cpu: [x64] os: [linux] libc: [musl] - '@nx/nx-win32-arm64-msvc@22.5.0': - resolution: {integrity: sha512-0DlnBDLvqNtseCyBBoBst0gwux+N91RBc4E41JDDcLcWpfntcwCQM39D6lA5qdma/0L7U0PUM7MYV9Q6igJMkQ==} + '@nx/nx-win32-arm64-msvc@22.7.5': + resolution: {integrity: sha512-JTcZch9YAnDL1gbhqePz3DZ4x7iYemLn1yJzrjbbXAmXju2eiiJiZvJJHbV06+SP9HKXDT8RjTKuAWTdVxnHug==} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@22.5.0': - resolution: {integrity: sha512-kMMsU4PxKQ76NvmPFKT0/RlzRTiuUfuNWVJUmsWF1onVcBkXgQNKkmLcSJk3wGwML5/tHChjtlI7Hpo705Uv/g==} + '@nx/nx-win32-x64-msvc@22.7.5': + resolution: {integrity: sha512-ngcMyHdBJ9FSz2nHdbZ7gtJlFq0O2b05sPAsVMkZ18CKzdaA1qrBDJfsMO49hPCny505eiT766+CkKdaCDl5kA==} cpu: [x64] os: [win32] @@ -8490,6 +8853,9 @@ packages: '@oxc-project/types@0.112.0': resolution: {integrity: sha512-m6RebKHIRsax2iCwVpYW2ErQwa4ywHJrE4sCK3/8JK8ZZAWOKXaRJFl/uP51gaVyyXlaS4+chU1nSCdzYf6QqQ==} + '@oxc-project/types@0.113.0': + resolution: {integrity: sha512-Tp3XmgxwNQ9pEN9vxgJBAqdRamHibi76iowQ38O2I4PMpcvNRQNVsU2n1x1nv9yh0XoTrGFzf7cZSGxmixxrhA==} + '@oxc-project/types@0.72.3': resolution: {integrity: sha512-CfAC4wrmMkUoISpQkFAIfMVvlPfQV3xg7ZlcqPXPOIMQhdKIId44G8W0mCPgtpWdFFAyJ+SFtiM+9vbyCkoVng==} @@ -9830,30 +10196,60 @@ packages: cpu: [arm64] os: [android] + '@rolldown/binding-android-arm64@1.0.0-rc.4': + resolution: {integrity: sha512-vRq9f4NzvbdZavhQbjkJBx7rRebDKYR9zHfO/Wg486+I7bSecdUapzCm5cyXoK+LHokTxgSq7A5baAXUZkIz0w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@rolldown/binding-darwin-arm64@1.0.0-rc.3': resolution: {integrity: sha512-JWWLzvcmc/3pe7qdJqPpuPk91SoE/N+f3PcWx/6ZwuyDVyungAEJPvKm/eEldiDdwTmaEzWfIR+HORxYWrCi1A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-arm64@1.0.0-rc.4': + resolution: {integrity: sha512-kFgEvkWLqt3YCgKB5re9RlIrx9bRsvyVUnaTakEpOPuLGzLpLapYxE9BufJNvPg8GjT6mB1alN4yN1NjzoeM8Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.3': resolution: {integrity: sha512-MTakBxfx3tde5WSmbHxuqlDsIW0EzQym+PJYGF4P6lG2NmKzi128OGynoFUqoD5ryCySEY85dug4v+LWGBElIw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.4': + resolution: {integrity: sha512-JXmaOJGsL/+rsmMfutcDjxWM2fTaVgCHGoXS7nE8Z3c9NAYjGqHvXrAhMUZvMpHS/k7Mg+X7n/MVKb7NYWKKww==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@rolldown/binding-freebsd-x64@1.0.0-rc.3': resolution: {integrity: sha512-jje3oopyOLs7IwfvXoS6Lxnmie5JJO7vW29fdGFu5YGY1EDbVDhD+P9vDihqS5X6fFiqL3ZQZCMBg6jyHkSVww==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] + '@rolldown/binding-freebsd-x64@1.0.0-rc.4': + resolution: {integrity: sha512-ep3Catd6sPnHTM0P4hNEvIv5arnDvk01PfyJIJ+J3wVCG1eEaPo09tvFqdtcaTrkwQy0VWR24uz+cb4IsK53Qw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.3': resolution: {integrity: sha512-A0n8P3hdLAaqzSFrQoA42p23ZKBYQOw+8EH5r15Sa9X1kD9/JXe0YT2gph2QTWvdr0CVK2BOXiK6ENfy6DXOag==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.4': + resolution: {integrity: sha512-LwA5ayKIpnsgXJEwWc3h8wPiS33NMIHd9BhsV92T8VetVAbGe2qXlJwNVDGHN5cOQ22R9uYvbrQir2AB+ntT2w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.3': resolution: {integrity: sha512-kWXkoxxarYISBJ4bLNf5vFkEbb4JvccOwxWDxuK9yee8lg5XA7OpvlTptfRuwEvYcOZf+7VS69Uenpmpyo5Bjw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -9861,6 +10257,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.4': + resolution: {integrity: sha512-AC1WsGdlV1MtGay/OQ4J9T7GRadVnpYRzTcygV1hKnypbYN20Yh4t6O1Sa2qRBMqv1etulUknqXjc3CTIsBu6A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.3': resolution: {integrity: sha512-Z03/wrqau9Bicfgb3Dbs6SYTHliELk2PM2LpG2nFd+cGupTMF5kanLEcj2vuuJLLhptNyS61rtk7SOZ+lPsTUA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -9868,6 +10271,13 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.4': + resolution: {integrity: sha512-lU+6rgXXViO61B4EudxtVMXSOfiZONR29Sys5VGSetUY7X8mg9FCKIIjcPPj8xNDeYzKl+H8F/qSKOBVFJChCQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.3': resolution: {integrity: sha512-iSXXZsQp08CSilff/DCTFZHSVEpEwdicV3W8idHyrByrcsRDVh9sGC3sev6d8BygSGj3vt8GvUKBPCoyMA4tgQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -9875,6 +10285,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.4': + resolution: {integrity: sha512-DZaN1f0PGp/bSvKhtw50pPsnln4T13ycDq1FrDWRiHmWt1JeW+UtYg9touPFf8yt993p8tS2QjybpzKNTxYEwg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.3': resolution: {integrity: sha512-qaj+MFudtdCv9xZo9znFvkgoajLdc+vwf0Kz5N44g+LU5XMe+IsACgn3UG7uTRlCCvhMAGXm1XlpEA5bZBrOcw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -9882,32 +10299,65 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.4': + resolution: {integrity: sha512-RnGxwZLN7fhMMAItnD6dZ7lvy+TI7ba+2V54UF4dhaWa/p8I/ys1E73KO6HmPmgz92ZkfD8TXS1IMV8+uhbR9g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.3': resolution: {integrity: sha512-U662UnMETyjT65gFmG9ma+XziENrs7BBnENi/27swZPYagubfHRirXHG2oMl+pEax2WvO7Kb9gHZmMakpYqBHQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.4': + resolution: {integrity: sha512-6lcI79+X8klGiGd8yHuTgQRjuuJYNggmEml+RsyN596P23l/zf9FVmJ7K0KVKkFAeYEdg0iMUKyIxiV5vebDNQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.3': resolution: {integrity: sha512-gekrQ3Q2HiC1T5njGyuUJoGpK/l6B/TNXKed3fZXNf9YRTJn3L5MOZsFBn4bN2+UX+8+7hgdlTcEsexX988G4g==} engines: {node: '>=14.0.0'} cpu: [wasm32] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.4': + resolution: {integrity: sha512-wz7ohsKCAIWy91blZ/1FlpPdqrsm1xpcEOQVveWoL6+aSPKL4VUcoYmmzuLTssyZxRpEwzuIxL/GDsvpjaBtOw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.3': resolution: {integrity: sha512-85y5JifyMgs8m5K2XzR/VDsapKbiFiohl7s5lEj7nmNGO0pkTXE7q6TQScei96BNAsoK7JC3pA7ukA8WRHVJpg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.4': + resolution: {integrity: sha512-cfiMrfuWCIgsFmcVG0IPuO6qTRHvF7NuG3wngX1RZzc6dU8FuBFb+J3MIR5WrdTNozlumfgL4cvz+R4ozBCvsQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.3': resolution: {integrity: sha512-a4VUQZH7LxGbUJ3qJ/TzQG8HxdHvf+jOnqf7B7oFx1TEBm+j2KNL2zr5SQ7wHkNAcaPevF6gf9tQnVBnC4mD+A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.4': + resolution: {integrity: sha512-p6UeR9y7ht82AH57qwGuFYn69S6CZ7LLKdCKy/8T3zS9VTrJei2/CGsTUV45Da4Z9Rbhc7G4gyWQ/Ioamqn09g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/pluginutils@1.0.0-rc.3': resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} + '@rolldown/pluginutils@1.0.0-rc.4': + resolution: {integrity: sha512-1BrrmTu0TWfOP1riA8uakjFc9bpIUGzVKETsOtzY39pPga8zELGDl8eu1Dx7/gjM5CAz14UknsUMpBO8L+YntQ==} + '@rolldown/pluginutils@1.0.1': resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} @@ -9983,139 +10433,277 @@ packages: rollup: optional: true + '@rollup/rollup-android-arm-eabi@4.59.0': + resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm-eabi@4.60.2': resolution: {integrity: sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==} cpu: [arm] os: [android] + '@rollup/rollup-android-arm64@4.59.0': + resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} + cpu: [arm64] + os: [android] + '@rollup/rollup-android-arm64@4.60.2': resolution: {integrity: sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==} cpu: [arm64] os: [android] + '@rollup/rollup-darwin-arm64@4.59.0': + resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-arm64@4.60.2': resolution: {integrity: sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-x64@4.59.0': + resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.60.2': resolution: {integrity: sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==} cpu: [x64] os: [darwin] + '@rollup/rollup-freebsd-arm64@4.59.0': + resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.60.2': resolution: {integrity: sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==} cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.59.0': + resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.60.2': resolution: {integrity: sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==} cpu: [x64] os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} + cpu: [arm] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': resolution: {integrity: sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==} cpu: [arm] os: [linux] libc: [glibc] + '@rollup/rollup-linux-arm-musleabihf@4.59.0': + resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} + cpu: [arm] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-arm-musleabihf@4.60.2': resolution: {integrity: sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==} cpu: [arm] os: [linux] libc: [musl] + '@rollup/rollup-linux-arm64-gnu@4.59.0': + resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-arm64-gnu@4.60.2': resolution: {integrity: sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==} cpu: [arm64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-arm64-musl@4.59.0': + resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} + cpu: [arm64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-arm64-musl@4.60.2': resolution: {integrity: sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==} cpu: [arm64] os: [linux] libc: [musl] + '@rollup/rollup-linux-loong64-gnu@4.59.0': + resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} + cpu: [loong64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-loong64-gnu@4.60.2': resolution: {integrity: sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==} cpu: [loong64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-loong64-musl@4.59.0': + resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} + cpu: [loong64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-loong64-musl@4.60.2': resolution: {integrity: sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==} cpu: [loong64] os: [linux] libc: [musl] + '@rollup/rollup-linux-ppc64-gnu@4.59.0': + resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-ppc64-gnu@4.60.2': resolution: {integrity: sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==} cpu: [ppc64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-ppc64-musl@4.59.0': + resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} + cpu: [ppc64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-ppc64-musl@4.60.2': resolution: {integrity: sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==} cpu: [ppc64] os: [linux] libc: [musl] + '@rollup/rollup-linux-riscv64-gnu@4.59.0': + resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-riscv64-gnu@4.60.2': resolution: {integrity: sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==} cpu: [riscv64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-riscv64-musl@4.59.0': + resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} + cpu: [riscv64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-riscv64-musl@4.60.2': resolution: {integrity: sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==} cpu: [riscv64] os: [linux] libc: [musl] + '@rollup/rollup-linux-s390x-gnu@4.59.0': + resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-s390x-gnu@4.60.2': resolution: {integrity: sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==} cpu: [s390x] os: [linux] libc: [glibc] + '@rollup/rollup-linux-x64-gnu@4.59.0': + resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-x64-gnu@4.60.2': resolution: {integrity: sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==} cpu: [x64] os: [linux] libc: [glibc] + '@rollup/rollup-linux-x64-musl@4.59.0': + resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} + cpu: [x64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-x64-musl@4.60.2': resolution: {integrity: sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==} cpu: [x64] os: [linux] libc: [musl] + '@rollup/rollup-openbsd-x64@4.59.0': + resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} + cpu: [x64] + os: [openbsd] + '@rollup/rollup-openbsd-x64@4.60.2': resolution: {integrity: sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==} cpu: [x64] os: [openbsd] + '@rollup/rollup-openharmony-arm64@4.59.0': + resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} + cpu: [arm64] + os: [openharmony] + '@rollup/rollup-openharmony-arm64@4.60.2': resolution: {integrity: sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==} cpu: [arm64] os: [openharmony] + '@rollup/rollup-win32-arm64-msvc@4.59.0': + resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.60.2': resolution: {integrity: sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.59.0': + resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.60.2': resolution: {integrity: sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-x64-gnu@4.59.0': + resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} + cpu: [x64] + os: [win32] + '@rollup/rollup-win32-x64-gnu@4.60.2': resolution: {integrity: sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.59.0': + resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} + cpu: [x64] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.60.2': resolution: {integrity: sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==} cpu: [x64] @@ -10139,6 +10727,10 @@ packages: resolution: {integrity: sha512-xDrYxZvk9dGA2eVqufqLYmVSMSXxVtv30pBHGGU/2xr4QzHzdmMHflk4It8eh4WMNLhn7kqnzMREwtNI3eW/Gw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@schematics/angular@21.2.13': + resolution: {integrity: sha512-e5guslSLKbb3PJ6gUuVqM+V9xgn68cJkG1IyBohho34shbpOeoWW2eYdWQQjxvn0KUdgEhYSRBluBamCHngaUA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -10212,26 +10804,50 @@ packages: resolution: {integrity: sha512-Mm1E3/CmDDCz3nDhFKTuYdB47EdRFRQMOE/EAbiG1MJW77/w1b3P7Qx7JSrVJs8PfwOLOVcKQCHErIwCTyPbag==} engines: {node: ^18.17.0 || >=20.5.0} + '@sigstore/bundle@4.0.0': + resolution: {integrity: sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==} + engines: {node: ^20.17.0 || >=22.9.0} + '@sigstore/core@2.0.0': resolution: {integrity: sha512-nYxaSb/MtlSI+JWcwTHQxyNmWeWrUXJJ/G4liLrGG7+tS4vAz6LF3xRXqLH6wPIVUoZQel2Fs4ddLx4NCpiIYg==} engines: {node: ^18.17.0 || >=20.5.0} + '@sigstore/core@3.2.1': + resolution: {integrity: sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==} + engines: {node: ^20.17.0 || >=22.9.0} + '@sigstore/protobuf-specs@0.4.3': resolution: {integrity: sha512-fk2zjD9117RL9BjqEwF7fwv7Q/P9yGsMV4MUJZ/DocaQJ6+3pKr+syBq1owU5Q5qGw5CUbXzm+4yJ2JVRDQeSA==} engines: {node: ^18.17.0 || >=20.5.0} + '@sigstore/protobuf-specs@0.5.1': + resolution: {integrity: sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g==} + engines: {node: ^18.17.0 || >=20.5.0} + '@sigstore/sign@3.1.0': resolution: {integrity: sha512-knzjmaOHOov1Ur7N/z4B1oPqZ0QX5geUfhrVaqVlu+hl0EAoL4o+l0MSULINcD5GCWe3Z0+YJO8ues6vFlW0Yw==} engines: {node: ^18.17.0 || >=20.5.0} + '@sigstore/sign@4.1.1': + resolution: {integrity: sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==} + engines: {node: ^20.17.0 || >=22.9.0} + '@sigstore/tuf@3.1.1': resolution: {integrity: sha512-eFFvlcBIoGwVkkwmTi/vEQFSva3xs5Ot3WmBcjgjVdiaoelBLQaQ/ZBfhlG0MnG0cmTYScPpk7eDdGDWUcFUmg==} engines: {node: ^18.17.0 || >=20.5.0} + '@sigstore/tuf@4.0.2': + resolution: {integrity: sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==} + engines: {node: ^20.17.0 || >=22.9.0} + '@sigstore/verify@2.1.1': resolution: {integrity: sha512-hVJD77oT67aowHxwT4+M6PGOp+E2LtLdTK3+FC0lBO9T7sYwItDMXZ7Z07IDCvR1M717a4axbIWckrW67KMP/w==} engines: {node: ^18.17.0 || >=20.5.0} + '@sigstore/verify@3.1.1': + resolution: {integrity: sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==} + engines: {node: ^20.17.0 || >=22.9.0} + '@simple-git/args-pathspec@1.0.3': resolution: {integrity: sha512-ngJMaHlsWDTfjyq9F3VIQ8b7NXbBLq5j9i5bJ6XLYtD6qlDXT7fdKY2KscWWUF8t18xx052Y/PUO1K1TRc9yKA==} @@ -11472,6 +12088,10 @@ packages: resolution: {integrity: sha512-UUYHISyhCU3ZgN8yaear3cGATHb3SMuKHsQ/nVbHXcmnBf+LzQ/cQfhNG+rfaSHgqGKNEm2cOCLVLELStUQ1JA==} engines: {node: ^18.17.0 || >=20.5.0} + '@tufjs/models@4.1.0': + resolution: {integrity: sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==} + engines: {node: ^20.17.0 || >=22.9.0} + '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} @@ -12152,6 +12772,18 @@ packages: peerDependencies: vite: '>=6.4.2' + '@vitejs/plugin-basic-ssl@2.1.0': + resolution: {integrity: sha512-dOxxrhgyDIEUADhb/8OlV9JIqYLgos03YorAueTIeOUskLJSEsfwCByjbu98ctXitUN3znXKp0bYD/WHSudCeA==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + peerDependencies: + vite: '>=6.4.2' + + '@vitejs/plugin-basic-ssl@2.1.4': + resolution: {integrity: sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + peerDependencies: + vite: '>=6.4.2' + '@vitejs/plugin-vue-jsx@4.2.0': resolution: {integrity: sha512-DSTrmrdLp+0LDNF77fqrKfx7X0ErRbOcUAgJL/HbSesqQwoUvUQ4uYQqaex+rovqgGcoPqVk+AwUh3v9CuiYIw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -12495,10 +13127,6 @@ packages: '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - '@yarnpkg/parsers@3.0.2': - resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} - engines: {node: '>=18.12.0'} - '@zkochan/js-yaml@0.0.7': resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} hasBin: true @@ -12515,6 +13143,10 @@ packages: resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} engines: {node: ^18.17.0 || >=20.5.0} + abbrev@4.0.0: + resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} + engines: {node: ^20.17.0 || >=22.9.0} + abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} @@ -12650,9 +13282,16 @@ packages: ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} + ajv@8.20.0: resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + algoliasearch@5.48.1: + resolution: {integrity: sha512-Rf7xmeuIo7nb6S4mp4abW2faW8DauZyE2faBIKFaUfP3wnpOvNSbiI5AwVhqBNj0jPgBWEvhyCu0sLjN2q77Rg==} + engines: {node: '>= 14.0.0'} + alien-signals@1.0.13: resolution: {integrity: sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==} @@ -12910,6 +13549,13 @@ packages: peerDependencies: postcss: ^8.1.0 + autoprefixer@10.4.21: + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + autoprefixer@10.4.24: resolution: {integrity: sha512-uHZg7N9ULTVbutaIsDRoUkoS8/h3bdsmVJYZ5l3wv8Cp/6UIIoRDm90hZ+BwxUj/hGBEzLxdHNSKuFpn8WOyZw==} engines: {node: ^10 || ^12 || >=14} @@ -12953,6 +13599,13 @@ packages: peerDependencies: '@babel/core': ^7.8.0 + babel-loader@10.0.0: + resolution: {integrity: sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==} + engines: {node: ^18.20.0 || ^20.10.0 || >=22.0.0} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5.61.0' + babel-loader@9.2.1: resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} engines: {node: '>= 14.15.0'} @@ -13045,6 +13698,10 @@ packages: bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + balanced-match@4.0.3: + resolution: {integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==} + engines: {node: 20 || >=22} + balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} @@ -13114,6 +13771,14 @@ packages: resolution: {integrity: sha512-p4AF8uYzm9Fwu8m/hSVTCPXrRBPmB34hQpHsec2KOaR9CZmgoU8IOv4Cvwq4hgz2p4hLMNbsdNl5XeA6XbAQwA==} engines: {node: '>=14.0.0'} + beasties@0.3.5: + resolution: {integrity: sha512-NaWu+f4YrJxEttJSm16AzMIFtVldCvaJ68b1L098KpqXmxt9xOLtKoLkKxb8ekhOrLqEJAbvT6n6SEvB/sac7A==} + engines: {node: '>=14.0.0'} + + beasties@0.4.1: + resolution: {integrity: sha512-2Imdcw3LznDuxAbJM26RHniOLAzE6WgrK8OuvVXCQtNBS8rsnD9zsSEa3fHl4hHpUY7BYTlrpvtPVbvu9G6neg==} + engines: {node: '>=18.0.0'} + before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} @@ -13191,6 +13856,10 @@ packages: resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + engines: {node: 18 || 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -13290,6 +13959,10 @@ packages: resolution: {integrity: sha512-hdsUxulXCi5STId78vRVYEtDAjq99ICAUktLTeTYsLoTE6Z8dS0c8pWNCxwdrk9YfJeobDZc2Y186hD/5ZQgFQ==} engines: {node: ^18.17.0 || >=20.5.0} + cacache@20.0.4: + resolution: {integrity: sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==} + engines: {node: ^20.17.0 || >=22.9.0} + cacheable-lookup@7.0.0: resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} engines: {node: '>=14.16'} @@ -13332,9 +14005,6 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001763: - resolution: {integrity: sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==} - caniuse-lite@1.0.30001769: resolution: {integrity: sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==} @@ -13556,6 +14226,10 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-spinners@3.4.0: + resolution: {integrity: sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==} + engines: {node: '>=18.20'} + cli-table3@0.6.5: resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} engines: {node: 10.* || >= 12.*} @@ -13568,6 +14242,10 @@ packages: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} + cli-truncate@5.2.0: + resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} + engines: {node: '>=20'} + cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} @@ -13882,6 +14560,12 @@ packages: peerDependencies: webpack: ^5.1.0 + copy-webpack-plugin@14.0.0: + resolution: {integrity: sha512-3JLW90aBGeaTLpM7mYQKpnVdgsUZRExY55giiZgLuX/xTQRUs1dOCwbBnWnvY6Q6rfZoXMNwzOQJCSZPppfqXA==} + engines: {node: '>= 20.9.0'} + peerDependencies: + webpack: ^5.1.0 + core-js-compat@3.47.0: resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} @@ -14039,6 +14723,9 @@ packages: css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + css-select@6.0.0: + resolution: {integrity: sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==} + css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -14051,6 +14738,10 @@ packages: resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} + css-what@7.0.0: + resolution: {integrity: sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==} + engines: {node: '>= 6'} + css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} @@ -14553,6 +15244,10 @@ packages: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + diff@7.0.0: + resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + engines: {node: '>=0.3.1'} + diff@9.0.0: resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==} engines: {node: '>=0.3.1'} @@ -14646,8 +15341,8 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dotenv-expand@11.0.7: - resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} + dotenv-expand@12.0.3: + resolution: {integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==} engines: {node: '>=12'} dotenv@16.4.7: @@ -14696,9 +15391,9 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} + ejs@5.0.1: + resolution: {integrity: sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A==} + engines: {node: '>=0.12.18'} hasBin: true electron-to-chromium@1.5.267: @@ -14920,8 +15615,8 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.25.12: - resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} + esbuild-wasm@0.28.0: + resolution: {integrity: sha512-5TRVKExcEmeMkccIZMzUq+Az6X2RoMAJyfl6SMMO1dMVhmvt0I2mx7gAb6zYi42n4d1ETcatFXazGKzA+aW7fg==} engines: {node: '>=18'} hasBin: true @@ -15193,6 +15888,10 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + eventsource-parser@3.0.6: + resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} + engines: {node: '>=18.0.0'} + eventsource-parser@3.0.8: resolution: {integrity: sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ==} engines: {node: '>=18.0.0'} @@ -15518,9 +16217,6 @@ packages: file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -15549,9 +16245,17 @@ packages: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} engines: {node: '>=14.16'} + find-cache-directory@6.0.0: + resolution: {integrity: sha512-CvFd5ivA6HcSHbD+59P7CyzINHXzwhuQK8RY7CxJZtgDSAtRlHiCaQpZQ2lMR/WRyUIEmzUvL6G2AGurMfegZA==} + engines: {node: '>=20'} + find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + find-up-simple@1.0.1: + resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} + engines: {node: '>=18'} + find-up@3.0.0: resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} engines: {node: '>=6'} @@ -15609,6 +16313,15 @@ packages: debug: optional: true + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + fontfaceobserver@2.3.0: resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==} @@ -15794,8 +16507,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.4.0: - resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + get-east-asian-width@1.6.0: + resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} engines: {node: '>=18'} get-intrinsic@1.3.0: @@ -16264,6 +16977,10 @@ packages: resolution: {integrity: sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==} engines: {node: ^18.17.0 || >=20.5.0} + hosted-git-info@9.0.3: + resolution: {integrity: sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==} + engines: {node: ^20.17.0 || >=22.9.0} + hpack.js@2.1.6: resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} @@ -16432,6 +17149,10 @@ packages: resolution: {integrity: sha512-T4gbf83A4NH95zvhVYZc+qWocBBGlpzUXLPGurJggw/WIOwicfXJChLDP/iBZnN5WqROSu5Bm3hhle4z8a8YGQ==} engines: {node: ^18.17.0 || >=20.5.0} + ignore-walk@8.0.0: + resolution: {integrity: sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==} + engines: {node: ^20.17.0 || >=22.9.0} + ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -16464,9 +17185,6 @@ packages: immer@9.0.21: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - immutable@5.1.4: - resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} - immutable@5.1.5: resolution: {integrity: sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==} @@ -16526,6 +17244,10 @@ packages: resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} engines: {node: ^18.17.0 || >=20.5.0} + ini@6.0.0: + resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} + engines: {node: ^20.17.0 || >=22.9.0} + injection-js@2.6.1: resolution: {integrity: sha512-dbR5bdhi7TWDoCye9cByZqeg/gAfamm8Vu3G1KZOTYkOif8WkuM8CD0oeDPtZYMzT5YH76JAFB7bkmyY9OJi2A==} @@ -16768,6 +17490,10 @@ packages: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + is-ip@3.1.0: resolution: {integrity: sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==} engines: {node: '>=8'} @@ -16898,6 +17624,10 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + is-unicode-supported@2.1.0: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} @@ -16957,6 +17687,10 @@ packages: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} @@ -17004,11 +17738,6 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jake@10.9.4: - resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} - engines: {node: '>=10'} - hasBin: true - jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -17043,10 +17772,6 @@ packages: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-diff@30.2.0: - resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-docblock@29.7.0: resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -17273,6 +17998,10 @@ packages: resolution: {integrity: sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==} engines: {node: ^18.17.0 || >=20.5.0} + json-parse-even-better-errors@5.0.0: + resolution: {integrity: sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==} + engines: {node: ^20.17.0 || >=22.9.0} + json-schema-to-ts@3.1.1: resolution: {integrity: sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==} engines: {node: '>=16'} @@ -17583,11 +18312,29 @@ packages: webpack: optional: true + less-loader@12.3.0: + resolution: {integrity: sha512-0M6+uYulvYIWs52y0LqN4+QM9TqWAohYSNTo4htE8Z7Cn3G/qQMEmktfHmyJT23k+20kU9zHH2wrfFXkxNLtVw==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + less: ^3.5.0 || ^4.0.0 + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + less@4.2.2: resolution: {integrity: sha512-tkuLHQlvWUTeQ3doAqnHbNn8T6WX1KA8yvbKG9x4VtKtIjHsVKQZCH11zRgAfbDAXC2UNIg/K9BYAAcEzUIrNg==} engines: {node: '>=6'} hasBin: true + less@4.4.0: + resolution: {integrity: sha512-kdTwsyRuncDfjEs0DlRILWNvxhDG/Zij4YLO4TMJgDLW+8OzpfkdPnRgrsRuY1o+oaxJGWsps5f/RVBgGmmN0w==} + engines: {node: '>=14'} + hasBin: true + less@4.5.1: resolution: {integrity: sha512-UKgI3/KON4u6ngSsnDADsUERqhZknsVZbnuzlRZXLQCmfC/MDld42fTydUE9B+Mla1AL6SJ/Pp6SlEFi/AVGfw==} engines: {node: '>=14'} @@ -17799,6 +18546,14 @@ packages: resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} engines: {node: '>=18.0.0'} + listr2@9.0.1: + resolution: {integrity: sha512-SL0JY3DaxylDuo/MecFeiC+7pedM0zia33zl0vcjgwcq1q1FWWF1To9EIauPbl8GbMCU0R2e0uJ8bZunhYKD2g==} + engines: {node: '>=20.0.0'} + + listr2@9.0.5: + resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} + engines: {node: '>=20.0.0'} + lit-element@4.2.2: resolution: {integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==} @@ -17812,6 +18567,14 @@ packages: resolution: {integrity: sha512-SuHqzPl7mYStna8WRotY8XX/EUZBjjv3QyKIByeCLFfC9uXT/OIHByEcA07PzbMfQAM0KYJtLgtpMRlIe5dErQ==} hasBin: true + lmdb@3.4.2: + resolution: {integrity: sha512-nwVGUfTBUwJKXd6lRV8pFNfnrCC1+l49ESJRM19t/tFb/97QfJEixe5DYRvug5JO7DSFKoKaVy7oGMt5rVqZvg==} + hasBin: true + + lmdb@3.5.1: + resolution: {integrity: sha512-NYHA0MRPjvNX+vSw8Xxg6FLKxzAG+e7Pt8RqAQA/EehzHVXq9SxDqJIN3JL1hK0dweb884y8kIh6rkWvPyg9Wg==} + hasBin: true + loader-runner@4.3.1: resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} engines: {node: '>=6.11.5'} @@ -17940,6 +18703,14 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + + log-symbols@7.0.1: + resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} + engines: {node: '>=18'} + log-update@4.0.0: resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} engines: {node: '>=10'} @@ -17982,10 +18753,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.4: - resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} - engines: {node: 20 || >=22} - lru-cache@11.3.5: resolution: {integrity: sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==} engines: {node: 20 || >=22} @@ -18095,6 +18862,10 @@ packages: resolution: {integrity: sha512-QMjGbFTP0blj97EeidG5hk/QhKQ3T4ICckQGLgz38QF7Vgbk6e6FTARN8KhKxyBbWn8R0HU+bnw8aSoFPD4qtQ==} engines: {node: ^18.17.0 || >=20.5.0} + make-fetch-happen@15.0.6: + resolution: {integrity: sha512-Je0fLJ0F5atA7F+eIlLzk+Wkcl57JDf4kf+EW8xiP5E31xOQxkIxTbgf1Oi1Lw9tRI9UEMRdI5Vz2xTzoNU1Jw==} + engines: {node: ^20.17.0 || >=22.9.0} + makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} @@ -18620,6 +19391,12 @@ packages: peerDependencies: webpack: ^5.0.0 + mini-css-extract-plugin@2.9.4: + resolution: {integrity: sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + miniflare@4.20260401.0: resolution: {integrity: sha512-lngHPzZFN9sxYG/mhzvnWiBMNVAN5MsO/7g32ttJ07rymtiK/ZBalODTKb8Od+BQdlU5DOR4CjVt9NydjnUyYg==} engines: {node: '>=18.0.0'} @@ -18646,6 +19423,10 @@ packages: resolution: {integrity: sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==} engines: {node: ^18.17.0 || >=20.5.0} + minipass-fetch@5.0.2: + resolution: {integrity: sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==} + engines: {node: ^20.17.0 || >=22.9.0} + minipass-flush@1.0.5: resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} engines: {node: '>= 8'} @@ -18658,6 +19439,10 @@ packages: resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} engines: {node: '>=8'} + minipass-sized@2.0.0: + resolution: {integrity: sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==} + engines: {node: '>=8'} + minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} @@ -18904,6 +19689,19 @@ packages: tailwindcss: optional: true + ng-packagr@21.2.3: + resolution: {integrity: sha512-jGq6yu0G6KReVK0i5RYVoV9HDL0mU626HrLBu5xvc8ZJ92n/+rLrFJuXdCnkroB9um+FBTQe/or6/A/2GAKhLw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + hasBin: true + peerDependencies: + '@angular/compiler-cli': ^21.0.0 || ^21.2.0-next + tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 + tslib: ^2.3.0 + typescript: '>=5.9 <6.0' + peerDependenciesMeta: + tailwindcss: + optional: true + nimma@0.2.3: resolution: {integrity: sha512-1ZOI8J+1PKKGceo/5CT5GfQOG6H8I2BencSK06YarZ2wXwH37BSSUWldqJmMJYA5JfqDqffxDXynt6f11AyKcA==} engines: {node: ^12.20 || >=14.13} @@ -18995,12 +19793,14 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true + node-gyp@12.3.0: + resolution: {integrity: sha512-QNcUWM+HgJplcPzBvFBZ9VXacyGZ4+VTOb80PwWR+TlVzoHbRKULNEzpRsnaoxG3Wzr7Qh7BYxGDU3CbKib2Yg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-machine-id@1.1.12: - resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - node-mock-http@1.0.4: resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} @@ -19036,6 +19836,11 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true + nopt@9.0.0: + resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} engines: {node: '>=0.10.0'} @@ -19056,14 +19861,26 @@ packages: resolution: {integrity: sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==} engines: {node: ^18.17.0 || >=20.5.0} + npm-bundled@5.0.0: + resolution: {integrity: sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==} + engines: {node: ^20.17.0 || >=22.9.0} + npm-install-checks@7.1.2: resolution: {integrity: sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==} engines: {node: ^18.17.0 || >=20.5.0} + npm-install-checks@8.0.0: + resolution: {integrity: sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==} + engines: {node: ^20.17.0 || >=22.9.0} + npm-normalize-package-bin@4.0.0: resolution: {integrity: sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==} engines: {node: ^18.17.0 || >=20.5.0} + npm-normalize-package-bin@5.0.0: + resolution: {integrity: sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==} + engines: {node: ^20.17.0 || >=22.9.0} + npm-package-arg@11.0.3: resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==} engines: {node: ^16.14.0 || >=18.0.0} @@ -19072,6 +19889,14 @@ packages: resolution: {integrity: sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==} engines: {node: ^18.17.0 || >=20.5.0} + npm-package-arg@13.0.2: + resolution: {integrity: sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==} + engines: {node: ^20.17.0 || >=22.9.0} + + npm-packlist@10.0.4: + resolution: {integrity: sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==} + engines: {node: ^20.17.0 || >=22.9.0} + npm-packlist@9.0.0: resolution: {integrity: sha512-8qSayfmHJQTx3nJWYbbUmflpyarbLMBc6LCAjYsiGtXxDB68HaZpb8re6zeaLGxZzDuMdhsg70jryJe+RrItVQ==} engines: {node: ^18.17.0 || >=20.5.0} @@ -19080,10 +19905,18 @@ packages: resolution: {integrity: sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==} engines: {node: ^18.17.0 || >=20.5.0} + npm-pick-manifest@11.0.3: + resolution: {integrity: sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==} + engines: {node: ^20.17.0 || >=22.9.0} + npm-registry-fetch@18.0.2: resolution: {integrity: sha512-LeVMZBBVy+oQb5R6FDV9OlJCcWDU+al10oKpe+nsvcHnG24Z3uM3SvJYKfGJlfGjVU8v9liejCrUR/M5HO5NEQ==} engines: {node: ^18.17.0 || >=20.5.0} + npm-registry-fetch@19.1.1: + resolution: {integrity: sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==} + engines: {node: ^20.17.0 || >=22.9.0} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -19192,12 +20025,12 @@ packages: nwsapi@2.2.23: resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} - nx@22.5.0: - resolution: {integrity: sha512-GOHhDHXvuscD28Hpj1bP38oVrCgZ/+5UWjA8R/VkpbtkfMHgRZ0uHlfKLYXQAZIsjmTq7Tr+e4QchJt0e76n0w==} + nx@22.7.5: + resolution: {integrity: sha512-zoxsJabb33jl1QYnalDn0bicryrEBgSzdKp90d7VGGv/jDgzKrcLg/hw2ZxeYiOjWPIT/o8QNT9G9vTs4dv3AQ==} hasBin: true peerDependencies: - '@swc-node/register': 1.11.1 - '@swc/core': 1.15.8 + '@swc-node/register': ^1.11.1 + '@swc/core': ^1.15.8 peerDependenciesMeta: '@swc-node/register': optional: true @@ -19410,6 +20243,14 @@ packages: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} + ora@8.2.0: + resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} + engines: {node: '>=18'} + + ora@9.3.0: + resolution: {integrity: sha512-lBX72MWFduWEf7v7uWf5DHp9Jn5BI8bNPGuFgtXMmr2uDz2Gz2749y3am3agSDdkhHPHYmmxEGSKH85ZLGzgXw==} + engines: {node: '>=20'} + ordered-binary@1.6.1: resolution: {integrity: sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==} @@ -19553,6 +20394,11 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true + pacote@21.3.1: + resolution: {integrity: sha512-O0EDXi85LF4AzdjG74GUwEArhdvawi/YOHcsW6IijKNj7wm8IvEWNF5GnfuxNpQ/ZpO3L37+v8hqdVh8GgWYhg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -19618,12 +20464,18 @@ packages: parse5-html-rewriting-stream@7.0.0: resolution: {integrity: sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==} + parse5-html-rewriting-stream@8.0.0: + resolution: {integrity: sha512-wzh11mj8KKkno1pZEu+l2EVeWsuKDfR5KNWZOTsslfUX8lPDZx77m9T0kIoAVkFtD1nx6YF8oh4BnPHvxMtNMw==} + parse5-htmlparser2-tree-adapter@6.0.1: resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} parse5-sax-parser@7.0.0: resolution: {integrity: sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==} + parse5-sax-parser@8.0.0: + resolution: {integrity: sha512-/dQ8UzHZwnrzs3EvDj6IkKrD/jIZyTlB+8XrHJvcjNgRdmWruNdN9i9RK/JtxakmlUdPwKubKPTCqvbTgzGhrw==} + parse5@5.1.1: resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} @@ -19795,6 +20647,14 @@ packages: piscina@4.9.2: resolution: {integrity: sha512-Fq0FERJWFEUpB4eSY59wSNwXD4RYqR+nR/WiEVcZW8IWfVBxJJafcgTEZDQo8k3w0sUarJ8RyVbbUF4GQ2LGbQ==} + piscina@5.1.3: + resolution: {integrity: sha512-0u3N7H4+hbr40KjuVn2uNhOcthu/9usKhnw5vT3J7ply79v3D3M8naI00el9Klcy16x557VsEkkUQaHCWFXC/g==} + engines: {node: '>=20.x'} + + piscina@5.1.4: + resolution: {integrity: sha512-7uU4ZnKeQq22t9AsmHGD2w4OYQGonwFnTypDypaWi7Qr2EvQIFVtG8J5D/3bE7W123Wdc9+v4CZDu5hJXVCtBg==} + engines: {node: '>=20.x'} + pkce-challenge@5.0.1: resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} engines: {node: '>=16.20.0'} @@ -19811,6 +20671,10 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} + pkg-dir@8.0.0: + resolution: {integrity: sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==} + engines: {node: '>=18'} + pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} @@ -20117,6 +20981,12 @@ packages: peerDependencies: postcss: ^8.5.13 + postcss-safe-parser@7.0.1: + resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 + postcss-selector-parser@6.0.10: resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} engines: {node: '>=4'} @@ -20148,6 +21018,10 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.12: + resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.15: resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} engines: {node: ^10 || ^12 || >=14} @@ -20199,10 +21073,6 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - pretty-format@30.2.0: - resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==} - engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - pretty-ms@9.3.0: resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} engines: {node: '>=18'} @@ -20223,6 +21093,10 @@ packages: resolution: {integrity: sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==} engines: {node: ^18.17.0 || >=20.5.0} + proc-log@6.1.0: + resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} + engines: {node: ^20.17.0 || >=22.9.0} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -21049,6 +21923,18 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + rolldown@1.0.0-rc.4: + resolution: {integrity: sha512-V2tPDUrY3WSevrvU2E41ijZlpF+5PbZu4giH+VpNraaadsJGHa4fR6IFwsocVwEXDoAdIv5qgPPxgrvKAOIPtA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + rollup-plugin-dts@6.4.1: + resolution: {integrity: sha512-l//F3Zf7ID5GoOfLfD8kroBjQKEKpy1qfhtAdnpibFZMffPaylrg1CoDC2vGkPeTeyxUe4bVFCln2EFuL7IGGg==} + engines: {node: '>=20'} + peerDependencies: + rollup: '>=4.59.0' + typescript: ^4.5 || ^5.0 || ^6.0 + rollup-plugin-visualizer@6.0.11: resolution: {integrity: sha512-TBwVHVY7buHjIKVLqr9scTVFwqZqMXINcCphPwIWKPDCOBIa+jCQfafvbjRJDZgXdq/A996Dy6yGJ/+/NtAXDQ==} engines: {node: '>=18'} @@ -21075,6 +21961,11 @@ packages: rollup: optional: true + rollup@4.59.0: + resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rollup@4.60.2: resolution: {integrity: sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -21196,14 +22087,15 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - sass@1.97.2: - resolution: {integrity: sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw==} + sass@1.90.0: + resolution: {integrity: sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==} engines: {node: '>=14.0.0'} hasBin: true - sax@1.4.4: - resolution: {integrity: sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==} - engines: {node: '>=11.0.0'} + sass@1.97.3: + resolution: {integrity: sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==} + engines: {node: '>=14.0.0'} + hasBin: true sax@1.6.0: resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} @@ -21431,6 +22323,10 @@ packages: resolution: {integrity: sha512-ZpzWAFHIFqyFE56dXqgX/DkDRZdz+rRcjoIk/RQU4IX0wiCv1l8S7ZrXDHcCc+uaf+6o7w3h2l3g6GYG5TKN9Q==} engines: {node: ^18.17.0 || >=20.5.0} + sigstore@4.1.1: + resolution: {integrity: sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w==} + engines: {node: ^20.17.0 || >=22.9.0} + simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} @@ -21518,6 +22414,10 @@ packages: resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} + slice-ansi@8.0.0: + resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} + engines: {node: '>=20'} + slugify@1.6.9: resolution: {integrity: sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==} engines: {node: '>=8.0.0'} @@ -21530,6 +22430,10 @@ packages: resolution: {integrity: sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw==} engines: {node: '>=20.0.0'} + smol-toml@1.6.1: + resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} + engines: {node: '>= 18'} + snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} @@ -21608,6 +22512,9 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + spdx-license-ids@3.0.22: resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} @@ -21638,6 +22545,10 @@ packages: resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} engines: {node: ^18.17.0 || >=20.5.0} + ssri@13.0.1: + resolution: {integrity: sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==} + engines: {node: ^20.17.0 || >=22.9.0} + stable-hash@0.0.5: resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} @@ -21685,6 +22596,14 @@ packages: std-env@4.1.0: resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + + stdin-discarder@0.3.2: + resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==} + engines: {node: '>=18'} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -21762,6 +22681,10 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} + string-width@8.2.1: + resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==} + engines: {node: '>=20'} + string.prototype.includes@2.0.1: resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} engines: {node: '>= 0.4'} @@ -22091,6 +23014,11 @@ packages: engines: {node: '>=10'} hasBin: true + terser@5.43.1: + resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} + engines: {node: '>=10'} + hasBin: true + terser@5.44.1: resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} engines: {node: '>=10'} @@ -22243,6 +23171,10 @@ packages: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} + tmp@0.2.6: + resolution: {integrity: sha512-5sJPdPjfI5Kx+qbrDesxkglRBxW//g7hCsqspEjwkewGvBMGIKMOTKzLt1hFVJzyadba3lDUN20O9qhvbQUSTA==} + engines: {node: '>=14.14'} + tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -22444,6 +23376,10 @@ packages: resolution: {integrity: sha512-3T3T04WzowbwV2FDiGXBbr81t64g1MUGGJRgT4x5o97N+8ArdhVCAF9IxFrxuSJmM3E5Asn7nKHkao0ibcZXAg==} engines: {node: ^18.17.0 || >=20.5.0} + tuf-js@4.1.0: + resolution: {integrity: sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==} + engines: {node: ^20.17.0 || >=22.9.0} + tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -22648,6 +23584,10 @@ packages: undici-types@7.19.2: resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} + undici@6.26.0: + resolution: {integrity: sha512-4yqz8a3n5HmGTlsbADNtr/dJlhkh/55Rq798G6ibiULcXbDtaLpTl1pvdqcbFfeoj3iSi52lePFM7h9H21cw/A==} + engines: {node: '>=18.17'} + undici@7.24.4: resolution: {integrity: sha512-BM/JzwwaRXxrLdElV2Uo6cTLEjhSb3WXboncJamZ15NgUURmvlXvxa6xkwIOILIjPNo9i8ku136ZvWV0Uly8+w==} engines: {node: '>=20.18.1'} @@ -23088,6 +24028,10 @@ packages: resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==} engines: {node: ^18.17.0 || >=20.5.0} + validate-npm-package-name@7.0.2: + resolution: {integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==} + engines: {node: ^20.17.0 || >=22.9.0} + validator@13.15.26: resolution: {integrity: sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==} engines: {node: '>= 0.10'} @@ -23451,8 +24395,8 @@ packages: resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} - watchpack@2.5.0: - resolution: {integrity: sha512-e6vZvY6xboSwLz2GD36c16+O/2Z6fKvIf4pOXptw2rY9MVwE/TXc6RGqxD3I3x0a28lwBY7DE+76uTPSsBrrCA==} + watchpack@2.4.4: + resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} engines: {node: '>=10.13.0'} watchpack@2.5.1: @@ -23636,6 +24580,11 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + why-is-node-running@2.3.0: resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} @@ -23867,6 +24816,11 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -23961,8 +24915,8 @@ packages: zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zone.js@0.14.10: - resolution: {integrity: sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==} + zone.js@0.15.1: + resolution: {integrity: sha512-XE96n56IQpJM7NAoXswY3XRLcWFW83xe0BiAOeMD7K5k5xecOeul3Qcpx6GqEeeHNkW5DWL5zOyTbEfB4eti8w==} zustand@4.5.7: resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} @@ -24033,11 +24987,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@ag-ui/a2a@0.0.6(@ag-ui/client@0.0.42)(@ag-ui/core@0.0.54)': + '@ag-ui/a2a@0.0.6(@ag-ui/client@0.0.42)(@ag-ui/core@0.0.53)': dependencies: '@a2a-js/sdk': 0.2.5 '@ag-ui/client': 0.0.42 - '@ag-ui/core': 0.0.54 + '@ag-ui/core': 0.0.53 rxjs: 7.8.1 transitivePeerDependencies: - supports-color @@ -24127,10 +25081,6 @@ snapshots: dependencies: zod: 3.25.76 - '@ag-ui/core@0.0.54': - dependencies: - zod: 3.25.76 - '@ag-ui/encoder@0.0.36': dependencies: '@ag-ui/core': 0.0.36 @@ -24189,11 +25139,11 @@ snapshots: - ws - zod-to-json-schema - '@ag-ui/langgraph@0.0.37(@ag-ui/client@0.0.53)(@ag-ui/core@0.0.54)(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vue@3.5.34(typescript@5.9.3))(ws@8.19.0)(zod-to-json-schema@3.25.1(zod@3.25.76))': + '@ag-ui/langgraph@0.0.37(@ag-ui/client@0.0.53)(@ag-ui/core@0.0.53)(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vue@3.5.34(typescript@5.9.3))(ws@8.19.0)(zod-to-json-schema@3.25.1(zod@3.25.76))': dependencies: '@ag-ui/a2ui-toolkit': 0.0.1-alpha.3 '@ag-ui/client': 0.0.53 - '@ag-ui/core': 0.0.54 + '@ag-ui/core': 0.0.53 '@langchain/core': 1.1.42(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(ws@8.19.0) '@langchain/langgraph-sdk': 1.8.9(@langchain/core@1.1.42(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(ws@8.19.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vue@3.5.34(typescript@5.9.3)) langchain: 1.3.5(@langchain/core@1.1.42(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(ws@8.19.0))(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vue@3.5.34(typescript@5.9.3))(ws@8.19.0)(zod-to-json-schema@3.25.1(zod@3.25.76)) @@ -24350,21 +25300,21 @@ snapshots: dependencies: '@ai-sdk/provider': 2.0.1 '@standard-schema/spec': 1.1.0 - eventsource-parser: 3.0.8 + eventsource-parser: 3.0.6 zod: 3.25.76 '@ai-sdk/provider-utils@4.0.15(zod@3.25.76)': dependencies: '@ai-sdk/provider': 3.0.8 '@standard-schema/spec': 1.1.0 - eventsource-parser: 3.0.8 + eventsource-parser: 3.0.6 zod: 3.25.76 '@ai-sdk/provider-utils@4.0.23(zod@3.25.76)': dependencies: '@ai-sdk/provider': 3.0.8 '@standard-schema/spec': 1.1.0 - eventsource-parser: 3.0.8 + eventsource-parser: 3.0.6 zod: 3.25.76 '@ai-sdk/provider-utils@4.0.27(zod@3.25.76)': @@ -24391,6 +25341,90 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 + '@algolia/abtesting@1.14.1': + dependencies: + '@algolia/client-common': 5.48.1 + '@algolia/requester-browser-xhr': 5.48.1 + '@algolia/requester-fetch': 5.48.1 + '@algolia/requester-node-http': 5.48.1 + + '@algolia/client-abtesting@5.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + '@algolia/requester-browser-xhr': 5.48.1 + '@algolia/requester-fetch': 5.48.1 + '@algolia/requester-node-http': 5.48.1 + + '@algolia/client-analytics@5.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + '@algolia/requester-browser-xhr': 5.48.1 + '@algolia/requester-fetch': 5.48.1 + '@algolia/requester-node-http': 5.48.1 + + '@algolia/client-common@5.48.1': {} + + '@algolia/client-insights@5.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + '@algolia/requester-browser-xhr': 5.48.1 + '@algolia/requester-fetch': 5.48.1 + '@algolia/requester-node-http': 5.48.1 + + '@algolia/client-personalization@5.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + '@algolia/requester-browser-xhr': 5.48.1 + '@algolia/requester-fetch': 5.48.1 + '@algolia/requester-node-http': 5.48.1 + + '@algolia/client-query-suggestions@5.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + '@algolia/requester-browser-xhr': 5.48.1 + '@algolia/requester-fetch': 5.48.1 + '@algolia/requester-node-http': 5.48.1 + + '@algolia/client-search@5.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + '@algolia/requester-browser-xhr': 5.48.1 + '@algolia/requester-fetch': 5.48.1 + '@algolia/requester-node-http': 5.48.1 + + '@algolia/ingestion@1.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + '@algolia/requester-browser-xhr': 5.48.1 + '@algolia/requester-fetch': 5.48.1 + '@algolia/requester-node-http': 5.48.1 + + '@algolia/monitoring@1.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + '@algolia/requester-browser-xhr': 5.48.1 + '@algolia/requester-fetch': 5.48.1 + '@algolia/requester-node-http': 5.48.1 + + '@algolia/recommend@5.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + '@algolia/requester-browser-xhr': 5.48.1 + '@algolia/requester-fetch': 5.48.1 + '@algolia/requester-node-http': 5.48.1 + + '@algolia/requester-browser-xhr@5.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + + '@algolia/requester-fetch@5.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + + '@algolia/requester-node-http@5.48.1': + dependencies: + '@algolia/client-common': 5.48.1 + '@alloc/quick-lru@5.2.0': {} '@ampproject/remapping@2.3.0': @@ -24398,124 +25432,51 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@analogjs/vite-plugin-angular@1.22.5(f03bd5883d0378c53d0ac3c313357894)': + '@analogjs/vite-plugin-angular@1.22.5(@angular-devkit/build-angular@20.3.26(fa163368fedd5cc784b6ba4d5453a633))(@angular/build@20.3.26(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@types/node@22.19.11)(chokidar@5.0.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.44.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@3.2.4)(yaml@2.9.0))': dependencies: ts-morph: 21.0.1 vfile: 6.0.3 optionalDependencies: - '@angular-devkit/build-angular': 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(chokidar@4.0.3)(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(jest@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)))(jiti@2.7.0)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(tailwindcss@4.1.18)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) - '@angular/build': 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@types/node@22.19.11)(chokidar@4.0.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.44.1)(tsx@4.21.0)(typescript@5.8.2)(yaml@2.8.3) + '@angular-devkit/build-angular': 20.3.26(fa163368fedd5cc784b6ba4d5453a633) + '@angular/build': 20.3.26(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@types/node@22.19.11)(chokidar@5.0.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.44.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@3.2.4)(yaml@2.9.0) - '@analogjs/vitest-angular@1.22.5(@analogjs/vite-plugin-angular@1.22.5(f03bd5883d0378c53d0ac3c313357894))(@angular-devkit/architect@0.1902.20(chokidar@4.0.3))(vitest@3.2.4)': + '@analogjs/vitest-angular@1.22.5(4e23c73094f199f594296d38a7293496)': dependencies: - '@analogjs/vite-plugin-angular': 1.22.5(f03bd5883d0378c53d0ac3c313357894) - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@24.1.3)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + '@analogjs/vite-plugin-angular': 1.22.5(@angular-devkit/build-angular@20.3.26(fa163368fedd5cc784b6ba4d5453a633))(@angular/build@20.3.26(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@types/node@22.19.11)(chokidar@5.0.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.44.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@3.2.4)(yaml@2.9.0)) + '@angular-devkit/architect': 0.2102.13(chokidar@5.0.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@24.1.3)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) '@andrewbranch/untar.js@1.0.3': {} - '@angular-devkit/architect@0.1902.20(chokidar@4.0.3)': + '@angular-devkit/architect@0.1902.20': dependencies: - '@angular-devkit/core': 19.2.20(chokidar@4.0.3) + '@angular-devkit/core': 19.2.20 rxjs: 7.8.1 transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(chokidar@4.0.3)(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(jest@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)))(jiti@2.7.0)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(tailwindcss@4.1.18)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3)': + '@angular-devkit/architect@0.2003.26(chokidar@5.0.0)': dependencies: - '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.1902.20(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - '@angular-devkit/core': 19.2.20(chokidar@4.0.3) - '@angular/build': 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@types/node@22.19.11)(chokidar@4.0.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(postcss@8.5.2)(tailwindcss@4.1.18)(terser@5.39.0)(tsx@4.21.0)(typescript@5.8.2)(yaml@2.8.3) - '@angular/compiler-cli': 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) - '@babel/core': 7.26.10 - '@babel/generator': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.10) - '@babel/preset-env': 7.26.9(@babel/core@7.26.10) - '@babel/runtime': 7.26.10 - '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - ansi-colors: 4.1.3 - autoprefixer: 10.4.20(postcss@8.5.2) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)) - browserslist: 4.28.1 - copy-webpack-plugin: 12.0.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - css-loader: 7.1.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - esbuild-wasm: 0.25.4 - fast-glob: 3.3.3 - http-proxy-middleware: 3.0.5 - istanbul-lib-instrument: 6.0.3 - jsonc-parser: 3.3.1 - karma-source-map-support: 1.4.0 - less: 4.2.2 - less-loader: 12.2.0(less@4.2.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - license-webpack-plugin: 4.0.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - open: 10.1.0 - ora: 5.4.1 - picomatch: 4.0.4 - piscina: 4.8.0 - postcss: 8.5.2 - postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.8.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - resolve-url-loader: 5.0.0 - rxjs: 7.8.1 - sass: 1.85.0 - sass-loader: 16.0.5(sass@1.85.0)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - semver: 7.7.1 - source-map-loader: 5.0.0(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - source-map-support: 0.5.21 - terser: 5.39.0 - tree-kill: 1.2.2 - tslib: 2.8.1 - typescript: 5.8.2 - webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) - webpack-dev-middleware: 7.4.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - webpack-dev-server: 5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - optionalDependencies: - esbuild: 0.25.4 - jest: 29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)) - ng-packagr: 19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2) - tailwindcss: 4.1.18 + '@angular-devkit/core': 20.3.26(chokidar@5.0.0) + rxjs: 7.8.2 transitivePeerDependencies: - - '@angular/compiler' - - '@rspack/core' - - '@swc/core' - - '@types/node' - - bufferutil - chokidar - - debug - - html-webpack-plugin - - jiti - - lightningcss - - node-sass - - sass-embedded - - stylus - - sugarss - - supports-color - - tsx - - uglify-js - - utf-8-validate - - vite - - webpack-cli - - yaml optional: true - '@angular-devkit/build-angular@19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(chokidar@4.0.3)(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(typescript@5.8.2)))(jiti@2.7.0)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(tailwindcss@4.1.18)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3)': + '@angular-devkit/architect@0.2102.13(chokidar@5.0.0)': + dependencies: + '@angular-devkit/core': 21.2.13(chokidar@5.0.0) + rxjs: 7.8.2 + transitivePeerDependencies: + - chokidar + + '@angular-devkit/build-angular@19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(typescript@5.8.2)))(jiti@2.7.0)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(tailwindcss@4.1.18)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.1902.20(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - '@angular-devkit/core': 19.2.20(chokidar@4.0.3) - '@angular/build': 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@types/node@22.19.3)(chokidar@4.0.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(postcss@8.5.2)(tailwindcss@4.1.18)(terser@5.39.0)(tsx@4.21.0)(typescript@5.8.2)(yaml@2.8.3) + '@angular-devkit/architect': 0.1902.20 + '@angular-devkit/build-webpack': 0.1902.20(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + '@angular-devkit/core': 19.2.20 + '@angular/build': 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(postcss@8.5.2)(tailwindcss@4.1.18)(terser@5.39.0)(tsx@4.21.0)(typescript@5.8.2)(yaml@2.9.0) '@angular/compiler-cli': 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) '@babel/core': 7.26.10 '@babel/generator': 7.26.10 @@ -24528,10 +25489,10 @@ snapshots: '@babel/runtime': 7.26.10 '@discoveryjs/json-ext': 0.6.3 '@ngtools/webpack': 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.9.0)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.5.2) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)) + babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) browserslist: 4.28.1 copy-webpack-plugin: 12.0.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) css-loader: 7.1.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) @@ -24563,7 +25524,7 @@ snapshots: tree-kill: 1.2.2 tslib: 2.8.1 typescript: 5.8.2 - webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4) webpack-dev-middleware: 7.4.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) webpack-dev-server: 5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) webpack-merge: 6.0.1 @@ -24596,70 +25557,71 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-angular@19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(chokidar@4.0.3)(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)))(jest@29.7.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)))(jiti@2.7.0)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@5.8.2))(tailwindcss@4.2.2)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3)': + '@angular-devkit/build-angular@20.3.26(fa163368fedd5cc784b6ba4d5453a633)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.1902.20(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - '@angular-devkit/core': 19.2.20(chokidar@4.0.3) - '@angular/build': 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@types/node@25.6.0)(chokidar@4.0.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@5.8.2))(postcss@8.5.2)(tailwindcss@4.2.2)(terser@5.39.0)(tsx@4.21.0)(typescript@5.8.2)(yaml@2.8.3) - '@angular/compiler-cli': 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) - '@babel/core': 7.26.10 - '@babel/generator': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 + '@angular-devkit/architect': 0.2003.26(chokidar@5.0.0) + '@angular-devkit/build-webpack': 0.2003.26(chokidar@5.0.0)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + '@angular-devkit/core': 20.3.26(chokidar@5.0.0) + '@angular/build': 20.3.26(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@types/node@22.19.11)(chokidar@5.0.0)(jiti@2.7.0)(less@4.4.0)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.12)(tailwindcss@4.1.18)(terser@5.43.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@3.2.4)(yaml@2.9.0) + '@angular/compiler-cli': 21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3) + '@babel/core': 7.28.3 + '@babel/generator': 7.28.3 + '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.10) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.10) - '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.10) - '@babel/preset-env': 7.26.9(@babel/core@7.26.10) - '@babel/runtime': 7.26.10 + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-runtime': 7.28.3(@babel/core@7.28.3) + '@babel/preset-env': 7.28.3(@babel/core@7.28.3) + '@babel/runtime': 7.28.3 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(typescript@5.8.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3)) + '@ngtools/webpack': 20.3.26(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) ansi-colors: 4.1.3 - autoprefixer: 10.4.20(postcss@8.5.2) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)) - browserslist: 4.28.1 - copy-webpack-plugin: 12.0.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + autoprefixer: 10.4.21(postcss@8.5.12) + babel-loader: 10.0.0(@babel/core@7.28.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + browserslist: 4.28.2 + copy-webpack-plugin: 14.0.0(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) css-loader: 7.1.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - esbuild-wasm: 0.25.4 + esbuild-wasm: 0.28.0 fast-glob: 3.3.3 http-proxy-middleware: 3.0.5 istanbul-lib-instrument: 6.0.3 jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 - less: 4.2.2 - less-loader: 12.2.0(less@4.2.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + less: 4.4.0 + less-loader: 12.3.0(less@4.4.0)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) license-webpack-plugin: 4.0.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - open: 10.1.0 - ora: 5.4.1 + mini-css-extract-plugin: 2.9.4(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + open: 10.2.0 + ora: 8.2.0 picomatch: 4.0.4 - piscina: 4.8.0 - postcss: 8.5.2 - postcss-loader: 8.1.1(postcss@8.5.2)(typescript@5.8.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + piscina: 5.1.3 + postcss: 8.5.12 + postcss-loader: 8.1.1(postcss@8.5.12)(typescript@5.9.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) resolve-url-loader: 5.0.0 - rxjs: 7.8.1 - sass: 1.85.0 - sass-loader: 16.0.5(sass@1.85.0)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - semver: 7.7.1 + rxjs: 7.8.2 + sass: 1.90.0 + sass-loader: 16.0.5(sass@1.90.0)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + semver: 7.7.2 source-map-loader: 5.0.0(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) source-map-support: 0.5.21 - terser: 5.39.0 + terser: 5.43.1 tree-kill: 1.2.2 tslib: 2.8.1 - typescript: 5.8.2 + typescript: 5.9.3 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) webpack-dev-middleware: 7.4.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) webpack-dev-server: 5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) optionalDependencies: - esbuild: 0.25.4 - jest: 29.7.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)) - ng-packagr: 19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@5.8.2) - tailwindcss: 4.2.2 + '@angular/core': 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) + esbuild: 0.27.3 + jest: 29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.9.3)) + ng-packagr: 21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3) + tailwindcss: 4.1.18 transitivePeerDependencies: - '@angular/compiler' - '@rspack/core' @@ -24679,20 +25641,31 @@ snapshots: - tsx - uglify-js - utf-8-validate - - vite + - vitest - webpack-cli - yaml + optional: true - '@angular-devkit/build-webpack@0.1902.20(chokidar@4.0.3)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + '@angular-devkit/build-webpack@0.1902.20(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': dependencies: - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) + '@angular-devkit/architect': 0.1902.20 rxjs: 7.8.1 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) webpack-dev-server: 5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) transitivePeerDependencies: - chokidar - '@angular-devkit/core@19.2.20(chokidar@4.0.3)': + '@angular-devkit/build-webpack@0.2003.26(chokidar@5.0.0)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + dependencies: + '@angular-devkit/architect': 0.2003.26(chokidar@5.0.0) + rxjs: 7.8.2 + webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + webpack-dev-server: 5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + transitivePeerDependencies: + - chokidar + optional: true + + '@angular-devkit/core@19.2.20': dependencies: ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) @@ -24700,12 +25673,33 @@ snapshots: picomatch: 4.0.4 rxjs: 7.8.1 source-map: 0.7.4 + + '@angular-devkit/core@20.3.26(chokidar@5.0.0)': + dependencies: + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + jsonc-parser: 3.3.1 + picomatch: 4.0.4 + rxjs: 7.8.2 + source-map: 0.7.6 optionalDependencies: - chokidar: 4.0.3 + chokidar: 5.0.0 + optional: true + + '@angular-devkit/core@21.2.13(chokidar@5.0.0)': + dependencies: + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + jsonc-parser: 3.3.1 + picomatch: 4.0.4 + rxjs: 7.8.2 + source-map: 0.7.6 + optionalDependencies: + chokidar: 5.0.0 - '@angular-devkit/schematics@19.2.20(chokidar@4.0.3)': + '@angular-devkit/schematics@19.2.20': dependencies: - '@angular-devkit/core': 19.2.20(chokidar@4.0.3) + '@angular-devkit/core': 19.2.20 jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 5.4.1 @@ -24713,24 +25707,39 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))': + '@angular-devkit/schematics@21.2.13(chokidar@5.0.0)': + dependencies: + '@angular-devkit/core': 21.2.13(chokidar@5.0.0) + jsonc-parser: 3.3.1 + magic-string: 0.30.21 + ora: 9.3.0 + rxjs: 7.8.2 + transitivePeerDependencies: + - chokidar + + '@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))': dependencies: - '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) + '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.15.1) tslib: 2.8.1 - '@angular/build@19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@types/node@22.19.11)(chokidar@4.0.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(postcss@8.5.2)(tailwindcss@4.1.18)(terser@5.39.0)(tsx@4.21.0)(typescript@5.8.2)(yaml@2.8.3)': + '@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))': + dependencies: + '@angular/core': 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) + tslib: 2.8.1 + + '@angular/build@19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(postcss@8.5.2)(tailwindcss@4.1.18)(terser@5.39.0)(tsx@4.21.0)(typescript@5.8.2)(yaml@2.9.0)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) + '@angular-devkit/architect': 0.1902.20 '@angular/compiler': 19.2.18 '@angular/compiler-cli': 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@inquirer/confirm': 5.1.6(@types/node@22.19.11) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@inquirer/confirm': 5.1.6(@types/node@22.19.3) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.9.0)) beasties: 0.3.2 browserslist: 4.28.2 esbuild: 0.27.3 @@ -24748,7 +25757,7 @@ snapshots: semver: 7.7.1 source-map-support: 0.5.21 typescript: 5.8.2 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.9.0) watchpack: 2.4.2 optionalDependencies: less: 4.2.2 @@ -24768,45 +25777,48 @@ snapshots: - terser - tsx - yaml - optional: true - '@angular/build@19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@types/node@22.19.11)(chokidar@4.0.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.44.1)(tsx@4.21.0)(typescript@5.8.2)(yaml@2.8.3)': + '@angular/build@20.3.26(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@types/node@22.19.11)(chokidar@5.0.0)(jiti@2.7.0)(less@4.4.0)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.12)(tailwindcss@4.1.18)(terser@5.43.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@3.2.4)(yaml@2.9.0)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) - '@angular/compiler': 19.2.18 - '@angular/compiler-cli': 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 + '@angular-devkit/architect': 0.2003.26(chokidar@5.0.0) + '@angular/compiler': 21.2.15 + '@angular/compiler-cli': 21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3) + '@babel/core': 7.28.3 + '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@inquirer/confirm': 5.1.6(@types/node@22.19.11) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - beasties: 0.3.2 + '@inquirer/confirm': 5.1.14(@types/node@22.19.11) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) + beasties: 0.3.5 browserslist: 4.28.2 esbuild: 0.27.3 - fast-glob: 3.3.3 https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 - listr2: 8.2.5 + jsonc-parser: 3.3.1 + listr2: 9.0.1 magic-string: 0.30.17 mrmime: 2.0.1 - parse5-html-rewriting-stream: 7.0.0 + parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.4 - piscina: 4.8.0 - rollup: 4.60.2 - sass: 1.85.0 - semver: 7.7.1 + piscina: 5.1.3 + rollup: 4.59.0 + sass: 1.90.0 + semver: 7.7.2 source-map-support: 0.5.21 - typescript: 5.8.2 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - watchpack: 2.4.2 - optionalDependencies: - less: 4.5.1 - lmdb: 3.2.6 - ng-packagr: 19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2) - postcss: 8.5.6 + tinyglobby: 0.2.14 + tslib: 2.8.1 + typescript: 5.9.3 + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.4.0)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.21.0)(yaml@2.9.0) + watchpack: 2.4.4 + optionalDependencies: + '@angular/core': 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) + less: 4.4.0 + lmdb: 3.4.2 + ng-packagr: 21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3) + postcss: 8.5.12 tailwindcss: 4.1.18 + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@24.1.3)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - '@types/node' - chokidar @@ -24821,43 +25833,47 @@ snapshots: - yaml optional: true - '@angular/build@19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@types/node@22.19.3)(chokidar@4.0.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(postcss@8.5.2)(tailwindcss@4.1.18)(terser@5.39.0)(tsx@4.21.0)(typescript@5.8.2)(yaml@2.8.3)': + '@angular/build@20.3.26(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@types/node@22.19.11)(chokidar@5.0.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.6)(tailwindcss@4.1.18)(terser@5.44.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@3.2.4)(yaml@2.9.0)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) - '@angular/compiler': 19.2.18 - '@angular/compiler-cli': 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 + '@angular-devkit/architect': 0.2003.26(chokidar@5.0.0) + '@angular/compiler': 21.2.15 + '@angular/compiler-cli': 21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3) + '@babel/core': 7.28.3 + '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@inquirer/confirm': 5.1.6(@types/node@22.19.3) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - beasties: 0.3.2 + '@inquirer/confirm': 5.1.14(@types/node@22.19.11) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) + beasties: 0.3.5 browserslist: 4.28.2 esbuild: 0.27.3 - fast-glob: 3.3.3 https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 - listr2: 8.2.5 + jsonc-parser: 3.3.1 + listr2: 9.0.1 magic-string: 0.30.17 mrmime: 2.0.1 - parse5-html-rewriting-stream: 7.0.0 + parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.4 - piscina: 4.8.0 - rollup: 4.60.2 - sass: 1.85.0 - semver: 7.7.1 + piscina: 5.1.3 + rollup: 4.59.0 + sass: 1.90.0 + semver: 7.7.2 source-map-support: 0.5.21 - typescript: 5.8.2 - vite: 7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3) - watchpack: 2.4.2 + tinyglobby: 0.2.14 + tslib: 2.8.1 + typescript: 5.9.3 + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + watchpack: 2.4.4 optionalDependencies: - less: 4.2.2 - lmdb: 3.2.6 - ng-packagr: 19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2) - postcss: 8.5.2 + '@angular/core': 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) + less: 4.5.1 + lmdb: 3.4.2 + ng-packagr: 21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3) + postcss: 8.5.6 tailwindcss: 4.1.18 + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@24.1.3)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - '@types/node' - chokidar @@ -24870,44 +25886,50 @@ snapshots: - terser - tsx - yaml + optional: true - '@angular/build@19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@types/node@25.6.0)(chokidar@4.0.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@5.8.2))(postcss@8.5.2)(tailwindcss@4.2.2)(terser@5.39.0)(tsx@4.21.0)(typescript@5.8.2)(yaml@2.8.3)': + '@angular/build@21.2.13(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@types/node@25.6.0)(chokidar@5.0.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(ng-packagr@21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@5.9.3))(postcss@8.5.15)(tailwindcss@4.2.2)(terser@5.44.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@4.1.5)(yaml@2.9.0)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) - '@angular/compiler': 19.2.18 - '@angular/compiler-cli': 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) - '@babel/core': 7.26.10 - '@babel/helper-annotate-as-pure': 7.25.9 + '@angular-devkit/architect': 0.2102.13(chokidar@5.0.0) + '@angular/compiler': 21.2.15 + '@angular/compiler-cli': 21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3) + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) - '@inquirer/confirm': 5.1.6(@types/node@25.6.0) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3)) - beasties: 0.3.2 + '@inquirer/confirm': 5.1.21(@types/node@25.6.0) + '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) + beasties: 0.4.1 browserslist: 4.28.2 esbuild: 0.27.3 - fast-glob: 3.3.3 https-proxy-agent: 7.0.6 istanbul-lib-instrument: 6.0.3 - listr2: 8.2.5 - magic-string: 0.30.17 + jsonc-parser: 3.3.1 + listr2: 9.0.5 + magic-string: 0.30.21 mrmime: 2.0.1 - parse5-html-rewriting-stream: 7.0.0 + parse5-html-rewriting-stream: 8.0.0 picomatch: 4.0.4 - piscina: 4.8.0 - rollup: 4.60.2 - sass: 1.85.0 - semver: 7.7.1 + piscina: 5.1.4 + rolldown: 1.0.0-rc.4 + sass: 1.97.3 + semver: 7.7.4 source-map-support: 0.5.21 - typescript: 5.8.2 - vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3) - watchpack: 2.4.2 + tinyglobby: 0.2.15 + tslib: 2.8.1 + typescript: 5.9.3 + undici: 7.24.4 + vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + watchpack: 2.5.1 optionalDependencies: - less: 4.2.2 - lmdb: 3.2.6 - ng-packagr: 19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@5.8.2) - postcss: 8.5.2 + '@angular/core': 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) + less: 4.5.1 + lmdb: 3.5.1 + ng-packagr: 21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@5.9.3) + postcss: 8.5.15 tailwindcss: 4.2.2 + vitest: 4.1.5(@opentelemetry/api@1.9.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) transitivePeerDependencies: - '@types/node' - chokidar @@ -24921,22 +25943,23 @@ snapshots: - tsx - yaml - '@angular/cdk@19.2.19(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)': + '@angular/cdk@21.2.13(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(rxjs@7.8.1)': dependencies: - '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.14.10) - parse5: 7.3.0 + '@angular/common': 21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) + '@angular/core': 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) + parse5: 8.0.1 rxjs: 7.8.1 tslib: 2.8.1 - '@angular/cli@19.2.20(@types/node@22.19.3)(chokidar@4.0.3)': + '@angular/cli@19.2.20(@types/node@22.19.3)': dependencies: - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) - '@angular-devkit/core': 19.2.20(chokidar@4.0.3) - '@angular-devkit/schematics': 19.2.20(chokidar@4.0.3) + '@angular-devkit/architect': 0.1902.20 + '@angular-devkit/core': 19.2.20 + '@angular-devkit/schematics': 19.2.20 '@inquirer/prompts': 7.3.2(@types/node@22.19.3) '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.3.2(@types/node@22.19.3)) - '@schematics/angular': 19.2.20(chokidar@4.0.3) + '@schematics/angular': 19.2.20 '@yarnpkg/lockfile': 1.1.0 ini: 5.0.0 jsonc-parser: 3.3.1 @@ -24953,33 +25976,41 @@ snapshots: - chokidar - supports-color - '@angular/cli@19.2.20(@types/node@25.6.0)(chokidar@4.0.3)': + '@angular/cli@21.2.13(@cfworker/json-schema@4.1.1)(@types/node@25.6.0)(chokidar@5.0.0)': dependencies: - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) - '@angular-devkit/core': 19.2.20(chokidar@4.0.3) - '@angular-devkit/schematics': 19.2.20(chokidar@4.0.3) - '@inquirer/prompts': 7.3.2(@types/node@25.6.0) - '@listr2/prompt-adapter-inquirer': 2.0.18(@inquirer/prompts@7.3.2(@types/node@25.6.0)) - '@schematics/angular': 19.2.20(chokidar@4.0.3) + '@angular-devkit/architect': 0.2102.13(chokidar@5.0.0) + '@angular-devkit/core': 21.2.13(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.13(chokidar@5.0.0) + '@inquirer/prompts': 7.10.1(@types/node@25.6.0) + '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@25.6.0))(@types/node@25.6.0)(listr2@9.0.5) + '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@3.25.76) + '@schematics/angular': 21.2.13(chokidar@5.0.0) '@yarnpkg/lockfile': 1.1.0 - ini: 5.0.0 + algoliasearch: 5.48.1 + ini: 6.0.0 jsonc-parser: 3.3.1 - listr2: 8.2.5 - npm-package-arg: 12.0.2 - npm-pick-manifest: 10.0.0 - pacote: 20.0.0 - resolve: 1.22.10 - semver: 7.7.1 - symbol-observable: 4.0.0 - yargs: 17.7.2 + listr2: 9.0.5 + npm-package-arg: 13.0.2 + pacote: 21.3.1 + parse5-html-rewriting-stream: 8.0.0 + semver: 7.7.4 + yargs: 18.0.0 + zod: 3.25.76 transitivePeerDependencies: + - '@cfworker/json-schema' - '@types/node' - chokidar - supports-color - '@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)': + '@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1)': + dependencies: + '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.15.1) + rxjs: 7.8.1 + tslib: 2.8.1 + + '@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1)': dependencies: - '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/core': 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) rxjs: 7.8.1 tslib: 2.8.1 @@ -24998,44 +26029,97 @@ snapshots: transitivePeerDependencies: - supports-color + '@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3)': + dependencies: + '@angular/compiler': 21.2.15 + '@babel/core': 7.29.0 + '@jridgewell/sourcemap-codec': 1.5.5 + chokidar: 5.0.0 + convert-source-map: 1.9.0 + reflect-metadata: 0.2.2 + semver: 7.8.1 + tslib: 2.8.1 + yargs: 18.0.0 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@angular/compiler@19.2.18': dependencies: tslib: 2.8.1 - '@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)': + '@angular/compiler@21.2.15': + dependencies: + tslib: 2.8.1 + + '@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)': + dependencies: + rxjs: 7.8.1 + tslib: 2.8.1 + zone.js: 0.15.1 + + '@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)': + dependencies: + rxjs: 7.8.1 + tslib: 2.8.1 + optionalDependencies: + '@angular/compiler': 21.2.15 + zone.js: 0.15.1 + + '@angular/forms@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(rxjs@7.8.1)': dependencies: + '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) + '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.15.1) + '@angular/platform-browser': 19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)) rxjs: 7.8.1 tslib: 2.8.1 - zone.js: 0.14.10 - '@angular/forms@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1)': + '@angular/forms@21.2.15(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(rxjs@7.8.1)': dependencies: - '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.14.10) - '@angular/platform-browser': 19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)) + '@angular/common': 21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) + '@angular/core': 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) + '@standard-schema/spec': 1.1.0 rxjs: 7.8.1 tslib: 2.8.1 - '@angular/platform-browser-dynamic@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@19.2.18)(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))': + '@angular/platform-browser-dynamic@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/compiler@19.2.18)(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))': dependencies: - '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) '@angular/compiler': 19.2.18 - '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.14.10) - '@angular/platform-browser': 19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)) + '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.15.1) + '@angular/platform-browser': 19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)) + tslib: 2.8.1 + + '@angular/platform-browser-dynamic@21.2.15(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/compiler@21.2.15)(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))': + dependencies: + '@angular/common': 21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) + '@angular/compiler': 21.2.15 + '@angular/core': 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) + '@angular/platform-browser': 21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) tslib: 2.8.1 - '@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))': + '@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))': dependencies: - '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) + '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.15.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)) + '@angular/animations': 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)) + + '@angular/platform-browser@21.2.15(@angular/animations@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))': + dependencies: + '@angular/common': 21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) + '@angular/core': 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) + tslib: 2.8.1 + optionalDependencies: + '@angular/animations': 21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)) '@antfu/install-pkg@1.1.0': dependencies: package-manager-detector: 1.6.0 - tinyexec: 1.1.2 + tinyexec: 1.0.2 '@anthropic-ai/sdk@0.27.3(encoding@0.1.13)': dependencies: @@ -25060,19 +26144,19 @@ snapshots: '@ardatan/relay-compiler@12.0.0(encoding@0.1.13)(graphql@16.12.0)': dependencies: - '@babel/core': 7.28.5 - '@babel/generator': 7.28.5 - '@babel/parser': 7.29.2 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.7 + '@babel/parser': 7.29.7 '@babel/runtime': 7.29.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.29.0 - babel-preset-fbjs: 3.4.0(@babel/core@7.28.5) + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + babel-preset-fbjs: 3.4.0(@babel/core@7.29.0) chalk: 4.1.2 fb-watchman: 2.0.2 fbjs: 3.0.5(encoding@0.1.13) glob: 7.2.3 graphql: 16.12.0 - immutable: 5.1.4 + immutable: 5.1.5 invariant: 2.2.4 nullthrows: 1.1.1 relay-runtime: 12.0.0(encoding@0.1.13) @@ -25084,13 +26168,13 @@ snapshots: '@ardatan/relay-compiler@12.0.3(encoding@0.1.13)(graphql@16.12.0)': dependencies: - '@babel/generator': 7.28.5 - '@babel/parser': 7.29.2 + '@babel/generator': 7.29.7 + '@babel/parser': 7.29.7 '@babel/runtime': 7.29.2 chalk: 4.1.2 fb-watchman: 2.0.2 graphql: 16.12.0 - immutable: 5.1.4 + immutable: 5.1.5 invariant: 2.2.4 nullthrows: 1.1.1 relay-runtime: 12.0.0(encoding@0.1.13) @@ -25114,8 +26198,8 @@ snapshots: '@loaderkit/resolve': 1.0.4 cjs-module-lexer: 1.4.3 fflate: 0.8.2 - lru-cache: 11.2.4 - semver: 7.7.4 + lru-cache: 11.3.5 + semver: 7.8.1 typescript: 5.6.1-rc validate-npm-package-name: 5.0.1 @@ -25832,26 +26916,28 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/code-frame@7.29.0': + '@babel/code-frame@7.29.7': dependencies: - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-validator-identifier': 7.29.7 js-tokens: 4.0.0 picocolors: 1.1.1 '@babel/compat-data@7.28.5': {} + '@babel/compat-data@7.29.7': {} + '@babel/core@7.26.10': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.26.10) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.26.10) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 convert-source-map: 2.0.0 debug: 4.4.3(supports-color@5.5.0) gensync: 1.0.0-beta.2 @@ -25863,15 +26949,35 @@ snapshots: '@babel/core@7.26.9': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.26.9) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.26.9) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + convert-source-map: 2.0.0 + debug: 4.4.3(supports-color@5.5.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/core@7.28.3': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.28.3) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 convert-source-map: 2.0.0 debug: 4.4.3(supports-color@5.5.0) gensync: 1.0.0-beta.2 @@ -25879,6 +26985,7 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + optional: true '@babel/core@7.28.5': dependencies: @@ -25900,26 +27007,55 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.0) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3(supports-color@5.5.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.26.10': dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/generator@7.28.3': + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 + optional: true '@babel/generator@7.28.5': dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/generator@7.29.1': + '@babel/generator@7.29.7': dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 @@ -25935,11 +27071,11 @@ snapshots: '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.29.7 '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -25949,6 +27085,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.29.7': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.28.2 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -25957,10 +27101,24 @@ snapshots: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.26.10) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.7 semver: 6.3.1 transitivePeerDependencies: - supports-color + optional: true '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)': dependencies: @@ -25970,20 +27128,33 @@ snapshots: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.29.3(@babel/core@7.28.5)': + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-class-features-plugin@7.29.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.28.6(@babel/core@7.28.5) + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.29.7 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -25995,6 +27166,14 @@ snapshots: regexpu-core: 6.4.0 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-annotate-as-pure': 7.27.3 + regexpu-core: 6.4.0 + semver: 6.3.1 + optional: true + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26002,21 +27181,51 @@ snapshots: regexpu-core: 6.4.0 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + regexpu-core: 6.4.0 + semver: 6.3.1 + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.3(supports-color@5.5.0) + lodash.debounce: 4.0.8 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.3(supports-color@5.5.0) lodash.debounce: 4.0.8 resolve: 1.22.11 transitivePeerDependencies: - supports-color + optional: true '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.3(supports-color@5.5.0) + lodash.debounce: 4.0.8 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.3(supports-color@5.5.0) lodash.debounce: 4.0.8 @@ -26026,57 +27235,122 @@ snapshots: '@babel/helper-globals@7.28.0': {} + '@babel/helper-globals@7.29.7': {} + '@babel/helper-member-expression-to-functions@7.28.5': dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color '@babel/helper-module-transforms@7.28.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.26.9)': + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)': dependencies: - '@babel/core': 7.26.9 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 + '@babel/core': 7.28.3 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + optional: true '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + optional: true + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@babel/helper-plugin-utils@7.27.1': {} @@ -26087,16 +27361,35 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.3 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.3 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -26105,73 +27398,105 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + optional: true '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.28.6(@babel/core@7.28.5)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.29.7 - '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.29.7': {} '@babel/helper-string-parser@8.0.0-rc.2': {} '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@7.29.7': {} + '@babel/helper-validator-identifier@8.0.0-rc.1': {} '@babel/helper-validator-option@7.27.1': {} + '@babel/helper-validator-option@7.29.7': {} + '@babel/helper-wrap-function@7.28.3': dependencies: - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.29.0 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color '@babel/helpers@7.28.4': dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.29.0 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + + '@babel/helpers@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 '@babel/parser@7.28.5': dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.29.0 '@babel/parser@7.29.2': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@babel/parser@7.29.3': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 + + '@babel/parser@7.29.7': + dependencies: + '@babel/types': 7.29.7 '@babel/parser@8.0.0-rc.1': dependencies: @@ -26181,38 +27506,80 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + optional: true '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -26222,6 +27589,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.3) + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26231,36 +27608,64 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + optional: true '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.28.5)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + optional: true - '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.28.5)': + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.28.5 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.28.5) + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-decorators@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-decorators': 7.28.6(@babel/core@7.29.0) transitivePeerDependencies: - supports-color @@ -26269,46 +27674,81 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.28.5)': + '@babel/plugin-proposal-export-default-from@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/compat-data': 7.28.5 - '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.29.0)': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + optional: true + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + optional: true + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.28.5)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-decorators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.5)': @@ -26316,26 +27756,52 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-export-default-from@7.28.6(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-export-default-from@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-flow@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-flow@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -26346,29 +27812,55 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.28.5)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': @@ -26376,74 +27868,144 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.26.10) - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -26452,16 +28014,35 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.26.10) - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.3) + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -26477,41 +28058,82 @@ snapshots: '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.26.10) transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.3) + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -26520,6 +28142,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26528,6 +28159,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -26536,6 +28175,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26544,27 +28192,60 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-globals': 7.28.0 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-globals': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.26.10) - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + optional: true '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-globals': 7.28.0 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-globals': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -26572,27 +28253,57 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 + '@babel/template': 7.29.7 + + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.29.7 + optional: true '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 + '@babel/template': 7.29.7 + + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.29.7 '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -26602,44 +28313,105 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.3) + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26648,32 +28420,70 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-flow-strip-types@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -26682,6 +28492,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26690,21 +28509,48 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -26713,56 +28559,119 @@ snapshots: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.26.10) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color + optional: true '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.26.10)': dependencies: @@ -26772,6 +28681,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26780,103 +28698,222 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.26.10) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + optional: true '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + optional: true '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.26.10) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.26.10) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.26.10) - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.3) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.3) + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -26888,6 +28925,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3) + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26896,16 +28942,35 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -26914,6 +28979,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26922,16 +28996,35 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -26940,6 +29033,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26948,6 +29050,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -26957,6 +29067,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26966,21 +29086,46 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -26988,35 +29133,65 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.28.5)': + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.28.6 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.28.5) - '@babel/types': 7.29.0 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color @@ -27026,38 +29201,82 @@ snapshots: '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-runtime@7.26.10(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -27070,6 +29289,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-runtime@7.28.3(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.28.6 + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.3) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.3) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.3) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -27082,16 +29314,39 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.29.0) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.29.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 @@ -27100,6 +29355,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -27108,36 +29372,79 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -27149,57 +29456,121 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.26.10)': dependencies: '@babel/core': 7.26.10 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.26.10) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.3) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.27.1 + optional: true + '@babel/preset-env@7.26.9(@babel/core@7.26.10)': dependencies: '@babel/compat-data': 7.28.5 '@babel/core': 7.26.10 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.26.10) @@ -27270,6 +29641,83 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-env@7.28.3(@babel/core@7.28.3)': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/core': 7.28.3 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.3) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.3) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.3) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.3) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.3) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.3) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.3) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.3) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.3) + '@babel/plugin-transform-exponentiation-operator': 7.28.5(@babel/core@7.28.3) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.3) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.3) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.3) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.3) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.3) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.3) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.3) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.3) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.3) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.3) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.3) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.3) + core-js-compat: 3.47.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/preset-env@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/compat-data': 7.28.5 @@ -27346,6 +29794,83 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-env@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/compat-data': 7.28.5 + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.29.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-exponentiation-operator': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.29.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.29.0) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.29.0) + core-js-compat: 3.47.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/preset-flow@7.27.1(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -27357,16 +29882,32 @@ snapshots: dependencies: '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 + esutils: 2.0.3 + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.3)': + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.29.7 esutils: 2.0.3 + optional: true '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 esutils: 2.0.3 + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.29.7 + esutils: 2.0.3 + optional: true + '@babel/preset-react@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -27390,6 +29931,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-typescript@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + '@babel/register@7.28.6(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -27403,53 +29955,61 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.28.3': + optional: true + '@babel/runtime@7.29.2': {} '@babel/template@7.27.2': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 - '@babel/template@7.28.6': + '@babel/template@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@babel/traverse@7.28.5': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.2 - '@babel/template': 7.27.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color - '@babel/traverse@7.29.0': + '@babel/traverse@7.29.7': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/generator': 7.29.1 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.2 - '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color '@babel/types@7.28.5': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 '@babel/types@7.29.0': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 '@babel/types@8.0.0-rc.1': dependencies: @@ -27629,7 +30189,7 @@ snapshots: '@commitlint/is-ignored@20.3.1': dependencies: '@commitlint/types': 20.3.1 - semver: 7.7.4 + semver: 7.8.1 '@commitlint/lint@20.3.1': dependencies: @@ -27700,12 +30260,12 @@ snapshots: '@copilotkit/aimock@1.19.1(jest@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.28(@swc/helpers@0.5.18))(@types/node@18.19.130)(typescript@5.9.3)))(vitest@3.2.4)': optionalDependencies: jest: 29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.28(@swc/helpers@0.5.18))(@types/node@18.19.130)(typescript@5.9.3)) - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@18.19.130)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@18.19.130)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) '@copilotkit/aimock@1.26.1(jest@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.9.3)))(vitest@4.1.5)': optionalDependencies: jest: 29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.9.3)) - vitest: 4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@copilotkit/license-verifier@0.4.2': {} @@ -27775,15 +30335,28 @@ snapshots: dependencies: '@types/hammerjs': 2.0.46 + '@emnapi/core@1.4.5': + dependencies: + '@emnapi/wasi-threads': 1.0.4 + tslib: 2.8.1 + '@emnapi/core@1.8.1': dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 + '@emnapi/runtime@1.4.5': + dependencies: + tslib: 2.8.1 + '@emnapi/runtime@1.8.1': dependencies: tslib: 2.8.1 + '@emnapi/wasi-threads@1.0.4': + dependencies: + tslib: 2.8.1 + '@emnapi/wasi-threads@1.1.0': dependencies: tslib: 2.8.1 @@ -27898,231 +30471,153 @@ snapshots: '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 - '@esbuild/aix-ppc64@0.25.12': - optional: true - '@esbuild/aix-ppc64@0.25.4': optional: true '@esbuild/aix-ppc64@0.27.3': optional: true - '@esbuild/android-arm64@0.25.12': - optional: true - '@esbuild/android-arm64@0.25.4': optional: true '@esbuild/android-arm64@0.27.3': optional: true - '@esbuild/android-arm@0.25.12': - optional: true - '@esbuild/android-arm@0.25.4': optional: true '@esbuild/android-arm@0.27.3': optional: true - '@esbuild/android-x64@0.25.12': - optional: true - '@esbuild/android-x64@0.25.4': optional: true '@esbuild/android-x64@0.27.3': optional: true - '@esbuild/darwin-arm64@0.25.12': - optional: true - '@esbuild/darwin-arm64@0.25.4': optional: true '@esbuild/darwin-arm64@0.27.3': optional: true - '@esbuild/darwin-x64@0.25.12': - optional: true - '@esbuild/darwin-x64@0.25.4': optional: true '@esbuild/darwin-x64@0.27.3': optional: true - '@esbuild/freebsd-arm64@0.25.12': - optional: true - '@esbuild/freebsd-arm64@0.25.4': optional: true '@esbuild/freebsd-arm64@0.27.3': optional: true - '@esbuild/freebsd-x64@0.25.12': - optional: true - '@esbuild/freebsd-x64@0.25.4': optional: true '@esbuild/freebsd-x64@0.27.3': optional: true - '@esbuild/linux-arm64@0.25.12': - optional: true - '@esbuild/linux-arm64@0.25.4': optional: true '@esbuild/linux-arm64@0.27.3': optional: true - '@esbuild/linux-arm@0.25.12': - optional: true - '@esbuild/linux-arm@0.25.4': optional: true '@esbuild/linux-arm@0.27.3': optional: true - '@esbuild/linux-ia32@0.25.12': - optional: true - '@esbuild/linux-ia32@0.25.4': optional: true '@esbuild/linux-ia32@0.27.3': optional: true - '@esbuild/linux-loong64@0.25.12': - optional: true - '@esbuild/linux-loong64@0.25.4': optional: true '@esbuild/linux-loong64@0.27.3': optional: true - '@esbuild/linux-mips64el@0.25.12': - optional: true - '@esbuild/linux-mips64el@0.25.4': optional: true '@esbuild/linux-mips64el@0.27.3': optional: true - '@esbuild/linux-ppc64@0.25.12': - optional: true - '@esbuild/linux-ppc64@0.25.4': optional: true '@esbuild/linux-ppc64@0.27.3': optional: true - '@esbuild/linux-riscv64@0.25.12': - optional: true - '@esbuild/linux-riscv64@0.25.4': optional: true '@esbuild/linux-riscv64@0.27.3': optional: true - '@esbuild/linux-s390x@0.25.12': - optional: true - '@esbuild/linux-s390x@0.25.4': optional: true '@esbuild/linux-s390x@0.27.3': optional: true - '@esbuild/linux-x64@0.25.12': - optional: true - '@esbuild/linux-x64@0.25.4': optional: true '@esbuild/linux-x64@0.27.3': optional: true - '@esbuild/netbsd-arm64@0.25.12': - optional: true - '@esbuild/netbsd-arm64@0.25.4': optional: true '@esbuild/netbsd-arm64@0.27.3': optional: true - '@esbuild/netbsd-x64@0.25.12': - optional: true - '@esbuild/netbsd-x64@0.25.4': optional: true '@esbuild/netbsd-x64@0.27.3': optional: true - '@esbuild/openbsd-arm64@0.25.12': - optional: true - '@esbuild/openbsd-arm64@0.25.4': optional: true '@esbuild/openbsd-arm64@0.27.3': optional: true - '@esbuild/openbsd-x64@0.25.12': - optional: true - '@esbuild/openbsd-x64@0.25.4': optional: true '@esbuild/openbsd-x64@0.27.3': optional: true - '@esbuild/openharmony-arm64@0.25.12': - optional: true - '@esbuild/openharmony-arm64@0.27.3': optional: true - '@esbuild/sunos-x64@0.25.12': - optional: true - '@esbuild/sunos-x64@0.25.4': optional: true '@esbuild/sunos-x64@0.27.3': optional: true - '@esbuild/win32-arm64@0.25.12': - optional: true - '@esbuild/win32-arm64@0.25.4': optional: true '@esbuild/win32-arm64@0.27.3': optional: true - '@esbuild/win32-ia32@0.25.12': - optional: true - '@esbuild/win32-ia32@0.25.4': optional: true '@esbuild/win32-ia32@0.27.3': optional: true - '@esbuild/win32-x64@0.25.12': - optional: true - '@esbuild/win32-x64@0.25.4': optional: true @@ -28134,6 +30629,11 @@ snapshots: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@1.21.7))': + dependencies: + eslint: 9.39.2(jiti@1.21.7) + eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))': dependencies: eslint: 9.39.2(jiti@2.6.1) @@ -28206,7 +30706,7 @@ snapshots: '@noble/hashes': 1.8.0 optional: true - '@expo/cli@56.1.10(@expo/dom-webview@56.0.5)(expo-constants@56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)))(expo-font@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(expo@56.0.3)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@expo/cli@56.1.10(@expo/dom-webview@56.0.5)(expo-constants@56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)))(expo-font@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(expo@56.0.3)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: '@expo/code-signing-certificates': 0.0.6 '@expo/config': 56.0.8(typescript@5.9.3) @@ -28216,7 +30716,7 @@ snapshots: '@expo/image-utils': 0.10.0(typescript@5.9.3) '@expo/inline-modules': 0.0.9(typescript@5.9.3) '@expo/json-file': 10.2.0 - '@expo/log-box': 56.0.12(@expo/dom-webview@56.0.5)(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + '@expo/log-box': 56.0.12(@expo/dom-webview@56.0.5)(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) '@expo/metro': 56.0.0 '@expo/metro-config': 56.0.11(expo@56.0.3)(typescript@5.9.3) '@expo/metro-file-map': 56.0.3 @@ -28225,7 +30725,7 @@ snapshots: '@expo/plist': 0.7.0 '@expo/prebuild-config': 56.0.12(typescript@5.9.3) '@expo/require-utils': 56.1.2(typescript@5.9.3) - '@expo/router-server': 56.0.11(expo-constants@56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)))(expo-font@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(expo-server@56.0.4)(expo@56.0.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@expo/router-server': 56.0.11(expo-constants@56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)))(expo-font@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(expo-server@56.0.4)(expo@56.0.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@expo/schema-utils': 56.0.1 '@expo/spawn-async': 1.8.0 '@expo/ws-tunnel': 1.0.6 @@ -28241,7 +30741,7 @@ snapshots: connect: 3.7.0 debug: 4.4.3(supports-color@5.5.0) dnssd-advertise: 1.1.4 - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) expo-server: 56.0.4 fetch-nodeshim: 0.4.10 getenv: 2.0.0 @@ -28267,7 +30767,7 @@ snapshots: ws: 8.19.0 zod: 3.25.76 optionalDependencies: - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) transitivePeerDependencies: - '@expo/dom-webview' - '@expo/metro-runtime' @@ -28329,18 +30829,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/devtools@56.0.2(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)': + '@expo/devtools@56.0.2(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)': dependencies: chalk: 4.1.2 optionalDependencies: react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) - '@expo/dom-webview@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)': + '@expo/dom-webview@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)': dependencies: - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) '@expo/env@2.3.0': dependencies: @@ -28390,7 +30890,7 @@ snapshots: '@expo/json-file@10.2.0': dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 json5: 2.2.3 '@expo/local-build-cache-provider@56.0.7(typescript@5.9.3)': @@ -28401,20 +30901,20 @@ snapshots: - supports-color - typescript - '@expo/log-box@56.0.12(@expo/dom-webview@56.0.5)(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)': + '@expo/log-box@56.0.12(@expo/dom-webview@56.0.5)(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)': dependencies: - '@expo/dom-webview': 56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + '@expo/dom-webview': 56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) anser: 1.4.10 - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) stacktrace-parser: 0.1.11 '@expo/metro-config@56.0.11(expo@56.0.3)(typescript@5.9.3)': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/core': 7.28.5 - '@babel/generator': 7.29.1 + '@babel/code-frame': 7.29.7 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.7 '@expo/config': 56.0.8(typescript@5.9.3) '@expo/env': 2.3.0 '@expo/json-file': 10.2.0 @@ -28436,7 +30936,7 @@ snapshots: postcss: 8.5.15 resolve-from: 5.0.0 optionalDependencies: - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) transitivePeerDependencies: - bufferutil - supports-color @@ -28512,20 +31012,20 @@ snapshots: '@expo/require-utils@56.1.2(typescript@5.9.3)': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/core': 7.28.5 - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/code-frame': 7.29.7 + '@babel/core': 7.29.0 + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@expo/router-server@56.0.11(expo-constants@56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)))(expo-font@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(expo-server@56.0.4)(expo@56.0.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@expo/router-server@56.0.11(expo-constants@56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)))(expo-font@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(expo-server@56.0.4)(expo@56.0.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: debug: 4.4.3(supports-color@5.5.0) - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - expo-constants: 56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)) - expo-font: 56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + expo-constants: 56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)) + expo-font: 56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) expo-server: 56.0.4 react: 19.2.3 optionalDependencies: @@ -28547,7 +31047,7 @@ snapshots: '@expo/xcpretty@4.4.4': dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 chalk: 4.1.2 js-yaml: 4.1.1 @@ -28592,6 +31092,8 @@ snapshots: '@floating-ui/utils@0.2.10': {} + '@gar/promise-retry@1.0.3': {} + '@gitbeaker/core@38.12.1': dependencies: '@gitbeaker/requester-utils': 38.12.1 @@ -28610,22 +31112,22 @@ snapshots: '@google/generative-ai@0.11.5': {} - '@gorhom/bottom-sheet@5.2.13(@types/react@19.1.8)(react-native-gesture-handler@2.31.2(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native-reanimated@4.3.1(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)': + '@gorhom/bottom-sheet@5.2.13(@types/react@19.1.8)(react-native-gesture-handler@2.31.2(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native-reanimated@4.3.1(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)': dependencies: - '@gorhom/portal': 1.0.14(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + '@gorhom/portal': 1.0.14(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) invariant: 2.2.4 react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) - react-native-gesture-handler: 2.31.2(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) - react-native-reanimated: 4.3.1(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) + react-native-gesture-handler: 2.31.2(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + react-native-reanimated: 4.3.1(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) optionalDependencies: '@types/react': 19.1.8 - '@gorhom/portal@1.0.14(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)': + '@gorhom/portal@1.0.14(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)': dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) '@graphql-codegen/add@5.0.3(graphql@16.12.0)': dependencies: @@ -28999,11 +31501,11 @@ snapshots: '@graphql-tools/graphql-tag-pluck@8.3.27(graphql@16.12.0)': dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.29.2 - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) - '@babel/traverse': 7.28.5 - '@babel/types': 7.29.0 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 '@graphql-tools/utils': 11.0.0(graphql@16.12.0) graphql: 16.12.0 tslib: 2.8.1 @@ -29193,6 +31695,9 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 + '@harperfast/extended-iterable@1.0.3': + optional: true + '@headlessui/react@2.2.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@floating-ui/react': 0.26.28(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -29266,7 +31771,7 @@ snapshots: dependencies: '@antfu/install-pkg': 1.1.0 '@iconify/types': 2.0.0 - mlly: 1.8.2 + mlly: 1.8.0 '@img/colour@1.0.0': {} @@ -29461,6 +31966,14 @@ snapshots: optionalDependencies: '@types/node': 25.6.0 + '@inquirer/confirm@5.1.14(@types/node@22.19.11)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@22.19.11) + '@inquirer/type': 3.0.10(@types/node@22.19.11) + optionalDependencies: + '@types/node': 22.19.11 + optional: true + '@inquirer/confirm@5.1.21(@types/node@22.19.3)': dependencies: '@inquirer/core': 10.3.2(@types/node@22.19.3) @@ -29475,14 +31988,6 @@ snapshots: optionalDependencies: '@types/node': 25.6.0 - '@inquirer/confirm@5.1.6(@types/node@22.19.11)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.11) - '@inquirer/type': 3.0.10(@types/node@22.19.11) - optionalDependencies: - '@types/node': 22.19.11 - optional: true - '@inquirer/confirm@5.1.6(@types/node@22.19.3)': dependencies: '@inquirer/core': 10.3.2(@types/node@22.19.3) @@ -29490,13 +31995,6 @@ snapshots: optionalDependencies: '@types/node': 22.19.3 - '@inquirer/confirm@5.1.6(@types/node@25.6.0)': - dependencies: - '@inquirer/core': 10.3.2(@types/node@25.6.0) - '@inquirer/type': 3.0.10(@types/node@25.6.0) - optionalDependencies: - '@types/node': 25.6.0 - '@inquirer/core@10.3.2(@types/node@22.19.11)': dependencies: '@inquirer/ansi': 1.0.2 @@ -29636,6 +32134,21 @@ snapshots: optionalDependencies: '@types/node': 25.6.0 + '@inquirer/prompts@7.10.1(@types/node@25.6.0)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@25.6.0) + '@inquirer/confirm': 5.1.21(@types/node@25.6.0) + '@inquirer/editor': 4.2.23(@types/node@25.6.0) + '@inquirer/expand': 4.0.23(@types/node@25.6.0) + '@inquirer/input': 4.3.1(@types/node@25.6.0) + '@inquirer/number': 3.0.23(@types/node@25.6.0) + '@inquirer/password': 4.0.23(@types/node@25.6.0) + '@inquirer/rawlist': 4.1.11(@types/node@25.6.0) + '@inquirer/search': 3.2.2(@types/node@25.6.0) + '@inquirer/select': 4.4.2(@types/node@25.6.0) + optionalDependencies: + '@types/node': 25.6.0 + '@inquirer/prompts@7.3.2(@types/node@22.19.3)': dependencies: '@inquirer/checkbox': 4.3.2(@types/node@22.19.3) @@ -29651,21 +32164,6 @@ snapshots: optionalDependencies: '@types/node': 22.19.3 - '@inquirer/prompts@7.3.2(@types/node@25.6.0)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@25.6.0) - '@inquirer/confirm': 5.1.21(@types/node@25.6.0) - '@inquirer/editor': 4.2.23(@types/node@25.6.0) - '@inquirer/expand': 4.0.23(@types/node@25.6.0) - '@inquirer/input': 4.3.1(@types/node@25.6.0) - '@inquirer/number': 3.0.23(@types/node@25.6.0) - '@inquirer/password': 4.0.23(@types/node@25.6.0) - '@inquirer/rawlist': 4.1.11(@types/node@25.6.0) - '@inquirer/search': 3.2.2(@types/node@25.6.0) - '@inquirer/select': 4.4.2(@types/node@25.6.0) - optionalDependencies: - '@types/node': 25.6.0 - '@inquirer/prompts@7.9.0(@types/node@25.6.0)': dependencies: '@inquirer/checkbox': 4.3.2(@types/node@25.6.0) @@ -29788,42 +32286,6 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2))': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.19.11 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - optional: true - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.9.3))': dependencies: '@jest/console': 29.7.0 @@ -29895,42 +32357,6 @@ snapshots: - ts-node optional: true - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2))': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.19.11 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - optional: true - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.28(@swc/helpers@0.5.18))(@types/node@18.19.130)(typescript@5.9.3))': dependencies: '@jest/console': 29.7.0 @@ -30000,8 +32426,6 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - '@jest/get-type@30.1.0': {} - '@jest/globals@29.7.0': dependencies: '@jest/environment': 29.7.0 @@ -30044,10 +32468,6 @@ snapshots: dependencies: '@sinclair/typebox': 0.27.8 - '@jest/schemas@30.0.5': - dependencies: - '@sinclair/typebox': 0.34.47 - '@jest/source-map@29.6.3': dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -30070,7 +32490,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 6.1.1 @@ -30367,7 +32787,7 @@ snapshots: '@langchain/langgraph-api@1.1.13(@langchain/core@1.1.42(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(ws@8.19.0))(@langchain/langgraph-checkpoint@1.0.1(@langchain/core@1.1.42(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(ws@8.19.0)))(@langchain/langgraph-sdk@1.8.9(@langchain/core@1.1.42(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(ws@8.19.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vue@3.5.34(typescript@5.9.3)))(@langchain/langgraph@1.2.9(@langchain/core@1.1.42(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(ws@8.19.0))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vue@3.5.34(typescript@5.9.3))(zod-to-json-schema@3.25.1(zod@3.25.76))(zod@3.25.76))(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(typescript@5.9.3)(ws@8.19.0)': dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.7 '@hono/node-server': 2.0.0(hono@4.12.15) '@hono/zod-validator': 0.7.6(hono@4.12.15)(zod@3.25.76) '@langchain/core': 1.1.42(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(ws@8.19.0) @@ -30382,7 +32802,7 @@ snapshots: hono: 4.12.15 langsmith: 0.5.25(@opentelemetry/api@1.9.0)(openai@6.35.0(ws@8.19.0)(zod@3.25.76))(ws@8.19.0) open: 10.2.0 - semver: 7.7.4 + semver: 7.8.1 stacktrace-parser: 0.1.11 superjson: 2.2.6 tsx: 4.21.0 @@ -30638,10 +33058,13 @@ snapshots: '@inquirer/prompts': 7.3.2(@types/node@22.19.3) '@inquirer/type': 1.5.5 - '@listr2/prompt-adapter-inquirer@2.0.18(@inquirer/prompts@7.3.2(@types/node@25.6.0))': + '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@25.6.0))(@types/node@25.6.0)(listr2@9.0.5)': dependencies: - '@inquirer/prompts': 7.3.2(@types/node@25.6.0) - '@inquirer/type': 1.5.5 + '@inquirer/prompts': 7.10.1(@types/node@25.6.0) + '@inquirer/type': 3.0.10(@types/node@25.6.0) + listr2: 9.0.5 + transitivePeerDependencies: + - '@types/node' '@lit-labs/react@2.1.3(@types/react@19.1.8)': dependencies: @@ -30671,21 +33094,63 @@ snapshots: '@lmdb/lmdb-darwin-arm64@3.2.6': optional: true + '@lmdb/lmdb-darwin-arm64@3.4.2': + optional: true + + '@lmdb/lmdb-darwin-arm64@3.5.1': + optional: true + '@lmdb/lmdb-darwin-x64@3.2.6': optional: true + '@lmdb/lmdb-darwin-x64@3.4.2': + optional: true + + '@lmdb/lmdb-darwin-x64@3.5.1': + optional: true + '@lmdb/lmdb-linux-arm64@3.2.6': optional: true + '@lmdb/lmdb-linux-arm64@3.4.2': + optional: true + + '@lmdb/lmdb-linux-arm64@3.5.1': + optional: true + '@lmdb/lmdb-linux-arm@3.2.6': optional: true + '@lmdb/lmdb-linux-arm@3.4.2': + optional: true + + '@lmdb/lmdb-linux-arm@3.5.1': + optional: true + '@lmdb/lmdb-linux-x64@3.2.6': optional: true + '@lmdb/lmdb-linux-x64@3.4.2': + optional: true + + '@lmdb/lmdb-linux-x64@3.5.1': + optional: true + + '@lmdb/lmdb-win32-arm64@3.4.2': + optional: true + + '@lmdb/lmdb-win32-arm64@3.5.1': + optional: true + '@lmdb/lmdb-win32-x64@3.2.6': optional: true + '@lmdb/lmdb-win32-x64@3.4.2': + optional: true + + '@lmdb/lmdb-win32-x64@3.5.1': + optional: true + '@loaderkit/resolve@1.0.4': dependencies: '@braidai/lang': 1.1.2 @@ -30714,7 +33179,7 @@ snapshots: https-proxy-agent: 7.0.6 node-fetch: 2.7.0(encoding@0.1.13) nopt: 8.1.0 - semver: 7.7.4 + semver: 7.8.1 tar: 7.5.13 transitivePeerDependencies: - encoding @@ -31065,7 +33530,7 @@ snapshots: cors: 2.8.5 cross-spawn: 7.0.6 eventsource: 3.0.7 - eventsource-parser: 3.0.8 + eventsource-parser: 3.0.6 express: 5.2.1 express-rate-limit: 8.4.1(express@5.2.1) hono: 4.12.15 @@ -31343,6 +33808,13 @@ snapshots: typescript: 5.8.2 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + '@ngtools/webpack@20.3.26(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(typescript@5.9.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + dependencies: + '@angular/compiler-cli': 21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3) + typescript: 5.9.3 + webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + optional: true + '@noble/hashes@1.8.0': {} '@nodelib/fs.scandir@2.1.5': @@ -31369,9 +33841,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@npmcli/agent@4.0.2': + dependencies: + agent-base: 7.1.4 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 11.3.5 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + '@npmcli/fs@4.0.0': dependencies: - semver: 7.7.4 + semver: 7.8.1 + + '@npmcli/fs@5.0.0': + dependencies: + semver: 7.8.1 '@npmcli/git@6.0.3': dependencies: @@ -31381,16 +33867,34 @@ snapshots: npm-pick-manifest: 10.0.0 proc-log: 5.0.0 promise-retry: 2.0.1 - semver: 7.7.4 + semver: 7.8.1 which: 5.0.0 + '@npmcli/git@7.0.2': + dependencies: + '@gar/promise-retry': 1.0.3 + '@npmcli/promise-spawn': 9.0.1 + ini: 6.0.0 + lru-cache: 11.3.5 + npm-pick-manifest: 11.0.3 + proc-log: 6.1.0 + semver: 7.8.1 + which: 6.0.1 + '@npmcli/installed-package-contents@3.0.0': dependencies: npm-bundled: 4.0.0 npm-normalize-package-bin: 4.0.0 + '@npmcli/installed-package-contents@4.0.0': + dependencies: + npm-bundled: 5.0.0 + npm-normalize-package-bin: 5.0.0 + '@npmcli/node-gyp@4.0.0': {} + '@npmcli/node-gyp@5.0.0': {} + '@npmcli/package-json@6.2.0': dependencies: '@npmcli/git': 6.0.3 @@ -31398,15 +33902,39 @@ snapshots: hosted-git-info: 8.1.0 json-parse-even-better-errors: 4.0.0 proc-log: 5.0.0 - semver: 7.7.4 + semver: 7.8.1 validate-npm-package-license: 3.0.4 + '@npmcli/package-json@7.0.5': + dependencies: + '@npmcli/git': 7.0.2 + glob: 13.0.0 + hosted-git-info: 9.0.3 + json-parse-even-better-errors: 5.0.0 + proc-log: 6.1.0 + semver: 7.8.1 + spdx-expression-parse: 4.0.0 + '@npmcli/promise-spawn@8.0.3': dependencies: which: 5.0.0 + '@npmcli/promise-spawn@9.0.1': + dependencies: + which: 6.0.1 + '@npmcli/redact@3.2.2': {} + '@npmcli/redact@4.0.0': {} + + '@npmcli/run-script@10.0.4': + dependencies: + '@npmcli/node-gyp': 5.0.0 + '@npmcli/package-json': 7.0.5 + '@npmcli/promise-spawn': 9.0.1 + node-gyp: 12.3.0 + proc-log: 6.1.0 + '@npmcli/run-script@9.1.0': dependencies: '@npmcli/node-gyp': 4.0.0 @@ -31458,11 +33986,11 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@2.7.0(magicast@0.3.5)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@nuxt/devtools-kit@2.7.0(magicast@0.3.5)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@nuxt/kit': 3.21.6(magicast@0.3.5) execa: 8.0.1 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - magicast @@ -31475,14 +34003,14 @@ snapshots: pathe: 2.0.3 pkg-types: 2.3.0 prompts: 2.4.2 - semver: 7.7.4 + semver: 7.8.1 - '@nuxt/devtools@2.7.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2))': + '@nuxt/devtools@2.7.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2))': dependencies: - '@nuxt/devtools-kit': 2.7.0(magicast@0.3.5)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@nuxt/devtools-kit': 2.7.0(magicast@0.3.5)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@nuxt/devtools-wizard': 2.7.0 '@nuxt/kit': 3.21.6(magicast@0.3.5) - '@vue/devtools-core': 7.7.9(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2)) + '@vue/devtools-core': 7.7.9(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2)) '@vue/devtools-kit': 7.7.9 birpc: 2.9.0 consola: 3.4.2 @@ -31502,14 +34030,14 @@ snapshots: pathe: 2.0.3 perfect-debounce: 1.0.0 pkg-types: 2.3.0 - semver: 7.7.4 + semver: 7.8.1 simple-git: 3.36.0 sirv: 3.0.2 structured-clone-es: 1.0.0 - tinyglobby: 0.2.15 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-plugin-inspect: 11.3.3(@nuxt/kit@3.21.6(magicast@0.3.5))(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - vite-plugin-vue-tracer: 1.4.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2)) + tinyglobby: 0.2.16 + vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-plugin-inspect: 11.3.3(@nuxt/kit@3.21.6(magicast@0.3.5))(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) + vite-plugin-vue-tracer: 1.4.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2)) which: 5.0.0 ws: 8.19.0 transitivePeerDependencies: @@ -31535,9 +34063,9 @@ snapshots: pathe: 2.0.3 pkg-types: 2.3.0 scule: 1.3.0 - semver: 7.7.4 + semver: 7.8.1 std-env: 3.10.0 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 ufo: 1.6.2 unctx: 2.5.0 unimport: 5.7.0 @@ -31588,15 +34116,15 @@ snapshots: rc9: 3.0.1 std-env: 4.0.0 - '@nuxt/vite-builder@3.17.5(@types/node@22.19.11)(eslint@9.39.2(jiti@2.6.1))(less@4.5.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rollup@4.60.2)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(typescript@5.8.2)(vue-tsc@2.2.12(typescript@5.8.2))(vue@3.5.34(typescript@5.8.2))(yaml@2.8.3)': + '@nuxt/vite-builder@3.17.5(@types/node@22.19.11)(eslint@9.39.2(jiti@2.6.1))(less@4.5.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rollup@4.60.2)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.8.2)(vue-tsc@2.2.12(typescript@5.8.2))(vue@3.5.34(typescript@5.8.2))(yaml@2.9.0)': dependencies: '@nuxt/kit': 3.17.5(magicast@0.5.2) '@rollup/plugin-replace': 6.0.3(rollup@4.60.2) - '@vitejs/plugin-vue': 5.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2)) - '@vitejs/plugin-vue-jsx': 4.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2)) - autoprefixer: 10.4.24(postcss@8.5.6) + '@vitejs/plugin-vue': 5.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2)) + '@vitejs/plugin-vue-jsx': 4.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2)) + autoprefixer: 10.4.24(postcss@8.5.15) consola: 3.4.2 - cssnano: 7.1.9(postcss@8.5.6) + cssnano: 7.1.9(postcss@8.5.15) defu: 6.1.7 esbuild: 0.27.3 escape-string-regexp: 5.0.0 @@ -31613,15 +34141,15 @@ snapshots: pathe: 2.0.3 perfect-debounce: 1.0.0 pkg-types: 2.3.0 - postcss: 8.5.6 + postcss: 8.5.15 rollup-plugin-visualizer: 6.0.11(rollup@4.60.2) std-env: 3.10.0 ufo: 1.6.2 unenv: 2.0.0-rc.24 unplugin: 2.3.11 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-node: 3.2.4(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-plugin-checker: 0.9.3(eslint@9.39.2(jiti@2.6.1))(optionator@0.9.4)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue-tsc@2.2.12(typescript@5.8.2)) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-node: 3.2.4(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-plugin-checker: 0.9.3(eslint@9.39.2(jiti@2.6.1))(optionator@0.9.4)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.8.2)) vue: 3.5.34(typescript@5.8.2) vue-bundle-renderer: 2.2.0 transitivePeerDependencies: @@ -31649,34 +34177,34 @@ snapshots: - vue-tsc - yaml - '@nx/nx-darwin-arm64@22.5.0': + '@nx/nx-darwin-arm64@22.7.5': optional: true - '@nx/nx-darwin-x64@22.5.0': + '@nx/nx-darwin-x64@22.7.5': optional: true - '@nx/nx-freebsd-x64@22.5.0': + '@nx/nx-freebsd-x64@22.7.5': optional: true - '@nx/nx-linux-arm-gnueabihf@22.5.0': + '@nx/nx-linux-arm-gnueabihf@22.7.5': optional: true - '@nx/nx-linux-arm64-gnu@22.5.0': + '@nx/nx-linux-arm64-gnu@22.7.5': optional: true - '@nx/nx-linux-arm64-musl@22.5.0': + '@nx/nx-linux-arm64-musl@22.7.5': optional: true - '@nx/nx-linux-x64-gnu@22.5.0': + '@nx/nx-linux-x64-gnu@22.7.5': optional: true - '@nx/nx-linux-x64-musl@22.5.0': + '@nx/nx-linux-x64-musl@22.7.5': optional: true - '@nx/nx-win32-arm64-msvc@22.5.0': + '@nx/nx-win32-arm64-msvc@22.7.5': optional: true - '@nx/nx-win32-x64-msvc@22.5.0': + '@nx/nx-win32-x64-msvc@22.7.5': optional: true '@octokit/auth-app@7.2.2': @@ -31899,6 +34427,8 @@ snapshots: '@oxc-project/types@0.112.0': {} + '@oxc-project/types@0.113.0': {} + '@oxc-project/types@0.72.3': {} '@oxfmt/binding-android-arm-eabi@0.36.0': @@ -32900,7 +35430,7 @@ snapshots: node-stream-zip: 1.15.0 ora: 5.4.1 picocolors: 1.1.1 - semver: 7.7.4 + semver: 7.8.1 wcwidth: 1.0.1 yaml: 2.8.3 transitivePeerDependencies: @@ -32954,7 +35484,7 @@ snapshots: ora: 5.4.1 picocolors: 1.1.1 prompts: 2.4.2 - semver: 7.7.4 + semver: 7.8.1 '@react-native-community/cli-types@20.1.0': dependencies: @@ -32987,16 +35517,25 @@ snapshots: '@react-native/babel-plugin-codegen@0.85.2(@babel/core@7.28.5)': dependencies: - '@babel/traverse': 7.29.0 + '@babel/traverse': 7.29.7 '@react-native/codegen': 0.85.2(@babel/core@7.28.5) transitivePeerDependencies: - '@babel/core' - supports-color - '@react-native/babel-plugin-codegen@0.85.3(@babel/core@7.28.5)': + '@react-native/babel-plugin-codegen@0.85.2(@babel/core@7.29.0)': dependencies: - '@babel/traverse': 7.29.0 - '@react-native/codegen': 0.85.3(@babel/core@7.28.5) + '@babel/traverse': 7.29.7 + '@react-native/codegen': 0.85.2(@babel/core@7.29.0) + transitivePeerDependencies: + - '@babel/core' + - supports-color + optional: true + + '@react-native/babel-plugin-codegen@0.85.3(@babel/core@7.29.0)': + dependencies: + '@babel/traverse': 7.29.7 + '@react-native/codegen': 0.85.3(@babel/core@7.29.0) transitivePeerDependencies: - '@babel/core' - supports-color @@ -33039,6 +35578,45 @@ snapshots: transitivePeerDependencies: - supports-color + '@react-native/babel-preset@0.85.2(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) + '@react-native/babel-plugin-codegen': 0.85.2(@babel/core@7.29.0) + babel-plugin-syntax-hermes-parser: 0.33.3 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0) + react-refresh: 0.14.2 + transitivePeerDependencies: + - supports-color + optional: true + '@react-native/codegen@0.85.2(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -33049,10 +35627,20 @@ snapshots: tinyglobby: 0.2.15 yargs: 17.7.2 - '@react-native/codegen@0.85.3(@babel/core@7.28.5)': + '@react-native/codegen@0.85.2(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.29.3 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.2 + hermes-parser: 0.33.3 + invariant: 2.2.4 + nullthrows: 1.1.1 + tinyglobby: 0.2.15 + yargs: 17.7.2 + + '@react-native/codegen@0.85.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.7 hermes-parser: 0.33.3 invariant: 2.2.4 nullthrows: 1.1.1 @@ -33067,7 +35655,7 @@ snapshots: metro: 0.84.4 metro-config: 0.84.4 metro-core: 0.84.4 - semver: 7.7.4 + semver: 7.8.1 optionalDependencies: '@react-native-community/cli': 20.1.0(typescript@5.9.3) '@react-native/metro-config': 0.85.2(@babel/core@7.28.5) @@ -33076,6 +35664,23 @@ snapshots: - supports-color - utf-8-validate + '@react-native/community-cli-plugin@0.85.2(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))': + dependencies: + '@react-native/dev-middleware': 0.85.2 + debug: 4.4.3(supports-color@5.5.0) + invariant: 2.2.4 + metro: 0.84.4 + metro-config: 0.84.4 + metro-core: 0.84.4 + semver: 7.8.1 + optionalDependencies: + '@react-native-community/cli': 20.1.0(typescript@5.9.3) + '@react-native/metro-config': 0.85.2(@babel/core@7.29.0) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@react-native/debugger-frontend@0.85.2': {} '@react-native/debugger-frontend@0.85.3': {} @@ -33148,6 +35753,19 @@ snapshots: - '@babel/core' - supports-color + '@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3)': + dependencies: + '@jest/create-cache-key-function': 29.7.0 + '@react-native/js-polyfills': 0.85.2 + babel-jest: 29.7.0(@babel/core@7.29.0) + jest-environment-node: 29.7.0 + react: 19.2.3 + regenerator-runtime: 0.13.11 + transitivePeerDependencies: + - '@babel/core' + - supports-color + optional: true + '@react-native/js-polyfills@0.85.2': {} '@react-native/metro-babel-transformer@0.85.2(@babel/core@7.28.5)': @@ -33159,6 +35777,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@react-native/metro-babel-transformer@0.85.2(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@react-native/babel-preset': 0.85.2(@babel/core@7.29.0) + hermes-parser: 0.33.3 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + optional: true + '@react-native/metro-config@0.85.2(@babel/core@7.28.5)': dependencies: '@react-native/js-polyfills': 0.85.2 @@ -33171,6 +35799,17 @@ snapshots: - supports-color - utf-8-validate + '@react-native/metro-config@0.85.2(@babel/core@7.29.0)': + dependencies: + '@react-native/js-polyfills': 0.85.2 + '@react-native/metro-babel-transformer': 0.85.2(@babel/core@7.29.0) + metro-config: 0.84.4 + metro-runtime: 0.84.4 + transitivePeerDependencies: + - '@babel/core' + - supports-color + optional: true + '@react-native/normalize-colors@0.85.2': {} '@react-native/normalize-colors@0.85.3': {} @@ -33186,7 +35825,16 @@ snapshots: optionalDependencies: '@types/react': 19.1.8 - '@react-router/dev@7.13.2(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(react-router@7.13.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(wrangler@4.80.0(@cloudflare/workers-types@4.20260405.1))(yaml@2.8.3)': + '@react-native/virtualized-lists@0.85.2(@types/react@19.1.8)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)': + dependencies: + invariant: 2.2.4 + nullthrows: 1.1.1 + react: 19.2.3 + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) + optionalDependencies: + '@types/react': 19.1.8 + + '@react-router/dev@7.13.2(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(react-router@7.13.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(wrangler@4.80.0(@cloudflare/workers-types@4.20260405.1))(yaml@2.9.0)': dependencies: '@babel/core': 7.28.5 '@babel/generator': 7.28.5 @@ -33216,8 +35864,8 @@ snapshots: semver: 7.7.4 tinyglobby: 0.2.15 valibot: 1.2.0(typescript@5.7.3) - vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-node: 3.2.4(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-node: 3.2.4(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) optionalDependencies: typescript: 5.7.3 wrangler: 4.80.0(@cloudflare/workers-types@4.20260405.1) @@ -33236,9 +35884,9 @@ snapshots: - tsx - yaml - '@react-router/fs-routes@7.13.2(@react-router/dev@7.13.2(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(react-router@7.13.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(wrangler@4.80.0(@cloudflare/workers-types@4.20260405.1))(yaml@2.8.3))(typescript@5.7.3)': + '@react-router/fs-routes@7.13.2(@react-router/dev@7.13.2(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(react-router@7.13.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(wrangler@4.80.0(@cloudflare/workers-types@4.20260405.1))(yaml@2.9.0))(typescript@5.7.3)': dependencies: - '@react-router/dev': 7.13.2(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(react-router@7.13.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(wrangler@4.80.0(@cloudflare/workers-types@4.20260405.1))(yaml@2.8.3) + '@react-router/dev': 7.13.2(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(react-router@7.13.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(wrangler@4.80.0(@cloudflare/workers-types@4.20260405.1))(yaml@2.9.0) minimatch: 10.2.4 optionalDependencies: typescript: 5.7.3 @@ -33348,46 +35996,89 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0-rc.3': optional: true + '@rolldown/binding-android-arm64@1.0.0-rc.4': + optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.3': optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.4': + optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.3': optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.4': + optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.3': optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.4': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.3': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.4': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.3': optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.4': + optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.3': optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.4': + optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.3': optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.4': + optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.3': optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.4': + optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.3': optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.4': + optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.3': dependencies: '@napi-rs/wasm-runtime': 1.1.1 optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.4': + dependencies: + '@napi-rs/wasm-runtime': 1.1.1 + optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.3': optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.4': + optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.3': optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.4': + optional: true + '@rolldown/pluginutils@1.0.0-rc.3': {} + '@rolldown/pluginutils@1.0.0-rc.4': {} + '@rolldown/pluginutils@1.0.1': {} '@rollup/plugin-alias@6.0.0(rollup@4.60.2)': @@ -33453,78 +36144,153 @@ snapshots: optionalDependencies: rollup: 4.60.2 + '@rollup/rollup-android-arm-eabi@4.59.0': + optional: true + '@rollup/rollup-android-arm-eabi@4.60.2': optional: true + '@rollup/rollup-android-arm64@4.59.0': + optional: true + '@rollup/rollup-android-arm64@4.60.2': optional: true + '@rollup/rollup-darwin-arm64@4.59.0': + optional: true + '@rollup/rollup-darwin-arm64@4.60.2': optional: true + '@rollup/rollup-darwin-x64@4.59.0': + optional: true + '@rollup/rollup-darwin-x64@4.60.2': optional: true + '@rollup/rollup-freebsd-arm64@4.59.0': + optional: true + '@rollup/rollup-freebsd-arm64@4.60.2': optional: true + '@rollup/rollup-freebsd-x64@4.59.0': + optional: true + '@rollup/rollup-freebsd-x64@4.60.2': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.59.0': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.60.2': optional: true + '@rollup/rollup-linux-arm64-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.60.2': optional: true + '@rollup/rollup-linux-arm64-musl@4.59.0': + optional: true + '@rollup/rollup-linux-arm64-musl@4.60.2': optional: true + '@rollup/rollup-linux-loong64-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-loong64-gnu@4.60.2': optional: true + '@rollup/rollup-linux-loong64-musl@4.59.0': + optional: true + '@rollup/rollup-linux-loong64-musl@4.60.2': optional: true + '@rollup/rollup-linux-ppc64-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-ppc64-gnu@4.60.2': optional: true + '@rollup/rollup-linux-ppc64-musl@4.59.0': + optional: true + '@rollup/rollup-linux-ppc64-musl@4.60.2': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.60.2': optional: true + '@rollup/rollup-linux-riscv64-musl@4.59.0': + optional: true + '@rollup/rollup-linux-riscv64-musl@4.60.2': optional: true + '@rollup/rollup-linux-s390x-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.60.2': optional: true + '@rollup/rollup-linux-x64-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-x64-gnu@4.60.2': optional: true + '@rollup/rollup-linux-x64-musl@4.59.0': + optional: true + '@rollup/rollup-linux-x64-musl@4.60.2': optional: true + '@rollup/rollup-openbsd-x64@4.59.0': + optional: true + '@rollup/rollup-openbsd-x64@4.60.2': optional: true + '@rollup/rollup-openharmony-arm64@4.59.0': + optional: true + '@rollup/rollup-openharmony-arm64@4.60.2': optional: true + '@rollup/rollup-win32-arm64-msvc@4.59.0': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.60.2': optional: true + '@rollup/rollup-win32-ia32-msvc@4.59.0': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.60.2': optional: true + '@rollup/rollup-win32-x64-gnu@4.59.0': + optional: true + '@rollup/rollup-win32-x64-gnu@4.60.2': optional: true + '@rollup/rollup-win32-x64-msvc@4.59.0': + optional: true + '@rollup/rollup-win32-x64-msvc@4.60.2': optional: true @@ -33540,10 +36306,18 @@ snapshots: '@scarf/scarf@1.4.0': {} - '@schematics/angular@19.2.20(chokidar@4.0.3)': + '@schematics/angular@19.2.20': + dependencies: + '@angular-devkit/core': 19.2.20 + '@angular-devkit/schematics': 19.2.20 + jsonc-parser: 3.3.1 + transitivePeerDependencies: + - chokidar + + '@schematics/angular@21.2.13(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 19.2.20(chokidar@4.0.3) - '@angular-devkit/schematics': 19.2.20(chokidar@4.0.3) + '@angular-devkit/core': 21.2.13(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.13(chokidar@5.0.0) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -33663,10 +36437,18 @@ snapshots: dependencies: '@sigstore/protobuf-specs': 0.4.3 + '@sigstore/bundle@4.0.0': + dependencies: + '@sigstore/protobuf-specs': 0.5.1 + '@sigstore/core@2.0.0': {} + '@sigstore/core@3.2.1': {} + '@sigstore/protobuf-specs@0.4.3': {} + '@sigstore/protobuf-specs@0.5.1': {} + '@sigstore/sign@3.1.0': dependencies: '@sigstore/bundle': 3.1.0 @@ -33678,6 +36460,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@sigstore/sign@4.1.1': + dependencies: + '@gar/promise-retry': 1.0.3 + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.1 + '@sigstore/protobuf-specs': 0.5.1 + make-fetch-happen: 15.0.6 + proc-log: 6.1.0 + transitivePeerDependencies: + - supports-color + '@sigstore/tuf@3.1.1': dependencies: '@sigstore/protobuf-specs': 0.4.3 @@ -33685,12 +36478,25 @@ snapshots: transitivePeerDependencies: - supports-color + '@sigstore/tuf@4.0.2': + dependencies: + '@sigstore/protobuf-specs': 0.5.1 + tuf-js: 4.1.0 + transitivePeerDependencies: + - supports-color + '@sigstore/verify@2.1.1': dependencies: '@sigstore/bundle': 3.1.0 '@sigstore/core': 2.0.0 '@sigstore/protobuf-specs': 0.4.3 + '@sigstore/verify@3.1.1': + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.1 + '@sigstore/protobuf-specs': 0.5.1 + '@simple-git/args-pathspec@1.0.3': {} '@simple-git/argv-parser@1.1.1': @@ -34249,10 +37055,10 @@ snapshots: storybook: 8.6.17(prettier@3.7.4) ts-dedent: 2.2.0 - '@storybook/addon-docs@10.1.11(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + '@storybook/addon-docs@10.1.11(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.1.8)(react@19.2.3) - '@storybook/csf-plugin': 10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + '@storybook/csf-plugin': 10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) '@storybook/icons': 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@storybook/react-dom-shim': 10.1.11(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) react: 19.2.3 @@ -34266,10 +37072,10 @@ snapshots: - vite - webpack - '@storybook/addon-docs@10.1.11(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + '@storybook/addon-docs@10.1.11(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.1.8)(react@19.2.3) - '@storybook/csf-plugin': 10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + '@storybook/csf-plugin': 10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) '@storybook/icons': 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@storybook/react-dom-shim': 10.1.11(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) react: 19.2.3 @@ -34283,10 +37089,10 @@ snapshots: - vite - webpack - '@storybook/addon-docs@10.3.5(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + '@storybook/addon-docs@10.3.5(@types/react@19.1.8)(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.1.8)(react@19.2.3) - '@storybook/csf-plugin': 10.3.5(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + '@storybook/csf-plugin': 10.3.5(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) '@storybook/icons': 2.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@storybook/react-dom-shim': 10.3.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) react: 19.2.3 @@ -34388,18 +37194,18 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/angular@8.6.15(6eee023515041662b2454e5916868400)': + '@storybook/angular@8.6.15(cbfd53b94efdc49f67ddbf603e580465)': dependencies: - '@angular-devkit/architect': 0.1902.20(chokidar@4.0.3) - '@angular-devkit/build-angular': 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(chokidar@4.0.3)(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(typescript@5.8.2)))(jiti@2.7.0)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(tailwindcss@4.1.18)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(yaml@2.8.3) - '@angular-devkit/core': 19.2.20(chokidar@4.0.3) - '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular-devkit/architect': 0.2102.13(chokidar@5.0.0) + '@angular-devkit/build-angular': 19.2.20(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(@angular/compiler@19.2.18)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(html-webpack-plugin@5.6.5(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(typescript@5.8.2)))(jiti@2.7.0)(lightningcss@1.32.0)(ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.8.2))(tailwindcss@4.1.18)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.9.0))(yaml@2.9.0) + '@angular-devkit/core': 21.2.13(chokidar@5.0.0) + '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) '@angular/compiler': 19.2.18 '@angular/compiler-cli': 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) - '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.14.10) - '@angular/forms': 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1) - '@angular/platform-browser': 19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)) - '@angular/platform-browser-dynamic': 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@19.2.18)(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))) + '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.15.1) + '@angular/forms': 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(rxjs@7.8.1) + '@angular/platform-browser': 19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)) + '@angular/platform-browser-dynamic': 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/compiler@19.2.18)(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(@angular/platform-browser@19.2.18(@angular/animations@19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)))(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))) '@storybook/builder-webpack5': 8.6.15(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(storybook@8.6.17(prettier@3.7.4))(typescript@5.8.2) '@storybook/components': 8.6.15(storybook@8.6.17(prettier@3.7.4)) '@storybook/core-webpack': 8.6.15(storybook@8.6.17(prettier@3.7.4)) @@ -34423,9 +37229,9 @@ snapshots: util-deprecate: 1.0.2 webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) optionalDependencies: - '@angular/animations': 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)) - '@angular/cli': 19.2.20(@types/node@22.19.3)(chokidar@4.0.3) - zone.js: 0.14.10 + '@angular/animations': 19.2.18(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.15.1)) + '@angular/cli': 19.2.20(@types/node@22.19.3) + zone.js: 0.15.1 transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -34442,13 +37248,13 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - '@storybook/builder-vite@10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + '@storybook/builder-vite@10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': dependencies: - '@storybook/csf-plugin': 10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@storybook/csf-plugin': 10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) storybook: 10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) ts-dedent: 2.2.0 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - esbuild - msw @@ -34467,7 +37273,7 @@ snapshots: magic-string: 0.30.21 storybook: 10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) style-loader: 4.0.0(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - terser-webpack-plugin: 5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)) + terser-webpack-plugin: 5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) ts-dedent: 2.2.0 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) webpack-dev-middleware: 6.1.3(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) @@ -34494,7 +37300,7 @@ snapshots: magic-string: 0.30.21 storybook: 10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) style-loader: 4.0.0(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - terser-webpack-plugin: 5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)) + terser-webpack-plugin: 5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) ts-dedent: 2.2.0 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) webpack-dev-middleware: 6.1.3(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) @@ -34524,7 +37330,7 @@ snapshots: magic-string: 0.30.21 path-browserify: 1.0.1 process: 0.11.10 - semver: 7.7.4 + semver: 7.8.1 storybook: 8.6.17(prettier@3.7.4) style-loader: 3.3.4(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) terser-webpack-plugin: 5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) @@ -34569,7 +37375,7 @@ snapshots: jsdoc-type-pratt-parser: 4.8.0 process: 0.11.10 recast: 0.23.11 - semver: 7.7.4 + semver: 7.8.1 util: 0.12.5 ws: 8.19.0 optionalDependencies: @@ -34580,34 +37386,34 @@ snapshots: - supports-color - utf-8-validate - '@storybook/csf-plugin@10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + '@storybook/csf-plugin@10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': dependencies: storybook: 10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) unplugin: 2.3.11 optionalDependencies: esbuild: 0.27.3 rollup: 4.60.2 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) - '@storybook/csf-plugin@10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + '@storybook/csf-plugin@10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': dependencies: storybook: 10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) unplugin: 2.3.11 optionalDependencies: esbuild: 0.27.3 rollup: 4.60.2 - vite: 7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) - '@storybook/csf-plugin@10.3.5(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + '@storybook/csf-plugin@10.3.5(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': dependencies: storybook: 10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) unplugin: 2.3.11 optionalDependencies: esbuild: 0.27.3 rollup: 4.60.2 - vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) '@storybook/csf-plugin@8.6.14(storybook@8.6.17(prettier@3.7.4))': @@ -34643,7 +37449,7 @@ snapshots: dependencies: storybook: 8.6.17(prettier@3.7.4) - '@storybook/nextjs@10.3.5(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(next@16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(type-fest@4.41.0)(typescript@5.8.2)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack-hot-middleware@2.26.1)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + '@storybook/nextjs@10.3.5(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(next@16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3)(storybook@10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(type-fest@4.41.0)(typescript@5.8.2)(webpack-dev-server@5.2.2(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)))(webpack-hot-middleware@2.26.1)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5) @@ -34667,7 +37473,7 @@ snapshots: css-loader: 6.11.0(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) image-size: 2.0.2 loader-utils: 3.3.1 - next: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + next: 16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) node-polyfill-webpack-plugin: 2.0.1(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) postcss: 8.5.6 postcss-loader: 8.2.0(postcss@8.5.6)(typescript@5.8.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) @@ -34675,7 +37481,7 @@ snapshots: react-dom: 19.2.3(react@19.2.3) react-refresh: 0.14.2 resolve-url-loader: 5.0.0 - sass-loader: 16.0.6(sass@1.97.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + sass-loader: 16.0.6(sass@1.97.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) semver: 7.7.4 storybook: 10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) style-loader: 3.3.4(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) @@ -34713,7 +37519,7 @@ snapshots: react-docgen: 7.1.1 react-dom: 19.2.3(react@19.2.3) resolve: 1.22.11 - semver: 7.7.4 + semver: 7.8.1 storybook: 10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) tsconfig-paths: 4.2.0 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) @@ -34736,7 +37542,7 @@ snapshots: react-docgen: 7.1.1 react-dom: 19.2.3(react@19.2.3) resolve: 1.22.11 - semver: 7.7.4 + semver: 7.8.1 storybook: 10.3.5(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) tsconfig-paths: 4.2.0 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) @@ -34881,14 +37687,14 @@ snapshots: dependencies: storybook: 8.6.17(prettier@3.7.4) - '@storybook/vue3-vite@10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': + '@storybook/vue3-vite@10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3))': dependencies: - '@storybook/builder-vite': 10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + '@storybook/builder-vite': 10.1.11(esbuild@0.27.3)(rollup@4.60.2)(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) '@storybook/vue3': 10.1.11(storybook@10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vue@3.5.34(typescript@5.8.2)) magic-string: 0.30.21 storybook: 10.1.11(@testing-library/dom@10.4.0)(prettier@3.7.4)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) typescript: 5.9.3 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) vue-component-meta: 2.2.12(typescript@5.9.3) vue-docgen-api: 4.79.2(vue@3.5.34(typescript@5.8.2)) transitivePeerDependencies: @@ -35032,7 +37838,7 @@ snapshots: dependencies: '@jridgewell/remapping': 2.3.5 enhanced-resolve: 5.19.0 - jiti: 2.7.0 + jiti: 2.6.1 lightningcss: 1.30.2 magic-string: 0.30.21 source-map-js: 1.2.1 @@ -35155,13 +37961,13 @@ snapshots: '@alloc/quick-lru': 5.2.0 '@tailwindcss/node': 4.1.18 '@tailwindcss/oxide': 4.1.18 - postcss: 8.5.15 + postcss: 8.5.6 tailwindcss: 4.1.18 - '@tailwindcss/typography@0.5.19(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3))': + '@tailwindcss/typography@0.5.19(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0))': dependencies: postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.8.3) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.9.0) '@tailwindcss/typography@0.5.19(tailwindcss@4.1.18)': dependencies: @@ -35173,12 +37979,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.2.2 - '@tailwindcss/vite@4.2.2(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@tailwindcss/vite@4.2.2(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@tailwindcss/node': 4.2.2 '@tailwindcss/oxide': 4.2.2 tailwindcss: 4.2.2 - vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) '@tanstack/ai-client@0.7.5': dependencies: @@ -35248,7 +38054,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.7 '@babel/runtime': 7.29.2 '@types/aria-query': 5.0.4 aria-query: 5.3.0 @@ -35259,7 +38065,7 @@ snapshots: '@testing-library/dom@9.3.4': dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 '@babel/runtime': 7.29.2 '@types/aria-query': 5.0.4 aria-query: 5.1.3 @@ -35383,6 +38189,11 @@ snapshots: '@tufjs/canonical-json': 2.0.0 minimatch: 10.2.4 + '@tufjs/models@4.1.0': + dependencies: + '@tufjs/canonical-json': 2.0.0 + minimatch: 10.2.4 + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 @@ -35400,24 +38211,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@types/better-sqlite3@7.6.13': dependencies: @@ -35731,7 +38542,7 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 20.19.27 + '@types/node': 22.19.11 form-data: 4.0.5 '@types/node-forge@1.3.14': @@ -35865,23 +38676,23 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 20.19.27 + '@types/node': 22.19.11 optional: true - '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2))(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2) + '@typescript-eslint/parser': 7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2) '@typescript-eslint/scope-manager': 7.2.0 - '@typescript-eslint/type-utils': 7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2) - '@typescript-eslint/utils': 7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2) + '@typescript-eslint/type-utils': 7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2) + '@typescript-eslint/utils': 7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2) '@typescript-eslint/visitor-keys': 7.2.0 debug: 4.4.3(supports-color@5.5.0) - eslint: 9.39.2(jiti@2.7.0) + eslint: 9.39.2(jiti@1.21.7) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - semver: 7.7.3 + semver: 7.8.1 ts-api-utils: 1.4.3(typescript@5.9.2) optionalDependencies: typescript: 5.9.2 @@ -35936,14 +38747,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2)': + '@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2)': dependencies: '@typescript-eslint/scope-manager': 7.2.0 '@typescript-eslint/types': 7.2.0 '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.9.2) '@typescript-eslint/visitor-keys': 7.2.0 debug: 4.4.3(supports-color@5.5.0) - eslint: 9.39.2(jiti@2.7.0) + eslint: 9.39.2(jiti@1.21.7) optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: @@ -36021,12 +38832,12 @@ snapshots: dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2)': + '@typescript-eslint/type-utils@7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2)': dependencies: '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.9.2) - '@typescript-eslint/utils': 7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2) + '@typescript-eslint/utils': 7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2) debug: 4.4.3(supports-color@5.5.0) - eslint: 9.39.2(jiti@2.7.0) + eslint: 9.39.2(jiti@1.21.7) ts-api-utils: 1.4.3(typescript@5.9.2) optionalDependencies: typescript: 5.9.2 @@ -36081,7 +38892,7 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 10.2.4 - semver: 7.7.4 + semver: 7.8.1 ts-api-utils: 1.4.3(typescript@5.9.2) optionalDependencies: typescript: 5.9.2 @@ -36096,8 +38907,8 @@ snapshots: '@typescript-eslint/visitor-keys': 8.59.1 debug: 4.4.3(supports-color@5.5.0) minimatch: 10.2.4 - semver: 7.7.4 - tinyglobby: 0.2.15 + semver: 7.8.1 + tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: @@ -36111,23 +38922,23 @@ snapshots: '@typescript-eslint/visitor-keys': 8.59.1 debug: 4.4.3(supports-color@5.5.0) minimatch: 10.2.4 - semver: 7.7.4 - tinyglobby: 0.2.15 + semver: 7.8.1 + tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2)': + '@typescript-eslint/utils@7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.7.0)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) '@types/json-schema': 7.0.15 '@types/semver': 7.7.1 '@typescript-eslint/scope-manager': 7.2.0 '@typescript-eslint/types': 7.2.0 '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.9.2) - eslint: 9.39.2(jiti@2.7.0) - semver: 7.7.4 + eslint: 9.39.2(jiti@1.21.7) + semver: 7.8.1 transitivePeerDependencies: - supports-color - typescript @@ -36289,44 +39100,44 @@ snapshots: '@vercel/oidc@3.1.0': {} - '@vitejs/plugin-basic-ssl@1.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitejs/plugin-basic-ssl@1.2.0(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - optional: true + vite: 7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.9.0) - '@vitejs/plugin-basic-ssl@1.2.0(vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - vite: 7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + optional: true - '@vitejs/plugin-basic-ssl@1.2.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3))': + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) - '@vitejs/plugin-vue-jsx@4.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2))': + '@vitejs/plugin-vue-jsx@4.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2))': dependencies: - '@babel/core': 7.28.5 - '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) - '@rolldown/pluginutils': 1.0.0-rc.3 - '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.5) - vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + '@babel/core': 7.29.0 + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.29.0) + '@rolldown/pluginutils': 1.0.1 + '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.29.0) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) vue: 3.5.34(typescript@5.8.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2))': + '@vitejs/plugin-vue@5.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2))': dependencies: - vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) vue: 3.5.34(typescript@5.8.2) - '@vitejs/plugin-vue@5.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2))': + '@vitejs/plugin-vue@5.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2))': dependencies: - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) vue: 3.5.34(typescript@5.8.2) - '@vitejs/plugin-vue@6.0.7(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2))': + '@vitejs/plugin-vue@6.0.7(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) vue: 3.5.34(typescript@5.8.2) '@vitest/coverage-v8@3.2.4(vitest@3.2.4)': @@ -36344,7 +39155,7 @@ snapshots: std-env: 3.10.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color @@ -36363,7 +39174,7 @@ snapshots: std-env: 3.10.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 4.1.3(@opentelemetry/api@1.9.0)(@types/node@18.19.130)(@vitest/coverage-v8@3.2.4)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.3(@opentelemetry/api@1.9.0)(@types/node@18.19.130)(@vitest/coverage-v8@3.2.4)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) transitivePeerDependencies: - supports-color @@ -36379,7 +39190,7 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.1.0 - vitest: 4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.5(@opentelemetry/api@1.9.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/expect@2.0.5': dependencies: @@ -36414,45 +39225,61 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@3.2.4(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@3.2.4(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/mocker@3.2.4(vite@7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@3.2.4(vite@7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/mocker@3.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@3.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/mocker@4.1.3(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.3(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.3 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + + '@vitest/mocker@4.1.5(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + dependencies: + '@vitest/spy': 4.1.5 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + + '@vitest/mocker@4.1.5(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))': + dependencies: + '@vitest/spy': 4.1.5 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/mocker@4.1.5(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.5(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.5 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) '@vitest/pretty-format@2.0.5': dependencies: @@ -36531,7 +39358,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.27)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.27)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) '@vitest/utils@2.0.5': dependencies: @@ -36591,36 +39418,36 @@ snapshots: '@vue/babel-helper-vue-transform-on@1.5.0': {} - '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.28.5)': + '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.29.0)': dependencies: - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 '@vue/babel-helper-vue-transform-on': 1.5.0 - '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.28.5) + '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.29.0) '@vue/shared': 3.5.34 optionalDependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.28.5)': + '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.29.0)': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.27.1 + '@babel/code-frame': 7.29.7 + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.29.7 '@babel/helper-plugin-utils': 7.28.6 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.7 '@vue/compiler-sfc': 3.5.34 transitivePeerDependencies: - supports-color '@vue/compiler-core@3.5.34': dependencies: - '@babel/parser': 7.29.3 + '@babel/parser': 7.29.7 '@vue/shared': 3.5.34 entities: 7.0.1 estree-walker: 2.0.2 @@ -36655,14 +39482,14 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/devtools-core@7.7.9(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2))': + '@vue/devtools-core@7.7.9(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2))': dependencies: '@vue/devtools-kit': 7.7.9 '@vue/devtools-shared': 7.7.9 mitt: 3.0.1 nanoid: 5.1.11 pathe: 2.0.3 - vite-hot-client: 2.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vite-hot-client: 2.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) vue: 3.5.34(typescript@5.8.2) transitivePeerDependencies: - vite @@ -36875,11 +39702,6 @@ snapshots: '@yarnpkg/lockfile@1.1.0': {} - '@yarnpkg/parsers@3.0.2': - dependencies: - js-yaml: 4.1.1 - tslib: 2.8.1 - '@zkochan/js-yaml@0.0.7': dependencies: argparse: 2.0.1 @@ -36893,6 +39715,8 @@ snapshots: abbrev@3.0.1: {} + abbrev@4.0.0: {} + abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 @@ -36933,7 +39757,7 @@ snapshots: acorn-walk@8.3.4: dependencies: - acorn: 8.16.0 + acorn: 8.15.0 acorn@7.4.1: {} @@ -36994,6 +39818,10 @@ snapshots: optionalDependencies: ajv: 8.20.0 + ajv-formats@3.0.1(ajv@8.18.0): + optionalDependencies: + ajv: 8.18.0 + ajv-formats@3.0.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 @@ -37021,6 +39849,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@8.18.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 @@ -37028,6 +39863,23 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 + algoliasearch@5.48.1: + dependencies: + '@algolia/abtesting': 1.14.1 + '@algolia/client-abtesting': 5.48.1 + '@algolia/client-analytics': 5.48.1 + '@algolia/client-common': 5.48.1 + '@algolia/client-insights': 5.48.1 + '@algolia/client-personalization': 5.48.1 + '@algolia/client-query-suggestions': 5.48.1 + '@algolia/client-search': 5.48.1 + '@algolia/ingestion': 1.48.1 + '@algolia/monitoring': 1.48.1 + '@algolia/recommend': 5.48.1 + '@algolia/requester-browser-xhr': 5.48.1 + '@algolia/requester-fetch': 5.48.1 + '@algolia/requester-node-http': 5.48.1 + alien-signals@1.0.13: {} anser@1.4.10: {} @@ -37241,7 +40093,7 @@ snapshots: ast-kit@1.4.3: dependencies: - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.7 pathe: 2.0.3 ast-kit@3.0.0-beta.1: @@ -37274,7 +40126,7 @@ snapshots: ast-walker-scope@0.6.2: dependencies: - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.7 ast-kit: 1.4.3 astral-regex@1.0.0: {} @@ -37306,13 +40158,33 @@ snapshots: autoprefixer@10.4.20(postcss@8.5.2): dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001763 + caniuse-lite: 1.0.30001793 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 postcss: 8.5.2 postcss-value-parser: 4.2.0 + autoprefixer@10.4.21(postcss@8.5.12): + dependencies: + browserslist: 4.28.2 + caniuse-lite: 1.0.30001793 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.12 + postcss-value-parser: 4.2.0 + optional: true + + autoprefixer@10.4.24(postcss@8.5.15): + dependencies: + browserslist: 4.28.1 + caniuse-lite: 1.0.30001769 + fraction.js: 5.3.4 + picocolors: 1.1.1 + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + autoprefixer@10.4.24(postcss@8.5.6): dependencies: browserslist: 4.28.1 @@ -37344,10 +40216,10 @@ snapshots: babel-dead-code-elimination@1.0.12: dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.29.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.29.0 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color @@ -37364,7 +40236,27 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)): + babel-jest@29.7.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.29.0) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-loader@10.0.0(@babel/core@7.28.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): + dependencies: + '@babel/core': 7.28.3 + find-up: 5.0.0 + webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + optional: true + + babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): dependencies: '@babel/core': 7.26.10 find-cache-dir: 4.0.0 @@ -37390,8 +40282,8 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.29.0 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 @@ -37410,6 +40302,16 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.3): + dependencies: + '@babel/compat-data': 7.28.5 + '@babel/core': 7.28.3 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + optional: true + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5): dependencies: '@babel/compat-data': 7.28.5 @@ -37419,6 +40321,15 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.29.0): + dependencies: + '@babel/compat-data': 7.28.5 + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.10): dependencies: '@babel/core': 7.26.10 @@ -37427,6 +40338,15 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.3): + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3) + core-js-compat: 3.47.0 + transitivePeerDependencies: + - supports-color + optional: true + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.5): dependencies: '@babel/core': 7.28.5 @@ -37435,6 +40355,14 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) + core-js-compat: 3.47.0 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.26.10): dependencies: '@babel/core': 7.26.10 @@ -37442,6 +40370,14 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.3): + dependencies: + '@babel/core': 7.28.3 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3) + transitivePeerDependencies: + - supports-color + optional: true + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.5): dependencies: '@babel/core': 7.28.5 @@ -37449,9 +40385,16 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + babel-plugin-react-compiler@1.0.0: dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 babel-plugin-react-native-web@0.21.2: {} @@ -37467,6 +40410,12 @@ snapshots: transitivePeerDependencies: - '@babel/core' + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.29.0): + dependencies: + '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - '@babel/core' + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5): dependencies: '@babel/core': 7.28.5 @@ -37486,87 +40435,106 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) - babel-preset-expo@56.0.11(@babel/core@7.28.5)(@babel/runtime@7.29.2)(expo@56.0.3)(react-refresh@0.14.2): - dependencies: - '@babel/generator': 7.29.1 - '@babel/helper-module-imports': 7.28.6 - '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.28.5) - '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.5) - '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.28.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.5) - '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.28.5) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) - '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) - '@react-native/babel-plugin-codegen': 0.85.3(@babel/core@7.28.5) + babel-preset-current-node-syntax@1.2.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.0) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.0) + + babel-preset-expo@56.0.11(@babel/core@7.29.0)(@babel/runtime@7.29.2)(expo@56.0.3)(react-refresh@0.14.2): + dependencies: + '@babel/generator': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-export-default-from': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) + '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) + '@react-native/babel-plugin-codegen': 0.85.3(@babel/core@7.29.0) babel-plugin-react-compiler: 1.0.0 babel-plugin-react-native-web: 0.21.2 babel-plugin-syntax-hermes-parser: 0.33.3 - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.5) + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.29.0) debug: 4.4.3(supports-color@5.5.0) react-refresh: 0.14.2 optionalDependencies: '@babel/runtime': 7.29.2 - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) transitivePeerDependencies: - '@babel/core' - supports-color - babel-preset-fbjs@3.4.0(@babel/core@7.28.5): - dependencies: - '@babel/core': 7.28.5 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.28.5) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.28.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5) - '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.5) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) + babel-preset-fbjs@3.4.0(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.29.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.0) + '@babel/plugin-syntax-flow': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.29.0) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 transitivePeerDependencies: - supports-color @@ -37577,12 +40545,20 @@ snapshots: babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + babel-preset-jest@29.6.3(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) + babel-walk@3.0.0-canary-5: dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 bail@2.0.2: {} + balanced-match@4.0.3: {} + balanced-match@4.0.4: {} bare-events@2.8.2: {} @@ -37642,8 +40618,32 @@ snapshots: domhandler: 5.0.3 htmlparser2: 10.1.0 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.15 + postcss-media-query-parser: 0.2.3 + + beasties@0.3.5: + dependencies: + css-select: 6.0.0 + css-what: 7.0.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + htmlparser2: 10.1.0 + picocolors: 1.1.1 + postcss: 8.5.15 + postcss-media-query-parser: 0.2.3 + optional: true + + beasties@0.4.1: + dependencies: + css-select: 6.0.0 + css-what: 7.0.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + htmlparser2: 10.1.0 + picocolors: 1.1.1 + postcss: 8.5.15 postcss-media-query-parser: 0.2.3 + postcss-safe-parser: 7.0.1(postcss@8.5.15) before-after-hook@2.2.3: {} @@ -37728,6 +40728,10 @@ snapshots: dependencies: balanced-match: 4.0.4 + brace-expansion@5.0.6: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -37885,6 +40889,19 @@ snapshots: tar: 7.5.13 unique-filename: 4.0.0 + cacache@20.0.4: + dependencies: + '@npmcli/fs': 5.0.0 + fs-minipass: 3.0.3 + glob: 13.0.0 + lru-cache: 11.3.5 + minipass: 7.1.2 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 7.0.4 + ssri: 13.0.1 + cacheable-lookup@7.0.0: {} cacheable-request@10.2.14: @@ -37930,12 +40947,10 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001769 + caniuse-lite: 1.0.30001793 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001763: {} - caniuse-lite@1.0.30001769: {} caniuse-lite@1.0.30001793: {} @@ -38191,6 +41206,8 @@ snapshots: cli-spinners@2.9.2: {} + cli-spinners@3.4.0: {} + cli-table3@0.6.5: dependencies: string-width: 4.2.3 @@ -38207,6 +41224,11 @@ snapshots: slice-ansi: 5.0.0 string-width: 7.2.0 + cli-truncate@5.2.0: + dependencies: + slice-ansi: 8.0.0 + string-width: 8.2.1 + cli-width@3.0.0: {} cli-width@4.1.0: {} @@ -38442,8 +41464,8 @@ snapshots: constantinople@4.0.1: dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 constants-browserify@1.0.0: {} @@ -38502,6 +41524,16 @@ snapshots: serialize-javascript: 7.0.5 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + copy-webpack-plugin@14.0.0(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): + dependencies: + glob-parent: 6.0.2 + normalize-path: 3.0.0 + schema-utils: 4.3.3 + serialize-javascript: 7.0.5 + tinyglobby: 0.2.16 + webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + optional: true + core-js-compat@3.47.0: dependencies: browserslist: 4.28.2 @@ -38639,22 +41671,6 @@ snapshots: - ts-node optional: true - create-jest@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - create-jest@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.9.3)): dependencies: '@jest/types': 29.6.3 @@ -38686,22 +41702,6 @@ snapshots: - ts-node optional: true - create-jest@29.7.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - create-langgraph@1.1.5(babel-plugin-macros@3.1.0): dependencies: '@clack/prompts': 0.9.1 @@ -38763,33 +41763,33 @@ snapshots: randombytes: 2.1.0 randomfill: 1.0.4 - css-declaration-sorter@7.4.0(postcss@8.5.6): + css-declaration-sorter@7.4.0(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 css-loader@6.11.0(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) + icss-utils: 5.1.0(postcss@8.5.15) + postcss: 8.5.15 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.15) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.15) + postcss-modules-scope: 3.2.1(postcss@8.5.15) + postcss-modules-values: 4.0.0(postcss@8.5.15) postcss-value-parser: 4.2.0 - semver: 7.7.4 + semver: 7.8.1 optionalDependencies: webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) css-loader@6.11.0(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) + icss-utils: 5.1.0(postcss@8.5.15) + postcss: 8.5.15 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.15) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.15) + postcss-modules-scope: 3.2.1(postcss@8.5.15) + postcss-modules-values: 4.0.0(postcss@8.5.15) postcss-value-parser: 4.2.0 - semver: 7.7.4 + semver: 7.8.1 optionalDependencies: webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) @@ -38822,6 +41822,14 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 + css-select@6.0.0: + dependencies: + boolbase: 1.0.0 + css-what: 7.0.0 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + css-tree@2.2.1: dependencies: mdn-data: 2.0.28 @@ -38834,53 +41842,55 @@ snapshots: css-what@6.2.2: {} + css-what@7.0.0: {} + css.escape@1.5.1: {} cssesc@3.0.0: {} - cssnano-preset-default@7.0.17(postcss@8.5.6): + cssnano-preset-default@7.0.17(postcss@8.5.15): dependencies: browserslist: 4.28.2 - css-declaration-sorter: 7.4.0(postcss@8.5.6) - cssnano-utils: 5.0.3(postcss@8.5.6) - postcss: 8.5.6 - postcss-calc: 10.1.1(postcss@8.5.6) - postcss-colormin: 7.0.10(postcss@8.5.6) - postcss-convert-values: 7.0.12(postcss@8.5.6) - postcss-discard-comments: 7.0.8(postcss@8.5.6) - postcss-discard-duplicates: 7.0.4(postcss@8.5.6) - postcss-discard-empty: 7.0.3(postcss@8.5.6) - postcss-discard-overridden: 7.0.3(postcss@8.5.6) - postcss-merge-longhand: 7.0.7(postcss@8.5.6) - postcss-merge-rules: 7.0.11(postcss@8.5.6) - postcss-minify-font-values: 7.0.3(postcss@8.5.6) - postcss-minify-gradients: 7.0.5(postcss@8.5.6) - postcss-minify-params: 7.0.9(postcss@8.5.6) - postcss-minify-selectors: 7.1.2(postcss@8.5.6) - postcss-normalize-charset: 7.0.3(postcss@8.5.6) - postcss-normalize-display-values: 7.0.3(postcss@8.5.6) - postcss-normalize-positions: 7.0.4(postcss@8.5.6) - postcss-normalize-repeat-style: 7.0.4(postcss@8.5.6) - postcss-normalize-string: 7.0.3(postcss@8.5.6) - postcss-normalize-timing-functions: 7.0.3(postcss@8.5.6) - postcss-normalize-unicode: 7.0.9(postcss@8.5.6) - postcss-normalize-url: 7.0.3(postcss@8.5.6) - postcss-normalize-whitespace: 7.0.3(postcss@8.5.6) - postcss-ordered-values: 7.0.4(postcss@8.5.6) - postcss-reduce-initial: 7.0.9(postcss@8.5.6) - postcss-reduce-transforms: 7.0.3(postcss@8.5.6) - postcss-svgo: 7.1.3(postcss@8.5.6) - postcss-unique-selectors: 7.0.7(postcss@8.5.6) - - cssnano-utils@5.0.3(postcss@8.5.6): + css-declaration-sorter: 7.4.0(postcss@8.5.15) + cssnano-utils: 5.0.3(postcss@8.5.15) + postcss: 8.5.15 + postcss-calc: 10.1.1(postcss@8.5.15) + postcss-colormin: 7.0.10(postcss@8.5.15) + postcss-convert-values: 7.0.12(postcss@8.5.15) + postcss-discard-comments: 7.0.8(postcss@8.5.15) + postcss-discard-duplicates: 7.0.4(postcss@8.5.15) + postcss-discard-empty: 7.0.3(postcss@8.5.15) + postcss-discard-overridden: 7.0.3(postcss@8.5.15) + postcss-merge-longhand: 7.0.7(postcss@8.5.15) + postcss-merge-rules: 7.0.11(postcss@8.5.15) + postcss-minify-font-values: 7.0.3(postcss@8.5.15) + postcss-minify-gradients: 7.0.5(postcss@8.5.15) + postcss-minify-params: 7.0.9(postcss@8.5.15) + postcss-minify-selectors: 7.1.2(postcss@8.5.15) + postcss-normalize-charset: 7.0.3(postcss@8.5.15) + postcss-normalize-display-values: 7.0.3(postcss@8.5.15) + postcss-normalize-positions: 7.0.4(postcss@8.5.15) + postcss-normalize-repeat-style: 7.0.4(postcss@8.5.15) + postcss-normalize-string: 7.0.3(postcss@8.5.15) + postcss-normalize-timing-functions: 7.0.3(postcss@8.5.15) + postcss-normalize-unicode: 7.0.9(postcss@8.5.15) + postcss-normalize-url: 7.0.3(postcss@8.5.15) + postcss-normalize-whitespace: 7.0.3(postcss@8.5.15) + postcss-ordered-values: 7.0.4(postcss@8.5.15) + postcss-reduce-initial: 7.0.9(postcss@8.5.15) + postcss-reduce-transforms: 7.0.3(postcss@8.5.15) + postcss-svgo: 7.1.3(postcss@8.5.15) + postcss-unique-selectors: 7.0.7(postcss@8.5.15) + + cssnano-utils@5.0.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 - cssnano@7.1.9(postcss@8.5.6): + cssnano@7.1.9(postcss@8.5.15): dependencies: - cssnano-preset-default: 7.0.17(postcss@8.5.6) + cssnano-preset-default: 7.0.17(postcss@8.5.15) lilconfig: 3.1.3 - postcss: 8.5.6 + postcss: 8.5.15 csso@5.0.5: dependencies: @@ -39366,6 +42376,8 @@ snapshots: diff-sequences@29.6.3: {} + diff@7.0.0: {} + diff@9.0.0: {} diffie-hellman@5.0.3: @@ -39468,7 +42480,7 @@ snapshots: dependencies: is-obj: 2.0.0 - dotenv-expand@11.0.7: + dotenv-expand@12.0.3: dependencies: dotenv: 16.6.1 @@ -39501,13 +42513,11 @@ snapshots: '@one-ini/wasm': 0.1.1 commander: 10.0.1 minimatch: 10.2.4 - semver: 7.7.4 + semver: 7.8.1 ee-first@1.1.1: {} - ejs@3.1.10: - dependencies: - jake: 10.9.4 + ejs@5.0.1: {} electron-to-chromium@1.5.267: {} @@ -39617,8 +42627,7 @@ snapshots: entities@7.0.1: {} - entities@8.0.0: - optional: true + entities@8.0.0: {} env-paths@2.2.1: {} @@ -39802,9 +42811,9 @@ snapshots: esbuild-plugin-tailwindcss@2.1.0: dependencies: '@tailwindcss/postcss': 4.1.18 - autoprefixer: 10.4.24(postcss@8.5.6) - postcss: 8.5.6 - postcss-modules: 6.0.1(postcss@8.5.6) + autoprefixer: 10.4.24(postcss@8.5.15) + postcss: 8.5.15 + postcss-modules: 6.0.1(postcss@8.5.15) esbuild-register@3.6.0(esbuild@0.27.3): dependencies: @@ -39815,34 +42824,8 @@ snapshots: esbuild-wasm@0.25.4: {} - esbuild@0.25.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.12 - '@esbuild/android-arm': 0.25.12 - '@esbuild/android-arm64': 0.25.12 - '@esbuild/android-x64': 0.25.12 - '@esbuild/darwin-arm64': 0.25.12 - '@esbuild/darwin-x64': 0.25.12 - '@esbuild/freebsd-arm64': 0.25.12 - '@esbuild/freebsd-x64': 0.25.12 - '@esbuild/linux-arm': 0.25.12 - '@esbuild/linux-arm64': 0.25.12 - '@esbuild/linux-ia32': 0.25.12 - '@esbuild/linux-loong64': 0.25.12 - '@esbuild/linux-mips64el': 0.25.12 - '@esbuild/linux-ppc64': 0.25.12 - '@esbuild/linux-riscv64': 0.25.12 - '@esbuild/linux-s390x': 0.25.12 - '@esbuild/linux-x64': 0.25.12 - '@esbuild/netbsd-arm64': 0.25.12 - '@esbuild/netbsd-x64': 0.25.12 - '@esbuild/openbsd-arm64': 0.25.12 - '@esbuild/openbsd-x64': 0.25.12 - '@esbuild/openharmony-arm64': 0.25.12 - '@esbuild/sunos-x64': 0.25.12 - '@esbuild/win32-arm64': 0.25.12 - '@esbuild/win32-ia32': 0.25.12 - '@esbuild/win32-x64': 0.25.12 + esbuild-wasm@0.28.0: + optional: true esbuild@0.25.4: optionalDependencies: @@ -39922,19 +42905,19 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@15.4.4(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2): + eslint-config-next@15.4.4(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2): dependencies: '@next/eslint-plugin-next': 15.4.4 '@rushstack/eslint-patch': 1.15.0 - '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2))(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2) - '@typescript-eslint/parser': 7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2) - eslint: 9.39.2(jiti@2.7.0) + '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2))(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2) + '@typescript-eslint/parser': 7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2) + eslint: 9.39.2(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.7.0)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.7.0)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.7.0)) - eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.7.0)) - eslint-plugin-react-hooks: 5.2.0(eslint@9.39.2(jiti@2.7.0)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@1.21.7)) + eslint-plugin-react-hooks: 5.2.0(eslint@9.39.2(jiti@1.21.7)) optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: @@ -39978,36 +42961,36 @@ snapshots: get-tsconfig: 4.13.6 is-bun-module: 2.0.0 stable-hash: 0.0.5 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 unrs-resolver: 1.11.1 optionalDependencies: eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.2(jiti@2.7.0)))(eslint@9.39.2(jiti@2.7.0)))(eslint@9.39.2(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.7.0)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@1.21.7)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3(supports-color@5.5.0) - eslint: 9.39.2(jiti@2.7.0) + eslint: 9.39.2(jiti@1.21.7) get-tsconfig: 4.13.6 is-bun-module: 2.0.0 stable-hash: 0.0.5 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@1.21.7)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.7.0)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@1.21.7)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2) - eslint: 9.39.2(jiti@2.7.0) + '@typescript-eslint/parser': 7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2) + eslint: 9.39.2(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.7.0)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@1.21.7)) transitivePeerDependencies: - supports-color @@ -40021,7 +43004,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.7.0)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@1.21.7)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -40030,9 +43013,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.39.2(jiti@2.7.0) + eslint: 9.39.2(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.7.0)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@1.21.7)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -40044,7 +43027,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.2.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.2) + '@typescript-eslint/parser': 7.2.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -40077,6 +43060,25 @@ snapshots: - eslint-import-resolver-webpack - supports-color + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2(jiti@1.21.7)): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.9 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.11.1 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 9.39.2(jiti@1.21.7) + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 10.2.4 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2(jiti@2.7.0)): dependencies: aria-query: 5.3.2 @@ -40096,14 +43098,14 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@5.2.0(eslint@9.39.2(jiti@2.7.0)): + eslint-plugin-react-hooks@5.2.0(eslint@9.39.2(jiti@1.21.7)): dependencies: - eslint: 9.39.2(jiti@2.7.0) + eslint: 9.39.2(jiti@1.21.7) eslint-plugin-react-hooks@7.1.1(eslint@9.39.2(jiti@2.7.0)): dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.28.5 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.7 eslint: 9.39.2(jiti@2.7.0) hermes-parser: 0.25.1 zod: 3.25.76 @@ -40111,6 +43113,28 @@ snapshots: transitivePeerDependencies: - supports-color + eslint-plugin-react@7.37.5(eslint@9.39.2(jiti@1.21.7)): + dependencies: + array-includes: 3.1.9 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.2 + eslint: 9.39.2(jiti@1.21.7) + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 10.2.4 + object.entries: 1.1.9 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + eslint-plugin-react@7.37.5(eslint@9.39.2(jiti@2.7.0)): dependencies: array-includes: 3.1.9 @@ -40223,6 +43247,47 @@ snapshots: transitivePeerDependencies: - supports-color + eslint@9.39.2(jiti@1.21.7): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@1.21.7)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.2 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.5 + '@eslint/js': 9.39.2 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.14.0 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3(supports-color@5.5.0) + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 10.2.4 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 1.21.7 + transitivePeerDependencies: + - supports-color + eslint@9.39.2(jiti@2.6.1): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) @@ -40390,11 +43455,13 @@ snapshots: events@3.3.0: {} + eventsource-parser@3.0.6: {} + eventsource-parser@3.0.8: {} eventsource@3.0.7: dependencies: - eventsource-parser: 3.0.8 + eventsource-parser: 3.0.6 evp_bytestokey@1.0.3: dependencies: @@ -40464,44 +43531,44 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - expo-asset@56.0.13(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3): + expo-asset@56.0.13(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3): dependencies: '@expo/image-utils': 0.10.0(typescript@5.9.3) - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - expo-constants: 56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + expo-constants: 56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)) react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) transitivePeerDependencies: - supports-color - typescript - expo-constants@56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)): + expo-constants@56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)): dependencies: '@expo/env': 2.3.0 - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) transitivePeerDependencies: - supports-color expo-document-picker@56.0.4(expo@56.0.3): dependencies: - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - expo-file-system@56.0.7(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)): + expo-file-system@56.0.7(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)): dependencies: - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) - expo-font@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): + expo-font@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): dependencies: - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) fontfaceobserver: 2.3.0 react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) expo-keep-awake@56.0.3(expo@56.0.3)(react@19.2.3): dependencies: - expo: 56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + expo: 56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) react: 19.2.3 expo-modules-autolinking@56.0.11(typescript@5.9.3): @@ -40514,48 +43581,48 @@ snapshots: - supports-color - typescript - expo-modules-core@56.0.12(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): + expo-modules-core@56.0.12(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): dependencies: '@expo/expo-modules-macros-plugin': 0.0.9 - expo-modules-jsi: 56.0.7(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)) + expo-modules-jsi: 56.0.7(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)) invariant: 2.2.4 react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) - expo-modules-jsi@56.0.7(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)): + expo-modules-jsi@56.0.7(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)): dependencies: - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) expo-server@56.0.4: {} - expo@56.0.3(@babel/core@7.28.5)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3): + expo@56.0.3(@babel/core@7.29.0)(@expo/dom-webview@56.0.5)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3): dependencies: '@babel/runtime': 7.29.2 - '@expo/cli': 56.1.10(@expo/dom-webview@56.0.5)(expo-constants@56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)))(expo-font@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(expo@56.0.3)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@expo/cli': 56.1.10(@expo/dom-webview@56.0.5)(expo-constants@56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)))(expo-font@56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(expo@56.0.3)(react-dom@19.2.3(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@expo/config': 56.0.8(typescript@5.9.3) '@expo/config-plugins': 56.0.7(typescript@5.9.3) - '@expo/devtools': 56.0.2(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + '@expo/devtools': 56.0.2(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) '@expo/fingerprint': 0.19.1 '@expo/local-build-cache-provider': 56.0.7(typescript@5.9.3) - '@expo/log-box': 56.0.12(@expo/dom-webview@56.0.5)(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + '@expo/log-box': 56.0.12(@expo/dom-webview@56.0.5)(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) '@expo/metro': 56.0.0 '@expo/metro-config': 56.0.11(expo@56.0.3)(typescript@5.9.3) '@ungap/structured-clone': 1.3.0 - babel-preset-expo: 56.0.11(@babel/core@7.28.5)(@babel/runtime@7.29.2)(expo@56.0.3)(react-refresh@0.14.2) - expo-asset: 56.0.13(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - expo-constants: 56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)) - expo-file-system: 56.0.7(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3)) - expo-font: 56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + babel-preset-expo: 56.0.11(@babel/core@7.29.0)(@babel/runtime@7.29.2)(expo@56.0.3)(react-refresh@0.14.2) + expo-asset: 56.0.13(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + expo-constants: 56.0.14(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)) + expo-file-system: 56.0.7(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3)) + expo-font: 56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) expo-keep-awake: 56.0.3(expo@56.0.3)(react@19.2.3) expo-modules-autolinking: 56.0.11(typescript@5.9.3) - expo-modules-core: 56.0.12(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + expo-modules-core: 56.0.12(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) pretty-format: 29.7.0 react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) react-refresh: 0.14.2 whatwg-url-minimum: 0.1.2 optionalDependencies: - '@expo/dom-webview': 56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + '@expo/dom-webview': 56.0.5(expo@56.0.3)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) react-dom: 19.2.3(react@19.2.3) transitivePeerDependencies: - '@babel/core' @@ -40791,10 +43858,6 @@ snapshots: file-uri-to-path@1.0.0: {} - filelist@1.0.4: - dependencies: - minimatch: 10.2.4 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -40841,8 +43904,15 @@ snapshots: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 + find-cache-directory@6.0.0: + dependencies: + common-path-prefix: 3.0.0 + pkg-dir: 8.0.0 + find-root@1.1.0: {} + find-up-simple@1.0.1: {} + find-up@3.0.0: dependencies: locate-path: 3.0.0 @@ -40905,6 +43975,8 @@ snapshots: optionalDependencies: debug: 4.4.3(supports-color@5.5.0) + follow-redirects@1.16.0: {} + fontfaceobserver@2.3.0: {} for-each@0.3.5: @@ -40918,7 +43990,7 @@ snapshots: fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.2)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.7 chalk: 4.1.2 chokidar: 3.6.0 cosmiconfig: 7.1.0 @@ -40928,14 +44000,14 @@ snapshots: minimatch: 10.2.4 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.7.4 + semver: 7.8.1 tapable: 2.3.0 typescript: 5.8.2 webpack: 5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) fork-ts-checker-webpack-plugin@9.1.0(typescript@5.8.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.7 chalk: 4.1.2 chokidar: 4.0.3 cosmiconfig: 8.3.6(typescript@5.8.2) @@ -40945,14 +44017,14 @@ snapshots: minimatch: 10.2.4 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.7.4 + semver: 7.8.1 tapable: 2.3.0 typescript: 5.8.2 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) fork-ts-checker-webpack-plugin@9.1.0(typescript@5.9.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.7 chalk: 4.1.2 chokidar: 4.0.3 cosmiconfig: 8.3.6(typescript@5.9.2) @@ -40962,7 +44034,7 @@ snapshots: minimatch: 10.2.4 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.7.4 + semver: 7.8.1 tapable: 2.3.0 typescript: 5.9.2 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) @@ -41131,7 +44203,7 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.4.0: {} + get-east-asian-width@1.6.0: {} get-intrinsic@1.3.0: dependencies: @@ -41818,6 +44890,10 @@ snapshots: dependencies: lru-cache: 10.4.3 + hosted-git-info@9.0.3: + dependencies: + lru-cache: 11.3.5 + hpack.js@2.1.6: dependencies: inherits: 2.0.4 @@ -42017,7 +45093,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.3 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.15.2) + retry-axios: 2.6.0(axios@1.15.2(debug@4.4.3)) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -42032,6 +45108,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + icss-utils@5.1.0(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + icss-utils@5.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -42044,6 +45124,10 @@ snapshots: dependencies: minimatch: 10.2.4 + ignore-walk@8.0.0: + dependencies: + minimatch: 10.2.4 + ignore@5.3.2: {} ignore@7.0.5: {} @@ -42064,8 +45148,6 @@ snapshots: immer@9.0.21: {} - immutable@5.1.4: {} - immutable@5.1.5: {} import-fresh@3.3.1: @@ -42113,6 +45195,8 @@ snapshots: ini@5.0.0: {} + ini@6.0.0: {} + injection-js@2.6.1: dependencies: tslib: 2.8.1 @@ -42291,7 +45375,7 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.7.4 + semver: 7.8.1 is-callable@1.2.7: {} @@ -42339,7 +45423,7 @@ snapshots: is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.4.0 + get-east-asian-width: 1.6.0 is-generator-fn@2.1.0: {} @@ -42376,6 +45460,8 @@ snapshots: is-interactive@1.0.0: {} + is-interactive@2.0.0: {} + is-ip@3.1.0: dependencies: ip-regex: 4.3.0 @@ -42485,6 +45571,9 @@ snapshots: is-unicode-supported@0.1.0: {} + is-unicode-supported@1.3.0: + optional: true + is-unicode-supported@2.1.0: {} is-upper-case@2.0.2: @@ -42528,6 +45617,8 @@ snapshots: isexe@3.1.1: {} + isexe@4.0.0: {} + isobject@3.0.1: {} isomorphic-ws@5.0.0(ws@8.19.0): @@ -42540,8 +45631,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.29.2 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -42550,11 +45641,11 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.28.5 + '@babel/core': 7.29.0 + '@babel/parser': 7.29.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.4 + semver: 7.8.1 transitivePeerDependencies: - supports-color @@ -42600,12 +45691,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jake@10.9.4: - dependencies: - async: 3.2.6 - filelist: 1.0.4 - picocolors: 1.1.1 - jest-changed-files@29.7.0: dependencies: execa: 5.1.1 @@ -42658,26 +45743,6 @@ snapshots: - ts-node optional: true - jest-cli@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - jest-cli@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.9.3)): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.9.3)) @@ -42717,32 +45782,12 @@ snapshots: - ts-node optional: true - jest-cli@29.7.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - jest-config@29.7.0(@types/node@18.19.130)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.28(@swc/helpers@0.5.18))(@types/node@18.19.130)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) + babel-jest: 29.7.0(@babel/core@7.29.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -42769,44 +45814,12 @@ snapshots: - supports-color optional: true - jest-config@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)): - dependencies: - '@babel/core': 7.28.5 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.19.11 - ts-node: 10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - optional: true - jest-config@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) + babel-jest: 29.7.0(@babel/core@7.29.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -42834,10 +45847,10 @@ snapshots: jest-config@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(typescript@5.8.2)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) + babel-jest: 29.7.0(@babel/core@7.29.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -42864,44 +45877,12 @@ snapshots: - supports-color optional: true - jest-config@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)): - dependencies: - '@babel/core': 7.28.5 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 22.19.11 - ts-node: 10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - optional: true - jest-config@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.5.28(@swc/helpers@0.5.18))(@types/node@18.19.130)(typescript@5.9.3)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) + babel-jest: 29.7.0(@babel/core@7.29.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -42930,10 +45911,10 @@ snapshots: jest-config@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.3)(typescript@5.8.2)): dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) + babel-jest: 29.7.0(@babel/core@7.29.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -42960,38 +45941,6 @@ snapshots: - supports-color optional: true - jest-config@29.7.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)): - dependencies: - '@babel/core': 7.28.5 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 25.6.0 - ts-node: 10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - optional: true - jest-diff@29.7.0: dependencies: chalk: 4.1.2 @@ -42999,13 +45948,6 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 - jest-diff@30.2.0: - dependencies: - '@jest/diff-sequences': 30.0.1 - '@jest/get-type': 30.1.0 - chalk: 4.1.2 - pretty-format: 30.2.0 - jest-docblock@29.7.0: dependencies: detect-newline: 3.1.0 @@ -43059,7 +46001,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.7 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -43155,15 +46097,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.28.5 - '@babel/generator': 7.28.5 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) - '@babel/types': 7.29.0 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.7 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.29.0) + '@babel/types': 7.29.7 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.0) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -43174,7 +46116,7 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.7.4 + semver: 7.8.1 transitivePeerDependencies: - supports-color @@ -43233,19 +46175,6 @@ snapshots: - ts-node optional: true - jest@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - jest@29.7.0(@types/node@22.19.11)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.9.3)): dependencies: '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.9.3)) @@ -43271,19 +46200,6 @@ snapshots: - ts-node optional: true - jest@29.7.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)): - dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - jimp-compact@0.16.1: {} jiti@1.21.7: {} @@ -43334,7 +46250,7 @@ snapshots: jsc-safe-url@0.2.4: {} - jscodeshift@17.3.0(@babel/preset-env@7.28.5(@babel/core@7.28.5)): + jscodeshift@17.3.0(@babel/preset-env@7.28.5(@babel/core@7.29.0)): dependencies: '@babel/core': 7.28.5 '@babel/parser': 7.28.5 @@ -43355,7 +46271,7 @@ snapshots: tmp: 0.2.5 write-file-atomic: 5.0.1 optionalDependencies: - '@babel/preset-env': 7.28.5(@babel/core@7.28.5) + '@babel/preset-env': 7.28.5(@babel/core@7.29.0) transitivePeerDependencies: - supports-color @@ -43459,6 +46375,8 @@ snapshots: json-parse-even-better-errors@4.0.0: {} + json-parse-even-better-errors@5.0.0: {} + json-schema-to-ts@3.1.1: dependencies: '@babel/runtime': 7.29.2 @@ -43763,6 +46681,13 @@ snapshots: optionalDependencies: webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + less-loader@12.3.0(less@4.4.0)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): + dependencies: + less: 4.4.0 + optionalDependencies: + webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + optional: true + less@4.2.2: dependencies: copy-anything: 2.0.6 @@ -43777,6 +46702,21 @@ snapshots: needle: 3.3.1 source-map: 0.6.1 + less@4.4.0: + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.8.1 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + optional: true + less@4.5.1: dependencies: copy-anything: 2.0.6 @@ -43966,6 +46906,25 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.2 + listr2@9.0.1: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.4 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.2 + optional: true + + listr2@9.0.5: + dependencies: + cli-truncate: 5.2.0 + colorette: 2.0.20 + eventemitter3: 5.0.4 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.2 + lit-element@4.2.2: dependencies: '@lit-labs/ssr-dom-shim': 1.5.1 @@ -43998,6 +46957,41 @@ snapshots: '@lmdb/lmdb-win32-x64': 3.2.6 optional: true + lmdb@3.4.2: + dependencies: + msgpackr: 1.11.8 + node-addon-api: 6.1.0 + node-gyp-build-optional-packages: 5.2.2 + ordered-binary: 1.6.1 + weak-lru-cache: 1.2.2 + optionalDependencies: + '@lmdb/lmdb-darwin-arm64': 3.4.2 + '@lmdb/lmdb-darwin-x64': 3.4.2 + '@lmdb/lmdb-linux-arm': 3.4.2 + '@lmdb/lmdb-linux-arm64': 3.4.2 + '@lmdb/lmdb-linux-x64': 3.4.2 + '@lmdb/lmdb-win32-arm64': 3.4.2 + '@lmdb/lmdb-win32-x64': 3.4.2 + optional: true + + lmdb@3.5.1: + dependencies: + '@harperfast/extended-iterable': 1.0.3 + msgpackr: 1.11.8 + node-addon-api: 6.1.0 + node-gyp-build-optional-packages: 5.2.2 + ordered-binary: 1.6.1 + weak-lru-cache: 1.2.2 + optionalDependencies: + '@lmdb/lmdb-darwin-arm64': 3.5.1 + '@lmdb/lmdb-darwin-x64': 3.5.1 + '@lmdb/lmdb-linux-arm': 3.5.1 + '@lmdb/lmdb-linux-arm64': 3.5.1 + '@lmdb/lmdb-linux-x64': 3.5.1 + '@lmdb/lmdb-win32-arm64': 3.5.1 + '@lmdb/lmdb-win32-x64': 3.5.1 + optional: true + loader-runner@4.3.1: {} loader-utils@2.0.4: @@ -44098,6 +47092,17 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 + log-symbols@6.0.0: + dependencies: + chalk: 5.6.2 + is-unicode-supported: 1.3.0 + optional: true + + log-symbols@7.0.1: + dependencies: + is-unicode-supported: 2.1.0 + yoctocolors: 2.1.2 + log-update@4.0.0: dependencies: ansi-escapes: 4.3.2 @@ -44153,8 +47158,6 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.4: {} - lru-cache@11.3.5: {} lru-cache@5.1.1: @@ -44169,10 +47172,10 @@ snapshots: lru-cache@8.0.5: {} - lucide-angular@0.540.0(@angular/common@19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10)): + lucide-angular@0.540.0(@angular/common@21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1))(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1)): dependencies: - '@angular/common': 19.2.18(@angular/core@19.2.18(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) - '@angular/core': 19.2.18(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/common': 21.2.15(@angular/core@21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1))(rxjs@7.8.1) + '@angular/core': 21.2.15(@angular/compiler@21.2.15)(rxjs@7.8.1)(zone.js@0.15.1) tslib: 2.8.1 lucide-react@0.274.0(react@19.2.3): @@ -44225,14 +47228,14 @@ snapshots: magicast@0.3.5: dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 source-map-js: 1.2.1 magicast@0.5.2: dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 source-map-js: 1.2.1 make-dir@2.1.0: @@ -44246,7 +47249,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.4 + semver: 7.8.1 make-error@1.3.6: {} @@ -44266,6 +47269,23 @@ snapshots: transitivePeerDependencies: - supports-color + make-fetch-happen@15.0.6: + dependencies: + '@gar/promise-retry': 1.0.3 + '@npmcli/agent': 4.0.2 + '@npmcli/redact': 4.0.0 + cacache: 20.0.4 + http-cache-semantics: 4.2.0 + minipass: 7.1.2 + minipass-fetch: 5.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 1.0.0 + proc-log: 6.1.0 + ssri: 13.0.1 + transitivePeerDependencies: + - supports-color + makeerror@1.0.12: dependencies: tmpl: 1.0.5 @@ -44634,7 +47654,7 @@ snapshots: metro-babel-transformer@0.84.4: dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 flow-enums-runtime: 0.0.6 hermes-parser: 0.35.0 metro-cache-key: 0.84.4 @@ -44706,8 +47726,8 @@ snapshots: metro-source-map@0.84.4: dependencies: - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 flow-enums-runtime: 0.0.6 invariant: 2.2.4 metro-symbolicate: 0.84.4 @@ -44731,10 +47751,10 @@ snapshots: metro-transform-plugins@0.84.4: dependencies: - '@babel/core': 7.28.5 - '@babel/generator': 7.29.1 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: @@ -44742,10 +47762,10 @@ snapshots: metro-transform-worker@0.84.4: dependencies: - '@babel/core': 7.28.5 - '@babel/generator': 7.29.1 - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 flow-enums-runtime: 0.0.6 metro: 0.84.4 metro-babel-transformer: 0.84.4 @@ -44762,13 +47782,13 @@ snapshots: metro@0.84.4: dependencies: - '@babel/code-frame': 7.29.0 - '@babel/core': 7.28.5 - '@babel/generator': 7.29.1 - '@babel/parser': 7.29.2 - '@babel/template': 7.28.6 - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/core': 7.29.0 + '@babel/generator': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 accepts: 2.0.0 ci-info: 2.0.0 connect: 3.7.0 @@ -44847,7 +47867,7 @@ snapshots: micromark-extension-cjk-friendly-gfm-strikethrough@1.2.3(micromark-util-types@2.0.2)(micromark@4.0.2): dependencies: devlop: 1.1.0 - get-east-asian-width: 1.4.0 + get-east-asian-width: 1.6.0 micromark: 4.0.2 micromark-extension-cjk-friendly-util: 2.1.1(micromark-util-types@2.0.2) micromark-util-character: 2.1.1 @@ -44859,7 +47879,7 @@ snapshots: micromark-extension-cjk-friendly-util@2.1.1(micromark-util-types@2.0.2): dependencies: - get-east-asian-width: 1.4.0 + get-east-asian-width: 1.6.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 optionalDependencies: @@ -45301,6 +48321,13 @@ snapshots: tapable: 2.3.0 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + mini-css-extract-plugin@2.9.4(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): + dependencies: + schema-utils: 4.3.3 + tapable: 2.3.0 + webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + optional: true + miniflare@4.20260401.0: dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -45335,6 +48362,14 @@ snapshots: optionalDependencies: encoding: 0.1.13 + minipass-fetch@5.0.2: + dependencies: + minipass: 7.1.2 + minipass-sized: 2.0.0 + minizlib: 3.1.0 + optionalDependencies: + iconv-lite: 0.7.2 + minipass-flush@1.0.5: dependencies: minipass: 3.3.6 @@ -45347,6 +48382,10 @@ snapshots: dependencies: minipass: 3.3.6 + minipass-sized@2.0.0: + dependencies: + minipass: 7.1.2 + minipass@3.3.6: dependencies: yallist: 4.0.0 @@ -45511,7 +48550,7 @@ snapshots: next-mdx-remote-client@1.1.4(@types/react@19.1.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(unified@11.0.5): dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 '@mdx-js/mdx': 3.1.1 '@mdx-js/react': 3.1.1(@types/react@19.1.8)(react@19.2.3) react: 19.2.3 @@ -45525,13 +48564,13 @@ snapshots: - supports-color - unified - next-themes@0.2.1(next@16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next-themes@0.2.1(next@16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - next: 16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) + next: 16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - next@16.1.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2): + next@16.1.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3): dependencies: '@next/env': 16.1.3 '@swc/helpers': 0.5.15 @@ -45540,7 +48579,7 @@ snapshots: postcss: 8.4.31 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.2.3) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.3) optionalDependencies: '@next/swc-darwin-arm64': 16.1.3 '@next/swc-darwin-x64': 16.1.3 @@ -45553,13 +48592,13 @@ snapshots: '@opentelemetry/api': 1.9.0 '@playwright/test': 1.59.1 babel-plugin-react-compiler: 1.0.0 - sass: 1.97.2 + sass: 1.97.3 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - next@16.2.3(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2): + next@16.2.3(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.59.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3): dependencies: '@next/env': 16.2.3 '@swc/helpers': 0.5.15 @@ -45568,7 +48607,7 @@ snapshots: postcss: 8.4.31 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.2.3) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@19.2.3) optionalDependencies: '@next/swc-darwin-arm64': 16.2.3 '@next/swc-darwin-x64': 16.2.3 @@ -45581,7 +48620,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@playwright/test': 1.59.1 babel-plugin-react-compiler: 1.0.0 - sass: 1.97.2 + sass: 1.97.3 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' @@ -45594,12 +48633,12 @@ snapshots: '@rollup/wasm-node': 4.55.1 ajv: 8.20.0 ansi-colors: 4.1.3 - browserslist: 4.28.1 + browserslist: 4.28.2 chokidar: 4.0.3 commander: 13.1.0 convert-source-map: 2.0.0 dependency-graph: 1.0.0 - esbuild: 0.25.12 + esbuild: 0.27.3 fast-glob: 3.3.3 find-cache-dir: 3.3.2 injection-js: 2.6.1 @@ -45607,40 +48646,72 @@ snapshots: less: 4.5.1 ora: 5.4.1 piscina: 4.9.2 - postcss: 8.5.6 + postcss: 8.5.15 rxjs: 7.8.1 - sass: 1.97.2 + sass: 1.97.3 tslib: 2.8.1 typescript: 5.8.2 optionalDependencies: rollup: 4.60.2 tailwindcss: 4.1.18 + optional: true - ng-packagr@19.2.2(@angular/compiler-cli@19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@5.8.2): + ng-packagr@21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.1.18)(tslib@2.8.1)(typescript@5.9.3): dependencies: - '@angular/compiler-cli': 19.2.18(@angular/compiler@19.2.18)(typescript@5.8.2) + '@ampproject/remapping': 2.3.0 + '@angular/compiler-cli': 21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3) '@rollup/plugin-json': 6.1.0(rollup@4.60.2) '@rollup/wasm-node': 4.55.1 ajv: 8.20.0 ansi-colors: 4.1.3 - browserslist: 4.28.1 - chokidar: 4.0.3 - commander: 13.1.0 - convert-source-map: 2.0.0 + browserslist: 4.28.2 + chokidar: 5.0.0 + commander: 14.0.3 dependency-graph: 1.0.0 - esbuild: 0.25.12 - fast-glob: 3.3.3 - find-cache-dir: 3.3.2 + esbuild: 0.27.3 + find-cache-directory: 6.0.0 injection-js: 2.6.1 jsonc-parser: 3.3.1 less: 4.5.1 - ora: 5.4.1 - piscina: 4.9.2 - postcss: 8.5.6 + ora: 9.3.0 + piscina: 5.1.4 + postcss: 8.5.15 + rollup-plugin-dts: 6.4.1(rollup@4.60.2)(typescript@5.9.3) rxjs: 7.8.1 - sass: 1.97.2 + sass: 1.97.3 + tinyglobby: 0.2.16 tslib: 2.8.1 - typescript: 5.8.2 + typescript: 5.9.3 + optionalDependencies: + rollup: 4.60.2 + tailwindcss: 4.1.18 + + ng-packagr@21.2.3(@angular/compiler-cli@21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@5.9.3): + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular/compiler-cli': 21.2.15(@angular/compiler@21.2.15)(typescript@5.9.3) + '@rollup/plugin-json': 6.1.0(rollup@4.60.2) + '@rollup/wasm-node': 4.55.1 + ajv: 8.20.0 + ansi-colors: 4.1.3 + browserslist: 4.28.2 + chokidar: 5.0.0 + commander: 14.0.3 + dependency-graph: 1.0.0 + esbuild: 0.27.3 + find-cache-directory: 6.0.0 + injection-js: 2.6.1 + jsonc-parser: 3.3.1 + less: 4.5.1 + ora: 9.3.0 + piscina: 5.1.4 + postcss: 8.5.15 + rollup-plugin-dts: 6.4.1(rollup@4.60.2)(typescript@5.9.3) + rxjs: 7.8.1 + sass: 1.97.3 + tinyglobby: 0.2.16 + tslib: 2.8.1 + typescript: 5.9.3 optionalDependencies: rollup: 4.60.2 tailwindcss: 4.2.2 @@ -45711,7 +48782,7 @@ snapshots: rollup: 4.60.2 rollup-plugin-visualizer: 7.0.1(rollup@4.60.2) scule: 1.3.0 - semver: 7.7.4 + semver: 7.8.1 serve-placeholder: 2.0.2 serve-static: 2.2.1 source-map: 0.7.6 @@ -45832,16 +48903,27 @@ snapshots: make-fetch-happen: 14.0.3 nopt: 8.1.0 proc-log: 5.0.0 - semver: 7.7.4 + semver: 7.8.1 tar: 7.5.13 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 which: 5.0.0 transitivePeerDependencies: - supports-color - node-int64@0.4.0: {} + node-gyp@12.3.0: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.3 + graceful-fs: 4.2.11 + nopt: 9.0.0 + proc-log: 6.1.0 + semver: 7.8.1 + tar: 7.5.13 + tinyglobby: 0.2.16 + undici: 6.26.0 + which: 6.0.1 - node-machine-id@1.1.12: {} + node-int64@0.4.0: {} node-mock-http@1.0.4: {} @@ -45901,6 +48983,10 @@ snapshots: dependencies: abbrev: 3.0.1 + nopt@9.0.0: + dependencies: + abbrev: 4.0.0 + normalize-path@2.1.1: dependencies: remove-trailing-separator: 1.1.0 @@ -45915,12 +49001,22 @@ snapshots: dependencies: npm-normalize-package-bin: 4.0.0 + npm-bundled@5.0.0: + dependencies: + npm-normalize-package-bin: 5.0.0 + npm-install-checks@7.1.2: dependencies: - semver: 7.7.4 + semver: 7.8.1 + + npm-install-checks@8.0.0: + dependencies: + semver: 7.8.1 npm-normalize-package-bin@4.0.0: {} + npm-normalize-package-bin@5.0.0: {} + npm-package-arg@11.0.3: dependencies: hosted-git-info: 7.0.2 @@ -45932,9 +49028,21 @@ snapshots: dependencies: hosted-git-info: 8.1.0 proc-log: 5.0.0 - semver: 7.7.3 + semver: 7.8.1 validate-npm-package-name: 6.0.2 + npm-package-arg@13.0.2: + dependencies: + hosted-git-info: 9.0.3 + proc-log: 6.1.0 + semver: 7.8.1 + validate-npm-package-name: 7.0.2 + + npm-packlist@10.0.4: + dependencies: + ignore-walk: 8.0.0 + proc-log: 6.1.0 + npm-packlist@9.0.0: dependencies: ignore-walk: 7.0.0 @@ -45944,7 +49052,14 @@ snapshots: npm-install-checks: 7.1.2 npm-normalize-package-bin: 4.0.0 npm-package-arg: 12.0.2 - semver: 7.7.3 + semver: 7.8.1 + + npm-pick-manifest@11.0.3: + dependencies: + npm-install-checks: 8.0.0 + npm-normalize-package-bin: 5.0.0 + npm-package-arg: 13.0.2 + semver: 7.8.1 npm-registry-fetch@18.0.2: dependencies: @@ -45959,6 +49074,19 @@ snapshots: transitivePeerDependencies: - supports-color + npm-registry-fetch@19.1.1: + dependencies: + '@npmcli/redact': 4.0.0 + jsonparse: 1.3.1 + make-fetch-happen: 15.0.6 + minipass: 7.1.2 + minipass-fetch: 5.0.2 + minizlib: 3.1.0 + npm-package-arg: 13.0.2 + proc-log: 6.1.0 + transitivePeerDependencies: + - supports-color + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -45980,15 +49108,15 @@ snapshots: nullthrows@1.1.1: {} - nuxt@3.17.5(@parcel/watcher@2.5.6)(@types/node@22.19.11)(better-sqlite3@12.5.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(better-sqlite3@12.5.0))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.10.1)(less@4.5.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rollup@4.60.2)(sass@1.97.2)(srvx@0.11.15)(terser@5.44.1)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue-tsc@2.2.12(typescript@5.8.2))(xml2js@0.6.2)(yaml@2.8.3): + nuxt@3.17.5(@parcel/watcher@2.5.6)(@types/node@22.19.11)(better-sqlite3@12.5.0)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4(better-sqlite3@12.5.0))(encoding@0.1.13)(eslint@9.39.2(jiti@2.6.1))(ioredis@5.10.1)(less@4.5.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rollup@4.60.2)(sass@1.97.3)(srvx@0.11.15)(terser@5.44.1)(tsx@4.21.0)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.8.2))(xml2js@0.6.2)(yaml@2.9.0): dependencies: '@nuxt/cli': 3.35.2(@nuxt/schema@3.17.5)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.2) '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 2.7.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2)) + '@nuxt/devtools': 2.7.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2)) '@nuxt/kit': 3.17.5(magicast@0.5.2) '@nuxt/schema': 3.17.5 '@nuxt/telemetry': 2.8.0(@nuxt/kit@3.17.5(magicast@0.5.2)) - '@nuxt/vite-builder': 3.17.5(@types/node@22.19.11)(eslint@9.39.2(jiti@2.6.1))(less@4.5.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rollup@4.60.2)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(typescript@5.8.2)(vue-tsc@2.2.12(typescript@5.8.2))(vue@3.5.34(typescript@5.8.2))(yaml@2.8.3) + '@nuxt/vite-builder': 3.17.5(@types/node@22.19.11)(eslint@9.39.2(jiti@2.6.1))(less@4.5.1)(lightningcss@1.32.0)(magicast@0.5.2)(optionator@0.9.4)(rollup@4.60.2)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.8.2)(vue-tsc@2.2.12(typescript@5.8.2))(vue@3.5.34(typescript@5.8.2))(yaml@2.9.0) '@unhead/vue': 2.1.15(vue@3.5.34(typescript@5.8.2)) '@vue/shared': 3.5.34 c12: 3.3.4(magicast@0.5.2) @@ -46107,55 +49235,129 @@ snapshots: nwsapi@2.2.23: {} - nx@22.5.0(@swc/core@1.15.8(@swc/helpers@0.5.18)): + nx@22.7.5(@swc/core@1.15.8(@swc/helpers@0.5.18)): dependencies: + '@emnapi/core': 1.4.5 + '@emnapi/runtime': 1.4.5 + '@emnapi/wasi-threads': 1.0.4 + '@jest/diff-sequences': 30.0.1 '@napi-rs/wasm-runtime': 0.2.4 + '@tybys/wasm-util': 0.9.0 '@yarnpkg/lockfile': 1.1.0 - '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 + ansi-colors: 4.1.3 + ansi-regex: 5.0.1 + ansi-styles: 4.3.0 + argparse: 2.0.1 + asynckit: 0.4.0 axios: 1.15.2(debug@4.4.3) + balanced-match: 4.0.3 + base64-js: 1.5.1 + bl: 4.1.0 + brace-expansion: 5.0.6 + buffer: 5.7.1 + call-bind-apply-helpers: 1.0.2 + chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 cliui: 8.0.1 + clone: 1.0.4 + color-convert: 2.0.1 + color-name: 1.1.4 + combined-stream: 1.0.8 + defaults: 1.0.4 + define-lazy-prop: 2.0.0 + delayed-stream: 1.0.0 dotenv: 16.4.7 - dotenv-expand: 11.0.7 - ejs: 3.1.10 + dotenv-expand: 12.0.3 + dunder-proto: 1.0.1 + ejs: 5.0.1 + emoji-regex: 8.0.0 + end-of-stream: 1.4.5 enquirer: 2.3.6 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + escalade: 3.2.0 + escape-string-regexp: 1.0.5 figures: 3.2.0 flat: 5.0.2 - front-matter: 4.0.2 + follow-redirects: 1.16.0 + form-data: 4.0.5 + fs-constants: 1.0.0 + function-bind: 1.1.2 + get-caller-file: 2.0.5 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + has-flag: 4.0.0 + has-symbols: 1.1.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + ieee754: 1.2.1 ignore: 7.0.5 - jest-diff: 30.2.0 + inherits: 2.0.4 + is-docker: 2.2.1 + is-fullwidth-code-point: 3.0.0 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + is-wsl: 2.2.0 + json5: 2.2.3 jsonc-parser: 3.2.0 lines-and-columns: 2.0.3 + log-symbols: 4.1.0 + math-intrinsics: 1.1.0 + mime-db: 1.52.0 + mime-types: 2.1.35 + mimic-fn: 2.1.0 minimatch: 10.2.4 - node-machine-id: 1.1.12 + minimist: 1.2.8 npm-run-path: 4.0.1 + once: 1.4.0 + onetime: 5.1.2 open: 8.4.2 ora: 5.3.0 + path-key: 3.1.1 picocolors: 1.1.1 + proxy-from-env: 2.1.0 + readable-stream: 3.6.2 + require-directory: 2.1.1 resolve.exports: 2.0.3 - semver: 7.7.3 + restore-cursor: 3.1.0 + safe-buffer: 5.2.1 + semver: 7.7.4 + signal-exit: 3.0.7 + smol-toml: 1.6.1 string-width: 4.2.3 + string_decoder: 1.3.0 + strip-ansi: 6.0.1 + strip-bom: 3.0.0 + supports-color: 7.2.0 tar-stream: 2.2.0 - tmp: 0.2.5 + tmp: 0.2.6 tree-kill: 1.2.2 tsconfig-paths: 4.2.0 tslib: 2.8.1 - yaml: 2.8.3 + util-deprecate: 1.0.2 + wcwidth: 1.0.1 + wrap-ansi: 7.0.0 + wrappy: 1.0.2 + y18n: 5.0.8 + yaml: 2.9.0 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 22.5.0 - '@nx/nx-darwin-x64': 22.5.0 - '@nx/nx-freebsd-x64': 22.5.0 - '@nx/nx-linux-arm-gnueabihf': 22.5.0 - '@nx/nx-linux-arm64-gnu': 22.5.0 - '@nx/nx-linux-arm64-musl': 22.5.0 - '@nx/nx-linux-x64-gnu': 22.5.0 - '@nx/nx-linux-x64-musl': 22.5.0 - '@nx/nx-win32-arm64-msvc': 22.5.0 - '@nx/nx-win32-x64-msvc': 22.5.0 + '@nx/nx-darwin-arm64': 22.7.5 + '@nx/nx-darwin-x64': 22.7.5 + '@nx/nx-freebsd-x64': 22.7.5 + '@nx/nx-linux-arm-gnueabihf': 22.7.5 + '@nx/nx-linux-arm64-gnu': 22.7.5 + '@nx/nx-linux-arm64-musl': 22.7.5 + '@nx/nx-linux-x64-gnu': 22.7.5 + '@nx/nx-linux-x64-musl': 22.7.5 + '@nx/nx-win32-arm64-msvc': 22.7.5 + '@nx/nx-win32-x64-msvc': 22.7.5 '@swc/core': 1.15.8(@swc/helpers@0.5.18) transitivePeerDependencies: - debug @@ -46392,6 +49594,30 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 + ora@8.2.0: + dependencies: + chalk: 5.6.2 + cli-cursor: 5.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.2 + optional: true + + ora@9.3.0: + dependencies: + chalk: 5.6.2 + cli-cursor: 5.0.0 + cli-spinners: 3.4.0 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 7.0.1 + stdin-discarder: 0.3.2 + string-width: 8.2.1 + ordered-binary@1.6.1: optional: true @@ -46602,6 +49828,28 @@ snapshots: transitivePeerDependencies: - supports-color + pacote@21.3.1: + dependencies: + '@npmcli/git': 7.0.2 + '@npmcli/installed-package-contents': 4.0.0 + '@npmcli/package-json': 7.0.5 + '@npmcli/promise-spawn': 9.0.1 + '@npmcli/run-script': 10.0.4 + cacache: 20.0.4 + fs-minipass: 3.0.3 + minipass: 7.1.2 + npm-package-arg: 13.0.2 + npm-packlist: 10.0.4 + npm-pick-manifest: 11.0.3 + npm-registry-fetch: 19.1.1 + proc-log: 6.1.0 + promise-retry: 2.0.1 + sigstore: 4.1.1 + ssri: 13.0.1 + tar: 7.5.13 + transitivePeerDependencies: + - supports-color + pako@1.0.11: {} param-case@3.0.4: @@ -46658,7 +49906,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -46692,6 +49940,12 @@ snapshots: parse5: 7.3.0 parse5-sax-parser: 7.0.0 + parse5-html-rewriting-stream@8.0.0: + dependencies: + entities: 6.0.1 + parse5: 8.0.1 + parse5-sax-parser: 8.0.0 + parse5-htmlparser2-tree-adapter@6.0.1: dependencies: parse5: 6.0.1 @@ -46700,6 +49954,10 @@ snapshots: dependencies: parse5: 7.3.0 + parse5-sax-parser@8.0.0: + dependencies: + parse5: 8.0.1 + parse5@5.1.1: {} parse5@6.0.1: {} @@ -46711,7 +49969,6 @@ snapshots: parse5@8.0.1: dependencies: entities: 8.0.0 - optional: true parseurl@1.3.3: {} @@ -46762,7 +50019,7 @@ snapshots: path-scurry@2.0.1: dependencies: - lru-cache: 11.2.4 + lru-cache: 11.3.5 minipass: 7.1.2 path-to-regexp@6.3.0: {} @@ -46858,6 +50115,16 @@ snapshots: piscina@4.9.2: optionalDependencies: '@napi-rs/nice': 1.1.1 + optional: true + + piscina@5.1.3: + optionalDependencies: + '@napi-rs/nice': 1.1.1 + optional: true + + piscina@5.1.4: + optionalDependencies: + '@napi-rs/nice': 1.1.1 pkce-challenge@5.0.1: {} @@ -46873,10 +50140,14 @@ snapshots: dependencies: find-up: 6.3.0 + pkg-dir@8.0.0: + dependencies: + find-up-simple: 1.0.1 + pkg-types@1.3.1: dependencies: confbox: 0.1.8 - mlly: 1.8.2 + mlly: 1.8.0 pathe: 2.0.3 pkg-types@2.3.0: @@ -46922,42 +50193,49 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-calc@10.1.1(postcss@8.5.6): + postcss-calc@10.1.1(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.10(postcss@8.5.6): + postcss-colormin@7.0.10(postcss@8.5.15): dependencies: '@colordx/core': 5.4.3 browserslist: 4.28.2 caniuse-api: 3.0.0 - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.12(postcss@8.5.6): + postcss-convert-values@7.0.12(postcss@8.5.15): dependencies: browserslist: 4.28.2 - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-discard-comments@7.0.8(postcss@8.5.6): + postcss-discard-comments@7.0.8(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-selector-parser: 7.1.1 - postcss-discard-duplicates@7.0.4(postcss@8.5.6): + postcss-discard-duplicates@7.0.4(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 - postcss-discard-empty@7.0.3(postcss@8.5.6): + postcss-discard-empty@7.0.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 - postcss-discard-overridden@7.0.3(postcss@8.5.6): + postcss-discard-overridden@7.0.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 + + postcss-import@15.1.0(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.11 postcss-import@15.1.0(postcss@8.5.6): dependencies: @@ -46966,34 +50244,51 @@ snapshots: read-cache: 1.0.0 resolve: 1.22.11 + postcss-js@4.1.0(postcss@8.5.15): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.15 + postcss-js@4.1.0(postcss@8.5.6): dependencies: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.9.3)): + postcss-load-config@4.0.2(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.9.3)): dependencies: lilconfig: 3.1.3 yaml: 2.8.3 optionalDependencies: - postcss: 8.5.6 + postcss: 8.5.15 ts-node: 10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.9.3) - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.3): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.9.0): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 postcss: 8.5.6 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 + + postcss-loader@8.1.1(postcss@8.5.12)(typescript@5.9.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): + dependencies: + cosmiconfig: 9.0.0(typescript@5.9.3) + jiti: 1.21.7 + postcss: 8.5.12 + semver: 7.8.1 + optionalDependencies: + webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + transitivePeerDependencies: + - typescript + optional: true postcss-loader@8.1.1(postcss@8.5.2)(typescript@5.8.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): dependencies: cosmiconfig: 9.0.0(typescript@5.8.2) jiti: 1.21.7 postcss: 8.5.2 - semver: 7.7.4 + semver: 7.8.1 optionalDependencies: webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) transitivePeerDependencies: @@ -47012,51 +50307,62 @@ snapshots: postcss-media-query-parser@0.2.3: {} - postcss-merge-longhand@7.0.7(postcss@8.5.6): + postcss-merge-longhand@7.0.7(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - stylehacks: 7.0.11(postcss@8.5.6) + stylehacks: 7.0.11(postcss@8.5.15) - postcss-merge-rules@7.0.11(postcss@8.5.6): + postcss-merge-rules@7.0.11(postcss@8.5.15): dependencies: browserslist: 4.28.2 caniuse-api: 3.0.0 - cssnano-utils: 5.0.3(postcss@8.5.6) - postcss: 8.5.6 + cssnano-utils: 5.0.3(postcss@8.5.15) + postcss: 8.5.15 postcss-selector-parser: 7.1.1 - postcss-minify-font-values@7.0.3(postcss@8.5.6): + postcss-minify-font-values@7.0.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.5(postcss@8.5.6): + postcss-minify-gradients@7.0.5(postcss@8.5.15): dependencies: '@colordx/core': 5.4.3 - cssnano-utils: 5.0.3(postcss@8.5.6) - postcss: 8.5.6 + cssnano-utils: 5.0.3(postcss@8.5.15) + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.9(postcss@8.5.6): + postcss-minify-params@7.0.9(postcss@8.5.15): dependencies: browserslist: 4.28.2 - cssnano-utils: 5.0.3(postcss@8.5.6) - postcss: 8.5.6 + cssnano-utils: 5.0.3(postcss@8.5.15) + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-minify-selectors@7.1.2(postcss@8.5.6): + postcss-minify-selectors@7.1.2(postcss@8.5.15): dependencies: browserslist: 4.28.2 caniuse-api: 3.0.0 cssesc: 3.0.0 - postcss: 8.5.6 + postcss: 8.5.15 postcss-selector-parser: 7.1.1 + postcss-modules-extract-imports@3.1.0(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-modules-extract-imports@3.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 + postcss-modules-local-by-default@4.2.0(postcss@8.5.15): + dependencies: + icss-utils: 5.1.0(postcss@8.5.15) + postcss: 8.5.15 + postcss-selector-parser: 7.1.1 + postcss-value-parser: 4.2.0 + postcss-modules-local-by-default@4.2.0(postcss@8.5.6): dependencies: icss-utils: 5.1.0(postcss@8.5.6) @@ -47064,99 +50370,118 @@ snapshots: postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 + postcss-modules-scope@3.2.1(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-selector-parser: 7.1.1 + postcss-modules-scope@3.2.1(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 7.1.1 + postcss-modules-values@4.0.0(postcss@8.5.15): + dependencies: + icss-utils: 5.1.0(postcss@8.5.15) + postcss: 8.5.15 + postcss-modules-values@4.0.0(postcss@8.5.6): dependencies: icss-utils: 5.1.0(postcss@8.5.6) postcss: 8.5.6 - postcss-modules@6.0.1(postcss@8.5.6): + postcss-modules@6.0.1(postcss@8.5.15): dependencies: generic-names: 4.0.0 - icss-utils: 5.1.0(postcss@8.5.6) + icss-utils: 5.1.0(postcss@8.5.15) lodash.camelcase: 4.3.0 - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) + postcss: 8.5.15 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.15) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.15) + postcss-modules-scope: 3.2.1(postcss@8.5.15) + postcss-modules-values: 4.0.0(postcss@8.5.15) string-hash: 1.1.3 + postcss-nested@6.2.0(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-selector-parser: 6.1.2 + postcss-nested@6.2.0(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-normalize-charset@7.0.3(postcss@8.5.6): + postcss-normalize-charset@7.0.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 - postcss-normalize-display-values@7.0.3(postcss@8.5.6): + postcss-normalize-display-values@7.0.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.4(postcss@8.5.6): + postcss-normalize-positions@7.0.4(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.4(postcss@8.5.6): + postcss-normalize-repeat-style@7.0.4(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.3(postcss@8.5.6): + postcss-normalize-string@7.0.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.3(postcss@8.5.6): + postcss-normalize-timing-functions@7.0.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.9(postcss@8.5.6): + postcss-normalize-unicode@7.0.9(postcss@8.5.15): dependencies: browserslist: 4.28.2 - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.3(postcss@8.5.6): + postcss-normalize-url@7.0.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.3(postcss@8.5.6): + postcss-normalize-whitespace@7.0.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 - postcss-ordered-values@7.0.4(postcss@8.5.6): + postcss-ordered-values@7.0.4(postcss@8.5.15): dependencies: - cssnano-utils: 5.0.3(postcss@8.5.6) - postcss: 8.5.6 + cssnano-utils: 5.0.3(postcss@8.5.15) + postcss: 8.5.15 postcss-value-parser: 4.2.0 postcss-prefix-selector@1.16.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-reduce-initial@7.0.9(postcss@8.5.6): + postcss-reduce-initial@7.0.9(postcss@8.5.15): dependencies: browserslist: 4.28.2 caniuse-api: 3.0.0 - postcss: 8.5.6 + postcss: 8.5.15 - postcss-reduce-transforms@7.0.3(postcss@8.5.6): + postcss-reduce-transforms@7.0.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 + postcss-safe-parser@7.0.1(postcss@8.5.15): + dependencies: + postcss: 8.5.15 + postcss-selector-parser@6.0.10: dependencies: cssesc: 3.0.0 @@ -47172,15 +50497,15 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@7.1.3(postcss@8.5.6): + postcss-svgo@7.1.3(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-value-parser: 4.2.0 svgo: 4.0.1 - postcss-unique-selectors@7.0.7(postcss@8.5.6): + postcss-unique-selectors@7.0.7(postcss@8.5.15): dependencies: - postcss: 8.5.6 + postcss: 8.5.15 postcss-selector-parser: 7.1.1 postcss-value-parser@4.2.0: {} @@ -47191,6 +50516,13 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.12: + dependencies: + nanoid: 3.3.12 + picocolors: 1.1.1 + source-map-js: 1.2.1 + optional: true + postcss@8.5.15: dependencies: nanoid: 3.3.12 @@ -47199,7 +50531,7 @@ snapshots: postcss@8.5.2: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -47251,12 +50583,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-format@30.2.0: - dependencies: - '@jest/schemas': 30.0.5 - ansi-styles: 5.2.0 - react-is: 18.3.1 - pretty-ms@9.3.0: dependencies: parse-ms: 4.0.0 @@ -47272,6 +50598,8 @@ snapshots: proc-log@5.0.0: {} + proc-log@6.1.0: {} + process-nextick-args@2.0.1: {} process-warning@5.0.0: {} @@ -47557,9 +50885,9 @@ snapshots: react-docgen@7.1.1: dependencies: - '@babel/core': 7.28.5 - '@babel/traverse': 7.28.5 - '@babel/types': 7.29.0 + '@babel/core': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 '@types/doctrine': 0.0.9 @@ -47572,9 +50900,9 @@ snapshots: react-docgen@8.0.2: dependencies: - '@babel/core': 7.28.5 - '@babel/traverse': 7.28.5 - '@babel/types': 7.29.0 + '@babel/core': 7.29.0 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 '@types/doctrine': 0.0.9 @@ -47672,30 +51000,30 @@ snapshots: transitivePeerDependencies: - supports-color - react-native-enriched-markdown@0.4.0(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): + react-native-enriched-markdown@0.4.0(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): dependencies: react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) - react-native-gesture-handler@2.31.2(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): + react-native-gesture-handler@2.31.2(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): dependencies: '@egjs/hammerjs': 2.0.17 '@types/react-test-renderer': 19.1.0 hoist-non-react-statics: 3.3.2 invariant: 2.2.4 react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) - react-native-is-edge-to-edge@1.3.1(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): + react-native-is-edge-to-edge@1.3.1(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): dependencies: react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) - react-native-reanimated@4.3.1(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): + react-native-reanimated@4.3.1(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): dependencies: react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) - react-native-is-edge-to-edge: 1.3.1(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) + react-native-is-edge-to-edge: 1.3.1(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) semver: 7.7.4 react-native-safe-area-context@5.7.0(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3): @@ -47703,11 +51031,11 @@ snapshots: react: 19.2.3 react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) - react-native-streamdown@0.1.1(react-native-enriched-markdown@0.4.0(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(remend@1.2.2): + react-native-streamdown@0.1.1(react-native-enriched-markdown@0.4.0(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3))(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3)(remend@1.2.2): dependencies: react: 19.2.3 - react-native: 0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3) - react-native-enriched-markdown: 0.4.0(react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + react-native: 0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3) + react-native-enriched-markdown: 0.4.0(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) remend: 1.2.2 react-native@0.85.2(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.28.5)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.28.5))(@types/react@19.1.8)(react@19.2.3): @@ -47756,6 +51084,52 @@ snapshots: - supports-color - utf-8-validate + react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3): + dependencies: + '@react-native/assets-registry': 0.85.2 + '@react-native/codegen': 0.85.2(@babel/core@7.29.0) + '@react-native/community-cli-plugin': 0.85.2(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0)) + '@react-native/gradle-plugin': 0.85.2 + '@react-native/js-polyfills': 0.85.2 + '@react-native/normalize-colors': 0.85.2 + '@react-native/virtualized-lists': 0.85.2(@types/react@19.1.8)(react-native@0.85.2(@babel/core@7.29.0)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@react-native/jest-preset@0.85.2(@babel/core@7.29.0)(react@19.2.3))(@react-native/metro-config@0.85.2(@babel/core@7.29.0))(@types/react@19.1.8)(react@19.2.3))(react@19.2.3) + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + babel-plugin-syntax-hermes-parser: 0.33.3 + base64-js: 1.5.1 + commander: 12.1.0 + flow-enums-runtime: 0.0.6 + hermes-compiler: 250829098.0.10 + invariant: 2.2.4 + memoize-one: 5.2.1 + metro-runtime: 0.84.4 + metro-source-map: 0.84.4 + nullthrows: 1.1.1 + pretty-format: 29.7.0 + promise: 8.3.0 + react: 19.2.3 + react-devtools-core: 6.1.5 + react-refresh: 0.14.2 + regenerator-runtime: 0.13.11 + scheduler: 0.27.0 + semver: 7.7.4 + stacktrace-parser: 0.1.11 + tinyglobby: 0.2.15 + whatwg-fetch: 3.6.20 + ws: 7.5.10 + yargs: 17.7.2 + optionalDependencies: + '@react-native/jest-preset': 0.85.2(@babel/core@7.29.0)(react@19.2.3) + '@types/react': 19.1.8 + transitivePeerDependencies: + - '@babel/core' + - '@react-native-community/cli' + - '@react-native/metro-config' + - bufferutil + - supports-color + - utf-8-validate + react-reconciler@0.32.0(react@19.2.3): dependencies: react: 19.2.3 @@ -48296,7 +51670,7 @@ snapshots: adjust-sourcemap-loader: 4.0.0 convert-source-map: 1.9.0 loader-utils: 2.0.4 - postcss: 8.5.6 + postcss: 8.5.15 source-map: 0.6.1 resolve-workspace-root@2.0.1: {} @@ -48370,7 +51744,7 @@ snapshots: retext-stringify: 4.0.0 unified: 11.0.5 - retry-axios@2.6.0(axios@1.15.2): + retry-axios@2.6.0(axios@1.15.2(debug@4.4.3)): dependencies: axios: 1.15.2(debug@4.4.3) @@ -48468,6 +51842,36 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.3 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.3 + rolldown@1.0.0-rc.4: + dependencies: + '@oxc-project/types': 0.113.0 + '@rolldown/pluginutils': 1.0.0-rc.4 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-rc.4 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.4 + '@rolldown/binding-darwin-x64': 1.0.0-rc.4 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.4 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.4 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.4 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.4 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.4 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.4 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.4 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.4 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.4 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.4 + + rollup-plugin-dts@6.4.1(rollup@4.60.2)(typescript@5.9.3): + dependencies: + '@jridgewell/remapping': 2.3.5 + '@jridgewell/sourcemap-codec': 1.5.5 + convert-source-map: 2.0.0 + magic-string: 0.30.21 + rollup: 4.60.2 + typescript: 5.9.3 + optionalDependencies: + '@babel/code-frame': 7.29.7 + rollup-plugin-visualizer@6.0.11(rollup@4.60.2): dependencies: open: 8.4.2 @@ -48486,6 +51890,38 @@ snapshots: optionalDependencies: rollup: 4.60.2 + rollup@4.59.0: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.59.0 + '@rollup/rollup-android-arm64': 4.59.0 + '@rollup/rollup-darwin-arm64': 4.59.0 + '@rollup/rollup-darwin-x64': 4.59.0 + '@rollup/rollup-freebsd-arm64': 4.59.0 + '@rollup/rollup-freebsd-x64': 4.59.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 + '@rollup/rollup-linux-arm-musleabihf': 4.59.0 + '@rollup/rollup-linux-arm64-gnu': 4.59.0 + '@rollup/rollup-linux-arm64-musl': 4.59.0 + '@rollup/rollup-linux-loong64-gnu': 4.59.0 + '@rollup/rollup-linux-loong64-musl': 4.59.0 + '@rollup/rollup-linux-ppc64-gnu': 4.59.0 + '@rollup/rollup-linux-ppc64-musl': 4.59.0 + '@rollup/rollup-linux-riscv64-gnu': 4.59.0 + '@rollup/rollup-linux-riscv64-musl': 4.59.0 + '@rollup/rollup-linux-s390x-gnu': 4.59.0 + '@rollup/rollup-linux-x64-gnu': 4.59.0 + '@rollup/rollup-linux-x64-musl': 4.59.0 + '@rollup/rollup-openbsd-x64': 4.59.0 + '@rollup/rollup-openharmony-arm64': 4.59.0 + '@rollup/rollup-win32-arm64-msvc': 4.59.0 + '@rollup/rollup-win32-ia32-msvc': 4.59.0 + '@rollup/rollup-win32-x64-gnu': 4.59.0 + '@rollup/rollup-win32-x64-msvc': 4.59.0 + fsevents: 2.3.3 + optional: true + rollup@4.60.2: dependencies: '@types/estree': 1.0.8 @@ -48598,11 +52034,19 @@ snapshots: sass: 1.85.0 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) - sass-loader@16.0.6(sass@1.97.2)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): + sass-loader@16.0.5(sass@1.90.0)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): dependencies: neo-async: 2.6.2 optionalDependencies: - sass: 1.97.2 + sass: 1.90.0 + webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + optional: true + + sass-loader@16.0.6(sass@1.97.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): + dependencies: + neo-async: 2.6.2 + optionalDependencies: + sass: 1.97.3 webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) sass@1.85.0: @@ -48611,17 +52055,24 @@ snapshots: immutable: 5.1.5 source-map-js: 1.2.1 optionalDependencies: - '@parcel/watcher': 2.5.1 + '@parcel/watcher': 2.5.6 - sass@1.97.2: + sass@1.90.0: dependencies: chokidar: 4.0.3 immutable: 5.1.5 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.6 + optional: true - sax@1.4.4: {} + sass@1.97.3: + dependencies: + chokidar: 4.0.3 + immutable: 5.1.5 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.6 sax@1.6.0: {} @@ -48838,7 +52289,7 @@ snapshots: dependencies: color: 4.2.3 detect-libc: 2.1.2 - semver: 7.7.4 + semver: 7.8.1 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -48864,7 +52315,7 @@ snapshots: dependencies: '@img/colour': 1.0.0 detect-libc: 2.1.2 - semver: 7.8.1 + semver: 7.7.4 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.5 '@img/sharp-darwin-x64': 0.34.5 @@ -48974,6 +52425,17 @@ snapshots: transitivePeerDependencies: - supports-color + sigstore@4.1.1: + dependencies: + '@sigstore/bundle': 4.0.0 + '@sigstore/core': 3.2.1 + '@sigstore/protobuf-specs': 0.5.1 + '@sigstore/sign': 4.1.1 + '@sigstore/tuf': 4.0.2 + '@sigstore/verify': 3.1.1 + transitivePeerDependencies: + - supports-color + simple-concat@1.0.1: {} simple-eval@1.0.1: @@ -49008,7 +52470,7 @@ snapshots: simple-update-notifier@2.0.0: dependencies: - semver: 7.7.3 + semver: 7.8.1 sirv@3.0.2: dependencies: @@ -49090,12 +52552,19 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 + slice-ansi@8.0.0: + dependencies: + ansi-styles: 6.2.3 + is-fullwidth-code-point: 5.1.0 + slugify@1.6.9: {} smart-buffer@4.2.0: {} smob@1.6.2: {} + smol-toml@1.6.1: {} + snake-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -49198,6 +52667,11 @@ snapshots: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.22 + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.22 + spdx-license-ids@3.0.22: {} spdy-transport@3.0.0: @@ -49235,6 +52709,10 @@ snapshots: dependencies: minipass: 7.1.2 + ssri@13.0.1: + dependencies: + minipass: 7.1.2 + stable-hash@0.0.5: {} stack-trace@0.0.10: {} @@ -49267,6 +52745,11 @@ snapshots: std-env@4.1.0: {} + stdin-discarder@0.2.2: + optional: true + + stdin-discarder@0.3.2: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -49430,7 +52913,12 @@ snapshots: string-width@7.2.0: dependencies: emoji-regex: 10.6.0 - get-east-asian-width: 1.4.0 + get-east-asian-width: 1.6.0 + strip-ansi: 7.1.2 + + string-width@8.2.1: + dependencies: + get-east-asian-width: 1.6.0 strip-ansi: 7.1.2 string.prototype.includes@2.0.1: @@ -49566,12 +53054,12 @@ snapshots: dependencies: inline-style-parser: 0.2.7 - styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.3): + styled-jsx@5.1.6(@babel/core@7.29.0)(react@19.2.3): dependencies: client-only: 0.0.1 react: 19.2.3 optionalDependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.29.0 styled-jsx@5.1.7(@babel/core@7.28.5)(react@19.2.3): dependencies: @@ -49580,10 +53068,10 @@ snapshots: optionalDependencies: '@babel/core': 7.28.5 - stylehacks@7.0.11(postcss@8.5.6): + stylehacks@7.0.11(postcss@8.5.15): dependencies: browserslist: 4.28.2 - postcss: 8.5.6 + postcss: 8.5.15 postcss-selector-parser: 7.1.1 stylis@4.2.0: {} @@ -49597,7 +53085,7 @@ snapshots: lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.7 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 ts-interface-checker: 0.1.13 superagent@10.3.0: @@ -49715,15 +53203,15 @@ snapshots: tailwind-merge@3.5.0: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3)): + tailwindcss-animate@1.0.7(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)): dependencies: - tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.8.3) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.9.0) tailwindcss-animate@1.0.7(tailwindcss@4.1.18): dependencies: tailwindcss: 4.1.18 - tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.3): + tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -49742,7 +53230,7 @@ snapshots: postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.3) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.9.0) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 resolve: 1.22.11 @@ -49767,11 +53255,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.6 - postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.9.3)) - postcss-nested: 6.2.0(postcss@8.5.6) + postcss: 8.5.15 + postcss-import: 15.1.0(postcss@8.5.15) + postcss-js: 4.1.0(postcss@8.5.15) + postcss-load-config: 4.0.2(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.9.3)) + postcss-nested: 6.2.0(postcss@8.5.15) postcss-selector-parser: 6.1.2 resolve: 1.22.11 sucrase: 3.35.1 @@ -49837,6 +53325,18 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 + terser-webpack-plugin@5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + serialize-javascript: 7.0.5 + terser: 5.44.1 + webpack: 5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3) + optionalDependencies: + '@swc/core': 1.15.8(@swc/helpers@0.5.18) + esbuild: 0.25.4 + terser-webpack-plugin@5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -49849,7 +53349,7 @@ snapshots: '@swc/core': 1.15.8(@swc/helpers@0.5.18) esbuild: 0.27.3 - terser-webpack-plugin@5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)): + terser-webpack-plugin@5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 @@ -49862,11 +53362,19 @@ snapshots: esbuild: 0.27.3 terser@5.39.0: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + terser@5.43.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.16.0 commander: 2.20.3 source-map-support: 0.5.21 + optional: true terser@5.44.1: dependencies: @@ -49994,6 +53502,8 @@ snapshots: tmp@0.2.5: {} + tmp@0.2.6: {} + tmpl@1.0.5: {} to-buffer@1.2.2: @@ -50135,27 +53645,6 @@ snapshots: optionalDependencies: '@swc/core': 1.15.8(@swc/helpers@0.5.18) - ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.8.2): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.12 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.19.11 - acorn: 8.15.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 9.0.0 - make-error: 1.3.6 - typescript: 5.8.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.15.8(@swc/helpers@0.5.18) - optional: true - ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@22.19.11)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -50198,27 +53687,6 @@ snapshots: '@swc/core': 1.15.8(@swc/helpers@0.5.18) optional: true - ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.8.2): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.12 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 25.6.0 - acorn: 8.15.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 9.0.0 - make-error: 1.3.6 - typescript: 5.8.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - '@swc/core': 1.15.8(@swc/helpers@0.5.18) - optional: true - ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@25.6.0)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -50396,6 +53864,14 @@ snapshots: transitivePeerDependencies: - supports-color + tuf-js@4.1.0: + dependencies: + '@tufjs/models': 4.1.0 + debug: 4.4.3(supports-color@5.5.0) + make-fetch-happen: 15.0.6 + transitivePeerDependencies: + - supports-color + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 @@ -50462,12 +53938,12 @@ snapshots: type-graphql@2.0.0-rc.1(class-validator@0.14.3)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0): dependencies: '@graphql-yoga/subscription': 5.0.5 - '@types/node': 20.19.27 + '@types/node': 22.19.11 '@types/semver': 7.7.1 graphql: 16.12.0 graphql-query-complexity: 0.12.0(graphql@16.12.0) graphql-scalars: 1.25.0(graphql@16.12.0) - semver: 7.8.1 + semver: 7.7.3 tslib: 2.8.1 optionalDependencies: class-validator: 0.14.3 @@ -50607,6 +54083,8 @@ snapshots: undici-types@7.19.2: {} + undici@6.26.0: {} + undici@7.24.4: {} undici@7.25.0: @@ -50672,7 +54150,7 @@ snapshots: pkg-types: 2.3.0 scule: 1.3.0 strip-literal: 3.1.0 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 unplugin: 2.3.11 unplugin-utils: 0.3.1 @@ -50829,7 +54307,7 @@ snapshots: unplugin-vue-router@0.12.0(vue-router@4.6.4(vue@3.5.34(typescript@5.8.2)))(vue@3.5.34(typescript@5.8.2)): dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@vue-macros/common': 1.16.1(vue@3.5.34(typescript@5.8.2)) ast-walker-scope: 0.6.2 chokidar: 4.0.3 @@ -51038,7 +54516,7 @@ snapshots: uvu@0.5.6: dependencies: dequal: 2.0.3 - diff: 9.0.0 + diff: 7.0.0 kleur: 4.1.5 sade: 1.8.1 @@ -51075,6 +54553,8 @@ snapshots: validate-npm-package-name@6.0.2: {} + validate-npm-package-name@7.0.2: {} + validator@13.15.26: {} vary@1.1.2: {} @@ -51137,23 +54617,23 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-dev-rpc@1.1.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + vite-dev-rpc@1.1.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: birpc: 2.9.0 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-hot-client: 2.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-hot-client: 2.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) - vite-hot-client@2.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + vite-hot-client@2.2.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: - vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) - vite-node@3.2.4(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite-node@3.2.4(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - '@types/node' - jiti @@ -51168,13 +54648,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite-node@3.2.4(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - '@types/node' - jiti @@ -51189,13 +54669,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite-node@3.2.4(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - '@types/node' - jiti @@ -51210,13 +54690,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite-node@3.2.4(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - '@types/node' - jiti @@ -51231,13 +54711,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite-node@3.2.4(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - '@types/node' - jiti @@ -51252,17 +54732,17 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.9.3(eslint@9.39.2(jiti@2.6.1))(optionator@0.9.4)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue-tsc@2.2.12(typescript@5.8.2)): + vite-plugin-checker@0.9.3(eslint@9.39.2(jiti@2.6.1))(optionator@0.9.4)(typescript@5.8.2)(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue-tsc@2.2.12(typescript@5.8.2)): dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 chokidar: 4.0.3 npm-run-path: 6.0.0 picocolors: 1.1.1 picomatch: 4.0.4 strip-ansi: 7.1.2 tiny-invariant: 1.3.3 - tinyglobby: 0.2.15 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + tinyglobby: 0.2.16 + vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) vscode-uri: 3.1.0 optionalDependencies: eslint: 9.39.2(jiti@2.6.1) @@ -51270,7 +54750,7 @@ snapshots: typescript: 5.8.2 vue-tsc: 2.2.12(typescript@5.8.2) - vite-plugin-inspect@11.3.3(@nuxt/kit@3.21.6(magicast@0.3.5))(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + vite-plugin-inspect@11.3.3(@nuxt/kit@3.21.6(magicast@0.3.5))(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: ansis: 4.2.0 debug: 4.4.3(supports-color@5.5.0) @@ -51280,35 +54760,35 @@ snapshots: perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-dev-rpc: 1.1.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-dev-rpc: 1.1.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) optionalDependencies: '@nuxt/kit': 3.21.6(magicast@0.3.5) transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@1.4.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vue@3.5.34(typescript@5.8.2)): + vite-plugin-vue-tracer@1.4.0(vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0))(vue@3.5.34(typescript@5.8.2)): dependencies: estree-walker: 3.0.3 exsolve: 1.0.8 magic-string: 0.30.21 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) vue: 3.5.34(typescript@5.8.2) - vite-tsconfig-paths@4.3.2(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + vite-tsconfig-paths@4.3.2(typescript@5.7.3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: debug: 4.4.3(supports-color@5.5.0) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.7.3) optionalDependencies: - vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color - typescript - vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.4) @@ -51322,12 +54802,12 @@ snapshots: jiti: 2.7.0 less: 4.5.1 lightningcss: 1.32.0 - sass: 1.97.2 + sass: 1.97.3 terser: 5.44.1 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 - vite@7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.4) @@ -51341,12 +54821,12 @@ snapshots: jiti: 2.7.0 less: 4.5.1 lightningcss: 1.32.0 - sass: 1.97.2 + sass: 1.97.3 terser: 5.44.1 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 - vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@22.19.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.4) @@ -51360,12 +54840,12 @@ snapshots: jiti: 2.6.1 less: 4.5.1 lightningcss: 1.32.0 - sass: 1.97.2 + sass: 1.97.3 terser: 5.44.1 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 - vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.4.0)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.43.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.4) @@ -51377,15 +54857,15 @@ snapshots: '@types/node': 22.19.11 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.2.2 + less: 4.4.0 lightningcss: 1.32.0 - sass: 1.85.0 - terser: 5.39.0 + sass: 1.90.0 + terser: 5.43.1 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 optional: true - vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.90.0)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.4) @@ -51399,13 +54879,13 @@ snapshots: jiti: 2.7.0 less: 4.5.1 lightningcss: 1.32.0 - sass: 1.85.0 + sass: 1.90.0 terser: 5.44.1 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 optional: true - vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.4) @@ -51419,12 +54899,12 @@ snapshots: jiti: 2.7.0 less: 4.5.1 lightningcss: 1.32.0 - sass: 1.97.2 + sass: 1.97.3 terser: 5.44.1 tsx: 4.21.0 yaml: 2.8.3 - vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.4) @@ -51433,17 +54913,17 @@ snapshots: rollup: 4.60.2 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.19.3 + '@types/node': 22.19.11 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.2.2 + less: 4.5.1 lightningcss: 1.32.0 - sass: 1.85.0 - terser: 5.39.0 + sass: 1.97.3 + terser: 5.44.1 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 - vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.4) @@ -51455,14 +54935,14 @@ snapshots: '@types/node': 22.19.3 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.5.1 + less: 4.2.2 lightningcss: 1.32.0 - sass: 1.97.2 - terser: 5.44.1 + sass: 1.85.0 + terser: 5.39.0 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 - vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.2.2)(lightningcss@1.32.0)(sass@1.85.0)(terser@5.39.0)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@22.19.3)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.4) @@ -51471,17 +54951,18 @@ snapshots: rollup: 4.60.2 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 25.6.0 + '@types/node': 22.19.3 fsevents: 2.3.3 jiti: 2.7.0 - less: 4.2.2 + less: 4.5.1 lightningcss: 1.32.0 - sass: 1.85.0 - terser: 5.39.0 + sass: 1.97.3 + terser: 5.44.1 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 + optional: true - vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.4) @@ -51495,16 +54976,16 @@ snapshots: jiti: 2.7.0 less: 4.5.1 lightningcss: 1.32.0 - sass: 1.97.2 + sass: 1.97.3 terser: 5.44.1 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@18.19.130)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@18.19.130)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -51522,8 +55003,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-node: 3.2.4(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-node: 3.2.4(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -51544,11 +55025,11 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.27)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.27)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -51566,8 +55047,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-node: 3.2.4(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-node: 3.2.4(@types/node@20.19.27)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -51588,11 +55069,11 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@24.1.3)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@24.1.3)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -51610,8 +55091,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-node: 3.2.4(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-node: 3.2.4(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -51632,11 +55113,11 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.11)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -51654,8 +55135,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-node: 3.2.4(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-node: 3.2.4(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -51676,11 +55157,11 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@26.1.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@26.1.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -51698,8 +55179,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-node: 3.2.4(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-node: 3.2.4(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -51720,11 +55201,11 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@25.6.0)(@vitest/ui@3.2.4)(jiti@2.7.0)(jsdom@29.1.0(@noble/hashes@1.8.0))(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 3.2.4(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -51742,8 +55223,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - vite-node: 3.2.4(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + vite-node: 3.2.4(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -51764,10 +55245,10 @@ snapshots: - tsx - yaml - vitest@4.1.3(@opentelemetry/api@1.9.0)(@types/node@18.19.130)(@vitest/coverage-v8@3.2.4)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.3(@opentelemetry/api@1.9.0)(@types/node@18.19.130)(@vitest/coverage-v8@3.2.4)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.3 - '@vitest/mocker': 4.1.3(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.1.3(vite@7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.3 '@vitest/runner': 4.1.3 '@vitest/snapshot': 4.1.3 @@ -51784,7 +55265,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@18.19.130)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 @@ -51794,10 +55275,10 @@ snapshots: transitivePeerDependencies: - msw - vitest@4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@26.1.0)(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@26.1.0)(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.5 - '@vitest/mocker': 4.1.5(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.1.5(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.5 '@vitest/runner': 4.1.5 '@vitest/snapshot': 4.1.5 @@ -51814,7 +55295,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 @@ -51824,10 +55305,40 @@ snapshots: transitivePeerDependencies: - msw - vitest@4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + dependencies: + '@vitest/expect': 4.1.5 + '@vitest/mocker': 4.1.5(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.5 + '@vitest/runner': 4.1.5 + '@vitest/snapshot': 4.1.5 + '@vitest/spy': 4.1.5 + '@vitest/utils': 4.1.5 + es-module-lexer: 2.0.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.4 + std-env: 4.0.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.1.0 + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + why-is-node-running: 2.3.0 + optionalDependencies: + '@opentelemetry/api': 1.9.0 + '@types/node': 22.19.11 + '@vitest/coverage-v8': 4.1.5(vitest@4.1.5) + jsdom: 29.1.0(@noble/hashes@1.8.0) + transitivePeerDependencies: + - msw + + vitest@4.1.5(@opentelemetry/api@1.9.0)(@types/node@22.19.11)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.5 - '@vitest/mocker': 4.1.5(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.1.5(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.5 '@vitest/runner': 4.1.5 '@vitest/snapshot': 4.1.5 @@ -51844,7 +55355,7 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 7.3.2(@types/node@22.19.11)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 @@ -51854,6 +55365,36 @@ snapshots: transitivePeerDependencies: - msw + vitest@4.1.5(@opentelemetry/api@1.9.0)(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(jsdom@29.1.0(@noble/hashes@1.8.0))(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)): + dependencies: + '@vitest/expect': 4.1.5 + '@vitest/mocker': 4.1.5(vite@7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.5 + '@vitest/runner': 4.1.5 + '@vitest/snapshot': 4.1.5 + '@vitest/spy': 4.1.5 + '@vitest/utils': 4.1.5 + es-module-lexer: 2.0.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.4 + std-env: 4.0.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.1.0 + vite: 7.3.2(@types/node@25.6.0)(jiti@2.7.0)(less@4.5.1)(lightningcss@1.32.0)(sass@1.97.3)(terser@5.44.1)(tsx@4.21.0)(yaml@2.9.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@opentelemetry/api': 1.9.0 + '@types/node': 25.6.0 + '@vitest/coverage-v8': 4.1.5(vitest@4.1.5) + jsdom: 29.1.0(@noble/hashes@1.8.0) + transitivePeerDependencies: + - msw + vlq@1.0.1: {} vm-browserify@1.1.2: {} @@ -51902,8 +55443,8 @@ snapshots: vue-docgen-api@4.79.2(vue@3.5.34(typescript@5.8.2)): dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@vue/compiler-dom': 3.5.34 '@vue/compiler-sfc': 3.5.34 ast-types: 0.16.1 @@ -51991,10 +55532,11 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - watchpack@2.5.0: + watchpack@2.4.4: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 + optional: true watchpack@2.5.1: dependencies: @@ -52127,8 +55669,8 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) + acorn: 8.16.0 + acorn-import-phases: 1.0.4(acorn@8.16.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.4 @@ -52144,7 +55686,39 @@ snapshots: schema-utils: 4.3.3 tapable: 2.3.0 terser-webpack-plugin: 5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack@5.104.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) - watchpack: 2.5.0 + watchpack: 2.5.1 + webpack-sources: 3.3.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.15.0 + acorn-import-phases: 1.0.4(acorn@8.15.0) + browserslist: 4.28.2 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.19.0 + es-module-lexer: 2.0.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.1 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 4.3.3 + tapable: 2.3.0 + terser-webpack-plugin: 5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) + watchpack: 2.5.1 webpack-sources: 3.3.3 transitivePeerDependencies: - '@swc/core' @@ -52159,8 +55733,8 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) + acorn: 8.15.0 + acorn-import-phases: 1.0.4(acorn@8.15.0) browserslist: 4.28.2 chrome-trace-event: 1.0.4 enhanced-resolve: 5.19.0 @@ -52175,7 +55749,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.25.4)) + terser-webpack-plugin: 5.3.16(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack@5.105.0(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)) watchpack: 2.5.1 webpack-sources: 3.3.3 transitivePeerDependencies: @@ -52274,6 +55848,10 @@ snapshots: dependencies: isexe: 3.1.1 + which@6.0.1: + dependencies: + isexe: 4.0.0 + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 @@ -52313,8 +55891,8 @@ snapshots: with@7.0.2: dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 assert-never: 1.4.0 babel-walk: 3.0.0-canary-5 @@ -52435,7 +56013,7 @@ snapshots: xml2js@0.6.2: dependencies: - sax: 1.4.4 + sax: 1.6.0 xmlbuilder: 11.0.1 xmlbuilder@11.0.1: {} @@ -52462,6 +56040,8 @@ snapshots: yaml@2.8.3: {} + yaml@2.9.0: {} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 @@ -52584,7 +56164,7 @@ snapshots: zod@3.25.76: {} - zone.js@0.14.10: {} + zone.js@0.15.1: {} zustand@4.5.7(@types/react@19.1.8)(immer@11.1.4)(react@19.2.3): dependencies: From 7676828b884b7a25681fff44ea934df4aca10ead Mon Sep 17 00:00:00 2001 From: Murat Sari Date: Mon, 1 Jun 2026 23:14:01 +0200 Subject: [PATCH 2/7] feat: add openrouter support --- .../app/api/copilotkit/[[...slug]]/route.ts | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/examples/v2/react/demo/src/app/api/copilotkit/[[...slug]]/route.ts b/examples/v2/react/demo/src/app/api/copilotkit/[[...slug]]/route.ts index 2a41f4f1ceb..4061d0cdfdf 100644 --- a/examples/v2/react/demo/src/app/api/copilotkit/[[...slug]]/route.ts +++ b/examples/v2/react/demo/src/app/api/copilotkit/[[...slug]]/route.ts @@ -8,8 +8,15 @@ import { TranscriptionServiceOpenAI } from "@copilotkit/voice"; import { handle } from "hono/vercel"; import OpenAI from "openai"; +const openRouterApiKey = process.env.OPENROUTER_API_KEY?.trim(); +const openAIApiKey = process.env.OPENAI_API_KEY?.trim(); + const determineModel = () => { - if (process.env.OPENAI_API_KEY?.trim()) { + if (openRouterApiKey) { + process.env.OPENAI_BASE_URL ??= "https://openrouter.ai/api/v1"; + return `openai/${process.env.OPENROUTER_MODEL?.trim() || "openai/gpt-4o-mini"}`; + } + if (openAIApiKey) { return "openai/gpt-5.2"; } if (process.env.ANTHROPIC_API_KEY?.trim()) { @@ -24,11 +31,15 @@ const determineModel = () => { const builtInAgent = new BuiltInAgent({ model: determineModel(), + ...(openRouterApiKey ? { apiKey: openRouterApiKey } : {}), prompt: "You are a helpful AI assistant. Use reasoning to answer the user's question. If you don't know the answer, say you don't know.", providerOptions: { - openai: { reasoningEffort: "high", reasoningSummary: "detailed" }, - ...(!process.env.OPENAI_API_KEY?.trim() && + ...(openAIApiKey + ? { openai: { reasoningEffort: "high", reasoningSummary: "detailed" } } + : {}), + ...(!openAIApiKey && + !openRouterApiKey && !!process.env.ANTHROPIC_API_KEY?.trim() && { anthropic: { thinking: { type: "enabled", budgetTokens: 5000 } }, }), @@ -36,9 +47,9 @@ const builtInAgent = new BuiltInAgent({ }); // Set up transcription service if OpenAI API key is available -const transcriptionService = process.env.OPENAI_API_KEY?.trim() +const transcriptionService = openAIApiKey ? new TranscriptionServiceOpenAI({ - openai: new OpenAI({ apiKey: process.env.OPENAI_API_KEY }), + openai: new OpenAI({ apiKey: openAIApiKey }), }) : undefined; From 84fa65b78dc404f22d1787aabbbef76e8e3e99e1 Mon Sep 17 00:00:00 2001 From: Murat Sari Date: Wed, 3 Jun 2026 00:13:54 +0200 Subject: [PATCH 3/7] feat(angular): add a2ui for angular --- .gitignore | 2 + examples/v2/angular/demo-server/package.json | 11 +- examples/v2/angular/demo-server/src/index.ts | 110 +- examples/v2/angular/demo/angular.json | 5 +- examples/v2/angular/demo/package.json | 27 +- .../v2/angular/demo/src/app/app.component.ts | 89 +- .../v2/angular/demo/src/app/app.config.ts | 22 +- .../v2/angular/demo/src/app/app.routes.ts | 57 + .../demo-web-inspector.component.ts | 37 + .../wildcard-tool-render.component.ts | 308 +- .../routes/a2ui/a2ui-demo-input.component.ts | 39 + .../a2ui/a2ui-demo-sandbox-functions.ts | 36 + .../app/routes/a2ui/a2ui-demo.component.ts | 275 + .../custom-chat-input.component.ts | 13 +- .../custom-input-chat.component.ts | 2 +- .../routes/default/default-chat.component.ts | 2 +- .../headless/headless-chat.component.ts | 2 +- .../ukg-port/co-pilot-port.component.ts | 5 +- examples/v2/angular/demo/src/styles.css | 9 + examples/v2/angular/demo/tsconfig.json | 26 +- .../v2/angular/storybook/.storybook/main.ts | 6 +- examples/v2/angular/storybook/angular.json | 14 +- .../components/custom-input.component.ts | 2 +- .../custom-send-button.component.ts | 2 +- examples/v2/angular/storybook/package.json | 37 +- .../CopilotChatAssistantMessage.stories.ts | 24 +- .../stories/CopilotChatInput.stories.ts | 78 +- .../stories/CopilotChatMessageView.stories.ts | 20 +- .../stories/CopilotChatUserMessage.stories.ts | 51 +- .../CopilotChatView-Actions.stories.ts | 6 +- .../stories/CopilotChatView-CSS.stories.ts | 4 +- .../CopilotChatView-Components.stories.ts | 14 +- .../CopilotChatView-Templates.stories.ts | 4 +- .../stories/CopilotChatView.stories.ts | 18 +- examples/v2/angular/storybook/tsconfig.json | 16 +- nx.json | 85 +- packages/a2ui-renderer/package.json | 20 + .../__tests__/web-components.test.ts | 335 + .../src/web-components/adapter.ts | 53 + .../src/web-components/bound-component.ts | 79 + .../catalog/basic/audio-player.ts | 28 + .../web-components/catalog/basic/button.ts | 36 + .../src/web-components/catalog/basic/card.ts | 21 + .../web-components/catalog/basic/check-box.ts | 54 + .../catalog/basic/choice-picker.ts | 120 + .../web-components/catalog/basic/column.ts | 25 + .../catalog/basic/components.ts | 59 + .../catalog/basic/date-time-input.ts | 53 + .../web-components/catalog/basic/divider.ts | 17 + .../src/web-components/catalog/basic/icon.ts | 27 + .../src/web-components/catalog/basic/ids.ts | 6 + .../src/web-components/catalog/basic/image.ts | 41 + .../src/web-components/catalog/basic/index.ts | 23 + .../src/web-components/catalog/basic/list.ts | 26 + .../src/web-components/catalog/basic/modal.ts | 83 + .../src/web-components/catalog/basic/row.ts | 25 + .../web-components/catalog/basic/slider.ts | 44 + .../src/web-components/catalog/basic/tabs.ts | 65 + .../catalog/basic/text-field.ts | 73 + .../src/web-components/catalog/basic/text.ts | 33 + .../src/web-components/catalog/basic/utils.ts | 55 + .../src/web-components/catalog/basic/video.ts | 20 + .../src/web-components/catalog/children.ts | 18 + .../web-components/catalog/minimal/button.ts | 37 + .../web-components/catalog/minimal/column.ts | 45 + .../catalog/minimal/components.ts | 20 + .../web-components/catalog/minimal/index.ts | 29 + .../src/web-components/catalog/minimal/row.ts | 44 + .../catalog/minimal/text-field.ts | 80 + .../web-components/catalog/minimal/text.ts | 35 + .../web-components/catalog/minimal/utils.ts | 33 + .../src/web-components/create-catalog.ts | 260 + .../src/web-components/define.ts | 29 + .../a2ui-renderer/src/web-components/index.ts | 62 + .../a2ui-renderer/src/web-components/node.ts | 119 + .../src/web-components/surface.ts | 410 ++ .../a2ui-renderer/src/web-components/types.ts | 84 + packages/a2ui-renderer/tsdown.config.ts | 16 +- packages/angular/ng-package.json | 3 + packages/angular/package.json | 9 +- packages/angular/src/lib/activity-renderer.ts | 28 + packages/angular/src/lib/agent.ts | 11 +- packages/angular/src/lib/chat-config.ts | 2 + packages/angular/src/lib/chat-state.ts | 23 +- .../__tests__/a2ui-activity-renderer.spec.ts | 108 + .../a2ui/__tests__/a2ui-tool-renderer.spec.ts | 268 + .../components/a2ui/a2ui-activity-renderer.ts | 120 + .../lib/components/a2ui/a2ui-surface-host.ts | 90 + .../components/a2ui/a2ui-tool-operations.ts | 115 + .../lib/components/a2ui/a2ui-tool-renderer.ts | 509 ++ .../lib/components/a2ui/a2ui-tool-types.ts | 11 + .../copilot-chat-input.component.spec.ts | 36 + ...opilot-chat-message-view.component.spec.ts | 208 +- ...opilot-chat-user-message.component.spec.ts | 33 + .../copilot-chat-view.component.spec.ts | 119 + .../dummy-activity-renderer.component.ts | 7 + .../fallback-activity-renderer.component.ts | 7 + .../chat/copilot-chat-agent-utils.ts | 5 + .../copilot-chat-assistant-message-buttons.ts | 24 +- .../copilot-chat-assistant-message-toolbar.ts | 2 +- .../chat/copilot-chat-assistant-message.ts | 10 +- .../chat/copilot-chat-attachment-queue.ts | 143 + .../chat/copilot-chat-attachment-renderer.ts | 105 + .../chat/copilot-chat-audio-recorder.ts | 4 +- .../components/chat/copilot-chat-buttons.ts | 58 +- .../chat/copilot-chat-input-defaults.ts | 2 +- .../lib/components/chat/copilot-chat-input.ts | 345 +- .../chat/copilot-chat-message-view-cursor.ts | 4 +- .../chat/copilot-chat-message-view.ts | 94 +- .../copilot-chat-reasoning-message-utils.ts | 9 + .../chat/copilot-chat-reasoning-message.ts | 194 + .../chat/copilot-chat-suggestion-pill.ts | 73 + .../chat/copilot-chat-suggestion-view.ts | 65 + .../components/chat/copilot-chat-textarea.ts | 10 +- .../chat/copilot-chat-tool-calls-view.ts | 2 + .../components/chat/copilot-chat-toolbar.ts | 2 +- .../chat/copilot-chat-tools-menu.ts | 222 +- ...lot-chat-user-message-branch-navigation.ts | 20 +- .../chat/copilot-chat-user-message-buttons.ts | 20 +- .../copilot-chat-user-message-renderer.ts | 2 +- .../chat/copilot-chat-user-message-toolbar.ts | 2 +- .../chat/copilot-chat-user-message-utils.ts | 61 + .../chat/copilot-chat-user-message.ts | 62 +- .../chat/copilot-chat-view-disclaimer.ts | 2 +- .../chat/copilot-chat-view-feather.ts | 8 +- .../chat/copilot-chat-view-input-container.ts | 40 +- ...pilot-chat-view-scroll-to-bottom-button.ts | 16 +- .../chat/copilot-chat-view-scroll-view.ts | 33 +- .../lib/components/chat/copilot-chat-view.ts | 132 +- .../src/lib/components/chat/copilot-chat.ts | 426 +- ...en-generative-ui-activity-renderer.spec.ts | 342 + .../open-generative-ui-tool-renderer.spec.ts | 55 + .../__tests__/process-partial-html.spec.ts | 41 + .../open-generative-ui-activity-renderer.ts | 591 ++ .../open-generative-ui-renderer-utils.ts | 64 + .../open-generative-ui-tool-renderer.ts | 93 + .../process-partial-html.ts | 44 + packages/angular/src/lib/config.ts | 20 + packages/angular/src/lib/copilotkit.spec.ts | 165 + packages/angular/src/lib/copilotkit.ts | 324 +- ...copilotkit-agent-context.directive.spec.ts | 8 +- .../angular/src/lib/open-generative-ui.ts | 78 + packages/angular/src/lib/render-tool-calls.ts | 48 +- .../angular/src/lib/standard-schema-zod.ts | 13 + packages/angular/src/lib/tools.ts | 16 +- packages/angular/src/public-api.ts | 24 + packages/angular/src/styles/globals.css | 342 +- packages/angular/tsconfig.json | 6 + pnpm-lock.yaml | 6193 ++++++----------- 149 files changed, 11825 insertions(+), 4746 deletions(-) create mode 100644 examples/v2/angular/demo/src/app/app.routes.ts create mode 100644 examples/v2/angular/demo/src/app/components/demo-web-inspector.component.ts create mode 100644 examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo-input.component.ts create mode 100644 examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo-sandbox-functions.ts create mode 100644 examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo.component.ts create mode 100644 examples/v2/angular/demo/src/styles.css create mode 100644 packages/a2ui-renderer/src/web-components/__tests__/web-components.test.ts create mode 100644 packages/a2ui-renderer/src/web-components/adapter.ts create mode 100644 packages/a2ui-renderer/src/web-components/bound-component.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/audio-player.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/button.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/card.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/check-box.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/choice-picker.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/column.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/components.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/date-time-input.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/divider.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/icon.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/ids.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/image.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/index.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/list.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/modal.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/row.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/slider.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/tabs.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/text-field.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/text.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/utils.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/basic/video.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/children.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/minimal/button.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/minimal/column.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/minimal/components.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/minimal/index.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/minimal/row.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/minimal/text-field.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/minimal/text.ts create mode 100644 packages/a2ui-renderer/src/web-components/catalog/minimal/utils.ts create mode 100644 packages/a2ui-renderer/src/web-components/create-catalog.ts create mode 100644 packages/a2ui-renderer/src/web-components/define.ts create mode 100644 packages/a2ui-renderer/src/web-components/index.ts create mode 100644 packages/a2ui-renderer/src/web-components/node.ts create mode 100644 packages/a2ui-renderer/src/web-components/surface.ts create mode 100644 packages/a2ui-renderer/src/web-components/types.ts create mode 100644 packages/angular/src/lib/activity-renderer.ts create mode 100644 packages/angular/src/lib/components/a2ui/__tests__/a2ui-activity-renderer.spec.ts create mode 100644 packages/angular/src/lib/components/a2ui/__tests__/a2ui-tool-renderer.spec.ts create mode 100644 packages/angular/src/lib/components/a2ui/a2ui-activity-renderer.ts create mode 100644 packages/angular/src/lib/components/a2ui/a2ui-surface-host.ts create mode 100644 packages/angular/src/lib/components/a2ui/a2ui-tool-operations.ts create mode 100644 packages/angular/src/lib/components/a2ui/a2ui-tool-renderer.ts create mode 100644 packages/angular/src/lib/components/a2ui/a2ui-tool-types.ts create mode 100644 packages/angular/src/lib/components/chat/__tests__/copilot-chat-view.component.spec.ts create mode 100644 packages/angular/src/lib/components/chat/__tests__/dummy-activity-renderer.component.ts create mode 100644 packages/angular/src/lib/components/chat/__tests__/fallback-activity-renderer.component.ts create mode 100644 packages/angular/src/lib/components/chat/copilot-chat-agent-utils.ts create mode 100644 packages/angular/src/lib/components/chat/copilot-chat-attachment-queue.ts create mode 100644 packages/angular/src/lib/components/chat/copilot-chat-attachment-renderer.ts create mode 100644 packages/angular/src/lib/components/chat/copilot-chat-reasoning-message-utils.ts create mode 100644 packages/angular/src/lib/components/chat/copilot-chat-reasoning-message.ts create mode 100644 packages/angular/src/lib/components/chat/copilot-chat-suggestion-pill.ts create mode 100644 packages/angular/src/lib/components/chat/copilot-chat-suggestion-view.ts create mode 100644 packages/angular/src/lib/components/chat/copilot-chat-user-message-utils.ts create mode 100644 packages/angular/src/lib/components/open-generative-ui/__tests__/open-generative-ui-activity-renderer.spec.ts create mode 100644 packages/angular/src/lib/components/open-generative-ui/__tests__/open-generative-ui-tool-renderer.spec.ts create mode 100644 packages/angular/src/lib/components/open-generative-ui/__tests__/process-partial-html.spec.ts create mode 100644 packages/angular/src/lib/components/open-generative-ui/open-generative-ui-activity-renderer.ts create mode 100644 packages/angular/src/lib/components/open-generative-ui/open-generative-ui-renderer-utils.ts create mode 100644 packages/angular/src/lib/components/open-generative-ui/open-generative-ui-tool-renderer.ts create mode 100644 packages/angular/src/lib/components/open-generative-ui/process-partial-html.ts create mode 100644 packages/angular/src/lib/open-generative-ui.ts create mode 100644 packages/angular/src/lib/standard-schema-zod.ts diff --git a/.gitignore b/.gitignore index beabfeb7889..e9a5fe2350c 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,8 @@ build debug-storybook.log storybook-static coverage +output/ +packages/angular/src/styles/generated.css .turbo .langgraph_api lefthook-local.yml diff --git a/examples/v2/angular/demo-server/package.json b/examples/v2/angular/demo-server/package.json index b4058d445da..ddffde714de 100644 --- a/examples/v2/angular/demo-server/package.json +++ b/examples/v2/angular/demo-server/package.json @@ -4,18 +4,17 @@ "private": true, "type": "module", "scripts": { - "dev": "nodemon --verbose --cwd ../../../../ --watch packages/core/dist/** --watch packages/shared/dist/** --watch packages/runtime/dist/** --watch packages/demo-agents/dist/** --watch examples/v2/angular/demo-server/src/** --ext mjs,js,json,ts --delay 800ms --signal SIGTERM --exec \"tsx --env-file=examples/v2/angular/demo-server/.env examples/v2/angular/demo-server/src/index.ts\"", - "start": "node --env-file=.env --loader tsx src/index.ts" + "build": "tsc -p tsconfig.json", + "dev": "tsx --env-file-if-exists ../demo/.env --env-file-if-exists .env src/index.ts", + "start": "tsx --env-file-if-exists ../demo/.env --env-file-if-exists .env src/index.ts" }, "dependencies": { - "@ag-ui/client": "0.0.51", "@ag-ui/langgraph": "^0.0.11", + "@ai-sdk/openai": "3.0.36", "@copilotkit/demo-agents": "workspace:^", "@copilotkit/runtime": "workspace:^", "@hono/node-server": "^1.13.6", - "hono": "^4.11.4", - "openai": "^4.56.1", - "rxjs": "^7.8.1" + "hono": "^4.11.4" }, "devDependencies": { "nodemon": "^3.1.7", diff --git a/examples/v2/angular/demo-server/src/index.ts b/examples/v2/angular/demo-server/src/index.ts index 0f30692d0d9..1b4149e1549 100644 --- a/examples/v2/angular/demo-server/src/index.ts +++ b/examples/v2/angular/demo-server/src/index.ts @@ -2,23 +2,94 @@ import { serve } from "@hono/node-server"; import { Hono } from "hono"; import { cors } from "hono/cors"; import { + BuiltInAgent, CopilotRuntime, createCopilotEndpoint, InMemoryAgentRunner, } from "@copilotkit/runtime/v2"; -import { - OpenAIAgent, - SlowToolCallStreamingAgent, -} from "@copilotkit/demo-agents"; +import type { BuiltInAgentClassicConfig } from "@copilotkit/runtime/v2"; +import { SlowToolCallStreamingAgent } from "@copilotkit/demo-agents"; -const runtime = new CopilotRuntime({ - agents: { - // @ts-ignore - default: new SlowToolCallStreamingAgent(), - // @ts-ignore - openai: new OpenAIAgent(), +const openRouterApiKey = process.env.OPENROUTER_API_KEY?.trim(); +const openAIApiKey = process.env.OPENAI_API_KEY?.trim(); +const DEFAULT_OPENROUTER_MODEL = "anthropic/claude-sonnet-4.6"; +const DEFAULT_OPENROUTER_MAX_OUTPUT_TOKENS = 16_384; + +function determineOpenRouterModelId(): string { + const configuredModel = process.env.OPENROUTER_MODEL?.trim(); + + if (!configuredModel) { + return DEFAULT_OPENROUTER_MODEL; + } + + if (configuredModel.includes("/")) { + return configuredModel; + } + + return `openai/${configuredModel}`; +} + +function determineMaxOutputTokens(): number | undefined { + if (!openRouterApiKey) { + return undefined; + } + + const configuredLimit = Number( + process.env.OPENROUTER_MAX_OUTPUT_TOKENS?.trim(), + ); + + if (Number.isSafeInteger(configuredLimit) && configuredLimit > 0) { + return configuredLimit; + } + + return DEFAULT_OPENROUTER_MAX_OUTPUT_TOKENS; +} + +function determineModel(): BuiltInAgentClassicConfig["model"] { + if (openRouterApiKey) { + process.env.OPENAI_BASE_URL ??= "https://openrouter.ai/api/v1"; + return `openai/${determineOpenRouterModelId()}`; + } + if (openAIApiKey) { + return "openai/gpt-5.2"; + } + if (process.env.ANTHROPIC_API_KEY?.trim()) { + return "anthropic/claude-3-7-sonnet-20250219"; + } + if (process.env.GOOGLE_API_KEY?.trim()) { + return "google/gemini-2.5-pro"; + } + return "openai/gpt-5.2"; +} + +const builtInAgent = new BuiltInAgent({ + model: determineModel(), + maxOutputTokens: determineMaxOutputTokens(), + ...(openRouterApiKey ? { apiKey: openRouterApiKey } : {}), + prompt: + "You are a helpful AI assistant. Use reasoning to answer the user's question. If you don't know the answer, say you don't know.", + providerOptions: { + ...(openAIApiKey + ? { openai: { reasoningEffort: "high", reasoningSummary: "detailed" } } + : {}), + ...(!openAIApiKey && + !openRouterApiKey && + !!process.env.ANTHROPIC_API_KEY?.trim() && { + anthropic: { thinking: { type: "enabled", budgetTokens: 5000 } }, + }), }, +}); + +const agents = { + default: builtInAgent, + "slow-tools": new SlowToolCallStreamingAgent(), +}; + +const runtime = new CopilotRuntime({ + agents, runner: new InMemoryAgentRunner(), + a2ui: {}, + openGenerativeUI: true, }); // Create a main app with CORS enabled @@ -30,7 +101,12 @@ app.use( cors({ origin: "http://localhost:4200", allowMethods: ["GET", "POST", "OPTIONS", "PUT", "DELETE"], - allowHeaders: ["Content-Type", "Authorization", "X-Requested-With"], + allowHeaders: [ + "Content-Type", + "Authorization", + "X-Requested-With", + "x-copilotcloud-public-api-key", + ], exposeHeaders: ["Content-Type"], credentials: true, maxAge: 86400, @@ -47,7 +123,17 @@ const copilotApp = createCopilotEndpoint({ app.route("/", copilotApp); const port = Number(process.env.PORT || 3001); -serve({ fetch: app.fetch, port }); +const server = serve({ fetch: app.fetch, port }); +server.on("error", (error: NodeJS.ErrnoException) => { + if (error.code === "EADDRINUSE") { + console.error( + `Port ${port} is already in use. Stop the existing process or set PORT to another value.`, + ); + process.exit(1); + } + + throw error; +}); console.log( `CopilotKit runtime listening at http://localhost:${port}/api/copilotkit`, ); diff --git a/examples/v2/angular/demo/angular.json b/examples/v2/angular/demo/angular.json index 7471fc2eeb7..0843f8a988f 100644 --- a/examples/v2/angular/demo/angular.json +++ b/examples/v2/angular/demo/angular.json @@ -15,7 +15,10 @@ "browser": "src/main.ts", "tsConfig": "tsconfig.app.json", "assets": ["src/favicon.ico", "src/assets"], - "styles": ["node_modules/@copilotkitnext/angular/dist/styles.css"], + "styles": [ + "../../../../packages/angular/src/styles/generated.css", + "src/styles.css" + ], "optimization": false } }, diff --git a/examples/v2/angular/demo/package.json b/examples/v2/angular/demo/package.json index dcd613370b0..14ce700912d 100644 --- a/examples/v2/angular/demo/package.json +++ b/examples/v2/angular/demo/package.json @@ -6,15 +6,16 @@ "scripts": { "start": "ng serve", "build": "ng build", - "dev": "nodemon --verbose --cwd ../../../../ --watch packages/angular/dist/** --watch packages/core/dist/** --watch packages/shared/dist/** --watch packages/runtime/dist/** --watch packages/angular/dist/fesm2022/copilotkit-angular.mjs --ext mjs,js,json,css --delay 800ms --signal SIGTERM --exec \"pnpm -s -C examples/v2/angular/demo run serve:clean\"", - "serve:clean": "rimraf .angular/cache || true && ng serve", + "dev": "pnpm -s run serve:clean", + "serve:clean": "rimraf .angular || true && ng serve", "clean": "rimraf dist .angular" }, "dependencies": { - "@ag-ui/client": "0.0.51", - "@ag-ui/core": "0.0.51", - "@ag-ui/encoder": "0.0.51", - "@ag-ui/proto": "0.0.51", + "@ag-ui/client": "0.0.53", + "@ag-ui/core": "0.0.53", + "@ag-ui/encoder": "0.0.53", + "@ag-ui/proto": "0.0.53", + "@a2ui/web_core": "0.9.0", "@angular/animations": "^21.2.15", "@angular/cdk": "^21.2.13", "@angular/common": "^21.2.15", @@ -23,15 +24,27 @@ "@angular/forms": "^21.2.15", "@angular/platform-browser": "^21.2.15", "@angular/platform-browser-dynamic": "^21.2.15", - "@copilotkit/angular": "link:../../../../packages/angular", + "@angular/router": "^21.2.15", + "@copilotkit/a2ui-renderer": "workspace:*", + "@copilotkit/core": "workspace:*", + "@copilotkit/shared": "workspace:*", "@copilotkit/web-inspector": "workspace:*", "@copilotkitnext/angular": "workspace:*", + "@jetbrains/websandbox": "^1.1.3", + "@tanstack/pacer": "^0.20.1", + "clsx": "^2.1.1", "compare-versions": "^6.1.1", "fast-json-patch": "^3.1.1", + "highlight.js": "^11.11.1", + "katex": "^0.16.22", "lit": "^3.3.1", "lucide": "^0.525.0", + "lucide-angular": "^0.540.0", + "marked": "^16.2.0", "partial-json": "^0.1.7", + "phoenix": "^1.8.4", "rxjs": "^7.8.1", + "tailwind-merge": "^2.6.0", "tslib": "^2.8.1", "untruncate-json": "^0.0.1", "uuid": "^11.1.0", diff --git a/examples/v2/angular/demo/src/app/app.component.ts b/examples/v2/angular/demo/src/app/app.component.ts index f6eb024984a..96b41c7261c 100644 --- a/examples/v2/angular/demo/src/app/app.component.ts +++ b/examples/v2/angular/demo/src/app/app.component.ts @@ -1,53 +1,60 @@ -import { Component } from "@angular/core"; +import { Component, inject } from "@angular/core"; +import { toSignal } from "@angular/core/rxjs-interop"; +import { + ActivatedRoute, + NavigationEnd, + Router, + RouterOutlet, +} from "@angular/router"; +import { filter, map, startWith } from "rxjs"; -import { HeadlessChatComponent } from "./routes/headless/headless-chat.component"; -import { CustomInputChatComponent } from "./routes/custom-input/custom-input-chat.component"; -import { DefaultChatComponent } from "./routes/default/default-chat.component"; -import { CoPilotPortComponent } from "./routes/ukg-port/co-pilot-port.component"; +import { DemoWebInspectorComponent } from "./components/demo-web-inspector.component"; @Component({ selector: "app-root", standalone: true, - imports: [ - HeadlessChatComponent, - CustomInputChatComponent, - DefaultChatComponent, - CoPilotPortComponent, - ], + imports: [RouterOutlet, DemoWebInspectorComponent], template: ` -
- @if (isHeadless) { - - } - @if (isCustomInput) { - - } - @if (!isHeadless && !isCustomInput && !isUkgPort) { - - } - @if (isUkgPort) { - +
+ + @if (showInspector()) { + }
`, + styles: ` + .demo-shell { + height: 100vh; + width: 100vw; + margin: 0; + padding: 0; + overflow: hidden; + display: block; + } + `, }) export class AppComponent { - isHeadless = - typeof window !== "undefined" && - window.location?.pathname.startsWith("/headless"); - isCustomInput = - typeof window !== "undefined" && - window.location?.pathname.startsWith("/custom-input"); - isUkgPort = - typeof window !== "undefined" && - window.location?.pathname.startsWith("/ukg-port"); + private readonly router = inject(Router); + private readonly route = inject(ActivatedRoute); + + /** + * The web inspector is shown on every route except those that opt out via + * `data: { inspector: false }` (currently the headless route). + */ + protected readonly showInspector = toSignal( + this.router.events.pipe( + filter((event) => event instanceof NavigationEnd), + map(() => this.inspectorEnabled()), + startWith(this.inspectorEnabled()), + ), + { initialValue: true }, + ); + + private inspectorEnabled(): boolean { + let route = this.route; + while (route.firstChild) { + route = route.firstChild; + } + return route.snapshot.data["inspector"] !== false; + } } diff --git a/examples/v2/angular/demo/src/app/app.config.ts b/examples/v2/angular/demo/src/app/app.config.ts index baefed6a654..776dc0d60cd 100644 --- a/examples/v2/angular/demo/src/app/app.config.ts +++ b/examples/v2/angular/demo/src/app/app.config.ts @@ -1,23 +1,39 @@ -import { ApplicationConfig, importProvidersFrom } from "@angular/core"; +import type { ApplicationConfig } from "@angular/core"; +import { importProvidersFrom } from "@angular/core"; import { BrowserModule } from "@angular/platform-browser"; +import { provideRouter } from "@angular/router"; import { provideCopilotKit, provideCopilotChatLabels, -} from "@copilotkit/angular"; +} from "@copilotkitnext/angular"; import { WildcardToolRenderComponent } from "./components/wildcard-tool-render.component"; +import { a2uiDemoSandboxFunctions } from "./routes/a2ui/a2ui-demo-sandbox-functions"; +import { routes } from "./app.routes"; +import { z } from "zod"; export const appConfig: ApplicationConfig = { providers: [ importProvidersFrom(BrowserModule), + provideRouter(routes), provideCopilotKit({ runtimeUrl: "http://localhost:3001/api/copilotkit", + licenseKey: "ck_pub_00000000000000000000000000000000", renderToolCalls: [ { name: "*", + args: z.record(z.string(), z.unknown()), component: WildcardToolRenderComponent, - } as any, + }, + ], + suggestionsConfig: [ + { + instructions: + "Suggest follow-up tasks based on the current page content", + available: "always", + }, ], humanInTheLoop: [], + openGenerativeUI: { sandboxFunctions: a2uiDemoSandboxFunctions }, }), provideCopilotChatLabels({ chatInputPlaceholder: "Ask me anything...", diff --git a/examples/v2/angular/demo/src/app/app.routes.ts b/examples/v2/angular/demo/src/app/app.routes.ts new file mode 100644 index 00000000000..04d968bf50a --- /dev/null +++ b/examples/v2/angular/demo/src/app/app.routes.ts @@ -0,0 +1,57 @@ +import type { Routes } from "@angular/router"; + +export const routes: Routes = [ + { + // Default landing: redirect the root to the A2UI demo. + path: "", + pathMatch: "full", + redirectTo: "a2ui-demo", + }, + { + path: "a2ui-demo", + title: "A2UI Demo", + loadComponent: () => + import("./routes/a2ui/a2ui-demo.component").then( + (m) => m.A2UIDemoComponent, + ), + }, + { + path: "headless", + title: "Headless Chat", + loadComponent: () => + import("./routes/headless/headless-chat.component").then( + (m) => m.HeadlessChatComponent, + ), + // The web inspector is hidden on the headless route. + data: { inspector: false }, + }, + { + path: "custom-input", + title: "Custom Input", + loadComponent: () => + import("./routes/custom-input/custom-input-chat.component").then( + (m) => m.CustomInputChatComponent, + ), + }, + { + path: "ukg-port", + title: "UKG Port", + loadComponent: () => + import("./routes/ukg-port/co-pilot-port.component").then( + (m) => m.CoPilotPortComponent, + ), + }, + { + path: "default", + title: "Default Chat", + loadComponent: () => + import("./routes/default/default-chat.component").then( + (m) => m.DefaultChatComponent, + ), + }, + { + // Unknown paths fall back to the default landing (A2UI demo). + path: "**", + redirectTo: "a2ui-demo", + }, +]; diff --git a/examples/v2/angular/demo/src/app/components/demo-web-inspector.component.ts b/examples/v2/angular/demo/src/app/components/demo-web-inspector.component.ts new file mode 100644 index 00000000000..ecf13537c42 --- /dev/null +++ b/examples/v2/angular/demo/src/app/components/demo-web-inspector.component.ts @@ -0,0 +1,37 @@ +import { afterNextRender, Component, DestroyRef, inject } from "@angular/core"; +import { CopilotKit } from "@copilotkitnext/angular"; +import { WEB_INSPECTOR_TAG } from "@copilotkit/web-inspector"; +import type { WebInspectorElement } from "@copilotkit/web-inspector"; + +@Component({ + selector: "angular-demo-web-inspector", + standalone: true, + template: "", +}) +export class DemoWebInspectorComponent { + readonly #copilotKit = inject(CopilotKit); + readonly #destroyRef = inject(DestroyRef); + + constructor() { + afterNextRender(() => { + const existing = + document.querySelector(WEB_INSPECTOR_TAG); + const inspector = + existing ?? + (document.createElement(WEB_INSPECTOR_TAG) as WebInspectorElement); + + inspector.core = this.#copilotKit.core; + inspector.setAttribute("auto-attach-core", "false"); + + if (!existing) { + document.body.appendChild(inspector); + } + + this.#destroyRef.onDestroy(() => { + if (inspector.isConnected) { + inspector.remove(); + } + }); + }); + } +} diff --git a/examples/v2/angular/demo/src/app/components/wildcard-tool-render.component.ts b/examples/v2/angular/demo/src/app/components/wildcard-tool-render.component.ts index 84fe1a94112..fb1be647dcb 100644 --- a/examples/v2/angular/demo/src/app/components/wildcard-tool-render.component.ts +++ b/examples/v2/angular/demo/src/app/components/wildcard-tool-render.component.ts @@ -1,35 +1,297 @@ -import { Component, input, Input } from "@angular/core"; +import { + ChangeDetectionStrategy, + Component, + computed, + effect, + input, + signal, +} from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { + Check, + ChevronDown, + LoaderCircle, + LucideAngularModule, + Wrench, +} from "lucide-angular"; -import type { AngularToolCall, ToolRenderer } from "@copilotkit/angular"; +import type { AngularToolCall, ToolRenderer } from "@copilotkitnext/angular"; + +type WildcardToolArgs = Record; + +type ToolEntry = { + key: string; + value: string; +}; + +function formatValue(value: unknown): string { + if (Array.isArray(value)) return `[${value.length} items]`; + if (typeof value === "object" && value !== null) { + return `{${Object.keys(value).length} keys}`; + } + if (typeof value === "string") return `"${value}"`; + if (value === undefined) return "undefined"; + return String(value); +} @Component({ selector: "wildcard-tool-render", standalone: true, - imports: [], + imports: [CommonModule, LucideAngularModule], + changeDetection: ChangeDetectionStrategy.OnPush, template: ` -
-
🔧 Tool Execution
-
-
{{ argsJson }}
-
-
- Output: {{ toolCall().result }} -
+
+ + + @if (hasDetails()) { +
+
+
+ @for (entry of entries(); track entry.key) { +
+ {{ entry.key }}: + {{ entry.value }} +
+ } + + @if (resultSummary(); as result) { +
+ result: + {{ result }} +
+ } +
+
+
+ }
`, + styles: [ + ` + .copilot-tool-reasoning { + margin: 6px 0; + color: var(--muted-foreground, #737373); + } + + .copilot-tool-summary { + width: 100%; + display: flex; + align-items: center; + gap: 8px; + border: 0; + background: transparent; + color: inherit; + cursor: pointer; + padding: 4px 0; + font: inherit; + font-size: 14px; + text-align: left; + transition: color 0.15s ease; + } + + .copilot-tool-summary:hover { + color: var(--foreground, #171717); + } + + .copilot-tool-summary--static { + cursor: default; + } + + .copilot-tool-summary--static:hover { + color: inherit; + } + + .copilot-tool-icon { + width: 14px; + height: 14px; + flex: 0 0 14px; + } + + .copilot-tool-icon--spin { + animation: copilot-tool-spin 1s linear infinite; + } + + .copilot-tool-icon--complete { + color: #10b981; + } + + .copilot-tool-name { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: var(--foreground, #171717); + font-family: + var(--font-code), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, + "Liberation Mono", "Courier New", monospace; + font-weight: 500; + } + + .copilot-tool-status { + flex: 0 0 auto; + font-size: 12px; + color: var(--muted-foreground, #737373); + } + + .copilot-tool-chevron { + margin-left: auto; + width: 14px; + height: 14px; + flex: 0 0 14px; + transition: transform 0.2s ease; + } + + .copilot-tool-chevron--open { + transform: rotate(180deg); + } + + .copilot-tool-details-wrap { + display: grid; + transition: grid-template-rows 0.2s ease; + } + + .copilot-tool-details-clip { + overflow: hidden; + } + + .copilot-tool-details { + margin: 6px 0 0 22px; + padding: 8px 12px; + display: grid; + gap: 4px; + border-radius: 6px; + background: var(--secondary, #f5f5f5); + } + + .copilot-tool-entry { + min-width: 0; + display: flex; + gap: 8px; + font-family: + var(--font-code), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, + "Liberation Mono", "Courier New", monospace; + font-size: 12px; + line-height: 1.4; + } + + .copilot-tool-entry-key { + flex: 0 0 auto; + color: var(--muted-foreground, #737373); + } + + .copilot-tool-entry-value { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: var(--foreground, #171717); + } + + @keyframes copilot-tool-spin { + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } + } + `, + ], }) -export class WildcardToolRenderComponent implements ToolRenderer { - readonly toolCall = input.required>(); +export class WildcardToolRenderComponent implements ToolRenderer { + readonly toolCall = input.required>(); + + protected readonly LoaderCircleIcon = LoaderCircle; + protected readonly CheckIcon = Check; + protected readonly ChevronDownIcon = ChevronDown; + protected readonly WrenchIcon = Wrench; + + private readonly userToggled = signal(false); + protected readonly open = signal(false); + + protected readonly isRunning = computed( + () => this.toolCall().status !== "complete", + ); + + protected readonly toolName = computed(() => this.toolCall().name ?? "tool"); + + protected readonly entries = computed(() => + Object.entries(this.toolCall().args ?? {}).map(([key, value]) => ({ + key, + value: formatValue(value), + })), + ); + + protected readonly resultSummary = computed(() => { + const toolCall = this.toolCall(); + if (toolCall.status !== "complete") return undefined; + if (!toolCall.result) return undefined; + return formatValue(toolCall.result); + }); + + protected readonly hasDetails = computed( + () => this.entries().length > 0 || this.resultSummary() !== undefined, + ); + + protected readonly statusLabel = computed(() => + this.isRunning() ? "Running" : "Complete", + ); + + constructor() { + effect(() => { + if (this.isRunning()) { + this.userToggled.set(false); + this.open.set(true); + return; + } + + if (!this.userToggled()) { + this.open.set(false); + } + }); + } - get argsJson() { - return JSON.stringify(this.toolCall().args, null, 2); + protected toggle(): void { + if (!this.hasDetails()) return; + this.userToggled.set(true); + this.open.update((value) => !value); } } diff --git a/examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo-input.component.ts b/examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo-input.component.ts new file mode 100644 index 00000000000..4df455fef80 --- /dev/null +++ b/examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo-input.component.ts @@ -0,0 +1,39 @@ +import { ChangeDetectionStrategy, Component, input } from "@angular/core"; +import { CopilotChatInput, injectChatState } from "@copilotkitnext/angular"; +import type { ToolsMenuItem } from "@copilotkitnext/angular"; + +@Component({ + selector: "a2ui-demo-input", + standalone: true, + imports: [CopilotChatInput], + template: ` + + `, + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class A2UIDemoInputComponent { + readonly inputClass = input(); + private readonly chatState = injectChatState(); + + readonly toolsMenu: (ToolsMenuItem | "-")[] = [ + { + label: "Say hi to CopilotKit", + action: () => { + this.chatState.changeInput( + "Hello Copilot! 👋 Could you help me with something?", + ); + }, + }, + "-", + { + label: "Open CopilotKit Docs", + action: () => { + window.open( + "https://docs.copilotkit.ai", + "_blank", + "noopener,noreferrer", + ); + }, + }, + ]; +} diff --git a/examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo-sandbox-functions.ts b/examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo-sandbox-functions.ts new file mode 100644 index 00000000000..1dcfde86be7 --- /dev/null +++ b/examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo-sandbox-functions.ts @@ -0,0 +1,36 @@ +import type { SandboxFunction } from "@copilotkitnext/angular"; +import { z } from "zod"; + +export type Theme = "light" | "dark"; + +type ThemeHandler = (mode: Theme) => void; + +let currentThemeHandler: ThemeHandler | undefined; + +const setThemeParameters = z.object({ + mode: z.enum(["light", "dark"]).describe("The theme mode to set"), +}); + +export function bindA2UIDemoThemeHandler(handler: ThemeHandler): () => void { + currentThemeHandler = handler; + return () => { + if (currentThemeHandler === handler) { + currentThemeHandler = undefined; + } + }; +} + +export const a2uiDemoSandboxFunctions: SandboxFunction[] = [ + { + name: "setTheme", + description: + "Switch the host application theme between light and dark mode. " + + "Call this when the user asks to change the theme or when generating UI with a theme toggle.", + parameters: setThemeParameters, + handler: async (args) => { + const { mode } = setThemeParameters.parse(args); + currentThemeHandler?.(mode); + return `Theme set to ${mode}`; + }, + }, +]; diff --git a/examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo.component.ts b/examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo.component.ts new file mode 100644 index 00000000000..7d9ccfeacf2 --- /dev/null +++ b/examples/v2/angular/demo/src/app/routes/a2ui/a2ui-demo.component.ts @@ -0,0 +1,275 @@ +import { + ChangeDetectionStrategy, + Component, + DestroyRef, + computed, + inject, + signal, +} from "@angular/core"; +import { + CopilotChat, + connectAgentContext, + provideCopilotChatLabels, + registerFrontendTool, +} from "@copilotkitnext/angular"; +import type { AttachmentsConfig } from "@copilotkitnext/angular"; +import { A2UIDemoInputComponent } from "./a2ui-demo-input.component"; +import { z } from "zod"; +import { bindA2UIDemoThemeHandler } from "./a2ui-demo-sandbox-functions"; +import type { Theme } from "./a2ui-demo-sandbox-functions"; + +type ThreadId = "thread---a" | "thread---b" | "thread---c"; + +const themeColors = { + light: { + bg: "oklch(1 0 0)", + text: "oklch(0.145 0 0)", + border: "oklch(0.922 0 0)", + muted: "oklch(0.97 0 0)", + }, + dark: { + bg: "oklch(0.145 0 0)", + text: "oklch(0.985 0 0)", + border: "oklch(0.269 0 0)", + muted: "oklch(0.269 0 0)", + }, +} satisfies Record>; + +const threadOptions: Array<{ id: ThreadId | undefined; label: string }> = [ + { id: undefined, label: "Stateless" }, + { id: "thread---a", label: "Thread A" }, + { id: "thread---b", label: "Thread B" }, + { id: "thread---c", label: "Thread C" }, +]; + +@Component({ + selector: "a2ui-demo", + standalone: true, + imports: [CopilotChat], + template: ` +
+
+
+ + +
+ @for (option of threadOptions; track option.label) { + + } +
+
+ +
+ @if (selectedThreadId(); as threadId) { + + } @else { + + } +
+
+
+ `, + styles: [ + ` + .a2ui-demo-root { + height: 100vh; + margin: 0; + padding: 0; + overflow: hidden; + font-family: Arial, Helvetica, sans-serif; + line-height: 1.5; + transition: + background-color 0.3s, + color 0.3s; + } + + .a2ui-demo-shell { + display: flex; + flex-direction: column; + height: 100%; + padding: 16px; + gap: 16px; + } + + .a2ui-demo-toolbar { + display: flex; + gap: 10px; + align-items: center; + } + + .a2ui-demo-theme-toggle { + display: flex; + align-items: center; + justify-content: center; + width: 36px; + height: 36px; + border-radius: 50%; + cursor: pointer; + transition: all 0.15s ease-in-out; + } + + .a2ui-demo-thread-tabs { + flex: 1; + display: flex; + gap: 10px; + justify-content: center; + } + + .a2ui-demo-thread-tab { + padding: 6px 14px; + border-radius: 20px; + font-weight: 600; + font-size: 0.85rem; + line-height: 1.5; + cursor: pointer; + transition: all 0.15s ease-in-out; + } + + .a2ui-demo-chat { + flex: 1; + min-height: 0; + } + `, + ], + providers: [ + provideCopilotChatLabels({ + chatInputPlaceholder: "Type a message...", + chatDisclaimerText: + "AI can make mistakes. Please verify important information.", + }), + ], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class A2UIDemoComponent { + private readonly destroyRef = inject(DestroyRef); + + readonly inputComponent = A2UIDemoInputComponent; + readonly threadOptions = threadOptions; + readonly attachments: AttachmentsConfig = { + enabled: true, + accept: "image/*,audio/*,video/*,.pdf,.txt,.md,application/pdf,text/*", + }; + readonly theme = signal("light"); + readonly selectedThreadId = signal(undefined); + readonly colors = computed(() => themeColors[this.theme()]); + readonly agentContext = computed(() => ({ + description: "The current Thread ID is:", + value: this.selectedThreadId() ?? "stateless", + })); + + constructor() { + connectAgentContext(this.agentContext); + this.destroyRef.onDestroy( + bindA2UIDemoThemeHandler((mode) => this.theme.set(mode)), + ); + registerFrontendTool<{ name: string }>({ + name: "sayHello", + description: "Use this tool to greet the user by name.", + parameters: z.object({ + name: z.string(), + }), + handler: async ({ name }) => { + window.alert(`Hello ${name}`); + return `Hello ${name}`; + }, + }); + } + + toggleTheme(): void { + this.theme.update((theme) => (theme === "light" ? "dark" : "light")); + } + + selectThread(threadId: ThreadId | undefined): void { + this.selectedThreadId.set(threadId); + } + + threadBorder(threadId: ThreadId | undefined): string { + return threadId === this.selectedThreadId() + ? `2px solid ${this.colors().text}` + : `1px solid ${this.colors().border}`; + } + + threadBackground(threadId: ThreadId | undefined): string { + return threadId === this.selectedThreadId() + ? this.colors().text + : this.colors().bg; + } + + threadColor(threadId: ThreadId | undefined): string { + return threadId === this.selectedThreadId() + ? this.colors().bg + : this.colors().text; + } +} diff --git a/examples/v2/angular/demo/src/app/routes/custom-input/custom-chat-input.component.ts b/examples/v2/angular/demo/src/app/routes/custom-input/custom-chat-input.component.ts index 4ea10a92c3e..e32b2a18881 100644 --- a/examples/v2/angular/demo/src/app/routes/custom-input/custom-chat-input.component.ts +++ b/examples/v2/angular/demo/src/app/routes/custom-input/custom-chat-input.component.ts @@ -6,7 +6,7 @@ import { } from "@angular/core"; import { FormsModule } from "@angular/forms"; -import { injectChatState } from "@copilotkit/angular"; +import { injectChatState } from "@copilotkitnext/angular"; @Component({ selector: "nextgen-custom-input", @@ -75,6 +75,17 @@ import { injectChatState } from "@copilotkit/angular"; opacity: 0.7; pointer-events: none; } + .sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; + } .ck-icon { width: 36px; height: 36px; diff --git a/examples/v2/angular/demo/src/app/routes/custom-input/custom-input-chat.component.ts b/examples/v2/angular/demo/src/app/routes/custom-input/custom-input-chat.component.ts index 1b11d9e68a9..21e00bb0feb 100644 --- a/examples/v2/angular/demo/src/app/routes/custom-input/custom-input-chat.component.ts +++ b/examples/v2/angular/demo/src/app/routes/custom-input/custom-input-chat.component.ts @@ -4,7 +4,7 @@ import { CopilotChatView, CopilotChat, provideCopilotChatLabels, -} from "@copilotkit/angular"; +} from "@copilotkitnext/angular"; import { CustomChatInputComponent } from "./custom-chat-input.component"; @Component({ diff --git a/examples/v2/angular/demo/src/app/routes/default/default-chat.component.ts b/examples/v2/angular/demo/src/app/routes/default/default-chat.component.ts index 355cdae3b8a..2480a2cbacd 100644 --- a/examples/v2/angular/demo/src/app/routes/default/default-chat.component.ts +++ b/examples/v2/angular/demo/src/app/routes/default/default-chat.component.ts @@ -1,6 +1,6 @@ import { Component } from "@angular/core"; -import { CopilotChat } from "@copilotkit/angular"; +import { CopilotChat } from "@copilotkitnext/angular"; @Component({ selector: "default-chat", diff --git a/examples/v2/angular/demo/src/app/routes/headless/headless-chat.component.ts b/examples/v2/angular/demo/src/app/routes/headless/headless-chat.component.ts index c424c72c21c..9c837e25e08 100644 --- a/examples/v2/angular/demo/src/app/routes/headless/headless-chat.component.ts +++ b/examples/v2/angular/demo/src/app/routes/headless/headless-chat.component.ts @@ -75,7 +75,7 @@ export class RequireApprovalComponent implements HumanInTheLoopToolRenderer { @if (m.role === "assistant") { } diff --git a/examples/v2/angular/demo/src/app/routes/ukg-port/co-pilot-port.component.ts b/examples/v2/angular/demo/src/app/routes/ukg-port/co-pilot-port.component.ts index 487c6e76c08..b75ab4d6934 100644 --- a/examples/v2/angular/demo/src/app/routes/ukg-port/co-pilot-port.component.ts +++ b/examples/v2/angular/demo/src/app/routes/ukg-port/co-pilot-port.component.ts @@ -1,5 +1,8 @@ import { ChangeDetectionStrategy, Component } from "@angular/core"; -import { CopilotChatView, provideCopilotChatLabels } from "@copilotkit/angular"; +import { + CopilotChatView, + provideCopilotChatLabels, +} from "@copilotkitnext/angular"; import { CustomChatInputComponent } from "../custom-input/custom-chat-input.component"; @Component({ diff --git a/examples/v2/angular/demo/src/styles.css b/examples/v2/angular/demo/src/styles.css new file mode 100644 index 00000000000..48b07ce2f14 --- /dev/null +++ b/examples/v2/angular/demo/src/styles.css @@ -0,0 +1,9 @@ +html, +body { + margin: 0; + height: 100%; +} + +body { + font-family: Arial, Helvetica, sans-serif; +} diff --git a/examples/v2/angular/demo/tsconfig.json b/examples/v2/angular/demo/tsconfig.json index b269f275b76..dd11b3d3bb0 100644 --- a/examples/v2/angular/demo/tsconfig.json +++ b/examples/v2/angular/demo/tsconfig.json @@ -13,23 +13,17 @@ "emitDecoratorMetadata": true, "baseUrl": ".", "paths": { - "@copilotkit/angular": [ - "../../packages/angular/dist/index.d.ts", - "../../packages/angular/dist/fesm2022/copilotkitnext-angular.mjs" + "@copilotkitnext/angular": ["../../../../packages/angular/src/index.ts"], + "@copilotkitnext/angular/*": ["../../../../packages/angular/src/*"], + "@copilotkit/core": ["node_modules/@copilotkit/core"], + "@copilotkit/shared": ["node_modules/@copilotkit/shared"], + "@copilotkit/web-inspector": ["node_modules/@copilotkit/web-inspector"], + "@copilotkit/a2ui-renderer": ["node_modules/@copilotkit/a2ui-renderer"], + "@copilotkit/a2ui-renderer/web-components": [ + "node_modules/@copilotkit/a2ui-renderer/web-components" ], - "@copilotkit/core": [ - "../../packages/core/dist/index.d.ts", - "../../packages/core/dist/index.mjs", - "../../packages/core/src/index.ts" - ], - "@copilotkit/shared": [ - "../../packages/shared/dist/index.d.ts", - "../../packages/shared/dist/index.mjs", - "../../packages/shared/src/index.ts" - ], - "@copilotkit/web-inspector": [ - "../../packages/web-inspector/dist/index.d.ts", - "../../packages/web-inspector/src/index.ts" + "@copilotkit/a2ui-renderer/web-components/define": [ + "node_modules/@copilotkit/a2ui-renderer/web-components/define" ] } }, diff --git a/examples/v2/angular/storybook/.storybook/main.ts b/examples/v2/angular/storybook/.storybook/main.ts index 7713b7938d5..83cc5cf5168 100644 --- a/examples/v2/angular/storybook/.storybook/main.ts +++ b/examples/v2/angular/storybook/.storybook/main.ts @@ -6,11 +6,7 @@ const config: StorybookConfig = { options: {}, }, stories: ["../stories/**/*.stories.@(ts|tsx|mdx)"], - addons: [ - "@storybook/addon-essentials", - "@storybook/addon-interactions", - "@storybook/addon-themes", - ], + addons: ["@storybook/addon-themes"], webpackFinal: async (cfg) => { // Suppress size warnings for development cfg.performance = { diff --git a/examples/v2/angular/storybook/angular.json b/examples/v2/angular/storybook/angular.json index 9818110584a..035ba8aff3f 100644 --- a/examples/v2/angular/storybook/angular.json +++ b/examples/v2/angular/storybook/angular.json @@ -52,25 +52,19 @@ "storybook": { "builder": "@storybook/angular:start-storybook", "options": { + "browserTarget": "storybook-angular:build:development", "configDir": ".storybook", "port": 6007, - "compodoc": false, - "styles": [ - "../../../../packages/angular/dist/styles.css", - ".storybook/preview.css" - ] + "compodoc": false } }, "build-storybook": { "builder": "@storybook/angular:build-storybook", "options": { + "browserTarget": "storybook-angular:build:production", "configDir": ".storybook", "outputDir": "storybook-static", - "compodoc": false, - "styles": [ - "../../../../packages/angular/dist/styles.css", - ".storybook/preview.css" - ] + "compodoc": false } } } diff --git a/examples/v2/angular/storybook/components/custom-input.component.ts b/examples/v2/angular/storybook/components/custom-input.component.ts index 7b23840842d..f01cd98bf72 100644 --- a/examples/v2/angular/storybook/components/custom-input.component.ts +++ b/examples/v2/angular/storybook/components/custom-input.component.ts @@ -1,7 +1,7 @@ import { Component, Input } from "@angular/core"; import { CommonModule } from "@angular/common"; import { FormsModule } from "@angular/forms"; -import { ChatState } from "@copilotkit/angular"; +import type { ChatState } from "@copilotkitnext/angular"; @Component({ selector: "custom-input", diff --git a/examples/v2/angular/storybook/components/custom-send-button.component.ts b/examples/v2/angular/storybook/components/custom-send-button.component.ts index e2cb780fc68..4a074894279 100644 --- a/examples/v2/angular/storybook/components/custom-send-button.component.ts +++ b/examples/v2/angular/storybook/components/custom-send-button.component.ts @@ -9,7 +9,7 @@ import { CommonModule } from "@angular/common"; diff --git a/examples/v2/angular/storybook/package.json b/examples/v2/angular/storybook/package.json index 0113b5f333b..02fbaba4f58 100644 --- a/examples/v2/angular/storybook/package.json +++ b/examples/v2/angular/storybook/package.json @@ -3,45 +3,44 @@ "version": "0.0.6-next.1", "private": true, "scripts": { - "dev": "pnpm --filter @copilotkit/angular run build:css && sleep 1 && ng run storybook-angular:storybook", + "dev": "pnpm --filter @copilotkitnext/angular run build:css && sleep 1 && ng run storybook-angular:storybook", "build": "ng run storybook-angular:build-storybook", - "storybook:dev": "pnpm --filter @copilotkit/angular run build:css && sleep 1 && ng run storybook-angular:storybook", + "storybook:dev": "pnpm --filter @copilotkitnext/angular run build:css && sleep 1 && ng run storybook-angular:storybook", "storybook:build": "ng run storybook-angular:build-storybook" }, "dependencies": { "@ag-ui/client": "0.0.51", - "@angular/animations": "^19.0.0", - "@angular/common": "^19.0.0", - "@angular/compiler": "^19.0.0", - "@angular/core": "^19.0.0", - "@angular/forms": "^19.0.0", - "@angular/platform-browser": "^19.0.0", - "@angular/platform-browser-dynamic": "^19.0.0", + "@angular/animations": "^21.2.15", + "@angular/common": "^21.2.15", + "@angular/compiler": "^21.2.15", + "@angular/core": "^21.2.15", + "@angular/forms": "^21.2.15", + "@angular/platform-browser": "^21.2.15", + "@angular/platform-browser-dynamic": "^21.2.15", + "@copilotkit/a2ui-renderer": "workspace:*", "@copilotkit/core": "workspace:^", + "@copilotkit/shared": "workspace:*", "rxjs": "^7.8.1", "tslib": "^2.8.1", "zod": "^3.25.75" }, "devDependencies": { - "@angular-devkit/build-angular": "^19.0.0", - "@angular/cli": "^19.0.0", - "@angular/compiler-cli": "^19.0.0", + "@angular-devkit/build-angular": "^21.2.13", + "@angular/cli": "^21.2.13", + "@angular/compiler-cli": "^21.2.15", "@copilotkit/typescript-config": "workspace:*", "@copilotkitnext/angular": "workspace:*", - "@storybook/addon-essentials": "^8", - "@storybook/addon-interactions": "^8", - "@storybook/addon-themes": "^8", - "@storybook/angular": "^8", - "@storybook/test": "^8", + "@storybook/addon-themes": "10.3.6", + "@storybook/angular": "10.3.6", "@tailwindcss/postcss": "^4.1.12", "@types/node": "^22", "autoprefixer": "^10.4.21", "css-loader": "^7.1.2", "postcss": "^8.4.31", "postcss-loader": "^8.1.1", - "storybook": "^8", + "storybook": "10.3.6", "style-loader": "^4.0.0", "tailwindcss": "^4.1.11", - "typescript": "5.8.2" + "typescript": "5.9.3" } } diff --git a/examples/v2/angular/storybook/stories/CopilotChatAssistantMessage.stories.ts b/examples/v2/angular/storybook/stories/CopilotChatAssistantMessage.stories.ts index 2e24639d969..449fb16bab1 100644 --- a/examples/v2/angular/storybook/stories/CopilotChatAssistantMessage.stories.ts +++ b/examples/v2/angular/storybook/stories/CopilotChatAssistantMessage.stories.ts @@ -1,13 +1,13 @@ import type { Meta, StoryObj } from "@storybook/angular"; import { moduleMetadata } from "@storybook/angular"; -import { fn } from "@storybook/test"; +import { fn } from "storybook/test"; import { CommonModule } from "@angular/common"; import { Component, Input } from "@angular/core"; import { CopilotChatAssistantMessage, provideCopilotChatLabels, -} from "@copilotkit/angular"; -import { AssistantMessage } from "@ag-ui/client"; +} from "@copilotkitnext/angular"; +import type { AssistantMessage } from "@ag-ui/client"; // Simple default message const simpleMessage: AssistantMessage = { @@ -356,7 +356,7 @@ export const Default: Story = { source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatAssistantMessage } from '@copilotkit/angular'; +import { CopilotChatAssistantMessage } from '@copilotkitnext/angular'; import { AssistantMessage } from '@ag-ui/client'; @Component({ @@ -413,7 +413,7 @@ export const TestAllMarkdownFeatures: Story = { source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatAssistantMessage } from '@copilotkit/angular'; +import { CopilotChatAssistantMessage } from '@copilotkitnext/angular'; import { AssistantMessage } from '@ag-ui/client'; @Component({ @@ -502,7 +502,7 @@ export const WithToolbarButtons: Story = { source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatAssistantMessage } from '@copilotkit/angular'; +import { CopilotChatAssistantMessage } from '@copilotkitnext/angular'; import { AssistantMessage } from '@ag-ui/client'; @Component({ @@ -573,13 +573,13 @@ export const WithAdditionalToolbarItems: Story = { [additionalToolbarItems]="additionalItems"> @@ -630,7 +656,7 @@ export const WithAdditionalToolbarItems: Story = { template: ` @@ -1053,7 +1079,7 @@ The most flexible approach - use ng-template to completely control the send butt source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatInput } from '@copilotkit/angular'; +import { CopilotChatInput } from '@copilotkitnext/angular'; @Component({ selector: 'app-chat', @@ -1066,7 +1092,7 @@ import { CopilotChatInput } from '@copilotkit/angular'; @@ -1122,7 +1148,7 @@ export const SlotInlineButton: Story = { diff --git a/examples/v2/angular/storybook/stories/CopilotChatMessageView.stories.ts b/examples/v2/angular/storybook/stories/CopilotChatMessageView.stories.ts index 65e05f6914a..d61f9a68a91 100644 --- a/examples/v2/angular/storybook/stories/CopilotChatMessageView.stories.ts +++ b/examples/v2/angular/storybook/stories/CopilotChatMessageView.stories.ts @@ -2,17 +2,19 @@ import type { Meta, StoryObj } from "@storybook/angular"; import { moduleMetadata } from "@storybook/angular"; import { CommonModule } from "@angular/common"; import { Component, Injectable, input, signal } from "@angular/core"; +import type { + Message, + RenderToolCallConfig, + ToolRenderer, + AngularToolCall, +} from "@copilotkitnext/angular"; import { CopilotChatMessageView, CopilotChatMessageViewCursor, CopilotKit, provideCopilotKit, provideCopilotChatLabels, - Message, - RenderToolCallConfig, - ToolRenderer, - AngularToolCall, -} from "@copilotkit/angular"; +} from "@copilotkitnext/angular"; import { ToolCallStatus } from "@copilotkit/core"; import { z } from "zod"; // Schema validation @@ -35,6 +37,8 @@ const meta: Meta = { CopilotChatMessageViewCursor, ], providers: [ + CopilotKit, + provideCopilotKit({}), provideCopilotChatLabels({ assistantMessageToolbarCopyMessageLabel: "Copy", assistantMessageToolbarCopyCodeLabel: "Copy", @@ -62,7 +66,7 @@ export const Default: Story = { source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatMessageView, Message } from '@copilotkit/angular'; +import { CopilotChatMessageView, Message } from '@copilotkitnext/angular'; @Component({ selector: 'app-chat', @@ -216,7 +220,7 @@ export const ShowCursor: Story = { source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatMessageView, Message } from '@copilotkit/angular'; +import { CopilotChatMessageView, Message } from '@copilotkitnext/angular'; @Component({ selector: 'app-chat', @@ -594,7 +598,7 @@ import { ToolCall, ToolMessage, provideCopilotKit -} from '@copilotkit/angular'; +} from '@copilotkitnext/angular'; import { ToolCallStatus } from '@copilotkit/core'; import { z } from 'zod'; diff --git a/examples/v2/angular/storybook/stories/CopilotChatUserMessage.stories.ts b/examples/v2/angular/storybook/stories/CopilotChatUserMessage.stories.ts index 08f6240e779..98d6354a3fa 100644 --- a/examples/v2/angular/storybook/stories/CopilotChatUserMessage.stories.ts +++ b/examples/v2/angular/storybook/stories/CopilotChatUserMessage.stories.ts @@ -4,8 +4,8 @@ import { CommonModule } from "@angular/common"; import { CopilotChatUserMessage, provideCopilotChatLabels, -} from "@copilotkit/angular"; -import { UserMessage } from "@ag-ui/client"; +} from "@copilotkitnext/angular"; +import type { UserMessage } from "@ag-ui/client"; // Simple default message const simpleMessage: UserMessage = { @@ -106,7 +106,7 @@ export const Default: Story = { source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatUserMessage, UserMessage } from '@copilotkit/angular'; +import { CopilotChatUserMessage, UserMessage } from '@copilotkitnext/angular'; @Component({ selector: 'app-chat', @@ -146,7 +146,7 @@ export const LongMessage: Story = { source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatUserMessage, UserMessage } from '@copilotkit/angular'; +import { CopilotChatUserMessage, UserMessage } from '@copilotkitnext/angular'; @Component({ selector: 'app-chat', @@ -196,7 +196,7 @@ export const WithEditButton: Story = { source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatUserMessage, UserMessage } from '@copilotkit/angular'; +import { CopilotChatUserMessage, UserMessage } from '@copilotkitnext/angular'; @Component({ selector: 'app-chat', @@ -238,7 +238,7 @@ export const WithoutEditButton: Story = { source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatUserMessage, UserMessage } from '@copilotkit/angular'; +import { CopilotChatUserMessage, UserMessage } from '@copilotkitnext/angular'; @Component({ selector: 'app-chat', @@ -276,7 +276,7 @@ export const CodeRelatedMessage: Story = { source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatUserMessage, UserMessage } from '@copilotkit/angular'; +import { CopilotChatUserMessage, UserMessage } from '@copilotkitnext/angular'; @Component({ selector: 'app-chat', @@ -335,7 +335,7 @@ export const ShortQuestion: Story = { source: { type: "code", code: `import { Component } from '@angular/core'; -import { CopilotChatUserMessage, UserMessage } from '@copilotkit/angular'; +import { CopilotChatUserMessage, UserMessage } from '@copilotkitnext/angular'; @Component({ selector: 'app-chat', @@ -375,13 +375,13 @@ export const WithAdditionalToolbarItems: Story = { template: ` @@ -500,10 +501,10 @@ export const CustomAppearance: Story = {
-
+
{{ content }}
@@ -519,7 +520,7 @@ export const CustomComponents: Story = { message: simpleMessage, editMessage: () => console.log("Edit clicked!"), inputClass: - "bg-gradient-to-r from-purple-100 to-pink-100 rounded-xl p-4 shadow-sm", + "cpk:bg-gradient-to-r cpk:from-purple-100 cpk:to-pink-100 cpk:rounded-xl cpk:p-4 cpk:shadow-sm", }, render: () => ({ props: { @@ -528,7 +529,7 @@ export const CustomComponents: Story = { }, template: ` -
+
💬 {{ content }}
@@ -537,10 +538,10 @@ export const CustomComponents: Story = {
-
+
💬 {{ content }}
diff --git a/examples/v2/angular/storybook/stories/CopilotChatView-Actions.stories.ts b/examples/v2/angular/storybook/stories/CopilotChatView-Actions.stories.ts index 7fb34d91d7c..3e7d54b2e32 100644 --- a/examples/v2/angular/storybook/stories/CopilotChatView-Actions.stories.ts +++ b/examples/v2/angular/storybook/stories/CopilotChatView-Actions.stories.ts @@ -8,8 +8,8 @@ import { CopilotChatInput, provideCopilotChatLabels, provideCopilotKit, -} from "@copilotkit/angular"; -import { Message } from "@ag-ui/client"; +} from "@copilotkitnext/angular"; +import type { Message } from "@ag-ui/client"; const meta: Meta = { title: "UI/CopilotChatView/Custom Actions", @@ -53,7 +53,7 @@ import { CopilotChatInput, provideCopilotKit, provideCopilotChatLabels -} from '@copilotkit/angular'; +} from '@copilotkitnext/angular'; import { Message } from '@ag-ui/client'; // Custom disclaimer component diff --git a/examples/v2/angular/storybook/stories/CopilotChatView-CSS.stories.ts b/examples/v2/angular/storybook/stories/CopilotChatView-CSS.stories.ts index 4513dfda87f..9f11cc3fff7 100644 --- a/examples/v2/angular/storybook/stories/CopilotChatView-CSS.stories.ts +++ b/examples/v2/angular/storybook/stories/CopilotChatView-CSS.stories.ts @@ -8,8 +8,8 @@ import { CopilotChatInput, provideCopilotChatLabels, provideCopilotKit, -} from "@copilotkit/angular"; -import { Message } from "@ag-ui/client"; +} from "@copilotkitnext/angular"; +import type { Message } from "@ag-ui/client"; const meta: Meta = { title: "UI/CopilotChatView/Customized with CSS", diff --git a/examples/v2/angular/storybook/stories/CopilotChatView-Components.stories.ts b/examples/v2/angular/storybook/stories/CopilotChatView-Components.stories.ts index ff050cffc00..4646d404c15 100644 --- a/examples/v2/angular/storybook/stories/CopilotChatView-Components.stories.ts +++ b/examples/v2/angular/storybook/stories/CopilotChatView-Components.stories.ts @@ -10,8 +10,8 @@ import { ChatState, provideCopilotChatLabels, provideCopilotKit, -} from "@copilotkit/angular"; -import { Message } from "@ag-ui/client"; +} from "@copilotkitnext/angular"; +import type { Message } from "@ag-ui/client"; import { CustomDisclaimerComponent } from "../components/custom-disclaimer.component"; import { CustomInputComponent } from "../components/custom-input.component"; import { CustomScrollButtonComponent } from "../components/custom-scroll-button.component"; @@ -75,7 +75,7 @@ import { CopilotChatInput, provideCopilotKit, provideCopilotChatLabels -} from '@copilotkit/angular'; +} from '@copilotkitnext/angular'; import { Message } from '@ag-ui/client'; // Custom disclaimer component @@ -209,7 +209,7 @@ import { ChatState, provideCopilotKit, provideCopilotChatLabels -} from '@copilotkit/angular'; +} from '@copilotkitnext/angular'; import { Message } from '@ag-ui/client'; // Custom input component @@ -364,7 +364,7 @@ import { CopilotChatInput, provideCopilotKit, provideCopilotChatLabels -} from '@copilotkit/angular'; +} from '@copilotkitnext/angular'; import { Message } from '@ag-ui/client'; // Custom scroll button component @@ -511,7 +511,7 @@ import { CopilotChatInput, provideCopilotKit, provideCopilotChatLabels -} from '@copilotkit/angular'; +} from '@copilotkitnext/angular'; import { Message } from '@ag-ui/client'; @Component({ @@ -616,7 +616,7 @@ import { ChatState, provideCopilotKit, provideCopilotChatLabels -} from '@copilotkit/angular'; +} from '@copilotkitnext/angular'; import { Message } from '@ag-ui/client'; // Minimal custom input component with service injection diff --git a/examples/v2/angular/storybook/stories/CopilotChatView-Templates.stories.ts b/examples/v2/angular/storybook/stories/CopilotChatView-Templates.stories.ts index d770238f348..105fa331842 100644 --- a/examples/v2/angular/storybook/stories/CopilotChatView-Templates.stories.ts +++ b/examples/v2/angular/storybook/stories/CopilotChatView-Templates.stories.ts @@ -10,8 +10,8 @@ import { ChatState, provideCopilotChatLabels, provideCopilotKit, -} from "@copilotkit/angular"; -import { Message } from "@ag-ui/client"; +} from "@copilotkitnext/angular"; +import type { Message } from "@ag-ui/client"; @Injectable() class StoryChatState extends ChatState { diff --git a/examples/v2/angular/storybook/stories/CopilotChatView.stories.ts b/examples/v2/angular/storybook/stories/CopilotChatView.stories.ts index 47164ae0d84..1dbfb02f6bc 100644 --- a/examples/v2/angular/storybook/stories/CopilotChatView.stories.ts +++ b/examples/v2/angular/storybook/stories/CopilotChatView.stories.ts @@ -7,8 +7,8 @@ import { CopilotChatInput, provideCopilotChatLabels, provideCopilotKit, -} from "@copilotkit/angular"; -import { Message } from "@ag-ui/client"; +} from "@copilotkitnext/angular"; +import type { Message } from "@ag-ui/client"; const meta: Meta = { title: "UI/CopilotChatView/Basic Examples", @@ -53,7 +53,7 @@ import { CopilotChatInput, provideCopilotKit, provideCopilotChatLabels -} from '@copilotkit/angular'; +} from '@copilotkitnext/angular'; import { Message } from '@ag-ui/client'; @Component({ @@ -95,12 +95,12 @@ export class ChatComponent { 1. Install the package: \\\`\\\`\\\`bash -npm install @copilotkit/angular +npm install @copilotkitnext/angular \\\`\\\`\\\` 2. Import and configure in your component: \\\`\\\`\\\`typescript -import { provideCopilotKit } from '@copilotkit/angular'; +import { provideCopilotKit } from '@copilotkitnext/angular'; @Component({ providers: [provideCopilotKit({})] @@ -149,12 +149,12 @@ import { provideCopilotKit } from '@copilotkit/angular'; 1. Install the package: \`\`\`bash -npm install @copilotkit/angular +npm install @copilotkitnext/angular \`\`\` 2. Import and configure in your component: \`\`\`typescript -import { provideCopilotKit } from '@copilotkit/angular'; +import { provideCopilotKit } from '@copilotkitnext/angular'; @Component({ providers: [provideCopilotKit({})] @@ -218,7 +218,7 @@ import { CopilotChatView, provideCopilotKit, provideCopilotChatLabels -} from '@copilotkit/angular'; +} from '@copilotkitnext/angular'; import { Message } from '@ag-ui/client'; @Component({ @@ -313,7 +313,7 @@ import { CopilotChatView, provideCopilotKit, provideCopilotChatLabels -} from '@copilotkit/angular'; +} from '@copilotkitnext/angular'; @Component({ selector: 'app-chat-empty', diff --git a/examples/v2/angular/storybook/tsconfig.json b/examples/v2/angular/storybook/tsconfig.json index d9ac8bcc0ed..ab50dc400d1 100644 --- a/examples/v2/angular/storybook/tsconfig.json +++ b/examples/v2/angular/storybook/tsconfig.json @@ -14,11 +14,19 @@ "emitDecoratorMetadata": true, "resolveJsonModule": true, "useDefineForClassFields": false, + "baseUrl": ".", "paths": { - "@copilotkit/angular": ["../../../packages/angular/src/index.ts"], - "@copilotkit/angular/*": ["../../../packages/angular/src/*"], - "@copilotkit/core": ["../../../packages/core/src/index.ts"], - "@copilotkit/shared": ["../../../packages/shared/src/index.ts"] + "@copilotkitnext/angular": ["../../../../packages/angular/src/index.ts"], + "@copilotkitnext/angular/*": ["../../../../packages/angular/src/*"], + "@copilotkit/a2ui-renderer": ["node_modules/@copilotkit/a2ui-renderer"], + "@copilotkit/a2ui-renderer/web-components": [ + "node_modules/@copilotkit/a2ui-renderer/web-components" + ], + "@copilotkit/a2ui-renderer/web-components/define": [ + "node_modules/@copilotkit/a2ui-renderer/web-components/define" + ], + "@copilotkit/core": ["node_modules/@copilotkit/core"], + "@copilotkit/shared": ["node_modules/@copilotkit/shared"] }, "types": ["node"] }, diff --git a/nx.json b/nx.json index ea0ef4bbe45..aa356f35b72 100644 --- a/nx.json +++ b/nx.json @@ -24,40 +24,68 @@ }, "targetDefaults": { "build": { - "dependsOn": ["^build"], - "inputs": ["production", "{projectRoot}/.env*"], - "outputs": ["{projectRoot}/dist/**"], + "dependsOn": [ + "^build" + ], + "inputs": [ + "production", + "{projectRoot}/.env*" + ], + "outputs": [ + "{projectRoot}/dist/**" + ], "cache": true }, "dev": { - "dependsOn": ["^build"], + "dependsOn": [ + "^build" + ], "cache": false }, "test": { - "dependsOn": ["^build"], - "inputs": ["test"], - "outputs": ["{projectRoot}/coverage/**"], + "dependsOn": [ + "^build" + ], + "inputs": [ + "test" + ], + "outputs": [ + "{projectRoot}/coverage/**" + ], "cache": true }, "test:watch": { "cache": false }, "test:coverage": { - "inputs": ["test"], - "outputs": ["{projectRoot}/coverage/**"], + "inputs": [ + "test" + ], + "outputs": [ + "{projectRoot}/coverage/**" + ], "cache": true }, "check-types": { - "dependsOn": ["^build", "^check-types"], + "dependsOn": [ + "^build", + "^check-types" + ], "cache": true }, "generate-graphql-schema": { - "dependsOn": ["^build"], - "outputs": ["{projectRoot}/__snapshots__/**"], + "dependsOn": [ + "^build" + ], + "outputs": [ + "{projectRoot}/__snapshots__/**" + ], "cache": true }, "graphql-codegen": { - "dependsOn": ["^build"], + "dependsOn": [ + "^build" + ], "cache": true }, "link:global": { @@ -74,18 +102,32 @@ ] }, "storybook:build": { - "dependsOn": ["^build"], - "outputs": ["{projectRoot}/storybook-static/**"], + "dependsOn": [ + "^build" + ], + "outputs": [ + "{projectRoot}/storybook-static/**" + ], "cache": true }, "publint": { - "dependsOn": ["build"], - "inputs": ["{projectRoot}/package.json", "{projectRoot}/dist/**"], + "dependsOn": [ + "build" + ], + "inputs": [ + "{projectRoot}/package.json", + "{projectRoot}/dist/**" + ], "cache": true }, "attw": { - "dependsOn": ["build"], - "inputs": ["{projectRoot}/package.json", "{projectRoot}/dist/**"], + "dependsOn": [ + "build" + ], + "inputs": [ + "{projectRoot}/package.json", + "{projectRoot}/dist/**" + ], "cache": true }, "compat-check": { @@ -95,5 +137,6 @@ } }, "parallel": 14, - "defaultBase": "main" -} + "defaultBase": "main", + "analytics": false +} \ No newline at end of file diff --git a/packages/a2ui-renderer/package.json b/packages/a2ui-renderer/package.json index 5314da35fca..57b90adc2fb 100644 --- a/packages/a2ui-renderer/package.json +++ b/packages/a2ui-renderer/package.json @@ -31,9 +31,20 @@ "jsdelivr": "./dist/index.umd.js", "exports": { ".": { + "types": "./dist/index.d.cts", "import": "./dist/index.mjs", "require": "./dist/index.cjs" }, + "./web-components": { + "types": "./dist/web-components/index.d.cts", + "import": "./dist/web-components/index.mjs", + "require": "./dist/web-components/index.cjs" + }, + "./web-components/define": { + "types": "./dist/web-components/define.d.cts", + "import": "./dist/web-components/define.mjs", + "require": "./dist/web-components/define.cjs" + }, "./package.json": "./package.json" }, "publishConfig": { @@ -52,6 +63,7 @@ "dependencies": { "@a2ui/web_core": "0.9.0", "clsx": "^2.1.1", + "lit": "^3.3.2", "zod": "^3.25.75", "zod-to-json-schema": "^3.24.1" }, @@ -69,5 +81,13 @@ "peerDependencies": { "react": "^18 || ^19 || ^19.0.0-rc", "react-dom": "^18 || ^19 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } } diff --git a/packages/a2ui-renderer/src/web-components/__tests__/web-components.test.ts b/packages/a2ui-renderer/src/web-components/__tests__/web-components.test.ts new file mode 100644 index 00000000000..200e6574f3b --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/__tests__/web-components.test.ts @@ -0,0 +1,335 @@ +import { html } from "lit"; +import { z } from "zod"; +import { afterEach, describe, expect, it, vi } from "vitest"; +import { CPK_A2UI_SURFACE_TAG, defineA2UIWebComponents } from "../define"; +import { + createA2UICatalog, + createCatalog, + extractA2UISchema, + extractSchema, +} from "../create-catalog"; +import { basicCatalog, fullCatalog } from "../catalog/basic"; +import { minimalCatalog } from "../catalog/minimal"; +import type { A2UISurfaceElement } from "../types"; + +const BASIC_CATALOG_ID = + "https://a2ui.org/specification/v0_9/basic_catalog.json"; +const BASIC_COMPONENT_NAMES = [ + "Text", + "Image", + "Icon", + "Video", + "AudioPlayer", + "Row", + "Column", + "List", + "Card", + "Tabs", + "Divider", + "Modal", + "Button", + "TextField", + "CheckBox", + "ChoicePicker", + "Slider", + "DateTimeInput", +]; + +const tick = () => new Promise((resolve) => setTimeout(resolve, 0)); + +async function waitForRender(element: Element) { + await (element as any).updateComplete; + await tick(); + await tick(); +} + +function textSurfaceOperations(text = "Hello from A2UI") { + return [ + { + version: "v0.9", + createSurface: { + surfaceId: "surface", + catalogId: BASIC_CATALOG_ID, + }, + }, + { + version: "v0.9", + updateComponents: { + surfaceId: "surface", + components: [ + { + id: "root", + component: "Text", + text, + }, + ], + }, + }, + ]; +} + +function buttonSurfaceOperations() { + return [ + { + version: "v0.9", + createSurface: { + surfaceId: "surface", + catalogId: BASIC_CATALOG_ID, + }, + }, + { + version: "v0.9", + updateComponents: { + surfaceId: "surface", + components: [ + { + id: "root", + component: "Button", + child: "label", + action: { event: { name: "confirm" } }, + variant: "primary", + }, + { + id: "label", + component: "Text", + text: "Confirm", + }, + ], + }, + }, + ]; +} + +function createSurfaceElement(): A2UISurfaceElement { + defineA2UIWebComponents(); + const element = document.createElement( + CPK_A2UI_SURFACE_TAG, + ) as A2UISurfaceElement; + document.body.appendChild(element); + return element; +} + +describe("A2UI Lit Web Components", () => { + afterEach(() => { + document.body.replaceChildren(); + }); + + it("registers elements idempotently", () => { + defineA2UIWebComponents(); + const first = customElements.get(CPK_A2UI_SURFACE_TAG); + defineA2UIWebComponents(); + expect(customElements.get(CPK_A2UI_SURFACE_TAG)).toBe(first); + }); + + it("renders a basic A2UI surface from the operations property", async () => { + const element = createSurfaceElement(); + element.operations = textSurfaceOperations(); + + await waitForRender(element); + + expect(element.textContent).toContain("Hello from A2UI"); + }); + + it("normalizes legacy v0.8 surface messages", async () => { + const element = createSurfaceElement(); + element.operations = [ + { + beginRendering: { + surfaceId: "legacy-surface", + styles: {}, + }, + }, + { + surfaceUpdate: { + surfaceId: "legacy-surface", + components: [ + { + id: "root", + component: { + Text: { + text: "Legacy surface", + }, + }, + }, + ], + }, + }, + ]; + + await waitForRender(element); + + expect(element.textContent).toContain("Legacy surface"); + expect( + element.querySelector('[data-surface-id="legacy-surface"]'), + ).toBeTruthy(); + }); + + it("falls back to the default surface for invalid surface ids", async () => { + const element = createSurfaceElement(); + element.operations = [ + { + version: "v0.9", + createSurface: { + surfaceId: 123, + catalogId: BASIC_CATALOG_ID, + }, + }, + { + version: "v0.9", + updateComponents: { + surfaceId: null, + components: [ + { + id: "root", + component: "Text", + text: "Default surface", + }, + ], + }, + }, + ]; + + await waitForRender(element); + + expect(element.textContent).toContain("Default surface"); + expect(element.querySelector('[data-surface-id="default"]')).toBeTruthy(); + }); + + it("exports minimal, basic, and full catalogs", () => { + expect(minimalCatalog.components.has("Text")).toBe(true); + expect(minimalCatalog.components.has("TextField")).toBe(true); + expect(minimalCatalog.components.has("Slider")).toBe(false); + expect([...basicCatalog.components.keys()]).toEqual(BASIC_COMPONENT_NAMES); + expect([...fullCatalog.components.keys()]).toEqual(BASIC_COMPONENT_NAMES); + expect(fullCatalog).toBe(basicCatalog); + }); + + it("ignores duplicate createSurface snapshots for an existing surface", async () => { + const element = createSurfaceElement(); + element.operations = textSurfaceOperations("First"); + await waitForRender(element); + + element.operations = textSurfaceOperations("Second"); + await waitForRender(element); + + expect(element.textContent).toContain("Second"); + }); + + it("dispatches a2ui-action from Button", async () => { + const element = createSurfaceElement(); + const onAction = vi.fn(); + element.addEventListener("a2ui-action", onAction); + element.operations = buttonSurfaceOperations(); + + await waitForRender(element); + element.querySelector("button")?.click(); + + expect(onAction).toHaveBeenCalledTimes(1); + expect(onAction.mock.calls[0]?.[0].detail).toMatchObject({ + userAction: { + name: "confirm", + surfaceId: "surface", + sourceComponentId: "root", + }, + }); + }); + + it("emits a2ui-error and renders the error UI", async () => { + const element = createSurfaceElement(); + const onError = vi.fn(); + element.addEventListener("a2ui-error", onError); + element.operations = [ + { + version: "v0.9", + updateComponents: { + surfaceId: "surface", + components: [{ component: "Text" }], + }, + }, + ]; + + await waitForRender(element); + + expect(onError).toHaveBeenCalledTimes(1); + expect(element.textContent).toContain("A2UI render error:"); + }); + + it("supports createCatalog custom Lit renderers", async () => { + const catalog = createCatalog( + { + Badge: { + props: z.object({ + label: z.string(), + child: z.string().optional(), + }), + }, + }, + { + Badge: ({ props, children, dispatch }) => html` + + `, + }, + { catalogId: "test-catalog", includeBasicCatalog: true }, + ); + + const element = createSurfaceElement(); + const onAction = vi.fn(); + element.catalog = catalog; + element.addEventListener("a2ui-action", onAction); + element.operations = [ + { + version: "v0.9", + createSurface: { surfaceId: "surface", catalogId: "test-catalog" }, + }, + { + version: "v0.9", + updateComponents: { + surfaceId: "surface", + components: [ + { + id: "root", + component: "Badge", + label: "Badge", + child: "label", + }, + { + id: "label", + component: "Text", + text: " child", + }, + ], + }, + }, + ]; + + await waitForRender(element); + expect(element.textContent).toContain("Badge"); + expect(element.textContent).toContain("child"); + + element.querySelector("button")?.click(); + expect(onAction.mock.calls[0]?.[0].detail).toMatchObject({ + userAction: { name: "badge" }, + }); + }); + + it("keeps deprecated catalog aliases aligned", () => { + const components = { + Badge: { + props: z.object({ label: z.string() }), + render: ({ props }: { props: { label: string } }) => props.label, + }, + }; + + expect(createA2UICatalog(components).id).toBe( + createCatalog( + { Badge: { props: components.Badge.props } }, + { Badge: components.Badge.render as any }, + ).id, + ); + expect(extractA2UISchema(components)).toEqual( + extractSchema({ Badge: { props: components.Badge.props } }), + ); + }); +}); diff --git a/packages/a2ui-renderer/src/web-components/adapter.ts b/packages/a2ui-renderer/src/web-components/adapter.ts new file mode 100644 index 00000000000..dc3d21b43e7 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/adapter.ts @@ -0,0 +1,53 @@ +import { html } from "lit"; +import type { + ComponentApi, + InferredComponentApiSchemaType, + ResolveA2uiProps, +} from "@a2ui/web_core/v0_9"; +import type { + LitComponentImplementation, + LitRenderable, + LitRendererFn, +} from "./types"; + +export function createLitComponent( + api: Api, + renderFn: LitRendererFn, + setupState?: () => S, +): LitComponentImplementation { + return { + name: api.name, + schema: api.schema, + render: (context, buildChild) => html` + + `, + }; +} + +export function createBinderlessLitComponent( + api: ComponentApi, + renderFn: (componentProps: { + context: Parameters[0]; + buildChild: (id: string, basePath?: string) => LitRenderable; + }) => LitRenderable, +): LitComponentImplementation { + return { + name: api.name, + schema: api.schema, + render: (context, buildChild) => renderFn({ context, buildChild }), + }; +} + +export type { + InferredComponentApiSchemaType, + ResolveA2uiProps, + LitComponentImplementation, + LitRenderable, + LitRendererFn, +}; diff --git a/packages/a2ui-renderer/src/web-components/bound-component.ts b/packages/a2ui-renderer/src/web-components/bound-component.ts new file mode 100644 index 00000000000..f1fe4daead3 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/bound-component.ts @@ -0,0 +1,79 @@ +import { LitElement, nothing } from "lit"; +import { GenericBinder } from "@a2ui/web_core/v0_9"; +import type { ComponentApi, ComponentContext } from "@a2ui/web_core/v0_9"; +import type { LitRenderable, LitRendererFn } from "./types"; + +export class CpkA2uiBoundComponent extends LitElement { + static properties = { + api: { attribute: false }, + context: { attribute: false }, + buildChild: { attribute: false }, + renderFn: { attribute: false }, + setupState: { attribute: false }, + }; + + api?: ComponentApi; + context?: ComponentContext; + buildChild?: (id: string, basePath?: string) => LitRenderable; + renderFn?: LitRendererFn; + setupState?: () => unknown; + + private binder: GenericBinder | null = null; + private binderContext: ComponentContext | null = null; + private propsSnapshot: Record = {}; + private stateInitialized = false; + private state: unknown; + + protected createRenderRoot() { + return this; + } + + connectedCallback(): void { + super.connectedCallback(); + this.style.display = "contents"; + } + + disconnectedCallback(): void { + this.disposeBinder(); + super.disconnectedCallback(); + } + + private disposeBinder(): void { + this.binder?.dispose(); + this.binder = null; + this.binderContext = null; + } + + private ensureBinder(): void { + if (!this.api || !this.context) return; + if (this.binder && this.binderContext === this.context) return; + + this.disposeBinder(); + this.binderContext = this.context; + this.binder = new GenericBinder(this.context, this.api.schema); + this.propsSnapshot = this.binder.snapshot ?? {}; + this.binder.subscribe((props) => { + this.propsSnapshot = props ?? {}; + this.requestUpdate(); + }); + } + + private ensureState(): void { + if (this.stateInitialized) return; + this.stateInitialized = true; + this.state = this.setupState?.(); + } + + render() { + this.ensureBinder(); + this.ensureState(); + if (!this.renderFn || !this.context || !this.buildChild) return nothing; + return this.renderFn({ + props: this.propsSnapshot, + buildChild: this.buildChild, + context: this.context, + state: this.state, + requestUpdate: () => this.requestUpdate(), + }); + } +} diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/audio-player.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/audio-player.ts new file mode 100644 index 00000000000..4ddf64523e7 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/audio-player.ts @@ -0,0 +1,28 @@ +import { html, nothing } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { AudioPlayerApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { getBaseLeafStyle } from "./utils"; + +export const AudioPlayer = createLitComponent(AudioPlayerApi, ({ props }) => { + const style = { ...getBaseLeafStyle(), width: "100%" }; + return html` +
+ ${ + props.description + ? html`${props.description}` + : nothing + } + +
+ `; +}); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/button.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/button.ts new file mode 100644 index 00000000000..021f9b301e3 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/button.ts @@ -0,0 +1,36 @@ +import { html, nothing } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { ButtonApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { LEAF_MARGIN } from "./utils"; + +export const Button = createLitComponent( + ButtonApi, + ({ props, buildChild }) => html` + + `, +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/card.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/card.ts new file mode 100644 index 00000000000..f9e6059b2a7 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/card.ts @@ -0,0 +1,21 @@ +import { html, nothing } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { CardApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { getBaseContainerStyle } from "./utils"; + +export const Card = createLitComponent( + CardApi, + ({ props, buildChild }) => html` +
+ ${props.child ? buildChild(props.child) : nothing} +
+`, +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/check-box.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/check-box.ts new file mode 100644 index 00000000000..cb00ef7ef58 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/check-box.ts @@ -0,0 +1,54 @@ +import { html, nothing } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { CheckBoxApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { uniqueId } from "./ids"; +import { LEAF_MARGIN } from "./utils"; + +export const CheckBox = createLitComponent(CheckBoxApi, ({ props }) => { + const inputId = uniqueId("checkbox"); + const hasError = props.validationErrors && props.validationErrors.length > 0; + return html` +
+
+ + props.setValue((e.target as HTMLInputElement).checked)} + style=${styleMap({ + cursor: "pointer", + outline: hasError ? "1px solid red" : "none", + })} + /> + ${ + props.label + ? html`` + : nothing + } +
+ ${ + hasError + ? html`${props.validationErrors?.[0]}` + : nothing + } +
+ `; +}); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/choice-picker.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/choice-picker.ts new file mode 100644 index 00000000000..5ed2dec7721 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/choice-picker.ts @@ -0,0 +1,120 @@ +import { html, nothing } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { ChoicePickerApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { LEAF_MARGIN, STANDARD_BORDER, STANDARD_RADIUS } from "./utils"; + +export const ChoicePicker = createLitComponent( + ChoicePickerApi, + ({ props, context, state, requestUpdate }) => { + const local = state as { filter: string }; + const values = Array.isArray(props.value) ? props.value : []; + const isMutuallyExclusive = props.variant === "mutuallyExclusive"; + const onToggle = (val: string) => { + if (isMutuallyExclusive) { + props.setValue([val]); + } else { + props.setValue( + values.includes(val) + ? values.filter((v: string) => v !== val) + : [...values, val], + ); + } + }; + const options = (props.options || []).filter( + (opt: any) => + !props.filterable || + local.filter === "" || + String(opt.label).toLowerCase().includes(local.filter.toLowerCase()), + ); + + return html` +
+ ${ + props.label + ? html`${props.label}` + : nothing + } + ${ + props.filterable + ? html` { + local.filter = (e.target as HTMLInputElement).value; + requestUpdate(); + }} + style=${styleMap({ + padding: "4px 8px", + border: STANDARD_BORDER, + borderRadius: STANDARD_RADIUS, + })} + />` + : nothing + } +
+ ${options.map((opt: any) => { + const isSelected = values.includes(opt.value); + if (props.displayStyle === "chips") { + return html` + + `; + } + return html` + + `; + })} +
+
+ `; + }, + () => ({ filter: "" }), +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/column.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/column.ts new file mode 100644 index 00000000000..b3f5c069d9f --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/column.ts @@ -0,0 +1,25 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { ColumnApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { renderChildList } from "../children"; +import { mapAlign, mapJustify } from "./utils"; + +export const Column = createLitComponent( + ColumnApi, + ({ props, buildChild }) => html` +
+ ${renderChildList(props.children, buildChild)} +
+ `, +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/components.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/components.ts new file mode 100644 index 00000000000..62d1409e6c6 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/components.ts @@ -0,0 +1,59 @@ +import type { LitComponentImplementation } from "../../types"; +import { AudioPlayer } from "./audio-player"; +import { Button } from "./button"; +import { Card } from "./card"; +import { CheckBox } from "./check-box"; +import { ChoicePicker } from "./choice-picker"; +import { Column } from "./column"; +import { DateTimeInput } from "./date-time-input"; +import { Divider } from "./divider"; +import { Icon } from "./icon"; +import { Image } from "./image"; +import { List } from "./list"; +import { Modal } from "./modal"; +import { Row } from "./row"; +import { Slider } from "./slider"; +import { Tabs } from "./tabs"; +import { Text } from "./text"; +import { TextField } from "./text-field"; +import { Video } from "./video"; + +export { AudioPlayer } from "./audio-player"; +export { Button } from "./button"; +export { Card } from "./card"; +export { CheckBox } from "./check-box"; +export { ChoicePicker } from "./choice-picker"; +export { Column } from "./column"; +export { DateTimeInput } from "./date-time-input"; +export { Divider } from "./divider"; +export { Icon } from "./icon"; +export { Image } from "./image"; +export { List } from "./list"; +export { Modal } from "./modal"; +export { Row } from "./row"; +export { Slider } from "./slider"; +export { Tabs } from "./tabs"; +export { Text } from "./text"; +export { TextField } from "./text-field"; +export { Video } from "./video"; + +export const basicComponents: LitComponentImplementation[] = [ + Text, + Image, + Icon, + Video, + AudioPlayer, + Row, + Column, + List, + Card, + Tabs, + Divider, + Modal, + Button, + TextField, + CheckBox, + ChoicePicker, + Slider, + DateTimeInput, +]; diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/date-time-input.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/date-time-input.ts new file mode 100644 index 00000000000..f9e8a5375e6 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/date-time-input.ts @@ -0,0 +1,53 @@ +import { html, nothing } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { DateTimeInputApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { uniqueId } from "./ids"; +import { LEAF_MARGIN, STANDARD_BORDER, STANDARD_RADIUS } from "./utils"; + +export const DateTimeInput = createLitComponent( + DateTimeInputApi, + ({ props }) => { + const inputId = uniqueId("datetime"); + let type = "datetime-local"; + if (props.enableDate && !props.enableTime) type = "date"; + if (!props.enableDate && props.enableTime) type = "time"; + return html` +
+ ${ + props.label + ? html`` + : nothing + } + + props.setValue((e.target as HTMLInputElement).value)} + /> +
+ `; + }, +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/divider.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/divider.ts new file mode 100644 index 00000000000..de0ff5a57ba --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/divider.ts @@ -0,0 +1,17 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { DividerApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { LEAF_MARGIN } from "./utils"; + +export const Divider = createLitComponent(DividerApi, ({ props }) => { + const isVertical = props.axis === "vertical"; + const style: Record = { + margin: LEAF_MARGIN, + border: "none", + backgroundColor: "#ccc", + width: isVertical ? "1px" : "100%", + height: isVertical ? "100%" : "1px", + }; + return html`
`; +}); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/icon.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/icon.ts new file mode 100644 index 00000000000..314891f7060 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/icon.ts @@ -0,0 +1,27 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { IconApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { getBaseLeafStyle } from "./utils"; + +export const Icon = createLitComponent(IconApi, ({ props }) => { + const iconName = + typeof props.name === "string" + ? props.name + : (props.name as { path?: string } | undefined)?.path; + return html` + ${iconName} + `; +}); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/ids.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/ids.ts new file mode 100644 index 00000000000..9c7cbf75a5f --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/ids.ts @@ -0,0 +1,6 @@ +let idCounter = 0; + +export function uniqueId(prefix: string): string { + idCounter += 1; + return `cpk-a2ui-${prefix}-${idCounter}`; +} diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/image.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/image.ts new file mode 100644 index 00000000000..e61d5a3df15 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/image.ts @@ -0,0 +1,41 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { ImageApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { getBaseLeafStyle } from "./utils"; + +export const Image = createLitComponent(ImageApi, ({ props }) => { + const mapFit = (fit?: string): string => { + if (fit === "scaleDown") return "scale-down"; + return fit || "fill"; + }; + const style: Record = { + ...getBaseLeafStyle(), + objectFit: mapFit(props.fit), + width: "100%", + height: "auto", + display: "block", + } as Record; + + if (props.variant === "icon") { + style.width = "24px"; + style.height = "24px"; + } else if (props.variant === "avatar") { + style.width = "40px"; + style.height = "40px"; + style.borderRadius = "50%"; + } else if (props.variant === "smallFeature") { + style.maxWidth = "100px"; + } else if (props.variant === "largeFeature") { + style.maxHeight = "400px"; + } else if (props.variant === "header") { + style.height = "200px"; + style.objectFit = "cover"; + } + + return html`${props.description`; +}); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/index.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/index.ts new file mode 100644 index 00000000000..e734a4283e3 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/index.ts @@ -0,0 +1,23 @@ +import { Catalog } from "@a2ui/web_core/v0_9"; +import { BASIC_FUNCTIONS } from "@a2ui/web_core/v0_9/basic_catalog"; +import type { LitComponentImplementation } from "../../types"; +import { basicComponents } from "./components"; + +export * from "./components"; +export { + getBaseContainerStyle, + getBaseLeafStyle, + LEAF_MARGIN, + mapAlign, + mapJustify, + STANDARD_BORDER, + STANDARD_RADIUS, +} from "./utils"; + +export const basicCatalog = new Catalog( + "https://a2ui.org/specification/v0_9/basic_catalog.json", + basicComponents, + BASIC_FUNCTIONS, +); + +export const fullCatalog = basicCatalog; diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/list.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/list.ts new file mode 100644 index 00000000000..6c0ece37975 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/list.ts @@ -0,0 +1,26 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { ListApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { renderChildList } from "../children"; +import { mapAlign } from "./utils"; + +export const List = createLitComponent(ListApi, ({ props, buildChild }) => { + const isHorizontal = props.direction === "horizontal"; + return html` +
+ ${renderChildList(props.children, buildChild)} +
+ `; +}); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/modal.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/modal.ts new file mode 100644 index 00000000000..b7f1604d5e5 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/modal.ts @@ -0,0 +1,83 @@ +import { html, nothing } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { ModalApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; + +export const Modal = createLitComponent( + ModalApi, + ({ props, buildChild, state, requestUpdate }) => { + const local = state as { isOpen: boolean }; + return html` +
{ + local.isOpen = true; + requestUpdate(); + }} + style="display: inline-block;" + > + ${props.trigger ? buildChild(props.trigger) : nothing} +
+ ${ + local.isOpen + ? html` +
{ + local.isOpen = false; + requestUpdate(); + }} + > +
e.stopPropagation()} + > +
+ +
+
+ ${props.content ? buildChild(props.content) : nothing} +
+
+
+ ` + : nothing + } + `; + }, + () => ({ isOpen: false }), +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/row.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/row.ts new file mode 100644 index 00000000000..7cff3c88c2c --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/row.ts @@ -0,0 +1,25 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { RowApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { renderChildList } from "../children"; +import { mapAlign, mapJustify } from "./utils"; + +export const Row = createLitComponent( + RowApi, + ({ props, buildChild }) => html` +
+ ${renderChildList(props.children, buildChild)} +
+`, +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/slider.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/slider.ts new file mode 100644 index 00000000000..06c1303d3e9 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/slider.ts @@ -0,0 +1,44 @@ +import { html, nothing } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { SliderApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { uniqueId } from "./ids"; +import { LEAF_MARGIN } from "./utils"; + +export const Slider = createLitComponent(SliderApi, ({ props }) => { + const inputId = uniqueId("slider"); + return html` +
+
+ ${ + props.label + ? html`` + : nothing + } + ${props.value} +
+ + props.setValue(Number((e.target as HTMLInputElement).value))} + style="width: 100%; cursor: pointer;" + /> +
+ `; +}); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/tabs.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/tabs.ts new file mode 100644 index 00000000000..eb091e91d90 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/tabs.ts @@ -0,0 +1,65 @@ +import { html, nothing } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { TabsApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { LEAF_MARGIN } from "./utils"; + +export const Tabs = createLitComponent( + TabsApi, + ({ props, buildChild, state, requestUpdate }) => { + const local = state as { selectedIndex: number }; + const tabs = props.tabs || []; + const activeTab = tabs[local.selectedIndex] ?? tabs[0]; + return html` +
+
+ ${tabs.map( + (tab: any, i: number) => html` + + `, + )} +
+
+ ${activeTab ? buildChild(activeTab.child) : nothing} +
+
+ `; + }, + () => ({ selectedIndex: 0 }), +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/text-field.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/text-field.ts new file mode 100644 index 00000000000..e7bf1bfa9a0 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/text-field.ts @@ -0,0 +1,73 @@ +import { html, nothing } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { TextFieldApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { uniqueId } from "./ids"; +import { LEAF_MARGIN, STANDARD_BORDER, STANDARD_RADIUS } from "./utils"; + +export const TextField = createLitComponent(TextFieldApi, ({ props }) => { + const inputId = uniqueId("textfield"); + const isLong = props.variant === "longText"; + const type = + props.variant === "number" + ? "number" + : props.variant === "obscured" + ? "password" + : "text"; + const hasError = props.validationErrors && props.validationErrors.length > 0; + const style = { + padding: "8px", + width: "100%", + border: hasError ? "1px solid red" : STANDARD_BORDER, + borderRadius: STANDARD_RADIUS, + boxSizing: "border-box", + }; + const onChange = (e: Event) => { + props.setValue((e.target as HTMLInputElement | HTMLTextAreaElement).value); + }; + + return html` +
+ ${ + props.label + ? html`` + : nothing + } + ${ + isLong + ? html`` + : html`` + } + ${ + hasError + ? html`${props.validationErrors![0]}` + : nothing + } +
+ `; +}); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/text.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/text.ts new file mode 100644 index 00000000000..86c6f007785 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/text.ts @@ -0,0 +1,33 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { TextApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { getBaseLeafStyle } from "./utils"; + +export const Text = createLitComponent(TextApi, ({ props }) => { + const text = props.text ?? ""; + const style = { ...getBaseLeafStyle(), display: "inline-block" }; + + switch (props.variant) { + case "h1": + return html`

${text}

`; + case "h2": + return html`

${text}

`; + case "h3": + return html`

${text}

`; + case "h4": + return html`

${text}

`; + case "h5": + return html`
${text}
`; + case "caption": + return html` + ${text} + `; + case "body": + default: + return html`${text}`; + } +}); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/utils.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/utils.ts new file mode 100644 index 00000000000..1d50d2e856a --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/utils.ts @@ -0,0 +1,55 @@ +import type { StyleInfo } from "lit/directives/style-map.js"; + +export const LEAF_MARGIN = "8px"; +export const CONTAINER_PADDING = "16px"; +export const STANDARD_BORDER = "1px solid #ccc"; +export const STANDARD_RADIUS = "8px"; + +export const mapJustify = (j?: string): string => { + switch (j) { + case "center": + return "center"; + case "end": + return "flex-end"; + case "spaceAround": + return "space-around"; + case "spaceBetween": + return "space-between"; + case "spaceEvenly": + return "space-evenly"; + case "start": + return "flex-start"; + case "stretch": + return "stretch"; + default: + return "flex-start"; + } +}; + +export const mapAlign = (a?: string): string => { + switch (a) { + case "start": + return "flex-start"; + case "center": + return "center"; + case "end": + return "flex-end"; + case "stretch": + return "stretch"; + default: + return "stretch"; + } +}; + +export const getBaseLeafStyle = (): StyleInfo => ({ + margin: LEAF_MARGIN, + boxSizing: "border-box", +}); + +export const getBaseContainerStyle = (): StyleInfo => ({ + margin: LEAF_MARGIN, + padding: CONTAINER_PADDING, + border: STANDARD_BORDER, + borderRadius: STANDARD_RADIUS, + boxSizing: "border-box", +}); diff --git a/packages/a2ui-renderer/src/web-components/catalog/basic/video.ts b/packages/a2ui-renderer/src/web-components/catalog/basic/video.ts new file mode 100644 index 00000000000..519a35aab13 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/basic/video.ts @@ -0,0 +1,20 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { VideoApi } from "@a2ui/web_core/v0_9/basic_catalog"; +import { createLitComponent } from "../../adapter"; +import { getBaseLeafStyle } from "./utils"; + +export const Video = createLitComponent( + VideoApi, + ({ props }) => html` + +`, +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/children.ts b/packages/a2ui-renderer/src/web-components/catalog/children.ts new file mode 100644 index 00000000000..46190a26750 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/children.ts @@ -0,0 +1,18 @@ +import type { LitRenderable } from "../types"; + +export function renderChildList( + childList: unknown, + buildChild: (id: string, basePath?: string) => LitRenderable, +): LitRenderable[] { + if (!Array.isArray(childList)) return []; + return childList + .map((item: unknown) => { + if (item && typeof item === "object" && "id" in item) { + const node = item as { id: string; basePath?: string }; + return buildChild(node.id, node.basePath); + } + if (typeof item === "string") return buildChild(item); + return null; + }) + .filter(Boolean) as LitRenderable[]; +} diff --git a/packages/a2ui-renderer/src/web-components/catalog/minimal/button.ts b/packages/a2ui-renderer/src/web-components/catalog/minimal/button.ts new file mode 100644 index 00000000000..6f09fa21c0d --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/minimal/button.ts @@ -0,0 +1,37 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { CommonSchemas } from "@a2ui/web_core/v0_9"; +import { z } from "zod"; +import { createLitComponent } from "../../adapter"; + +export const ButtonSchema = z.object({ + child: CommonSchemas.ComponentId, + action: CommonSchemas.Action, + variant: z.enum(["primary", "borderless"]).optional(), +}); + +export const ButtonApiDef = { + name: "Button", + schema: ButtonSchema, +}; + +export const Button = createLitComponent( + ButtonApiDef, + ({ props, buildChild }) => html` + + `, +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/minimal/column.ts b/packages/a2ui-renderer/src/web-components/catalog/minimal/column.ts new file mode 100644 index 00000000000..0429ebc0c32 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/minimal/column.ts @@ -0,0 +1,45 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { CommonSchemas } from "@a2ui/web_core/v0_9"; +import { z } from "zod"; +import { createLitComponent } from "../../adapter"; +import { renderChildList } from "../children"; +import { mapAlign, mapJustify } from "./utils"; + +export const ColumnSchema = z.object({ + children: CommonSchemas.ChildList, + justify: z + .enum([ + "start", + "center", + "end", + "spaceBetween", + "spaceAround", + "spaceEvenly", + "stretch", + ]) + .optional(), + align: z.enum(["center", "end", "start", "stretch"]).optional(), +}); + +export const ColumnApiDef = { + name: "Column", + schema: ColumnSchema, +}; + +export const Column = createLitComponent( + ColumnApiDef, + ({ props, buildChild }) => html` +
+ ${renderChildList(props.children, buildChild)} +
+ `, +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/minimal/components.ts b/packages/a2ui-renderer/src/web-components/catalog/minimal/components.ts new file mode 100644 index 00000000000..566e4deafde --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/minimal/components.ts @@ -0,0 +1,20 @@ +import type { LitComponentImplementation } from "../../types"; +import { Button } from "./button"; +import { Column } from "./column"; +import { Row } from "./row"; +import { Text } from "./text"; +import { TextField } from "./text-field"; + +export { Button, ButtonApiDef, ButtonSchema } from "./button"; +export { Column, ColumnApiDef, ColumnSchema } from "./column"; +export { Row, RowApiDef, RowSchema } from "./row"; +export { Text, TextApiDef, TextSchema } from "./text"; +export { TextField, TextFieldApiDef, TextFieldSchema } from "./text-field"; + +export const minimalComponents: LitComponentImplementation[] = [ + Text, + Button, + Row, + Column, + TextField, +]; diff --git a/packages/a2ui-renderer/src/web-components/catalog/minimal/index.ts b/packages/a2ui-renderer/src/web-components/catalog/minimal/index.ts new file mode 100644 index 00000000000..4f161193777 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/minimal/index.ts @@ -0,0 +1,29 @@ +import { Catalog, createFunctionImplementation } from "@a2ui/web_core/v0_9"; +import { z } from "zod"; +import type { LitComponentImplementation } from "../../types"; +import { minimalComponents } from "./components"; + +export * from "./components"; + +export const minimalCatalog = new Catalog( + "https://a2ui.org/specification/v0_9/catalogs/minimal/minimal_catalog.json", + minimalComponents, + [ + createFunctionImplementation( + { + name: "capitalize", + returnType: "string", + schema: z.object({ + value: z.unknown(), + }), + }, + (args) => { + const val = args.value; + if (typeof val === "string") { + return val.toUpperCase(); + } + return val as string; + }, + ), + ], +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/minimal/row.ts b/packages/a2ui-renderer/src/web-components/catalog/minimal/row.ts new file mode 100644 index 00000000000..e91ed036854 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/minimal/row.ts @@ -0,0 +1,44 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { CommonSchemas } from "@a2ui/web_core/v0_9"; +import { z } from "zod"; +import { createLitComponent } from "../../adapter"; +import { renderChildList } from "../children"; +import { mapAlign, mapJustify } from "./utils"; + +export const RowSchema = z.object({ + children: CommonSchemas.ChildList, + justify: z + .enum([ + "center", + "end", + "spaceAround", + "spaceBetween", + "spaceEvenly", + "start", + "stretch", + ]) + .optional(), + align: z.enum(["start", "center", "end", "stretch"]).optional(), +}); + +export const RowApiDef = { + name: "Row", + schema: RowSchema, +}; + +export const Row = createLitComponent( + RowApiDef, + ({ props, buildChild }) => html` +
+ ${renderChildList(props.children, buildChild)} +
+`, +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/minimal/text-field.ts b/packages/a2ui-renderer/src/web-components/catalog/minimal/text-field.ts new file mode 100644 index 00000000000..f030ee12376 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/minimal/text-field.ts @@ -0,0 +1,80 @@ +import { html } from "lit"; +import { styleMap } from "lit/directives/style-map.js"; +import { CommonSchemas } from "@a2ui/web_core/v0_9"; +import { z } from "zod"; +import { createLitComponent } from "../../adapter"; + +export const TextFieldSchema = z.object({ + label: CommonSchemas.DynamicString, + value: CommonSchemas.DynamicString, + variant: z.enum(["longText", "number", "shortText", "obscured"]).optional(), + validationRegexp: z.string().optional(), +}); + +export const TextFieldApiDef = { + name: "TextField", + schema: TextFieldSchema, +}; + +export const TextField = createLitComponent( + TextFieldApiDef, + ({ props, context }) => { + const isLong = props.variant === "longText"; + const type = + props.variant === "number" + ? "number" + : props.variant === "obscured" + ? "password" + : "text"; + const id = `textfield-${context.componentModel.id}`; + const style = { + padding: "8px", + width: "100%", + border: "1px solid #ccc", + borderRadius: "4px", + boxSizing: "border-box", + }; + const onChange = (event: Event) => { + props.setValue?.( + (event.target as HTMLInputElement | HTMLTextAreaElement).value, + ); + }; + + return html` +
+ ${ + props.label + ? html`` + : null + } + ${ + isLong + ? html`` + : html`` + } +
+ `; + }, +); diff --git a/packages/a2ui-renderer/src/web-components/catalog/minimal/text.ts b/packages/a2ui-renderer/src/web-components/catalog/minimal/text.ts new file mode 100644 index 00000000000..b68f0af3765 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/minimal/text.ts @@ -0,0 +1,35 @@ +import { html } from "lit"; +import { CommonSchemas } from "@a2ui/web_core/v0_9"; +import { z } from "zod"; +import { createLitComponent } from "../../adapter"; + +export const TextSchema = z.object({ + text: CommonSchemas.DynamicString, + variant: z.enum(["h1", "h2", "h3", "h4", "h5", "caption", "body"]).optional(), +}); + +export const TextApiDef = { + name: "Text", + schema: TextSchema, +}; + +export const Text = createLitComponent(TextApiDef, ({ props }) => { + const text = props.text ?? ""; + switch (props.variant) { + case "h1": + return html`

${text}

`; + case "h2": + return html`

${text}

`; + case "h3": + return html`

${text}

`; + case "h4": + return html`

${text}

`; + case "h5": + return html`
${text}
`; + case "caption": + return html`${text}`; + case "body": + default: + return html`${text}`; + } +}); diff --git a/packages/a2ui-renderer/src/web-components/catalog/minimal/utils.ts b/packages/a2ui-renderer/src/web-components/catalog/minimal/utils.ts new file mode 100644 index 00000000000..1740b4523a4 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/catalog/minimal/utils.ts @@ -0,0 +1,33 @@ +export const mapJustify = (justify?: string): string => { + switch (justify) { + case "center": + return "center"; + case "end": + return "flex-end"; + case "spaceAround": + return "space-around"; + case "spaceBetween": + return "space-between"; + case "spaceEvenly": + return "space-evenly"; + case "stretch": + return "stretch"; + case "start": + default: + return "flex-start"; + } +}; + +export const mapAlign = (align?: string): string => { + switch (align) { + case "start": + return "flex-start"; + case "center": + return "center"; + case "end": + return "flex-end"; + case "stretch": + default: + return "stretch"; + } +}; diff --git a/packages/a2ui-renderer/src/web-components/create-catalog.ts b/packages/a2ui-renderer/src/web-components/create-catalog.ts new file mode 100644 index 00000000000..57bf30207a1 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/create-catalog.ts @@ -0,0 +1,260 @@ +import type { z } from "zod"; +import { type ZodObject, type ZodRawShape, type ZodTypeAny } from "zod"; +import { Catalog } from "@a2ui/web_core/v0_9"; +import type { ComponentApi } from "@a2ui/web_core/v0_9"; +import { zodToJsonSchema } from "zod-to-json-schema"; +import { basicCatalog } from "./catalog/basic"; +import { createLitComponent } from "./adapter"; +import type { + CatalogComponentDefinition, + CatalogDefinitions, + CatalogRenderers, + ComponentRenderer, + LitComponentImplementation, + RendererProps, +} from "./types"; + +const BASIC_CATALOG_ID = + "https://a2ui.org/specification/v0_9/basic_catalog.json"; + +type CatalogContextComponent = { + schema: unknown; +}; + +type CatalogContextValue = { + id: string; + components: ReadonlyMap; +}; + +/** + * Context description used to identify the A2UI component schema in RunAgentInput.context. + * Must match the constant in @ag-ui/a2ui-middleware so the middleware can overwrite + * a frontend-provided schema with a server-side one. + */ +export const A2UI_SCHEMA_CONTEXT_DESCRIPTION = + "A2UI Component Schema — available components for generating UI surfaces. Use these component names and properties when creating A2UI operations."; + +export type { + CatalogComponentDefinition, + CatalogDefinitions, + CatalogRenderers, + ComponentRenderer, + RendererProps, +} from "./types"; + +export function createCatalog( + definitions: D, + renderers: CatalogRenderers, + options?: { + catalogId?: string; + includeBasicCatalog?: boolean; + }, +): Catalog { + const catalogId = options?.catalogId ?? "copilotkit://custom-catalog"; + const customComponents: LitComponentImplementation[] = []; + + for (const [name, def] of Object.entries(definitions)) { + const api: ComponentApi = { + name, + schema: def.props, + }; + const renderer = (renderers as Record>)[ + name + ]; + customComponents.push( + createLitComponent(api, ({ props, buildChild, context }) => + renderer({ + props, + children: buildChild, + dispatch: (action: unknown) => context.dispatchAction(action), + }), + ), + ); + } + + const components = + options?.includeBasicCatalog === true + ? [...Array.from(basicCatalog.components.values()), ...customComponents] + : customComponents; + const functions = + options?.includeBasicCatalog === true + ? Array.from(basicCatalog.functions.values()) + : []; + + return new Catalog( + catalogId, + components, + functions, + ); +} + +export function extractSchema(definitions: CatalogDefinitions): Array<{ + name: string; + description?: string; + props?: Record; +}> { + return Object.entries(definitions).map(([name, def]) => ({ + name, + description: def.description, + props: zodSchemaToSimpleObject(def.props), + })); +} + +function zodSchemaToSimpleObject( + schema: ZodObject, +): Record { + const shape = schema.shape; + const properties: Record = {}; + for (const [key, value] of Object.entries(shape)) { + const zodValue = value as any; + properties[key] = { + type: zodValue._def?.typeName ?? "unknown", + ...(zodValue.description ? { description: zodValue.description } : {}), + }; + } + return { type: "object", properties }; +} + +export interface A2UIComponentDefinition { + props: ZodObject; + description?: string; + render: (props: RendererProps>>) => unknown; +} + +export type A2UIComponentMap = Record>; + +export function createA2UICatalog( + components: A2UIComponentMap, + options?: { + catalogId?: string; + includeBasicCatalog?: boolean; + }, +): Catalog { + const definitions: CatalogDefinitions = {}; + const renderers: Record> = {}; + + for (const [name, def] of Object.entries(components)) { + definitions[name] = { props: def.props, description: def.description }; + renderers[name] = def.render as ComponentRenderer; + } + + return createCatalog(definitions, renderers as any, options); +} + +export function extractA2UISchema(components: A2UIComponentMap): Array<{ + name: string; + description?: string; + props?: Record; +}> { + const definitions: CatalogDefinitions = {}; + for (const [name, def] of Object.entries(components)) { + definitions[name] = { props: def.props, description: def.description }; + } + return extractSchema(definitions); +} + +function isCatalogContextValue(value: unknown): value is CatalogContextValue { + return ( + typeof value === "object" && + value !== null && + "id" in value && + typeof value.id === "string" && + "components" in value && + value.components instanceof Map + ); +} + +function resolveCatalog(catalog?: unknown): CatalogContextValue { + return isCatalogContextValue(catalog) ? catalog : basicCatalog; +} + +function toJsonSchema( + schema: unknown, + options?: Parameters[1], +): ReturnType { + return zodToJsonSchema(schema as ZodTypeAny, options); +} + +function extendsBasicCatalog(catalog: CatalogContextValue): boolean { + for (const name of basicCatalog.components.keys()) { + if (!catalog.components.has(name)) { + return false; + } + } + return true; +} + +function getCustomComponentNames(catalog: CatalogContextValue): string[] { + const custom: string[] = []; + for (const name of catalog.components.keys()) { + if (!basicCatalog.components.has(name)) { + custom.push(name); + } + } + return custom; +} + +export function buildCatalogContextValue(catalog?: unknown): string { + const resolved = resolveCatalog(catalog); + const lines: string[] = ["Available A2UI catalog:"]; + + if (resolved.id === BASIC_CATALOG_ID) { + lines.push(`- ${resolved.id} (basic catalog)`); + return lines.join("\n"); + } + + const isSuperset = extendsBasicCatalog(resolved); + const customNames = getCustomComponentNames(resolved); + + lines.push(`- ${resolved.id}`); + if (isSuperset) { + lines.push( + " Extends the basic catalog with all standard components plus:", + ); + } else { + lines.push(" Custom catalog (does NOT include all basic components)."); + lines.push(" Custom components:"); + } + + for (const name of customNames) { + const component = resolved.components.get(name); + if (!component) continue; + const jsonSchema = toJsonSchema(component.schema); + lines.push(` - ${name}:`); + lines.push( + ` ${JSON.stringify(jsonSchema, null, 2).split("\n").join("\n ")}`, + ); + } + + return lines.join("\n"); +} + +export interface InlineCatalogSchema { + catalogId: string; + components: Record>; +} + +export function extractCatalogComponentSchemas( + catalog?: unknown, +): InlineCatalogSchema { + const resolved = resolveCatalog(catalog); + const components: Record> = {}; + for (const [name, comp] of resolved.components) { + const zodSchema = toJsonSchema(comp.schema, { + target: "jsonSchema2019-09", + }) as { properties?: Record; required?: string[] }; + components[name] = { + allOf: [ + { $ref: "common_types.json#/$defs/ComponentCommon" }, + { + properties: { + component: { const: name }, + ...zodSchema.properties, + }, + required: ["component", ...(zodSchema.required ?? [])], + }, + ], + }; + } + return { catalogId: resolved.id, components }; +} diff --git a/packages/a2ui-renderer/src/web-components/define.ts b/packages/a2ui-renderer/src/web-components/define.ts new file mode 100644 index 00000000000..a63da4b61e3 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/define.ts @@ -0,0 +1,29 @@ +import { CpkA2uiBoundComponent } from "./bound-component"; +import { CpkA2uiNode } from "./node"; +import { CpkA2uiSurface } from "./surface"; + +export const CPK_A2UI_SURFACE_TAG = "cpk-a2ui-surface"; +export const CPK_A2UI_NODE_TAG = "cpk-a2ui-node"; +export const CPK_A2UI_BOUND_COMPONENT_TAG = "cpk-a2ui-bound-component"; + +export function defineA2UIWebComponents(): void { + if (!customElements.get(CPK_A2UI_BOUND_COMPONENT_TAG)) { + customElements.define(CPK_A2UI_BOUND_COMPONENT_TAG, CpkA2uiBoundComponent); + } + if (!customElements.get(CPK_A2UI_NODE_TAG)) { + customElements.define(CPK_A2UI_NODE_TAG, CpkA2uiNode); + } + if (!customElements.get(CPK_A2UI_SURFACE_TAG)) { + customElements.define(CPK_A2UI_SURFACE_TAG, CpkA2uiSurface); + } +} + +export { CpkA2uiSurface, CpkA2uiNode, CpkA2uiBoundComponent }; + +declare global { + interface HTMLElementTagNameMap { + "cpk-a2ui-surface": CpkA2uiSurface; + "cpk-a2ui-node": CpkA2uiNode; + "cpk-a2ui-bound-component": CpkA2uiBoundComponent; + } +} diff --git a/packages/a2ui-renderer/src/web-components/index.ts b/packages/a2ui-renderer/src/web-components/index.ts new file mode 100644 index 00000000000..5fae054645f --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/index.ts @@ -0,0 +1,62 @@ +export { + CPK_A2UI_BOUND_COMPONENT_TAG, + CPK_A2UI_NODE_TAG, + CPK_A2UI_SURFACE_TAG, + CpkA2uiBoundComponent, + CpkA2uiNode, + CpkA2uiSurface, + defineA2UIWebComponents, +} from "./define"; +export { createBinderlessLitComponent, createLitComponent } from "./adapter"; +export { basicCatalog, fullCatalog } from "./catalog/basic"; +export * as MinimalCatalog from "./catalog/minimal"; +export { minimalCatalog } from "./catalog/minimal"; +export { + AudioPlayer, + Button, + Card, + CheckBox, + ChoicePicker, + Column, + DateTimeInput, + Divider, + Icon, + Image, + List, + Modal, + Row, + Slider, + Tabs, + Text, + TextField, + Video, +} from "./catalog/basic"; +export { + A2UI_SCHEMA_CONTEXT_DESCRIPTION, + buildCatalogContextValue, + createA2UICatalog, + createCatalog, + extractA2UISchema, + extractCatalogComponentSchemas, + extractSchema, +} from "./create-catalog"; +export type { + A2UIComponentDefinition, + A2UIComponentMap, + CatalogComponentDefinition, + CatalogDefinitions, + CatalogRenderers, + ComponentRenderer, + RendererProps, +} from "./create-catalog"; +export type { + A2UISurfaceElement, + A2UINodeElement, + LitA2UIComponentProps, + LitComponentImplementation, + LitRenderable, + LitRendererFn, + PropsOf, +} from "./types"; +export type { A2UIClientEventMessage, Theme } from "../a2ui-types"; +export { Catalog } from "@a2ui/web_core/v0_9"; diff --git a/packages/a2ui-renderer/src/web-components/node.ts b/packages/a2ui-renderer/src/web-components/node.ts new file mode 100644 index 00000000000..58ecf43f087 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/node.ts @@ -0,0 +1,119 @@ +import { html, LitElement, nothing } from "lit"; +import { ComponentContext } from "@a2ui/web_core/v0_9"; +import type { SurfaceModel } from "@a2ui/web_core/v0_9"; +import type { LitComponentImplementation } from "./types"; + +type SubscriptionLike = { unsubscribe: () => void }; + +export class CpkA2uiNode extends LitElement { + static properties = { + surface: { attribute: false }, + componentId: { attribute: false }, + basePath: { attribute: false }, + }; + + surface?: SurfaceModel; + componentId = "root"; + basePath = "/"; + private subscriptions: SubscriptionLike[] = []; + private subscribedSurface?: SurfaceModel; + private subscribedComponentId?: string; + + protected createRenderRoot() { + return this; + } + + connectedCallback(): void { + super.connectedCallback(); + this.style.display = "contents"; + } + + disconnectedCallback(): void { + this.unsubscribe(); + super.disconnectedCallback(); + } + + private unsubscribe(): void { + this.subscriptions.forEach((sub) => sub.unsubscribe()); + this.subscriptions = []; + this.subscribedSurface = undefined; + this.subscribedComponentId = undefined; + } + + private ensureSubscriptions(): void { + if (!this.surface) return; + if ( + this.subscribedSurface === this.surface && + this.subscribedComponentId === this.componentId + ) { + return; + } + + this.unsubscribe(); + this.subscribedSurface = this.surface; + this.subscribedComponentId = this.componentId; + this.subscriptions.push( + this.surface.componentsModel.onCreated.subscribe((comp) => { + if (comp.id === this.componentId) this.requestUpdate(); + }), + this.surface.componentsModel.onDeleted.subscribe((id) => { + if (id === this.componentId) this.requestUpdate(); + }), + ); + } + + render() { + this.ensureSubscriptions(); + const surface = this.surface; + if (!surface) return nothing; + + const componentModel = surface.componentsModel.get(this.componentId); + if (!componentModel) { + return html` +
+ +
+ `; + } + + const compImpl = surface.catalog.components.get(componentModel.type); + if (!compImpl) { + return html` +
Unknown component: ${componentModel.type}
+ `; + } + + const context = new ComponentContext( + surface, + this.componentId, + this.basePath, + ); + const buildChild = (childId: string, specificPath?: string) => html` + + `; + + return compImpl.render(context, buildChild); + } +} diff --git a/packages/a2ui-renderer/src/web-components/surface.ts b/packages/a2ui-renderer/src/web-components/surface.ts new file mode 100644 index 00000000000..f2551415c39 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/surface.ts @@ -0,0 +1,410 @@ +import { html, LitElement, nothing } from "lit"; +import { MessageProcessor } from "@a2ui/web_core/v0_9"; +import type { A2uiMessage, Catalog } from "@a2ui/web_core/v0_9"; +import { basicCatalog } from "./catalog/basic"; +import type { LitComponentImplementation, LitRenderable } from "./types"; + +const DEFAULT_SURFACE_ID = "default"; +const BASIC_CATALOG_ID = + "https://a2ui.org/specification/v0_9/basic_catalog.json"; + +function isRecord(value: unknown): value is Record { + return Boolean(value && typeof value === "object" && !Array.isArray(value)); +} + +function getRecordProperty( + record: Record, + key: string, +): Record | undefined { + const value = record[key]; + return isRecord(value) ? value : undefined; +} + +function getStringProperty( + record: Record, + key: string, +): string | undefined { + const value = record[key]; + return typeof value === "string" && value.length > 0 ? value : undefined; +} + +function getBooleanProperty( + record: Record, + key: string, +): boolean | undefined { + const value = record[key]; + return typeof value === "boolean" ? value : undefined; +} + +function getSurfaceId(payload: Record | undefined): string { + return payload + ? (getStringProperty(payload, "surfaceId") ?? DEFAULT_SURFACE_ID) + : DEFAULT_SURFACE_ID; +} + +function getOperationSurfaceId(operation: A2uiMessage): string { + if ("createSurface" in operation) return operation.createSurface.surfaceId; + if ("updateComponents" in operation) + return operation.updateComponents.surfaceId; + if ("updateDataModel" in operation) + return operation.updateDataModel.surfaceId; + if ("deleteSurface" in operation) return operation.deleteSurface.surfaceId; + return DEFAULT_SURFACE_ID; +} + +function normalizeOperations( + operations: unknown[], + catalogId: string, +): A2uiMessage[] { + return operations.flatMap((operation) => { + if (!isRecord(operation)) return []; + + const createSurface = getRecordProperty(operation, "createSurface"); + if (createSurface) { + const message = { + version: "v0.9", + createSurface: { + surfaceId: getSurfaceId(createSurface), + catalogId: getStringProperty(createSurface, "catalogId") ?? catalogId, + theme: createSurface.theme ?? {}, + sendDataModel: getBooleanProperty(createSurface, "sendDataModel"), + }, + } satisfies A2uiMessage; + return [message]; + } + + const updateComponents = getRecordProperty(operation, "updateComponents"); + if (updateComponents) { + const components = updateComponents.components; + const message = { + version: "v0.9", + updateComponents: { + surfaceId: getSurfaceId(updateComponents), + components: Array.isArray(components) + ? components.map(normalizeComponent) + : [], + }, + } satisfies A2uiMessage; + return [message]; + } + + const updateDataModel = getRecordProperty(operation, "updateDataModel"); + if (updateDataModel) { + const message = { + version: "v0.9", + updateDataModel: { + surfaceId: getSurfaceId(updateDataModel), + path: getStringProperty(updateDataModel, "path") ?? "/", + value: updateDataModel.value, + }, + } satisfies A2uiMessage; + return [message]; + } + + const deleteSurface = getRecordProperty(operation, "deleteSurface"); + if (deleteSurface) { + const message = { + version: "v0.9", + deleteSurface: { + surfaceId: getSurfaceId(deleteSurface), + }, + } satisfies A2uiMessage; + return [message]; + } + + const beginRendering = getRecordProperty(operation, "beginRendering"); + if (beginRendering) { + const message = { + version: "v0.9", + createSurface: { + surfaceId: getSurfaceId(beginRendering), + catalogId, + theme: beginRendering.styles ?? {}, + sendDataModel: getBooleanProperty(beginRendering, "sendDataModel"), + }, + } satisfies A2uiMessage; + return [message]; + } + + const surfaceUpdate = getRecordProperty(operation, "surfaceUpdate"); + if (surfaceUpdate) { + const components = surfaceUpdate.components; + const message = { + version: "v0.9", + updateComponents: { + surfaceId: getSurfaceId(surfaceUpdate), + components: Array.isArray(components) + ? components.map(normalizeComponent) + : [], + }, + } satisfies A2uiMessage; + return [message]; + } + + const dataModelUpdate = getRecordProperty(operation, "dataModelUpdate"); + if (dataModelUpdate) { + const message = { + version: "v0.9", + updateDataModel: { + surfaceId: getSurfaceId(dataModelUpdate), + path: getStringProperty(dataModelUpdate, "path") ?? "/", + value: dataModelUpdate.value ?? dataModelUpdate.contents, + }, + } satisfies A2uiMessage; + return [message]; + } + + return []; + }); +} + +function normalizeComponent(component: unknown): unknown { + if (!component || typeof component !== "object") return component; + const record = component as { + id?: string; + component?: string | Record; + [key: string]: unknown; + }; + if (!record.component || typeof record.component === "string") return record; + + const entries = Object.entries(record.component); + if (entries.length !== 1) return record; + const [componentName, props] = entries[0]!; + return { + id: record.id, + component: componentName, + ...(props && typeof props === "object" ? props : {}), + }; +} + +function toClientEventMessage(action: unknown): Record { + const record = isRecord(action) ? action : {}; + return { + userAction: { + name: getStringProperty(record, "name") ?? "unknown", + surfaceId: getStringProperty(record, "surfaceId") ?? DEFAULT_SURFACE_ID, + sourceComponentId: getStringProperty(record, "sourceComponentId"), + context: isRecord(record.context) ? record.context : {}, + timestamp: + getStringProperty(record, "timestamp") ?? new Date().toISOString(), + dataContextPath: getStringProperty(record, "dataContextPath"), + }, + }; +} + +function defaultLoading() { + return html` +
+
+
+ + Generating UI... + +
+
+ ${[0.8, 0.6, 0.4].map( + (width, i) => html` +
+ `, + )} +
+ +
+ `; +} + +export class CpkA2uiSurface extends LitElement { + static properties = { + operations: { attribute: false }, + catalog: { attribute: false }, + theme: { attribute: false }, + surfaceId: { attribute: false }, + loadingComponent: { attribute: false }, + }; + + operations: unknown[] = []; + catalog?: Catalog; + theme?: Record; + surfaceId?: string; + loadingComponent?: () => LitRenderable; + + private processor: MessageProcessor | null = null; + private processorCatalog?: Catalog; + private lastOpsHash = ""; + private renderedSurfaceIds: string[] = []; + private error: string | null = null; + + protected createRenderRoot() { + return this; + } + + protected willUpdate(changed: Map) { + if (changed.has("catalog")) { + this.processor = null; + this.processorCatalog = undefined; + this.lastOpsHash = ""; + this.renderedSurfaceIds = []; + } + + if ( + changed.has("operations") || + changed.has("catalog") || + changed.has("theme") || + changed.has("surfaceId") + ) { + this.processOperations(); + } + } + + private getCatalog(): Catalog { + return this.catalog ?? basicCatalog; + } + + private getProcessor(): MessageProcessor { + const catalog = this.getCatalog(); + if (!this.processor || this.processorCatalog !== catalog) { + this.processorCatalog = catalog; + this.processor = new MessageProcessor([catalog], (action) => { + const message = toClientEventMessage(action); + this.dispatchEvent( + new CustomEvent("a2ui-action", { + detail: message, + bubbles: true, + composed: true, + }), + ); + }); + } + return this.processor; + } + + private processOperations(): void { + if (!Array.isArray(this.operations) || this.operations.length === 0) { + this.renderedSurfaceIds = []; + this.error = null; + return; + } + + const catalogId = this.getCatalog().id || BASIC_CATALOG_ID; + const normalized = normalizeOperations(this.operations, catalogId); + const hash = JSON.stringify({ + operations: normalized, + surfaceId: this.surfaceId, + theme: this.theme, + }); + if (hash === this.lastOpsHash) return; + this.lastOpsHash = hash; + + const grouped = new Map(); + for (const operation of normalized) { + const surfaceId = this.surfaceId ?? getOperationSurfaceId(operation); + if (!grouped.has(surfaceId)) grouped.set(surfaceId, []); + grouped.get(surfaceId)!.push(operation); + } + + const processor = this.getProcessor(); + try { + for (const [surfaceId, ops] of grouped) { + const existing = processor.model.getSurface(surfaceId); + let filtered = existing + ? ops.filter((op) => !("createSurface" in op)) + : ops; + + if (!existing && !filtered.some((op) => "createSurface" in op)) { + filtered = [ + { + version: "v0.9", + createSurface: { + surfaceId, + catalogId, + theme: this.theme ?? {}, + }, + }, + ...filtered, + ]; + } + processor.processMessages(filtered); + } + this.renderedSurfaceIds = [...grouped.keys()]; + this.error = null; + } catch (err) { + const message = err instanceof Error ? err.message : String(err); + this.error = message; + this.dispatchEvent( + new CustomEvent("a2ui-error", { + detail: { error: err, message }, + bubbles: true, + composed: true, + }), + ); + } + } + + render() { + if (this.error) { + return html` +
+ A2UI render error: ${this.error} +
+ `; + } + + if (!this.renderedSurfaceIds.length) { + return this.loadingComponent ? this.loadingComponent() : defaultLoading(); + } + + const processor = this.getProcessor(); + return html` +
+ ${this.renderedSurfaceIds.map((surfaceId) => { + const surface = processor.model.getSurface(surfaceId); + if (!surface) return nothing; + return html` +
+
+ +
+
+ `; + })} +
+ `; + } +} diff --git a/packages/a2ui-renderer/src/web-components/types.ts b/packages/a2ui-renderer/src/web-components/types.ts new file mode 100644 index 00000000000..a2d560e39f6 --- /dev/null +++ b/packages/a2ui-renderer/src/web-components/types.ts @@ -0,0 +1,84 @@ +import type { TemplateResult } from "lit"; +import type { + ComponentApi, + InferredComponentApiSchemaType, + ResolveA2uiProps, +} from "@a2ui/web_core/v0_9"; +import type { ComponentContext, SurfaceModel } from "@a2ui/web_core/v0_9"; +import type { z, ZodObject, ZodRawShape } from "zod"; + +export type LitRenderable = + | TemplateResult + | Node + | string + | number + | boolean + | null + | undefined + | LitRenderable[]; + +export interface LitComponentImplementation extends ComponentApi { + render: ( + context: ComponentContext, + buildChild: (id: string, basePath?: string) => LitRenderable, + ) => LitRenderable; +} + +export interface LitA2UIComponentProps { + props: T; + buildChild: (id: string, basePath?: string) => LitRenderable; + context: ComponentContext; + state: S; + requestUpdate: () => void; +} + +export type LitRendererFn = ( + componentProps: LitA2UIComponentProps< + ResolveA2uiProps>, + S + >, +) => LitRenderable; + +export interface RendererProps> { + props: T; + children: (id: string, basePath?: string) => LitRenderable; + dispatch?: (action: unknown) => void; +} + +export type ComponentRenderer> = ( + props: RendererProps, +) => LitRenderable; + +export interface CatalogComponentDefinition< + T extends ZodRawShape = ZodRawShape, +> { + props: ZodObject; + description?: string; +} + +export type CatalogDefinitions = Record< + string, + CatalogComponentDefinition +>; + +export type PropsOf = z.infer< + D[K]["props"] +>; + +export type CatalogRenderers = { + [K in keyof D]: ComponentRenderer>; +}; + +export interface A2UISurfaceElement extends HTMLElement { + operations: unknown[]; + catalog?: unknown; + theme?: Record; + surfaceId?: string; + loadingComponent?: unknown; +} + +export interface A2UINodeElement extends HTMLElement { + surface?: SurfaceModel; + componentId?: string; + basePath?: string; +} diff --git a/packages/a2ui-renderer/tsdown.config.ts b/packages/a2ui-renderer/tsdown.config.ts index e4bc5b04cf4..407a2f9e6e8 100644 --- a/packages/a2ui-renderer/tsdown.config.ts +++ b/packages/a2ui-renderer/tsdown.config.ts @@ -13,7 +13,21 @@ export default defineConfig([ const externalPkgs = ["react", "react-dom", "@a2ui/lit", "zod"]; return externalPkgs.some((pkg) => id === pkg || id.startsWith(pkg + "/")); }, - exports: true, + exports: false, + }, + { + entry: ["src/web-components/index.ts", "src/web-components/define.ts"], + format: ["esm", "cjs"], + dts: true, + sourcemap: true, + target: "es2022", + outDir: "dist/web-components", + unbundle: true, + external: (id) => { + const externalPkgs = ["lit", "@a2ui/web_core", "zod"]; + return externalPkgs.some((pkg) => id === pkg || id.startsWith(pkg + "/")); + }, + exports: false, }, { entry: ["src/index.ts"], diff --git a/packages/angular/ng-package.json b/packages/angular/ng-package.json index 5692ba746fc..22d1f6eb398 100644 --- a/packages/angular/ng-package.json +++ b/packages/angular/ng-package.json @@ -7,10 +7,13 @@ "allowedNonPeerDependencies": [ "@ag-ui/client", "@ag-ui/core", + "@copilotkit/a2ui-renderer", "@copilotkit/shared", "@copilotkit/core", + "@jetbrains/websandbox", "rxjs", "zod", + "zod-to-json-schema", "lucide-angular", "highlight.js", "katex", diff --git a/packages/angular/package.json b/packages/angular/package.json index d9c21224829..3dd91468f82 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -24,9 +24,9 @@ }, "scripts": { "build": "ng-packagr -p ng-package.json && npm run build:css", - "build:css": "tailwindcss -i ./src/styles/globals.css -o ./dist/styles.css && node scripts/scope-preflight.mjs ./dist/styles.css", + "build:css": "tailwindcss -i ./src/styles/globals.css -o ./src/styles/generated.css && node scripts/scope-preflight.mjs ./src/styles/generated.css && mkdir -p ./dist && cp ./src/styles/generated.css ./dist/styles.css", "dev": "concurrently \"ng-packagr -p ng-package.json --watch\" \"npm run dev:css\"", - "dev:css": "tailwindcss -i ./src/styles/globals.css -o ./dist/styles.css --watch", + "dev:css": "tailwindcss -i ./src/styles/globals.css -o ./src/styles/generated.css --watch", "check-types": "tsc --noEmit", "test": "vitest run", "test:watch": "vitest --watch", @@ -36,8 +36,10 @@ "dependencies": { "@ag-ui/client": "0.0.53", "@ag-ui/core": "0.0.53", + "@copilotkit/a2ui-renderer": "workspace:*", "@copilotkit/core": "workspace:*", "@copilotkit/shared": "workspace:*", + "@jetbrains/websandbox": "^1.1.3", "clsx": "^2.1.1", "highlight.js": "^11.11.1", "katex": "^0.16.22", @@ -45,7 +47,8 @@ "marked": "^16.2.0", "rxjs": "^7.8.1", "tailwind-merge": "^2.6.0", - "tslib": "^2.6.0" + "tslib": "^2.6.0", + "zod-to-json-schema": "^3.24.5" }, "devDependencies": { "@analogjs/vite-plugin-angular": "^1.20.2", diff --git a/packages/angular/src/lib/activity-renderer.ts b/packages/angular/src/lib/activity-renderer.ts new file mode 100644 index 00000000000..037728f73ce --- /dev/null +++ b/packages/angular/src/lib/activity-renderer.ts @@ -0,0 +1,28 @@ +import { Type, Signal } from "@angular/core"; +import type { AbstractAgent, ActivityMessage } from "@ag-ui/client"; + +export type AngularActivityContentParseResult = + | { success: true; data: T } + | { success: false; error?: unknown }; + +export interface AngularActivityContentSchema { + safeParse(content: unknown): AngularActivityContentParseResult; +} + +export interface ActivityRenderer { + activityType: Signal; + content: Signal; + message: Signal; + agent: Signal; +} + +export interface RenderActivityMessageConfig { + activityType: string; + agentId?: string; + content: AngularActivityContentSchema; + component: Type>; +} + +export const anyActivityContentSchema: AngularActivityContentSchema = { + safeParse: (content: unknown) => ({ success: true, data: content }), +}; diff --git a/packages/angular/src/lib/agent.ts b/packages/angular/src/lib/agent.ts index 154ab794d2a..16293e98dc2 100644 --- a/packages/angular/src/lib/agent.ts +++ b/packages/angular/src/lib/agent.ts @@ -20,6 +20,11 @@ import { * CopilotKitCore so the types stay in sync automatically. Injected * by the factory so that AgentStore stays decoupled from the concrete class. */ type SubscribeToAgentFn = CopilotKitCore["subscribeToAgentWithOptions"]; +type AgentWithHeaders = AbstractAgent & { headers?: Record }; + +function hasAgentHeaders(agent: AbstractAgent): agent is AgentWithHeaders { + return "headers" in agent; +} export class AgentStore { readonly #subscription?: { @@ -27,7 +32,7 @@ export class AgentStore { }; readonly #isRunning = signal(false); readonly #messages = signal([]); - readonly #state = signal(undefined); + readonly #state = signal(undefined); readonly agent: AbstractAgent; readonly isRunning = this.#isRunning.asReadonly(); @@ -124,7 +129,9 @@ export class CopilotkitAgentFactory { }); // Apply current headers so runs/connects inherit them - (provisional as any).headers = { ...headers }; + if (hasAgentHeaders(provisional)) { + provisional.headers = { ...headers }; + } lastAgentStore = new AgentStore( provisional, destroyRef, diff --git a/packages/angular/src/lib/chat-config.ts b/packages/angular/src/lib/chat-config.ts index 73e6a49ba66..0208d69ad50 100644 --- a/packages/angular/src/lib/chat-config.ts +++ b/packages/angular/src/lib/chat-config.ts @@ -18,6 +18,7 @@ export interface CopilotChatLabels { userMessageToolbarCopyMessageLabel: string; userMessageToolbarEditMessageLabel: string; chatDisclaimerText: string; + welcomeMessageText: string; } // Default labels constant @@ -39,6 +40,7 @@ export const COPILOT_CHAT_DEFAULT_LABELS: CopilotChatLabels = { userMessageToolbarEditMessageLabel: "Edit", chatDisclaimerText: "AI can make mistakes. Please verify important information.", + welcomeMessageText: "How can I help you today?", }; export const COPILOT_CHAT_LABELS = new InjectionToken( diff --git a/packages/angular/src/lib/chat-state.ts b/packages/angular/src/lib/chat-state.ts index 69d4d8dcabe..067634e27a0 100644 --- a/packages/angular/src/lib/chat-state.ts +++ b/packages/angular/src/lib/chat-state.ts @@ -1,11 +1,32 @@ -import { inject, Injectable, WritableSignal } from "@angular/core"; +import { + inject, + Injectable, + Signal, + signal, + WritableSignal, +} from "@angular/core"; +import type { Attachment } from "@copilotkit/shared"; +import type { Suggestion } from "@copilotkit/core"; @Injectable() export abstract class ChatState { abstract readonly inputValue: WritableSignal; + readonly attachments = signal([]); + readonly attachmentsEnabled: Signal = signal(false); + readonly attachmentsUploading: Signal = signal(false); + readonly dragOver = signal(false); + readonly suggestions = signal([]); + readonly suggestionsLoading = signal(false); abstract submitInput(value: string): void; abstract changeInput(value: string): void; + selectSuggestion(_suggestion: Suggestion, _index: number): void {} + + addFile(): void {} + removeAttachment(_id: string): void {} + handleDragOver(_event: DragEvent): void {} + handleDragLeave(_event: DragEvent): void {} + handleDrop(_event: DragEvent): void {} } export function injectChatState(): ChatState { diff --git a/packages/angular/src/lib/components/a2ui/__tests__/a2ui-activity-renderer.spec.ts b/packages/angular/src/lib/components/a2ui/__tests__/a2ui-activity-renderer.spec.ts new file mode 100644 index 00000000000..49f510589f6 --- /dev/null +++ b/packages/angular/src/lib/components/a2ui/__tests__/a2ui-activity-renderer.spec.ts @@ -0,0 +1,108 @@ +import { ComponentFixture, TestBed } from "@angular/core/testing"; +import { describe, expect, it, vi, beforeEach } from "vitest"; +import { CopilotA2UIActivityRenderer } from "../a2ui-activity-renderer"; +import { COPILOT_KIT_CONFIG } from "../../../config"; +import { CopilotKit } from "../../../copilotkit"; +import type { ActivityMessage } from "@ag-ui/core"; + +describe("CopilotA2UIActivityRenderer", () => { + let fixture: ComponentFixture; + let core: { + properties: Record; + setProperties: ReturnType; + runAgent: ReturnType; + }; + + const message: ActivityMessage = { + id: "activity-1", + role: "activity", + activityType: "a2ui-surface", + content: { + a2ui_operations: [{ version: "v0.9", updateComponents: {} }], + }, + }; + + beforeEach(() => { + core = { + properties: { existing: true }, + setProperties: vi.fn((next: Record) => { + core.properties = next; + }), + runAgent: vi.fn().mockResolvedValue(undefined), + }; + + TestBed.resetTestingModule(); + TestBed.configureTestingModule({ + imports: [CopilotA2UIActivityRenderer], + providers: [ + { + provide: COPILOT_KIT_CONFIG, + useValue: { + a2ui: { + theme: { color: "blue" }, + catalog: { id: "catalog" }, + loadingComponent: () => null, + }, + }, + }, + { + provide: CopilotKit, + useValue: { core }, + }, + ], + }); + + fixture = TestBed.createComponent(CopilotA2UIActivityRenderer); + fixture.componentRef.setInput("activityType", "a2ui-surface"); + fixture.componentRef.setInput("content", message.content); + fixture.componentRef.setInput("message", message); + fixture.componentRef.setInput("agent", { agentId: "demo-button" }); + }); + + it("lazy-loads web components and assigns complex values as properties", async () => { + fixture.detectChanges(); + await fixture.whenStable(); + await customElements.whenDefined("cpk-a2ui-surface"); + + const element = fixture.nativeElement.querySelector("cpk-a2ui-surface"); + const scrollWrapper = fixture.nativeElement.querySelector( + '[data-testid="a2ui-activity-surface-scroll"]', + ) as HTMLElement | null; + + expect(scrollWrapper).not.toBeNull(); + expect( + scrollWrapper?.classList.contains("copilot-a2ui-surface-scroll"), + ).toBe(true); + expect(element.operations).toEqual([ + { version: "v0.9", updateComponents: {} }, + ]); + expect(element.theme).toEqual({ color: "blue" }); + expect(element.catalog).toEqual({ id: "catalog" }); + expect(element.getAttribute("operations")).toBeNull(); + expect(element.getAttribute("theme")).toBeNull(); + expect(element.getAttribute("catalog")).toBeNull(); + }); + + it("bridges a2ui-action through core.runAgent and clears a2uiAction", async () => { + fixture.detectChanges(); + await fixture.whenStable(); + + const element = fixture.nativeElement.querySelector("cpk-a2ui-surface"); + element.dispatchEvent( + new CustomEvent("a2ui-action", { + detail: { userAction: { name: "confirm" } }, + bubbles: true, + }), + ); + await fixture.whenStable(); + + expect(core.setProperties).toHaveBeenNthCalledWith(1, { + existing: true, + a2uiAction: { userAction: { name: "confirm" } }, + }); + expect(core.runAgent).toHaveBeenCalledWith({ + agent: { agentId: "demo-button" }, + }); + expect(core.setProperties).toHaveBeenLastCalledWith({ existing: true }); + }); +}); diff --git a/packages/angular/src/lib/components/a2ui/__tests__/a2ui-tool-renderer.spec.ts b/packages/angular/src/lib/components/a2ui/__tests__/a2ui-tool-renderer.spec.ts new file mode 100644 index 00000000000..fcae5b48221 --- /dev/null +++ b/packages/angular/src/lib/components/a2ui/__tests__/a2ui-tool-renderer.spec.ts @@ -0,0 +1,268 @@ +import { ComponentFixture, TestBed } from "@angular/core/testing"; +import { beforeEach, describe, expect, it } from "vitest"; +import { + AGUI_SEND_STATE_SNAPSHOT_TOOL_NAME, + CopilotA2UIToolRenderer, + type RenderA2UIArgs, +} from "../a2ui-tool-renderer"; +import { COPILOT_KIT_CONFIG } from "../../../config"; +import type { AngularToolCall } from "../../../tools"; + +type A2UITestSurfaceElement = HTMLElement & { + operations?: Array>; + theme?: Record; +}; + +function setToolCall( + fixture: ComponentFixture, + toolCall: AngularToolCall, +): void { + fixture.componentRef.setInput("toolCall", toolCall); + fixture.detectChanges(); +} + +describe("CopilotA2UIToolRenderer", () => { + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.resetTestingModule(); + TestBed.configureTestingModule({ + imports: [CopilotA2UIToolRenderer], + providers: [ + { + provide: COPILOT_KIT_CONFIG, + useValue: { + a2ui: { + theme: { color: "blue" }, + }, + }, + }, + ], + }); + fixture = TestBed.createComponent(CopilotA2UIToolRenderer); + }); + + it("shows progress while render_a2ui is streaming sparse arguments", () => { + setToolCall(fixture, { + status: "in-progress", + args: { surfaceId: "dashboard" }, + result: undefined, + }); + + expect( + fixture.nativeElement.querySelector('[data-testid="a2ui-progress"]'), + ).toBeTruthy(); + expect(fixture.nativeElement.textContent).toContain("Building interface"); + }); + + it("hides progress once the streamed A2UI surface has enough components", () => { + setToolCall(fixture, { + status: "in-progress", + args: { + components: [ + { id: "root", component: "Column" }, + { id: "title", component: "Text" }, + { id: "card", component: "Card" }, + ], + }, + result: undefined, + }); + + expect( + fixture.nativeElement.querySelector('[data-testid="a2ui-progress"]'), + ).toBeNull(); + }); + + it("hides progress when the tool call is complete", () => { + setToolCall(fixture, { + status: "complete", + args: { surfaceId: "dashboard" }, + result: "done", + }); + + expect( + fixture.nativeElement.querySelector('[data-testid="a2ui-progress"]'), + ).toBeNull(); + }); + + it("renders complete A2UI snapshot tool results as a web component surface", async () => { + setToolCall(fixture, { + status: "complete", + args: { surfaceId: "a2ui-dashboard" }, + result: JSON.stringify({ + success: true, + snapshot: { + surfaceId: "a2ui-dashboard", + catalogId: "https://a2ui.org/specification/v0_9/basic_catalog.json", + data: { settings: { automation: true, performance: 72 } }, + components: [ + { id: "root", component: "Card", child: "title" }, + { + id: "title", + component: "Text", + text: "Operations Dashboard", + variant: "h2", + }, + ], + }, + }), + }); + await fixture.whenStable(); + await customElements.whenDefined("cpk-a2ui-surface"); + + const surface = fixture.nativeElement.querySelector( + "cpk-a2ui-surface", + ) as A2UITestSurfaceElement | null; + const scrollWrapper = fixture.nativeElement.querySelector( + '[data-testid="a2ui-tool-surface-scroll"]', + ) as HTMLElement | null; + + expect(surface).not.toBeNull(); + expect(scrollWrapper).not.toBeNull(); + expect( + scrollWrapper?.classList.contains("copilot-a2ui-surface-scroll"), + ).toBe(true); + expect( + fixture.nativeElement.querySelector('[data-testid="a2ui-progress"]'), + ).toBeNull(); + expect(surface?.operations).toEqual([ + { + version: "v0.9", + createSurface: { + surfaceId: "a2ui-dashboard", + catalogId: "https://a2ui.org/specification/v0_9/basic_catalog.json", + theme: {}, + }, + }, + { + version: "v0.9", + updateDataModel: { + surfaceId: "a2ui-dashboard", + path: "/", + value: { settings: { automation: true, performance: 72 } }, + }, + }, + { + version: "v0.9", + updateComponents: { + surfaceId: "a2ui-dashboard", + components: [ + { id: "root", component: "Card", child: "title" }, + { + id: "title", + component: "Text", + text: "Operations Dashboard", + variant: "h2", + }, + ], + }, + }, + ]); + expect(surface?.theme).toEqual({ color: "blue" }); + expect(surface?.getAttribute("operations")).toBeNull(); + }); + + it("renders AGUISendStateSnapshot results containing an A2UI snapshot", async () => { + setToolCall(fixture, { + name: AGUI_SEND_STATE_SNAPSHOT_TOOL_NAME, + status: "complete", + args: { + snapshot: { + surfaceId: "a2ui-dashboard", + components: [], + }, + }, + result: JSON.stringify({ + success: true, + snapshot: { + surfaceId: "a2ui-dashboard", + catalogId: "https://a2ui.org/specification/v0_9/basic_catalog.json", + data: { enabled: true }, + components: [ + { id: "root", component: "Card", child: "title" }, + { + id: "title", + component: "Text", + text: "Operations Dashboard", + variant: "h2", + }, + ], + }, + }), + }); + await fixture.whenStable(); + await customElements.whenDefined("cpk-a2ui-surface"); + + const surface = fixture.nativeElement.querySelector( + "cpk-a2ui-surface", + ) as A2UITestSurfaceElement | null; + + expect(surface).not.toBeNull(); + expect(surface?.operations?.[0]).toMatchObject({ + createSurface: { + surfaceId: "a2ui-dashboard", + }, + }); + expect(fixture.nativeElement.textContent).not.toContain( + "AGUISendStateSnapshot", + ); + }); + + it("keeps AGUISendStateSnapshot args in progress until the result is complete", async () => { + setToolCall(fixture, { + name: AGUI_SEND_STATE_SNAPSHOT_TOOL_NAME, + status: "in-progress", + args: { + snapshot: { + surfaceId: "a2ui-dashboard", + catalogId: "https://a2ui.org/specification/v0_9/basic_catalog.json", + components: [ + { id: "root", component: "Card", child: "title" }, + { + id: "title", + component: "Text", + text: "Streaming Dashboard", + variant: "h2", + }, + ], + }, + }, + result: undefined, + }); + + const surface = fixture.nativeElement.querySelector( + "cpk-a2ui-surface", + ) as A2UITestSurfaceElement | null; + + expect(surface).toBeNull(); + expect( + fixture.nativeElement.querySelector('[data-testid="a2ui-progress"]'), + ).toBeTruthy(); + }); + + it("renders complete A2UI operation tool results as a web component surface", async () => { + const operations = [ + { + version: "v0.9", + updateComponents: { + surfaceId: "dashboard", + components: [{ id: "root", component: "Text", text: "Dashboard" }], + }, + }, + ]; + + setToolCall(fixture, { + status: "complete", + args: { surfaceId: "dashboard" }, + result: JSON.stringify({ a2ui_operations: operations }), + }); + await fixture.whenStable(); + await customElements.whenDefined("cpk-a2ui-surface"); + + const surface = fixture.nativeElement.querySelector( + "cpk-a2ui-surface", + ) as A2UITestSurfaceElement | null; + + expect(surface?.operations).toEqual(operations); + }); +}); diff --git a/packages/angular/src/lib/components/a2ui/a2ui-activity-renderer.ts b/packages/angular/src/lib/components/a2ui/a2ui-activity-renderer.ts new file mode 100644 index 00000000000..6e2ba8680a2 --- /dev/null +++ b/packages/angular/src/lib/components/a2ui/a2ui-activity-renderer.ts @@ -0,0 +1,120 @@ +import { + CUSTOM_ELEMENTS_SCHEMA, + ChangeDetectionStrategy, + Component, + DestroyRef, + ElementRef, + effect, + inject, + input, + viewChild, +} from "@angular/core"; +import type { AbstractAgent, ActivityMessage } from "@ag-ui/client"; +import type { ActivityRenderer } from "../../activity-renderer"; +import { CopilotKit } from "../../copilotkit"; +import { injectCopilotKitConfig } from "../../config"; +import { + bridgeA2UIAction, + defineA2UIWebComponentsOnce, + getA2UIOperations, + logA2UIRenderError, + syncA2UISurface, + type A2UISurfaceElement, +} from "./a2ui-surface-host"; + +@Component({ + selector: "copilot-a2ui-activity-renderer", + standalone: true, + schemas: [CUSTOM_ELEMENTS_SCHEMA], + changeDetection: ChangeDetectionStrategy.OnPush, + template: ` +
+ +
+ `, + styles: [ + ` + :host { + display: block; + min-width: 0; + max-width: 100%; + } + + .copilot-a2ui-surface-scroll { + width: 100%; + max-width: 100%; + min-width: 0; + overflow-x: auto; + overflow-y: visible; + padding: 4px 0 8px; + } + + .copilot-a2ui-surface-scroll cpk-a2ui-surface { + display: block; + min-width: 100%; + } + `, + ], +}) +export class CopilotA2UIActivityRenderer implements ActivityRenderer { + readonly activityType = input.required(); + readonly content = input.required(); + readonly message = input.required(); + readonly agent = input(); + + private readonly surfaceRef = viewChild< + unknown, + ElementRef + >("surface", { read: ElementRef }); + + private readonly copilotKit = inject(CopilotKit); + private readonly config = injectCopilotKitConfig(); + private readonly destroyRef = inject(DestroyRef); + private destroyed = false; + + constructor() { + this.destroyRef.onDestroy(() => { + this.destroyed = true; + }); + + this.ensureDefined(); + + effect(() => { + this.content(); + const surface = this.surfaceRef(); + if (!surface) return; + this.syncSurface(surface.nativeElement); + }); + } + + private ensureDefined(): void { + void defineA2UIWebComponentsOnce().then(() => { + if (this.destroyed) return; + this.syncSurface(); + }); + } + + private syncSurface(element = this.surfaceRef()?.nativeElement): void { + if (this.destroyed) return; + syncA2UISurface(element, getA2UIOperations(this.content()), this.config); + } + + protected async handleAction(event: Event): Promise { + await bridgeA2UIAction( + this.copilotKit, + this.agent(), + (event as CustomEvent).detail, + ); + } + + protected handleError(event: Event): void { + logA2UIRenderError(event); + } +} diff --git a/packages/angular/src/lib/components/a2ui/a2ui-surface-host.ts b/packages/angular/src/lib/components/a2ui/a2ui-surface-host.ts new file mode 100644 index 00000000000..6cc0d9c3018 --- /dev/null +++ b/packages/angular/src/lib/components/a2ui/a2ui-surface-host.ts @@ -0,0 +1,90 @@ +import type { AbstractAgent } from "@ag-ui/client"; +import type { + Catalog, + LitComponentImplementation, + LitRenderable, + Theme, +} from "@copilotkit/a2ui-renderer/web-components"; +import type { A2UIConfig } from "../../config"; + +export const A2UI_OPERATIONS_KEY = "a2ui_operations"; + +export type A2UIOperation = Record; + +export type A2UISurfaceElement = HTMLElement & { + operations?: A2UIOperation[]; + catalog?: Catalog; + theme?: Theme; + loadingComponent?: () => LitRenderable; +}; + +export type A2UIConfigLike = { a2ui?: A2UIConfig }; + +type CopilotKitActionBridge = { + core: { + properties: Record; + setProperties(properties: Record): void; + runAgent(options: { agent: AbstractAgent }): Promise; + }; +}; + +let definePromise: Promise | undefined; + +export function defineA2UIWebComponentsOnce(): Promise { + definePromise ??= + import("@copilotkit/a2ui-renderer/web-components/define").then( + async (mod) => { + mod.defineA2UIWebComponents(); + await customElements.whenDefined("cpk-a2ui-surface"); + await Promise.resolve(); + }, + ); + return definePromise; +} + +export function isRecord(value: unknown): value is Record { + return Boolean(value && typeof value === "object" && !Array.isArray(value)); +} + +export function getA2UIOperations(content: unknown): A2UIOperation[] { + if (!isRecord(content)) return []; + + const operations = content[A2UI_OPERATIONS_KEY] ?? content.operations; + if (!Array.isArray(operations)) return []; + return operations.filter(isRecord); +} + +export function syncA2UISurface( + element: A2UISurfaceElement | null | undefined, + operations: A2UIOperation[], + config?: A2UIConfigLike | null, +): void { + if (!element) return; + element.operations = operations; + element.catalog = config?.a2ui?.catalog; + element.theme = config?.a2ui?.theme; + element.loadingComponent = config?.a2ui?.loadingComponent; +} + +export function logA2UIRenderError(event: Event): void { + console.warn("[A2UI Angular] render error:", (event as CustomEvent).detail); +} + +export async function bridgeA2UIAction( + copilotKit: CopilotKitActionBridge | null | undefined, + agent: AbstractAgent | undefined, + detail: unknown, +): Promise { + if (!copilotKit || !agent) return; + + try { + copilotKit.core.setProperties({ + ...copilotKit.core.properties, + a2uiAction: detail, + }); + await copilotKit.core.runAgent({ agent }); + } finally { + const { a2uiAction, ...rest } = copilotKit.core.properties; + copilotKit.core.setProperties(rest); + } +} diff --git a/packages/angular/src/lib/components/a2ui/a2ui-tool-operations.ts b/packages/angular/src/lib/components/a2ui/a2ui-tool-operations.ts new file mode 100644 index 00000000000..691b3529e8d --- /dev/null +++ b/packages/angular/src/lib/components/a2ui/a2ui-tool-operations.ts @@ -0,0 +1,115 @@ +import type { AngularToolCall } from "../../tools"; +import { + type A2UIOperation, + getA2UIOperations, + isRecord, +} from "./a2ui-surface-host"; +import { + AGUI_SEND_STATE_SNAPSHOT_TOOL_NAME, + type RenderA2UIArgs, +} from "./a2ui-tool-types"; + +const BASIC_CATALOG_ID = + "https://a2ui.org/specification/v0_9/basic_catalog.json"; + +type A2UISnapshot = { + surfaceId: string; + catalogId?: string; + data?: unknown; + components: unknown[]; +}; + +function parseJsonResult(result: string): unknown { + try { + return JSON.parse(result); + } catch { + return undefined; + } +} + +function getSnapshot(payload: unknown): A2UISnapshot | undefined { + if (!isRecord(payload)) return undefined; + const snapshot = isRecord(payload.snapshot) ? payload.snapshot : payload; + if ( + typeof snapshot.surfaceId !== "string" || + !Array.isArray(snapshot.components) + ) { + return undefined; + } + + return { + surfaceId: snapshot.surfaceId, + catalogId: + typeof snapshot.catalogId === "string" ? snapshot.catalogId : undefined, + data: snapshot.data, + components: snapshot.components, + }; +} + +function operationsFromSnapshot(snapshot: A2UISnapshot): A2UIOperation[] { + const operations: A2UIOperation[] = [ + { + version: "v0.9", + createSurface: { + surfaceId: snapshot.surfaceId, + catalogId: snapshot.catalogId ?? BASIC_CATALOG_ID, + theme: {}, + }, + }, + ]; + + if (snapshot.data !== undefined) { + operations.push({ + version: "v0.9", + updateDataModel: { + surfaceId: snapshot.surfaceId, + path: "/", + value: snapshot.data, + }, + }); + } + + operations.push({ + version: "v0.9", + updateComponents: { + surfaceId: snapshot.surfaceId, + components: snapshot.components, + }, + }); + + return operations; +} + +function getOperationsFromPayload(payload: unknown): A2UIOperation[] { + if (!isRecord(payload)) return []; + + const operations = getA2UIOperations(payload); + if (operations.length > 0) return operations; + + const snapshot = getSnapshot(payload); + return snapshot ? operationsFromSnapshot(snapshot) : []; +} + +function getOperationsFromResult(result: string | undefined): A2UIOperation[] { + if (!result) return []; + const payload = parseJsonResult(result); + return getOperationsFromPayload(payload); +} + +export function getRenderedA2UIOperations( + toolCall: AngularToolCall, +): A2UIOperation[] { + const resultOperations = getOperationsFromResult(toolCall.result); + if (resultOperations.length > 0) { + return resultOperations; + } + + if ( + toolCall.name === AGUI_SEND_STATE_SNAPSHOT_TOOL_NAME && + toolCall.status !== "complete" + ) { + return []; + } + + return getOperationsFromPayload(toolCall.args); +} diff --git a/packages/angular/src/lib/components/a2ui/a2ui-tool-renderer.ts b/packages/angular/src/lib/components/a2ui/a2ui-tool-renderer.ts new file mode 100644 index 00000000000..a0b1444596f --- /dev/null +++ b/packages/angular/src/lib/components/a2ui/a2ui-tool-renderer.ts @@ -0,0 +1,509 @@ +import { + CUSTOM_ELEMENTS_SCHEMA, + ChangeDetectionStrategy, + Component, + DestroyRef, + ElementRef, + computed, + effect, + inject, + input, + viewChild, +} from "@angular/core"; +import type { AbstractAgent } from "@ag-ui/client"; +import { COPILOT_KIT_CONFIG } from "../../config"; +import { CopilotKit } from "../../copilotkit"; +import type { AngularToolCall, ToolRenderer } from "../../tools"; +import { + bridgeA2UIAction, + defineA2UIWebComponentsOnce, + logA2UIRenderError, + syncA2UISurface, + type A2UISurfaceElement, +} from "./a2ui-surface-host"; +import { getRenderedA2UIOperations } from "./a2ui-tool-operations"; +export { + AGUI_SEND_STATE_SNAPSHOT_TOOL_NAME, + RENDER_A2UI_TOOL_NAME, + RenderA2UIArgsSchema, + type RenderA2UIArgs, +} from "./a2ui-tool-types"; +import { + AGUI_SEND_STATE_SNAPSHOT_TOOL_NAME, + type RenderA2UIArgs, +} from "./a2ui-tool-types"; + +type SkeletonRow = { + phase: number; + delay: number; + segments: Array< + | { type: "dot" } + | { type: "spacer" } + | { + type: "bar"; + width: number; + height: number; + background: string; + animationDelay?: number; + opacity?: number; + } + >; +}; + +@Component({ + selector: "copilot-a2ui-tool-renderer", + standalone: true, + schemas: [CUSTOM_ELEMENTS_SCHEMA], + changeDetection: ChangeDetectionStrategy.OnPush, + template: ` + @if (renderedOperations().length > 0) { +
+ +
+ } @else if (!isHidden()) { +
+
+
+
+ + + +
+ +
+ +
+ @for (row of rows; track $index) { +
+ @for (segment of row.segments; track $index) { + @switch (segment.type) { + @case ("dot") { + + } + @case ("spacer") { + + } + @case ("bar") { + + } + } + } +
+ } +
+ +
+
+ +
+ Building interface + @if (tokens() > 0) { + + ~{{ tokens().toLocaleString() }} tokens + + } +
+
+ } + `, + styles: [ + ` + :host { + display: block; + min-width: 0; + max-width: 100%; + } + + .copilot-a2ui-surface-scroll { + width: 100%; + max-width: 100%; + min-width: 0; + overflow-x: auto; + overflow-y: visible; + padding: 4px 0 8px; + } + + .copilot-a2ui-surface-scroll cpk-a2ui-surface { + display: block; + min-width: 100%; + } + + .copilot-a2ui-progress { + margin: 12px 0; + max-width: 320px; + } + + .copilot-a2ui-progress-card { + position: relative; + overflow: hidden; + border-radius: 12px; + border: 1px solid rgba(228, 228, 231, 0.8); + background-color: #fff; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); + padding: 16px 18px 14px; + } + + .copilot-a2ui-topbar, + .copilot-a2ui-row, + .copilot-a2ui-label, + .copilot-a2ui-dot-group { + display: flex; + align-items: center; + } + + .copilot-a2ui-topbar { + gap: 8px; + margin-bottom: 12px; + } + + .copilot-a2ui-dot-group, + .copilot-a2ui-row { + gap: 6px; + } + + .copilot-a2ui-lines { + display: grid; + gap: 7px; + } + + .copilot-a2ui-row { + transition-property: opacity; + transition-duration: 0.4s; + } + + .copilot-a2ui-dot { + width: 7px; + height: 7px; + border-radius: 9999px; + background-color: #d4d4d8; + flex-shrink: 0; + } + + .copilot-a2ui-spacer { + width: 12px; + flex: 0 0 12px; + } + + .copilot-a2ui-bar { + display: inline-flex; + border-radius: 9999px; + animation: copilot-a2ui-fade 2.4s ease-in-out infinite; + } + + .copilot-a2ui-shimmer { + pointer-events: none; + position: absolute; + inset: 0; + background: linear-gradient( + 105deg, + transparent 0%, + transparent 40%, + rgba(255, 255, 255, 0.6) 50%, + transparent 60%, + transparent 100% + ); + background-size: 250% 100%; + animation: copilot-a2ui-sweep 3s ease-in-out infinite; + } + + .copilot-a2ui-label { + justify-content: center; + gap: 8px; + margin-top: 8px; + font-size: 12px; + color: #a1a1aa; + } + + .copilot-a2ui-token-count { + font-size: 11px; + color: #d4d4d8; + font-variant-numeric: tabular-nums; + } + + @keyframes copilot-a2ui-fade { + 0%, + 100% { + opacity: 1; + } + 50% { + opacity: 0.5; + } + } + + @keyframes copilot-a2ui-sweep { + 0% { + background-position: 250% 0; + } + 100% { + background-position: -250% 0; + } + } + `, + ], +}) +export class CopilotA2UIToolRenderer implements ToolRenderer { + readonly toolCall = input.required>(); + readonly agent = input(); + + private readonly surfaceRef = viewChild< + unknown, + ElementRef + >("surface", { read: ElementRef }); + private readonly config = inject(COPILOT_KIT_CONFIG, { optional: true }); + private readonly copilotKit = inject(CopilotKit, { optional: true }); + private readonly destroyRef = inject(DestroyRef); + private destroyed = false; + + protected readonly renderedOperations = computed(() => + getRenderedA2UIOperations(this.toolCall()), + ); + + protected readonly tokens = computed(() => + Math.round(JSON.stringify(this.toolCall().args ?? {}).length / 4), + ); + + protected readonly phase = computed(() => { + const tokens = this.tokens(); + if (tokens < 50) return 0; + if (tokens < 200) return 1; + if (tokens < 400) return 2; + return 3; + }); + + protected readonly isHidden = computed(() => { + const toolCall = this.toolCall(); + if (toolCall.status === "complete") { + return this.renderedOperations().length === 0; + } + + if (toolCall.name === AGUI_SEND_STATE_SNAPSHOT_TOOL_NAME) { + return false; + } + + const { items, components } = toolCall.args; + if (Array.isArray(items) && items.length > 0) return true; + return Array.isArray(components) && components.length > 2; + }); + + constructor() { + this.destroyRef.onDestroy(() => { + this.destroyed = true; + }); + + this.ensureDefined(); + + effect(() => { + this.renderedOperations(); + const surface = this.surfaceRef(); + if (!surface) return; + this.syncSurface(surface.nativeElement); + }); + } + + private ensureDefined(): void { + void defineA2UIWebComponentsOnce().then(() => { + if (this.destroyed) return; + this.syncSurface(); + }); + } + + private syncSurface(element = this.surfaceRef()?.nativeElement): void { + if (this.destroyed) return; + syncA2UISurface(element, this.renderedOperations(), this.config); + } + + protected handleError(event: Event): void { + logA2UIRenderError(event); + } + + protected async handleAction(event: Event): Promise { + await bridgeA2UIAction( + this.copilotKit, + this.agent(), + (event as CustomEvent).detail, + ); + } + + protected readonly rows: SkeletonRow[] = [ + { + phase: 0, + delay: 0, + segments: [ + { + type: "bar", + width: 36, + height: 7, + background: "rgba(147,197,253,0.7)", + animationDelay: 0, + }, + { + type: "bar", + width: 80, + height: 7, + background: "rgba(219,234,254,0.8)", + animationDelay: 0.2, + }, + ], + }, + { + phase: 0, + delay: 0.1, + segments: [ + { type: "spacer" }, + { type: "dot" }, + { + type: "bar", + width: 100, + height: 7, + background: "rgba(24,24,27,0.2)", + animationDelay: 0.3, + }, + ], + }, + { + phase: 1, + delay: 0.15, + segments: [ + { type: "spacer" }, + { + type: "bar", + width: 48, + height: 7, + background: "rgba(24,24,27,0.15)", + animationDelay: 0.1, + }, + { + type: "bar", + width: 40, + height: 7, + background: "rgba(153,246,228,0.6)", + animationDelay: 0.5, + }, + { + type: "bar", + width: 56, + height: 7, + background: "rgba(147,197,253,0.6)", + animationDelay: 0.3, + }, + ], + }, + { + phase: 1, + delay: 0.2, + segments: [ + { type: "spacer" }, + { type: "dot" }, + { + type: "bar", + width: 60, + height: 7, + background: "rgba(24,24,27,0.15)", + animationDelay: 0.4, + }, + ], + }, + { + phase: 2, + delay: 0.25, + segments: [ + { + type: "bar", + width: 40, + height: 7, + background: "rgba(153,246,228,0.5)", + animationDelay: 0.2, + }, + { type: "dot" }, + { + type: "bar", + width: 48, + height: 7, + background: "rgba(24,24,27,0.15)", + animationDelay: 0.6, + }, + { + type: "bar", + width: 64, + height: 7, + background: "rgba(147,197,253,0.5)", + animationDelay: 0.1, + }, + ], + }, + { + phase: 2, + delay: 0.3, + segments: [ + { + type: "bar", + width: 36, + height: 7, + background: "rgba(147,197,253,0.6)", + animationDelay: 0.5, + }, + { + type: "bar", + width: 36, + height: 7, + background: "rgba(24,24,27,0.12)", + animationDelay: 0.7, + }, + ], + }, + { + phase: 3, + delay: 0.35, + segments: [ + { type: "dot" }, + { + type: "bar", + width: 44, + height: 7, + background: "rgba(24,24,27,0.18)", + animationDelay: 0.3, + }, + { type: "dot" }, + { + type: "bar", + width: 56, + height: 7, + background: "rgba(153,246,228,0.5)", + animationDelay: 0.8, + }, + { + type: "bar", + width: 48, + height: 7, + background: "rgba(147,197,253,0.5)", + animationDelay: 0.4, + }, + ], + }, + ]; +} diff --git a/packages/angular/src/lib/components/a2ui/a2ui-tool-types.ts b/packages/angular/src/lib/components/a2ui/a2ui-tool-types.ts new file mode 100644 index 00000000000..00641ffc17f --- /dev/null +++ b/packages/angular/src/lib/components/a2ui/a2ui-tool-types.ts @@ -0,0 +1,11 @@ +import { z } from "zod"; + +export const RENDER_A2UI_TOOL_NAME = "render_a2ui"; +export const AGUI_SEND_STATE_SNAPSHOT_TOOL_NAME = "AGUISendStateSnapshot"; +export const RenderA2UIArgsSchema = z.record(z.string(), z.unknown()); + +export interface RenderA2UIArgs extends Record { + items?: unknown[]; + components?: unknown[]; + snapshot?: unknown; +} diff --git a/packages/angular/src/lib/components/chat/__tests__/copilot-chat-input.component.spec.ts b/packages/angular/src/lib/components/chat/__tests__/copilot-chat-input.component.spec.ts index e09adfc211c..012a44e71c0 100644 --- a/packages/angular/src/lib/components/chat/__tests__/copilot-chat-input.component.spec.ts +++ b/packages/angular/src/lib/components/chat/__tests__/copilot-chat-input.component.spec.ts @@ -12,8 +12,11 @@ import { ChatState } from "../../../chat-state"; @Injectable() class ChatStateStub extends ChatState { inputValue = signal(""); + override readonly attachmentsEnabled = signal(false); + override readonly attachmentsUploading = signal(false); submitInput = vi.fn((value: string) => this.inputValue.set(value)); changeInput = vi.fn((value: string) => this.inputValue.set(value)); + addFile = vi.fn(); } describe("CopilotChatInput", () => { @@ -73,6 +76,39 @@ describe("CopilotChatInput", () => { expect(component.textAreaRef?.setValue).toHaveBeenCalledWith(""); }); + it("disables send while attachments are uploading", () => { + component.handleValueChange("Do it"); + chatState.attachmentsUploading.set(true); + + expect(component.sendButtonDisabled()).toBe(true); + + component.send(); + + expect(chatState.submitInput).not.toHaveBeenCalled(); + expect(component.textAreaRef?.setValue).not.toHaveBeenCalled(); + }); + + it("only opens the file picker when attachments are enabled", () => { + const addFileSpy = vi.fn(); + component.addFile.subscribe(addFileSpy); + + expect(component.addFileButtonDisabled()).toBe(true); + + component.handleAddFile(); + + expect(addFileSpy).not.toHaveBeenCalled(); + expect(chatState.addFile).not.toHaveBeenCalled(); + + chatState.attachmentsEnabled.set(true); + + expect(component.addFileButtonDisabled()).toBe(false); + + component.handleAddFile(); + + expect(addFileSpy).toHaveBeenCalledOnce(); + expect(chatState.addFile).toHaveBeenCalledOnce(); + }); + it("exposes tools menu through computed signal", () => { (component as any).toolsMenu = () => [ { label: "Example", onSelect: vi.fn() }, diff --git a/packages/angular/src/lib/components/chat/__tests__/copilot-chat-message-view.component.spec.ts b/packages/angular/src/lib/components/chat/__tests__/copilot-chat-message-view.component.spec.ts index fc498d6ba40..8ce09825218 100644 --- a/packages/angular/src/lib/components/chat/__tests__/copilot-chat-message-view.component.spec.ts +++ b/packages/angular/src/lib/components/chat/__tests__/copilot-chat-message-view.component.spec.ts @@ -1,8 +1,18 @@ -import { EnvironmentInjector, runInInjectionContext } from "@angular/core"; +import { + Component, + EnvironmentInjector, + runInInjectionContext, + signal, +} from "@angular/core"; import { TestBed } from "@angular/core/testing"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { CopilotChatMessageView } from "../copilot-chat-message-view"; -import type { Message } from "@ag-ui/core"; +import type { ActivityMessage, Message, ReasoningMessage } from "@ag-ui/core"; +import { CopilotKit } from "../../../copilotkit"; +import { z } from "zod"; +import { DummyActivityRenderer } from "./dummy-activity-renderer.component"; +import { FallbackActivityRenderer } from "./fallback-activity-renderer.component"; +import type { RenderActivityMessageConfig } from "../../../activity-renderer"; const assistantMessage: Message = { id: "assistant-1", @@ -16,21 +26,73 @@ const userMessage: Message = { content: "User prompt", }; +const reasoningMessage: ReasoningMessage = { + id: "reasoning-1", + role: "reasoning", + content: "**Designing dashboard layout** I should choose the right renderer.", +}; + +@Component({ + standalone: true, + imports: [CopilotChatMessageView], + template: ` + + `, +}) +class MessageViewHostComponent { + messages: Message[] = []; + isLoading = false; + showCursor = false; +} + +type MessageViewTestHarness = CopilotChatMessageView & { + messages: () => Message[]; + isLoading: () => boolean; + showCursor: () => boolean; + agentId: () => string | undefined; + resolveActivityRender: (message: ActivityMessage) => + | { + component: unknown; + inputs: unknown; + } + | undefined; +}; + describe("CopilotChatMessageView", () => { let injector: EnvironmentInjector; let component: CopilotChatMessageView; + let harness: MessageViewTestHarness; + const renderers = signal([]); + const getAgent = vi.fn(); beforeEach(() => { TestBed.resetTestingModule(); - TestBed.configureTestingModule({}); + renderers.set([]); + getAgent.mockReset(); + TestBed.configureTestingModule({ + providers: [ + { + provide: CopilotKit, + useValue: { + activityMessageRenderConfigs: renderers.asReadonly(), + getAgent, + }, + }, + ], + }); injector = TestBed.inject(EnvironmentInjector); component = runInInjectionContext( injector, () => new CopilotChatMessageView(), ); - (component as any).messages = () => [userMessage, assistantMessage]; - (component as any).isLoading = () => false; - (component as any).showCursor = () => false; + harness = component as unknown as MessageViewTestHarness; + harness.messages = () => [userMessage, assistantMessage]; + harness.isLoading = () => false; + harness.showCursor = () => false; }); it("merges assistant props for slot overrides", () => { @@ -52,4 +114,138 @@ describe("CopilotChatMessageView", () => { component.handleAssistantThumbsUp({ message: assistantMessage }); expect(thumbsUpSpy).toHaveBeenCalledWith({ message: assistantMessage }); }); + + it("resolves activity messages with registered renderers", () => { + const activityMessage: ActivityMessage = { + id: "activity-1", + role: "activity", + activityType: "a2ui-surface", + content: { operations: [] }, + }; + const agent = { agentId: "demo-button" }; + renderers.set([ + { + activityType: "a2ui-surface", + content: z.object({ operations: z.array(z.unknown()) }), + component: DummyActivityRenderer, + }, + ]); + getAgent.mockReturnValue(agent); + harness.agentId = () => "demo-button"; + + const result = harness.resolveActivityRender(activityMessage); + + expect(result?.component).toBe(DummyActivityRenderer); + expect(result?.inputs).toEqual({ + activityType: "a2ui-surface", + content: { operations: [] }, + message: activityMessage, + agent, + }); + }); + + it("prefers agent-scoped activity renderers before fallback renderers", () => { + const activityMessage: ActivityMessage = { + id: "activity-1", + role: "activity", + activityType: "a2ui-surface", + content: {}, + }; + renderers.set([ + { + activityType: "a2ui-surface", + content: z.object({}), + component: FallbackActivityRenderer, + }, + { + activityType: "a2ui-surface", + agentId: "demo-button", + content: z.object({}), + component: DummyActivityRenderer, + }, + ]); + harness.agentId = () => "demo-button"; + + const result = harness.resolveActivityRender(activityMessage); + + expect(result?.component).toBe(DummyActivityRenderer); + }); + + it("renders streaming reasoning messages", () => { + const fixture = TestBed.createComponent(MessageViewHostComponent); + fixture.componentInstance.messages = [userMessage, reasoningMessage]; + fixture.componentInstance.isLoading = true; + fixture.detectChanges(); + + const nativeElement: HTMLElement = fixture.nativeElement; + const reasoningElement = nativeElement.querySelector( + '[data-testid="copilot-chat-reasoning-message"]', + ); + expect(reasoningElement).not.toBeNull(); + expect(nativeElement.textContent).toContain("Thinking…"); + expect(nativeElement.textContent).toContain( + "I should choose the right renderer.", + ); + expect(reasoningElement?.querySelector("strong")?.textContent).toBe( + "Designing dashboard layout", + ); + const header = reasoningElement?.querySelector("button"); + const panel = reasoningElement?.querySelector(".cpk\\:grid"); + const chevron = reasoningElement?.querySelector("svg"); + expect(header?.getAttribute("aria-expanded")).toBe("true"); + expect(panel?.style.gridTemplateRows).toBe("1fr"); + expect(chevron).not.toBeNull(); + expect(chevron?.classList.contains("cpk:size-3.5")).toBe(true); + expect(chevron?.classList.contains("cpk:rotate-90")).toBe(true); + expect( + (reasoningElement?.textContent ?? "") + .split("\n") + .map((line) => line.trim()), + ).not.toContain(">"); + + header?.click(); + fixture.detectChanges(); + + expect(header?.getAttribute("aria-expanded")).toBe("false"); + expect(panel?.style.gridTemplateRows).toBe("0fr"); + expect(chevron?.classList.contains("cpk:rotate-90")).toBe(false); + }); + + it("renders completed reasoning collapsed by default", () => { + const fixture = TestBed.createComponent(MessageViewHostComponent); + fixture.componentInstance.messages = [userMessage, reasoningMessage]; + fixture.detectChanges(); + + const nativeElement: HTMLElement = fixture.nativeElement; + const reasoningElement = nativeElement.querySelector( + '[data-testid="copilot-chat-reasoning-message"]', + ); + const header = reasoningElement?.querySelector("button"); + const panel = reasoningElement?.querySelector(".cpk\\:grid"); + const chevron = reasoningElement?.querySelector("svg"); + + expect(nativeElement.textContent).toContain("Thought for a few seconds"); + expect(header?.getAttribute("aria-expanded")).toBe("false"); + expect(panel?.style.gridTemplateRows).toBe("0fr"); + expect(chevron?.classList.contains("cpk:size-3.5")).toBe(true); + + header?.click(); + fixture.detectChanges(); + + expect(header?.getAttribute("aria-expanded")).toBe("true"); + expect(panel?.style.gridTemplateRows).toBe("1fr"); + }); + + it("does not render the chat cursor while the latest message is reasoning", () => { + const fixture = TestBed.createComponent(MessageViewHostComponent); + fixture.componentInstance.messages = [reasoningMessage]; + fixture.componentInstance.isLoading = true; + fixture.componentInstance.showCursor = true; + fixture.detectChanges(); + + const nativeElement: HTMLElement = fixture.nativeElement; + expect( + nativeElement.querySelector("copilot-chat-message-view-cursor"), + ).toBeNull(); + }); }); diff --git a/packages/angular/src/lib/components/chat/__tests__/copilot-chat-user-message.component.spec.ts b/packages/angular/src/lib/components/chat/__tests__/copilot-chat-user-message.component.spec.ts index d54df620b15..0dbf5cf7de2 100644 --- a/packages/angular/src/lib/components/chat/__tests__/copilot-chat-user-message.component.spec.ts +++ b/packages/angular/src/lib/components/chat/__tests__/copilot-chat-user-message.component.spec.ts @@ -63,4 +63,37 @@ describe("CopilotChatUserMessage", () => { component.handleSwitchToBranch(payload); expect(switchSpy).toHaveBeenCalledWith(payload); }); + + it("splits multimodal user content into text and attachment previews", () => { + (component as any).message = () => ({ + id: "msg-2", + role: "user", + content: [ + { type: "text", text: "Please inspect this" }, + { + type: "image", + source: { + type: "data", + value: "data:image/png;base64,AAAA", + mimeType: "image/png", + }, + metadata: { filename: "chart.png" }, + }, + { + type: "document", + source: { + type: "data", + value: "data:application/pdf;base64,AAAA", + mimeType: "application/pdf", + }, + metadata: { filename: "report.pdf" }, + }, + ], + }); + + expect(component.flattenedContent()).toBe("Please inspect this"); + expect(component.mediaParts()).toHaveLength(2); + expect(component.filenameFor(component.mediaParts()[0])).toBe("chart.png"); + expect(component.filenameFor(component.mediaParts()[1])).toBe("report.pdf"); + }); }); diff --git a/packages/angular/src/lib/components/chat/__tests__/copilot-chat-view.component.spec.ts b/packages/angular/src/lib/components/chat/__tests__/copilot-chat-view.component.spec.ts new file mode 100644 index 00000000000..601d7649f1a --- /dev/null +++ b/packages/angular/src/lib/components/chat/__tests__/copilot-chat-view.component.spec.ts @@ -0,0 +1,119 @@ +import { Injectable, signal } from "@angular/core"; +import { TestBed } from "@angular/core/testing"; +import { beforeEach, describe, expect, it } from "vitest"; +import { CopilotChatView } from "../copilot-chat-view"; +import { ChatState } from "../../../chat-state"; +import { provideCopilotKit } from "../../../config"; +import type { Message } from "@ag-ui/core"; + +@Injectable() +class ChatStateStub extends ChatState { + readonly inputValue = signal(""); + + submitInput(value: string): void { + this.inputValue.set(value); + } + + changeInput(value: string): void { + this.inputValue.set(value); + } +} + +describe("CopilotChatView", () => { + beforeEach(() => { + TestBed.resetTestingModule(); + Object.defineProperty(HTMLElement.prototype, "scrollTo", { + configurable: true, + value: () => undefined, + }); + TestBed.configureTestingModule({ + imports: [CopilotChatView], + providers: [ + provideCopilotKit({ + licenseKey: "ck_pub_00000000000000000000000000000000", + }), + { provide: ChatState, useClass: ChatStateStub }, + ], + }); + }); + + it("renders the React-parity welcome screen for empty stateless chats", () => { + const fixture = TestBed.createComponent(CopilotChatView); + + fixture.componentRef.setInput("messages", []); + fixture.componentRef.setInput("hasExplicitThreadId", false); + fixture.detectChanges(); + + const element = fixture.nativeElement as HTMLElement; + expect( + element.querySelector('[data-testid="copilot-welcome-screen"]'), + ).not.toBeNull(); + expect(element.textContent).toContain("How can I help you today?"); + }); + + it("suppresses the welcome screen when a thread is explicitly selected", () => { + const fixture = TestBed.createComponent(CopilotChatView); + + fixture.componentRef.setInput("messages", []); + fixture.componentRef.setInput("hasExplicitThreadId", true); + fixture.detectChanges(); + + const element = fixture.nativeElement as HTMLElement; + expect( + element.querySelector('[data-testid="copilot-welcome-screen"]'), + ).toBeNull(); + }); + + it("sizes the default scroll view as the flex child that owns vertical scrolling", () => { + const fixture = TestBed.createComponent(CopilotChatView); + const messages: Message[] = [ + { + id: "user-1", + role: "user", + content: "Hello", + }, + ]; + + fixture.componentRef.setInput("messages", messages); + fixture.detectChanges(); + + const element = fixture.nativeElement as HTMLElement; + const scrollViewHost = element.querySelector( + "copilot-chat-view-scroll-view", + ); + const scrollContainer = scrollViewHost?.querySelector("div"); + + expect(scrollViewHost?.classList.contains("cpk:flex-1")).toBe(true); + expect(scrollViewHost?.classList.contains("cpk:min-h-0")).toBe(true); + expect(scrollContainer?.classList.contains("cpk:flex-1")).toBe(true); + expect(scrollContainer?.classList.contains("cpk:min-h-0")).toBe(true); + expect(scrollContainer?.classList.contains("cpk:overflow-y-auto")).toBe( + true, + ); + }); + + it("reserves React-parity bottom space in the scroll content", async () => { + const fixture = TestBed.createComponent(CopilotChatView); + const messages: Message[] = [ + { + id: "user-1", + role: "user", + content: "Hello", + }, + ]; + + fixture.componentRef.setInput("messages", messages); + fixture.detectChanges(); + await new Promise((resolve) => { + setTimeout(resolve, 0); + }); + fixture.detectChanges(); + + const element = fixture.nativeElement as HTMLElement; + const scrollContent = Array.from( + element.querySelectorAll("copilot-chat-view-scroll-view div"), + ).find((node) => node.style.paddingBottom !== ""); + + expect(scrollContent?.style.paddingBottom).toBe("32px"); + }); +}); diff --git a/packages/angular/src/lib/components/chat/__tests__/dummy-activity-renderer.component.ts b/packages/angular/src/lib/components/chat/__tests__/dummy-activity-renderer.component.ts new file mode 100644 index 00000000000..e32b696d3e2 --- /dev/null +++ b/packages/angular/src/lib/components/chat/__tests__/dummy-activity-renderer.component.ts @@ -0,0 +1,7 @@ +import { Component } from "@angular/core"; + +@Component({ + standalone: true, + template: "", +}) +export class DummyActivityRenderer {} diff --git a/packages/angular/src/lib/components/chat/__tests__/fallback-activity-renderer.component.ts b/packages/angular/src/lib/components/chat/__tests__/fallback-activity-renderer.component.ts new file mode 100644 index 00000000000..774cbf2ad74 --- /dev/null +++ b/packages/angular/src/lib/components/chat/__tests__/fallback-activity-renderer.component.ts @@ -0,0 +1,7 @@ +import { Component } from "@angular/core"; + +@Component({ + standalone: true, + template: "", +}) +export class FallbackActivityRenderer {} diff --git a/packages/angular/src/lib/components/chat/copilot-chat-agent-utils.ts b/packages/angular/src/lib/components/chat/copilot-chat-agent-utils.ts new file mode 100644 index 00000000000..6a24c56d31f --- /dev/null +++ b/packages/angular/src/lib/components/chat/copilot-chat-agent-utils.ts @@ -0,0 +1,5 @@ +import type { AbstractAgent } from "@ag-ui/client"; + +export function isCopilotKitAgent(agent: AbstractAgent): boolean { + return "isCopilotKitAgent" in agent; +} diff --git a/packages/angular/src/lib/components/chat/copilot-chat-assistant-message-buttons.ts b/packages/angular/src/lib/components/chat/copilot-chat-assistant-message-buttons.ts index 58e0d4dd74a..487a1c54708 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-assistant-message-buttons.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-assistant-message-buttons.ts @@ -53,28 +53,28 @@ export class CopilotChatAssistantMessageToolbarButton { computedClass = computed(() => { return cn( // Flex centering with gap (from React button base styles) - "inline-flex items-center justify-center gap-2", + "cpk:inline-flex cpk:items-center cpk:justify-center cpk:gap-2", // Cursor - "cursor-pointer", + "cpk:cursor-pointer", // Background and text - "p-0 text-[rgb(93,93,93)] hover:bg-[#E8E8E8]", + "cpk:p-0 cpk:text-[rgb(93,93,93)] cpk:hover:bg-[#E8E8E8]", // Dark mode - "dark:text-[rgb(243,243,243)] dark:hover:bg-[#303030]", + "cpk:dark:text-[rgb(243,243,243)] cpk:dark:hover:bg-[#303030]", // Shape and sizing - "h-8 w-8 rounded-md", + "cpk:h-8 cpk:w-8 cpk:rounded-md", // Interactions - "transition-colors", + "cpk:transition-colors", // Hover states - "hover:text-[rgb(93,93,93)]", - "dark:hover:text-[rgb(243,243,243)]", + "cpk:hover:text-[rgb(93,93,93)]", + "cpk:dark:hover:text-[rgb(243,243,243)]", // Focus states - "focus:outline-none focus:ring-2 focus:ring-offset-2", + "cpk:focus:outline-none cpk:focus:ring-2 cpk:focus:ring-offset-2", // Disabled state - "disabled:opacity-50 disabled:cursor-not-allowed", + "cpk:disabled:opacity-50 cpk:disabled:cursor-not-allowed", // SVG styling from React Button component - "[&_svg]:pointer-events-none [&_svg]:shrink-0", + "cpk:[&_svg]:pointer-events-none cpk:[&_svg]:shrink-0", // Ensure proper sizing - "shrink-0", + "cpk:shrink-0", this.inputClass(), ); }); diff --git a/packages/angular/src/lib/components/chat/copilot-chat-assistant-message-toolbar.ts b/packages/angular/src/lib/components/chat/copilot-chat-assistant-message-toolbar.ts index 8ffbf7aa244..d69e18c5b7f 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-assistant-message-toolbar.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-assistant-message-toolbar.ts @@ -13,7 +13,7 @@ export class CopilotChatAssistantMessageToolbar { readonly computedClass = computed(() => { return cn( - "w-full bg-transparent flex items-center -ml-[5px] -mt-[0px]", + "cpk:w-full cpk:bg-transparent cpk:flex cpk:items-center cpk:-ml-[5px] cpk:-mt-[0px]", this.inputClass(), ); }); diff --git a/packages/angular/src/lib/components/chat/copilot-chat-assistant-message.ts b/packages/angular/src/lib/components/chat/copilot-chat-assistant-message.ts index 3adeed60117..35cfe8d3dca 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-assistant-message.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-assistant-message.ts @@ -84,6 +84,7 @@ import { CopilotChatViewHandlers } from "./copilot-chat-view-handlers"; @@ -100,7 +101,7 @@ import { CopilotChatViewHandlers } from "./copilot-chat-view-handlers"; } @else {
-
+
@if (copyButtonTemplate || copyButtonComponent()) { (); readonly messages = input([]); + readonly agentId = input(); readonly isLoading = input(false); readonly additionalToolbarItems = input | undefined>( undefined, @@ -426,7 +428,7 @@ export class CopilotChatAssistantMessage { // Computed values computedClass = computed(() => { return cn( - "prose max-w-full break-words dark:prose-invert", + "cpk:prose cpk:max-w-full cpk:break-words cpk:dark:prose-invert", this.customClass(), ); }); @@ -464,9 +466,7 @@ export class CopilotChatAssistantMessage { // Return true if assistant message has non-empty text content hasMessageContent(): boolean { - const raw = (this.message()?.content ?? "") as any; - const content = typeof raw === "string" ? raw : String(raw ?? ""); - return content.trim().length > 0; + return (this.message()?.content ?? "").trim().length > 0; } toolCallsViewContext = computed(() => ({ diff --git a/packages/angular/src/lib/components/chat/copilot-chat-attachment-queue.ts b/packages/angular/src/lib/components/chat/copilot-chat-attachment-queue.ts new file mode 100644 index 00000000000..2212838ab38 --- /dev/null +++ b/packages/angular/src/lib/components/chat/copilot-chat-attachment-queue.ts @@ -0,0 +1,143 @@ +import { + ChangeDetectionStrategy, + Component, + computed, + input, + output, + ViewEncapsulation, +} from "@angular/core"; +import { CommonModule } from "@angular/common"; +import type { Attachment } from "@copilotkit/shared"; +import { + formatFileSize, + getDocumentIcon, + getSourceUrl, +} from "@copilotkit/shared"; +import { cn } from "../../utils"; + +@Component({ + selector: "copilot-chat-attachment-queue", + standalone: true, + imports: [CommonModule], + changeDetection: ChangeDetectionStrategy.OnPush, + encapsulation: ViewEncapsulation.None, + host: { "data-copilotkit": "" }, + template: ` + @if (attachments().length > 0) { +
+ @for (attachment of attachments(); track attachment.id) { +
+ @if (attachment.status === "uploading") { +
+
+
+ } + + @if (attachment.status === "uploading") { +
+ } @else { + @switch (attachment.type) { + @case ("image") { + + } + @case ("audio") { +
+ + @if (attachment.filename) { + + {{ attachment.filename }} + + } +
+ } + @case ("video") { +
+ @if (attachment.thumbnail) { + + } @else { + + } +
+ } + @default { +
+
+ {{ documentIcon(attachment) }} +
+
+ + {{ attachment.filename || "Document" }} + + @if (attachment.size != null) { + + {{ fileSize(attachment) }} + + } +
+
+ } + } + } + + +
+ } +
+ } + `, +}) +export class CopilotChatAttachmentQueue { + readonly attachments = input([]); + readonly inputClass = input(); + readonly removeAttachment = output(); + + readonly computedClass = computed(() => + cn( + "copilotKitAttachmentQueue cpk:flex cpk:flex-wrap cpk:gap-2 cpk:p-2", + this.inputClass(), + ), + ); + + itemClass(attachment: Attachment): string { + return cn( + "copilotKitAttachmentQueueItem", + `copilotKitAttachmentQueueItem--${attachment.type}`, + ); + } + + sourceUrl(attachment: Attachment): string { + return getSourceUrl(attachment.source); + } + + documentIcon(attachment: Attachment): string { + return getDocumentIcon(attachment.source.mimeType ?? ""); + } + + fileSize(attachment: Attachment): string { + return formatFileSize(attachment.size ?? 0); + } +} diff --git a/packages/angular/src/lib/components/chat/copilot-chat-attachment-renderer.ts b/packages/angular/src/lib/components/chat/copilot-chat-attachment-renderer.ts new file mode 100644 index 00000000000..a08c15620bd --- /dev/null +++ b/packages/angular/src/lib/components/chat/copilot-chat-attachment-renderer.ts @@ -0,0 +1,105 @@ +import { + ChangeDetectionStrategy, + Component, + computed, + input, + signal, + ViewEncapsulation, +} from "@angular/core"; +import { CommonModule } from "@angular/common"; +import type { + AttachmentModality, + InputContentSource, +} from "@copilotkit/shared"; +import { getDocumentIcon, getSourceUrl } from "@copilotkit/shared"; +import { cn } from "../../utils"; + +@Component({ + selector: "copilot-chat-attachment-renderer", + standalone: true, + imports: [CommonModule], + changeDetection: ChangeDetectionStrategy.OnPush, + encapsulation: ViewEncapsulation.None, + host: { "data-copilotkit": "" }, + template: ` + @switch (type()) { + @case ("image") { + @if (imageFailed()) { +
+
+ Failed to load image +
+
+ } @else { +
+ Image attachment +
+ } + } + @case ("audio") { +
+ + @if (filename()) { + + {{ filename() }} + + } +
+ } + @case ("video") { + + } + @default { +
+
{{ documentIcon() }}
+
+ + {{ filename() || source().mimeType || "Unknown type" }} + +
+
+ } + } + `, +}) +export class CopilotChatAttachmentRenderer { + readonly type = input.required(); + readonly source = input.required(); + readonly filename = input(); + readonly inputClass = input(); + + readonly imageFailed = signal(false); + readonly sourceUrl = computed(() => getSourceUrl(this.source())); + readonly documentIcon = computed(() => + getDocumentIcon(this.source().mimeType ?? ""), + ); + + readonly imageWrapperClass = computed(() => + cn("copilotKitImageRendering", this.inputClass()), + ); + readonly failedImageClass = computed(() => + cn( + "copilotKitImageRendering copilotKitImageRenderingError", + this.inputClass(), + ), + ); + readonly audioClass = computed(() => + cn("copilotKitAttachment copilotKitAttachmentAudio", this.inputClass()), + ); + readonly videoClass = computed(() => + cn("copilotKitAttachment copilotKitAttachmentVideo", this.inputClass()), + ); + readonly documentClass = computed(() => + cn("copilotKitAttachment copilotKitAttachmentDocument", this.inputClass()), + ); +} diff --git a/packages/angular/src/lib/components/chat/copilot-chat-audio-recorder.ts b/packages/angular/src/lib/components/chat/copilot-chat-audio-recorder.ts index 4dfb73c7c2f..e37c1a9a657 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-audio-recorder.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-audio-recorder.ts @@ -25,7 +25,7 @@ import {
@@ -51,7 +51,7 @@ export class CopilotChatAudioRecorder implements AfterViewInit, OnDestroy { // Computed values computedClass = computed(() => { - const baseClasses = "h-11 w-full px-5"; + const baseClasses = "cpk:h-11 cpk:w-full cpk:px-5"; return `${baseClasses} ${this.inputClass() || ""}`; }); diff --git a/packages/angular/src/lib/components/chat/copilot-chat-buttons.ts b/packages/angular/src/lib/components/chat/copilot-chat-buttons.ts index c4155ca7a48..899c4fbe20b 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-buttons.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-buttons.ts @@ -22,50 +22,50 @@ import { cn } from "../../utils"; // Base button classes matching React's button variants const buttonBase = cn( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium", - "transition-all disabled:pointer-events-none disabled:opacity-50", - "shrink-0 outline-none", - "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", + "cpk:inline-flex cpk:items-center cpk:justify-center cpk:gap-2 cpk:whitespace-nowrap cpk:rounded-md cpk:text-sm cpk:font-medium", + "cpk:transition-all cpk:disabled:pointer-events-none cpk:disabled:opacity-50", + "cpk:shrink-0 cpk:outline-none", + "cpk:focus-visible:border-ring cpk:focus-visible:ring-ring/50 cpk:focus-visible:ring-[3px]", ); const chatInputToolbarPrimary = cn( - "cursor-pointer", + "cpk:cursor-pointer", // Background and text - "bg-black text-white", + "cpk:bg-black cpk:text-white", // Dark mode - "dark:bg-white dark:text-black dark:focus-visible:outline-white", + "cpk:dark:bg-white cpk:dark:text-black cpk:dark:focus-visible:outline-white", // Shape and sizing - "rounded-full h-9 w-9", + "cpk:rounded-full cpk:h-9 cpk:w-9", // Interactions - "transition-colors", + "cpk:transition-colors", // Focus states - "focus:outline-none", + "cpk:focus:outline-none", // Hover states - "hover:opacity-70 disabled:hover:opacity-100", + "cpk:hover:opacity-70 cpk:disabled:hover:opacity-100", // Disabled states - "disabled:cursor-not-allowed disabled:bg-[#00000014] disabled:text-[rgb(13,13,13)]", - "dark:disabled:bg-[#454545] dark:disabled:text-white", + "cpk:disabled:cursor-not-allowed cpk:disabled:bg-[#00000014] cpk:disabled:text-[rgb(13,13,13)]", + "cpk:dark:disabled:bg-[#454545] cpk:dark:disabled:text-white", ); const chatInputToolbarSecondary = cn( - "cursor-pointer", + "cpk:cursor-pointer", // Background and text - "bg-transparent text-[#444444]", + "cpk:bg-transparent cpk:text-[#444444]", // Dark mode - "dark:text-white dark:border-[#404040]", + "cpk:dark:text-white cpk:dark:border-[#404040]", // Shape and sizing - "rounded-full h-9 w-9", + "cpk:rounded-full cpk:h-9 cpk:w-9", // Interactions - "transition-colors", + "cpk:transition-colors", // Focus states - "focus:outline-none", + "cpk:focus:outline-none", // Hover states - "hover:bg-[#f8f8f8] hover:text-[#333333]", - "dark:hover:bg-[#404040] dark:hover:text-[#FFFFFF]", + "cpk:hover:bg-[#f8f8f8] cpk:hover:text-[#333333]", + "cpk:dark:hover:bg-[#404040] cpk:dark:hover:text-[#FFFFFF]", // Disabled states - "disabled:cursor-not-allowed disabled:opacity-50", - "disabled:hover:bg-transparent disabled:hover:text-[#444444]", - "dark:disabled:hover:bg-transparent dark:disabled:hover:text-[#CCCCCC]", + "cpk:disabled:cursor-not-allowed cpk:disabled:opacity-50", + "cpk:disabled:hover:bg-transparent cpk:disabled:hover:text-[#444444]", + "cpk:dark:disabled:hover:bg-transparent cpk:dark:disabled:hover:text-[#CCCCCC]", ); @Component({ @@ -75,7 +75,7 @@ const chatInputToolbarSecondary = cn( changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: ` -
+
+
+ } + } + + +
@if (toolbarTemplate || toolbarComponent()) { + } @else { -
-
- @if (addFileButtonTemplate || addFileButtonComponent()) { - - - } @else { - - - } - @if (computedToolsMenu().length > 0) { - @if (toolsButtonTemplate || toolsButtonComponent()) { - - - } @else { - - - } - } - @if (additionalToolbarItems()) { - - } +
+
+
-
- @if (computedMode() === "transcribe") { - @if ( - cancelTranscribeButtonTemplate || cancelTranscribeButtonComponent() - ) { - - - } @else { - - - } - @if ( - finishTranscribeButtonTemplate || finishTranscribeButtonComponent() - ) { - - - } @else { - - - } - } @else { - @if ( - startTranscribeButtonTemplate || startTranscribeButtonComponent() - ) { - - - } @else { - - - } - - @if (sendButtonTemplate || sendButtonComponent()) { - - - } @else { -
- -
- } - } +
+ +
+
+
} @@ -250,7 +268,7 @@ export interface ToolbarContext { display: block; width: 100%; } - .shadow-\\[0_4px_4px_0_\\#0000000a\\2c_0_0_1px_0_\\#0000009e\\] { + .ck-input-shadow { box-shadow: 0 4px 4px 0 #0000000a, 0 0 1px 0 #0000009e !important; @@ -331,20 +349,20 @@ export class CopilotChatInput implements AfterViewInit, OnDestroy { readonly ArrowUpIcon = ArrowUp; readonly defaultButtonClass = cn( // Base button styles - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium", - "transition-all disabled:pointer-events-none disabled:opacity-50", - "shrink-0 outline-none", - "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", + "cpk:inline-flex cpk:items-center cpk:justify-center cpk:gap-2 cpk:whitespace-nowrap cpk:rounded-md cpk:text-sm cpk:font-medium", + "cpk:transition-all cpk:disabled:pointer-events-none cpk:disabled:opacity-50", + "cpk:shrink-0 cpk:outline-none", + "cpk:focus-visible:border-ring cpk:focus-visible:ring-ring/50 cpk:focus-visible:ring-[3px]", // chatInputToolbarPrimary variant - "cursor-pointer", - "bg-black text-white", - "dark:bg-white dark:text-black dark:focus-visible:outline-white", - "rounded-full h-9 w-9", - "transition-colors", - "focus:outline-none", - "hover:opacity-70 disabled:hover:opacity-100", - "disabled:cursor-not-allowed disabled:bg-[#00000014] disabled:text-[rgb(13,13,13)]", - "dark:disabled:bg-[#454545] dark:disabled:text-white", + "cpk:cursor-pointer", + "cpk:bg-black cpk:text-white", + "cpk:dark:bg-white cpk:dark:text-black cpk:dark:focus-visible:outline-white", + "cpk:rounded-full cpk:h-9 cpk:w-9", + "cpk:transition-colors", + "cpk:focus:outline-none", + "cpk:hover:opacity-70 cpk:disabled:hover:opacity-100", + "cpk:disabled:cursor-not-allowed cpk:disabled:bg-[#00000014] cpk:disabled:text-[rgb(13,13,13)]", + "cpk:dark:disabled:bg-[#454545] cpk:dark:disabled:text-white", ); // Services @@ -378,28 +396,49 @@ export class CopilotChatInput implements AfterViewInit, OnDestroy { const configValue = this.chatState.inputValue(); return customValue || configValue || ""; }); + addFileButtonDisabled = computed( + () => + this.computedMode() === "transcribe" || + !this.chatState.attachmentsEnabled(), + ); + addFileMenuAction = computed<(() => void) | undefined>(() => + this.chatState.attachmentsEnabled() + ? () => this.handleAddFile() + : undefined, + ); + sendButtonDisabled = computed( + () => + !this.computedValue().trim() || + this.computedMode() === "processing" || + this.chatState.attachmentsUploading(), + ); computedClass = computed(() => { const baseClasses = cn( + // V1 compatibility class for custom styling + "copilotKitInput", // Layout - "flex w-full flex-col items-center justify-center", + "cpk:flex cpk:w-full cpk:flex-col cpk:items-center cpk:justify-center", // Interaction - "cursor-text", + "cpk:cursor-text", // Overflow and clipping - "overflow-visible bg-clip-padding contain-inline-size", + "cpk:overflow-visible cpk:bg-clip-padding cpk:contain-inline-size", // Background - "bg-white dark:bg-[#303030]", + "cpk:bg-white cpk:dark:bg-[#303030]", // Visual effects - "shadow-[0_4px_4px_0_#0000000a,0_0_1px_0_#0000009e] rounded-[28px]", + "ck-input-shadow cpk:rounded-[28px]", ); return cn(baseClasses, this.customClass()); }); + defaultTextAreaClass = computed(() => + cn("cpk:w-full cpk:py-3 cpk:pr-5", this.textAreaClass()), + ); + // Context for slots (reactive via signals) sendButtonContext = computed(() => ({ send: () => this.send(), - disabled: - !this.computedValue().trim() || this.computedMode() === "processing", + disabled: this.sendButtonDisabled(), value: this.computedValue(), })); @@ -486,7 +525,7 @@ export class CopilotChatInput implements AfterViewInit, OnDestroy { send(): void { const trimmed = this.computedValue().trim(); - if (trimmed) { + if (trimmed && !this.chatState.attachmentsUploading()) { this.submitMessage.emit(trimmed); this.chatState.submitInput(trimmed); @@ -519,6 +558,10 @@ export class CopilotChatInput implements AfterViewInit, OnDestroy { } handleAddFile(): void { + if (this.addFileButtonDisabled()) { + return; + } this.addFile.emit(); + this.chatState.addFile(); } } diff --git a/packages/angular/src/lib/components/chat/copilot-chat-message-view-cursor.ts b/packages/angular/src/lib/components/chat/copilot-chat-message-view-cursor.ts index ce1b9570585..cfdc9fb8232 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-message-view-cursor.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-message-view-cursor.ts @@ -25,10 +25,10 @@ import { cn } from "../../utils"; export class CopilotChatMessageViewCursor { inputClass = input(); - // Computed class that matches React exactly: w-[11px] h-[11px] rounded-full bg-foreground animate-pulse-cursor ml-1 + // Computed class that matches React exactly, with the Angular package Tailwind prefix. computedClass = computed(() => cn( - "w-[11px] h-[11px] rounded-full bg-foreground animate-pulse-cursor ml-1", + "cpk:w-[11px] cpk:h-[11px] cpk:rounded-full cpk:bg-foreground cpk:animate-pulse-cursor cpk:ml-1", this.inputClass(), ), ); diff --git a/packages/angular/src/lib/components/chat/copilot-chat-message-view.ts b/packages/angular/src/lib/components/chat/copilot-chat-message-view.ts index 6af335b3ce0..da14d5f737d 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-message-view.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-message-view.ts @@ -8,14 +8,18 @@ import { ChangeDetectionStrategy, ViewEncapsulation, computed, + inject, } from "@angular/core"; -import { CommonModule } from "@angular/common"; +import { CommonModule, NgComponentOutlet } from "@angular/common"; import { CopilotSlot } from "../../slots/copilot-slot"; -import type { Message } from "@ag-ui/core"; +import type { ActivityMessage, Message, ReasoningMessage } from "@ag-ui/core"; import { CopilotChatAssistantMessage } from "./copilot-chat-assistant-message"; import { CopilotChatUserMessage } from "./copilot-chat-user-message"; import { CopilotChatMessageViewCursor } from "./copilot-chat-message-view-cursor"; +import { CopilotChatReasoningMessage } from "./copilot-chat-reasoning-message"; import { cn } from "../../utils"; +import { CopilotKit } from "../../copilotkit"; +import type { RenderActivityMessageConfig } from "../../activity-renderer"; /** * CopilotChatMessageView component - Angular port of the React component. @@ -28,9 +32,11 @@ import { cn } from "../../utils"; host: { "data-copilotkit": "" }, imports: [ CommonModule, + NgComponentOutlet, CopilotSlot, CopilotChatAssistantMessage, CopilotChatUserMessage, + CopilotChatReasoningMessage, CopilotChatMessageViewCursor, ], changeDetection: ChangeDetectionStrategy.OnPush, @@ -60,6 +66,7 @@ import { cn } from "../../utils"; } + } @else if (message && message.role === "reasoning") { + + } @else if (message && message.role === "activity") { + @let activityRender = resolveActivityRender(message); + @if (activityRender) { + + } } } @@ -112,6 +135,7 @@ export class CopilotChatMessageView { showCursor = input(false); isLoading = input(false); inputClass = input(); + agentId = input(); // Handler availability handled via DI service @@ -145,14 +169,23 @@ export class CopilotChatMessageView { protected readonly defaultAssistantComponent = CopilotChatAssistantMessage; protected readonly defaultUserComponent = CopilotChatUserMessage; protected readonly defaultCursorComponent = CopilotChatMessageViewCursor; + protected readonly copilotKit = inject(CopilotKit); // Derived values from inputs protected messagesValue = computed(() => this.messages()); - protected showCursorValue = computed(() => this.showCursor()); + protected showCursorValue = computed( + () => this.showCursor() && this.lastMessage()?.role !== "reasoning", + ); protected isLoadingValue = computed(() => this.isLoading()); + protected lastMessage = computed(() => { + const messages = this.messagesValue(); + return messages[messages.length - 1]; + }); // Computed class matching React: twMerge("flex flex-col", className) - computedClass = computed(() => cn("flex flex-col", this.inputClass())); + computedClass = computed(() => + cn("cpk:flex cpk:flex-col", this.inputClass()), + ); // Layout context for custom templates (render prop pattern) layoutContext = computed(() => ({ @@ -160,7 +193,12 @@ export class CopilotChatMessageView { messages: this.messagesValue(), showCursor: this.showCursorValue(), messageElements: this.messagesValue().filter( - (m) => m && (m.role === "assistant" || m.role === "user"), + (m) => + m && + (m.role === "assistant" || + m.role === "user" || + m.role === "reasoning" || + m.role === "activity"), ), })); @@ -192,11 +230,57 @@ export class CopilotChatMessageView { }; } + asReasoningMessage(message: Message): ReasoningMessage { + return message as ReasoningMessage; + } + // TrackBy function for performance optimization trackByMessageId(index: number, message: Message): string { return message?.id || `index-${index}`; } + private pickActivityRenderer( + message: ActivityMessage, + ): RenderActivityMessageConfig | undefined { + const agentId = this.agentId(); + const renderers = this.copilotKit.activityMessageRenderConfigs(); + const matches = renderers.filter( + (renderer) => renderer.activityType === message.activityType, + ); + + return ( + matches.find((candidate) => candidate.agentId === agentId) ?? + matches.find((candidate) => candidate.agentId === undefined) ?? + renderers.find((candidate) => candidate.activityType === "*") + ); + } + + protected resolveActivityRender(message: ActivityMessage) { + const renderer = this.pickActivityRenderer(message); + if (!renderer) return undefined; + + const parseResult = renderer.content.safeParse(message.content); + if (parseResult.success === false) { + console.warn( + `Failed to parse content for activity message '${message.activityType}':`, + parseResult.error, + ); + return undefined; + } + + const agentId = this.agentId(); + const agent = agentId ? this.copilotKit.getAgent(agentId) : undefined; + return { + component: renderer.component, + inputs: { + activityType: message.activityType, + content: parseResult.data, + message, + agent, + }, + }; + } + constructor() {} // Event handlers - just pass them through diff --git a/packages/angular/src/lib/components/chat/copilot-chat-reasoning-message-utils.ts b/packages/angular/src/lib/components/chat/copilot-chat-reasoning-message-utils.ts new file mode 100644 index 00000000000..98486977671 --- /dev/null +++ b/packages/angular/src/lib/components/chat/copilot-chat-reasoning-message-utils.ts @@ -0,0 +1,9 @@ +export function formatReasoningDuration(seconds: number): string { + if (seconds < 1) return "a few seconds"; + if (seconds < 60) return `${Math.round(seconds)} seconds`; + + const mins = Math.floor(seconds / 60); + const secs = Math.round(seconds % 60); + if (secs === 0) return `${mins} minute${mins > 1 ? "s" : ""}`; + return `${mins}m ${secs}s`; +} diff --git a/packages/angular/src/lib/components/chat/copilot-chat-reasoning-message.ts b/packages/angular/src/lib/components/chat/copilot-chat-reasoning-message.ts new file mode 100644 index 00000000000..fd3195549c5 --- /dev/null +++ b/packages/angular/src/lib/components/chat/copilot-chat-reasoning-message.ts @@ -0,0 +1,194 @@ +import { + ChangeDetectionStrategy, + Component, + DestroyRef, + computed, + effect, + inject, + input, + signal, +} from "@angular/core"; +import { CommonModule } from "@angular/common"; +import type { Message, ReasoningMessage } from "@ag-ui/core"; +import { cn } from "../../utils"; +import { CopilotChatAssistantMessageRenderer } from "./copilot-chat-assistant-message-renderer"; +import { formatReasoningDuration } from "./copilot-chat-reasoning-message-utils"; + +@Component({ + selector: "copilot-chat-reasoning-message", + standalone: true, + imports: [CommonModule, CopilotChatAssistantMessageRenderer], + changeDetection: ChangeDetectionStrategy.OnPush, + template: ` +
+ + + @if (hasContent() || isStreaming()) { +
+
+
+
+ + @if (isStreaming() && hasContent()) { + + + + } +
+
+
+
+ } +
+ `, +}) +export class CopilotChatReasoningMessage { + readonly message = input.required(); + readonly messages = input([]); + readonly isRunning = input(false); + readonly inputClass = input(); + + private readonly destroyRef = inject(DestroyRef); + private readonly elapsed = signal(0); + private readonly userToggled = signal(false); + protected readonly open = signal(false); + private startTime: number | undefined; + private timer: ReturnType | undefined; + + protected readonly isLatest = computed(() => { + const messages = this.messages(); + return messages[messages.length - 1]?.id === this.message().id; + }); + + protected readonly isStreaming = computed( + () => this.isRunning() && this.isLatest(), + ); + + protected readonly hasContent = computed( + () => (this.message().content?.length ?? 0) > 0, + ); + + protected readonly reasoningContent = computed( + () => this.message().content ?? "", + ); + + protected readonly label = computed(() => + this.isStreaming() + ? "Thinking…" + : `Thought for ${formatReasoningDuration(this.elapsed())}`, + ); + + protected readonly computedClass = computed(() => + cn("cpk:my-1", this.inputClass()), + ); + + protected readonly headerClass = computed(() => + cn( + "cpk:inline-flex cpk:items-center cpk:gap-1 cpk:py-1 cpk:text-sm cpk:text-muted-foreground cpk:transition-colors cpk:select-none", + this.hasContent() + ? "cpk:hover:text-foreground cpk:cursor-pointer" + : "cpk:cursor-default", + ), + ); + + protected readonly chevronClass = computed(() => + cn( + "cpk:size-3.5 cpk:shrink-0 cpk:transition-transform cpk:duration-200", + this.open() && "cpk:rotate-90", + ), + ); + + constructor() { + this.destroyRef.onDestroy(() => this.clearTimer()); + + effect((onCleanup) => { + const streaming = this.isStreaming(); + this.clearTimer(); + + if (streaming && this.startTime === undefined) { + this.startTime = Date.now(); + } + + if (!streaming && this.startTime !== undefined) { + this.elapsed.set((Date.now() - this.startTime) / 1000); + return; + } + + if (!streaming) return; + + this.timer = setInterval(() => { + if (this.startTime === undefined) return; + this.elapsed.set((Date.now() - this.startTime) / 1000); + }, 1000); + + onCleanup(() => this.clearTimer()); + }); + + effect(() => { + if (this.isStreaming()) { + this.userToggled.set(false); + this.open.set(true); + return; + } + + if (!this.userToggled()) { + this.open.set(false); + } + }); + } + + protected toggle(): void { + if (!this.hasContent()) return; + this.userToggled.set(true); + this.open.update((value) => !value); + } + + private clearTimer(): void { + if (this.timer === undefined) return; + clearInterval(this.timer); + this.timer = undefined; + } +} diff --git a/packages/angular/src/lib/components/chat/copilot-chat-suggestion-pill.ts b/packages/angular/src/lib/components/chat/copilot-chat-suggestion-pill.ts new file mode 100644 index 00000000000..26b35e31415 --- /dev/null +++ b/packages/angular/src/lib/components/chat/copilot-chat-suggestion-pill.ts @@ -0,0 +1,73 @@ +import { + ChangeDetectionStrategy, + Component, + ViewEncapsulation, + computed, + input, + output, +} from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { cn } from "../../utils"; + +const suggestionPillClass = cn( + "cpk:group cpk:inline-flex cpk:h-7 cpk:sm:h-8 cpk:items-center cpk:gap-1 cpk:sm:gap-1.5 cpk:rounded-full", + "cpk:border cpk:border-border/60 cpk:bg-background cpk:px-2.5 cpk:sm:px-3", + "cpk:text-[11px] cpk:sm:text-xs cpk:leading-none cpk:text-foreground cpk:transition-colors", + "cpk:cursor-pointer cpk:hover:bg-accent/60 cpk:hover:text-foreground", + "cpk:focus-visible:outline-none cpk:focus-visible:ring-2 cpk:focus-visible:ring-ring", + "cpk:focus-visible:ring-offset-2 cpk:focus-visible:ring-offset-background", + "cpk:disabled:cursor-not-allowed cpk:disabled:text-muted-foreground", + "cpk:disabled:hover:bg-background cpk:disabled:hover:text-muted-foreground", + "cpk:pointer-events-auto", +); + +@Component({ + standalone: true, + selector: "copilot-chat-suggestion-pill", + imports: [CommonModule], + changeDetection: ChangeDetectionStrategy.OnPush, + encapsulation: ViewEncapsulation.None, + host: { "data-copilotkit": "" }, + template: ` + + `, +}) +export class CopilotChatSuggestionPill { + readonly title = input(""); + readonly disabled = input(false); + readonly isLoading = input(false); + readonly inputClass = input(); + + readonly clicked = output(); + + protected readonly computedClass = computed(() => + cn(suggestionPillClass, this.inputClass()), + ); + + handleClick(): void { + if (this.disabled() || this.isLoading()) { + return; + } + + this.clicked.emit(); + } +} diff --git a/packages/angular/src/lib/components/chat/copilot-chat-suggestion-view.ts b/packages/angular/src/lib/components/chat/copilot-chat-suggestion-view.ts new file mode 100644 index 00000000000..a104bcdd7d1 --- /dev/null +++ b/packages/angular/src/lib/components/chat/copilot-chat-suggestion-view.ts @@ -0,0 +1,65 @@ +import { + ChangeDetectionStrategy, + Component, + ViewEncapsulation, + computed, + input, + output, +} from "@angular/core"; +import { CommonModule } from "@angular/common"; +import type { Suggestion } from "@copilotkit/core"; +import { cn } from "../../utils"; +import { CopilotChatSuggestionPill } from "./copilot-chat-suggestion-pill"; + +const suggestionViewClass = cn( + "cpk:flex cpk:flex-wrap cpk:items-center cpk:gap-1.5 cpk:sm:gap-2 cpk:pl-0 cpk:pr-4 cpk:sm:px-0", + "cpk:pointer-events-none", +); + +@Component({ + standalone: true, + selector: "copilot-chat-suggestion-view", + imports: [CommonModule, CopilotChatSuggestionPill], + changeDetection: ChangeDetectionStrategy.OnPush, + encapsulation: ViewEncapsulation.None, + host: { "data-copilotkit": "" }, + template: ` + @if (suggestions().length > 0) { +
+ @for (suggestion of suggestions(); track suggestion.message + $index) { + + } +
+ } + `, +}) +export class CopilotChatSuggestionView { + readonly suggestions = input([]); + readonly inputClass = input(); + + readonly selectSuggestion = output<{ + suggestion: Suggestion; + index: number; + }>(); + + protected readonly computedClass = computed(() => + cn(suggestionViewClass, this.inputClass()), + ); + + handleSelect(suggestion: Suggestion, index: number): void { + if (suggestion.isLoading) { + return; + } + + this.selectSuggestion.emit({ suggestion, index }); + } +} diff --git a/packages/angular/src/lib/components/chat/copilot-chat-textarea.ts b/packages/angular/src/lib/components/chat/copilot-chat-textarea.ts index 9a575a36b6e..8ac211d50f2 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-textarea.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-textarea.ts @@ -69,15 +69,15 @@ export class CopilotChatTextarea implements AfterViewInit { computedClass = computed(() => { const baseClasses = cn( // Layout and sizing - "w-full p-5 pb-0", + "cpk:w-full", // Behavior - "outline-none resize-none", + "cpk:outline-none cpk:resize-none", // Background - "bg-transparent", + "cpk:bg-transparent", // Typography - "antialiased font-regular leading-relaxed text-[16px]", + "cpk:antialiased cpk:font-regular cpk:leading-relaxed cpk:text-[16px]", // Placeholder styles - "placeholder:text-[#00000077] dark:placeholder:text-[#fffc]", + "cpk:placeholder:text-[#00000077] cpk:dark:placeholder:text-[#fffc]", ); return cn(baseClasses, this.inputClass()); }); diff --git a/packages/angular/src/lib/components/chat/copilot-chat-tool-calls-view.ts b/packages/angular/src/lib/components/chat/copilot-chat-tool-calls-view.ts index 080ecca720c..85d80eb4e01 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-tool-calls-view.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-tool-calls-view.ts @@ -12,6 +12,7 @@ import { RenderToolCalls } from "../../render-tool-calls"; @@ -20,5 +21,6 @@ import { RenderToolCalls } from "../../render-tool-calls"; export class CopilotChatToolCallsView { readonly message = input.required(); readonly messages = input.required(); + readonly agentId = input(); readonly isLoading = input(false); } diff --git a/packages/angular/src/lib/components/chat/copilot-chat-toolbar.ts b/packages/angular/src/lib/components/chat/copilot-chat-toolbar.ts index 88e5ff29989..9505063b5e0 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-toolbar.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-toolbar.ts @@ -27,7 +27,7 @@ export class CopilotChatToolbar { readonly computedClass = computed(() => { const baseClasses = - "w-full h-[60px] bg-transparent flex items-center justify-between"; + "cpk:w-full cpk:h-[60px] cpk:bg-transparent cpk:flex cpk:items-center cpk:justify-between"; return cn(baseClasses, this.inputClass()); }); } diff --git a/packages/angular/src/lib/components/chat/copilot-chat-tools-menu.ts b/packages/angular/src/lib/components/chat/copilot-chat-tools-menu.ts index 97eafa29afb..63f5c2ea538 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-tools-menu.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-tools-menu.ts @@ -8,92 +8,100 @@ import { import { CommonModule } from "@angular/common"; import { CdkMenuModule } from "@angular/cdk/menu"; import { OverlayModule } from "@angular/cdk/overlay"; -import { LucideAngularModule, Settings2, ChevronRight } from "lucide-angular"; +import { LucideAngularModule, Plus, ChevronRight } from "lucide-angular"; import type { ToolsMenuItem } from "./copilot-chat-input.types"; import { cn } from "../../utils"; import { injectChatLabels } from "../../chat-config"; +import { CopilotTooltip } from "../../directives/tooltip"; @Component({ selector: "copilot-chat-tools-menu", standalone: true, - imports: [CommonModule, CdkMenuModule, OverlayModule, LucideAngularModule], + imports: [ + CommonModule, + CdkMenuModule, + OverlayModule, + LucideAngularModule, + CopilotTooltip, + ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: ` - @if (hasItems()) { - + + +
- - {{ label }} - - - -
- @for (item of toolsMenu(); track $index) { - @if (item === "-") { -
- } @else if (isMenuItem(item)) { - @if (item.items && item.items.length > 0) { - -
+ } @else if (isMenuItem(item)) { + @if (item.items && item.items.length > 0) { + + + + + +
- {{ item.label }} - - - - - -
- @for (subItem of item.items; track $index) { - @if (subItem === "-") { -
- } @else if (isMenuItem(subItem)) { - - } + @for (subItem of item.items; track $index) { + @if (subItem === "-") { +
+ } @else if (isMenuItem(subItem)) { + } -
-
- } @else { - - - } + } +
+
+ } @else { + + } } -
-
- } + } +
+ `, styles: [ ` @@ -129,11 +137,12 @@ import { injectChatLabels } from "../../chat-config"; ], }) export class CopilotChatToolsMenu { - readonly Settings2Icon = Settings2; + readonly PlusIcon = Plus; readonly ChevronRightIcon = ChevronRight; inputToolsMenu = input<(ToolsMenuItem | "-")[] | undefined>(); inputDisabled = input(); inputClass = input(); + inputAddFile = input<(() => void) | undefined>(); private labels = injectChatLabels(); @@ -141,31 +150,68 @@ export class CopilotChatToolsMenu { toolsMenu = computed(() => this.inputToolsMenu() ?? []); disabled = computed(() => this.inputDisabled() ?? false); customClass = computed(() => this.inputClass()); + addFile = computed(() => this.inputAddFile()); + + menuItems = computed<(ToolsMenuItem | "-")[]>(() => { + const items: (ToolsMenuItem | "-")[] = []; + const addFile = this.addFile(); + + if (addFile) { + items.push({ + label: this.labels.chatInputToolbarAddButtonLabel, + action: addFile, + }); + } - hasItems = computed(() => this.toolsMenu().length > 0); + for (const item of this.toolsMenu()) { + if (item === "-") { + if (items.length === 0 || items[items.length - 1] === "-") { + continue; + } + items.push(item); + } else { + items.push(item); + } + } + + while (items.length > 0 && items[items.length - 1] === "-") { + items.pop(); + } + + return items; + }); + + hasItems = computed(() => this.menuItems().length > 0); + triggerDisabled = computed(() => this.disabled() || !this.hasItems()); readonly label = this.labels.chatInputToolbarToolsButtonLabel; + tooltipLabel = computed(() => + this.addFile() + ? this.labels.chatInputToolbarAddButtonLabel + : this.labels.chatInputToolbarToolsButtonLabel, + ); + buttonClass = computed(() => { const baseClasses = cn( // Base button styles - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full text-sm font-medium", - "transition-all disabled:pointer-events-none disabled:opacity-50", - "shrink-0 outline-none", - "focus-visible:ring-[3px]", + "cpk:inline-flex cpk:items-center cpk:justify-center cpk:gap-2 cpk:whitespace-nowrap cpk:rounded-full cpk:text-sm cpk:font-medium", + "cpk:transition-all cpk:disabled:pointer-events-none cpk:disabled:opacity-50", + "cpk:shrink-0 cpk:outline-none", + "cpk:focus-visible:ring-[3px]", // chatInputToolbarSecondary variant - "cursor-pointer", - "bg-transparent text-[#444444]", - "dark:text-white dark:border-[#404040]", - "transition-colors", - "focus:outline-none", - "hover:bg-[#f8f8f8] hover:text-[#333333]", - "dark:hover:bg-[#404040] dark:hover:text-[#FFFFFF]", - "disabled:cursor-not-allowed disabled:opacity-50", - "disabled:hover:bg-transparent disabled:hover:text-[#444444]", - "dark:disabled:hover:bg-transparent dark:disabled:hover:text-[#CCCCCC]", + "cpk:cursor-pointer", + "cpk:bg-transparent cpk:text-[#444444]", + "cpk:dark:text-white cpk:dark:border-[#404040]", + "cpk:transition-colors", + "cpk:focus:outline-none", + "cpk:hover:bg-[#f8f8f8] cpk:hover:text-[#333333]", + "cpk:dark:hover:bg-[#404040] cpk:dark:hover:text-[#FFFFFF]", + "cpk:disabled:cursor-not-allowed cpk:disabled:opacity-50", + "cpk:disabled:hover:bg-transparent cpk:disabled:hover:text-[#444444]", + "cpk:dark:disabled:hover:bg-transparent cpk:dark:disabled:hover:text-[#CCCCCC]", // Size - "h-9 px-3 gap-2 font-normal", + "cpk:h-9 cpk:w-9", ); return cn(baseClasses, this.customClass()); }); diff --git a/packages/angular/src/lib/components/chat/copilot-chat-user-message-branch-navigation.ts b/packages/angular/src/lib/components/chat/copilot-chat-user-message-branch-navigation.ts index 03a82d54642..2c56c15826c 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-user-message-branch-navigation.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-user-message-branch-navigation.ts @@ -29,7 +29,9 @@ import { UserMessage } from "@ag-ui/core"; > - + {{ currentBranch() + 1 }}/{{ numberOfBranches() }} @@ -50,19 +50,19 @@ export class CopilotChatViewScrollToBottomButton { get computedClass(): string { return cn( // Base button styles - "rounded-full w-10 h-10 p-0", + "cpk:rounded-full cpk:w-10 cpk:h-10 cpk:p-0", // Background colors - "bg-white dark:bg-gray-900", + "cpk:bg-white cpk:dark:bg-gray-900", // Border and shadow - "shadow-lg border border-gray-200 dark:border-gray-700", + "cpk:shadow-lg cpk:border cpk:border-gray-200 cpk:dark:border-gray-700", // Hover states - "hover:bg-gray-50 dark:hover:bg-gray-800", + "cpk:hover:bg-gray-50 cpk:dark:hover:bg-gray-800", // Layout - "flex items-center justify-center cursor-pointer", + "cpk:flex cpk:items-center cpk:justify-center cpk:cursor-pointer", // Transition - "transition-colors", + "cpk:transition-colors", // Focus states - "focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2", + "cpk:focus:outline-none cpk:focus-visible:ring-2 cpk:focus-visible:ring-offset-2", // Custom classes this.inputClass(), ); diff --git a/packages/angular/src/lib/components/chat/copilot-chat-view-scroll-view.ts b/packages/angular/src/lib/components/chat/copilot-chat-view-scroll-view.ts index 968c08f7fca..a247e146823 100644 --- a/packages/angular/src/lib/components/chat/copilot-chat-view-scroll-view.ts +++ b/packages/angular/src/lib/components/chat/copilot-chat-view-scroll-view.ts @@ -34,6 +34,7 @@ import { takeUntil } from "rxjs/operators"; @Component({ standalone: true, selector: "copilot-chat-view-scroll-view", + host: { class: "cpk:block cpk:flex-1 cpk:min-h-0" }, imports: [ CommonModule, ScrollingModule, @@ -48,25 +49,27 @@ import { takeUntil } from "rxjs/operators"; @if (!hasMounted()) {
-
+
} @else if (!autoScroll()) { -
+
-
+
-
+
@if (messageView()) { @if (showScrollButton() && !isResizing()) {
} @else { -
+
-
+
-
+
@if (messageView()) {