diff --git a/.claude/commands/pr-description.md b/.agents/skills/pr-description.md similarity index 91% rename from .claude/commands/pr-description.md rename to .agents/skills/pr-description.md index e99c92fe8..612846d4a 100644 --- a/.claude/commands/pr-description.md +++ b/.agents/skills/pr-description.md @@ -1,3 +1,8 @@ +--- +name: pr-description +description: Generate a pull request description for the current branch. +--- + Generate a pull request description for the current branch. 1. Run `git fetch --all` then `git log --oneline $(git merge-base HEAD origin/beta)..HEAD` to see all commits on this branch. diff --git a/.agents/skills/review-pr.md b/.agents/skills/review-pr.md new file mode 100644 index 000000000..21dc3c959 --- /dev/null +++ b/.agents/skills/review-pr.md @@ -0,0 +1,68 @@ +--- +name: review-pr +description: Review a pull request for functional concerns. Use as a guide for reviewers or submitters preparing a PR. +--- + +Review the specified pull request for **functional concerns only**. Ignore stylistic nits that don't impact correctness, performance, or maintainability. + +The PR number is provided as an argument. If no argument is given, check for an open PR on the current branch. + +## 1. Fetch PR context + +- Use `gh pr view --json title,body,headRefName,baseRefName,files,additions,deletions` to get metadata +- Use `gh pr diff ` to get the full diff +- Read every changed file in the diff — don't skim + +## 2. Review focus areas + +Evaluate the diff against these categories. Only report findings that have real functional impact: + +| Category | What to look for | +| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| **Logic bugs** | Off-by-one errors, incorrect conditions, unreachable code, silent failures | +| **Type safety** | Unsafe casts, type discrimination holes, `any` leaks, incorrect generics | +| **Regex** | ReDoS potential, incorrect escaping, wrong flags, missing anchors | +| **Performance** | Eager evaluation in hot paths, unnecessary allocations per-request, O(n^2) where O(n) is possible | +| **State & concurrency** | Module-scoped mutable state, race conditions, missing cleanup | +| **Code duplication** | Duplicated logic that will drift — only flag if >50 lines or contains branching logic | +| **API contracts** | Breaking changes not flagged, silent behavior changes, incorrect error handling at boundaries | +| **Security** | Injection vectors, credential handling, unsafe deserialization | +| **Test coverage alignment** | Do the tests actually exercise the code paths that changed, or are they testing something adjacent? | +| **Build artifact impact** | Does the change affect what ships in the npm package? New files in `src/` that aren't tree-shakeable, accidental inclusion of test files, etc. | + +## 3. Check contribution guidelines + +Read `CONTRIBUTING.md` at the repo root and verify the PR complies. Only check mechanical items: + +| Guideline | How to verify | +| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **PR title format** | Must be `type(scope): description`. Type must be one of: build, ci, docs, feat, fix, perf, refactor, style, test. Scope must be a supported package name from CONTRIBUTING.md. | +| **Tests included** | New functionality must have tests. Check the PR body's test plan for unchecked items. | +| **Squash merge** | Preferred unless the PR explains why commit boundaries matter. | +| **Related commits** | All commits should be related. Flag disjoint changes that should be separate PRs. | +| **Linked issues** | The PR should reference related issues. Flag if "Closes #" is empty. | +| **PR template** | Should include affected scope, test plan, and merge strategy recommendation. | + +## 4. Output format + +Write all findings in **second person**, actionable, ready to post as a review comment. + +- Code findings as a flat list grouped by severity +- For each finding: + - Name the category + - Reference the specific file and code + - Explain the functional impact + - Suggest a fix if non-obvious +- Mechanical guideline findings (title format, tests, linked issues, etc.) + +Skip categories with no findings. Do not pad the review with praise or filler. + +End with a verdict table: + +``` +| Area | Verdict | +|------|---------| +| ... | ... | +``` + +Keep verdicts to one phrase: "Clean", "Minor concern", "Should fix before merge", "Blocking". diff --git a/.dagger/src/index.ts b/.dagger/src/index.ts index 742cf6dc5..6d4a0faad 100644 --- a/.dagger/src/index.ts +++ b/.dagger/src/index.ts @@ -6,6 +6,21 @@ const DEFAULT_E2E_PROJECTS = @object() export class AnalogCi { + private withHeartbeatExec( + ctr: Container, + label: string, + command: string[], + ): Container { + return ctr.withExec([ + 'node', + 'tools/scripts/with-heartbeat.mts', + '--label', + label, + '--', + ...command, + ]); + } + private withNxCloudToken(ctr: Container, nxCloudToken?: Secret): Container { if (!nxCloudToken) { return ctr; @@ -15,7 +30,7 @@ export class AnalogCi { } private withPlaywrightChromium(ctr: Container): Container { - return ctr.withExec([ + return this.withHeartbeatExec(ctr, 'Playwright Chromium install', [ 'pnpm', 'exec', 'playwright', @@ -26,22 +41,27 @@ export class AnalogCi { } private withBuildAndVerify(ctr: Container): Container { - return ctr - .withExec([ - 'pnpm', - 'exec', - 'nx', - 'run-many', - '--target', - 'build', - '--all', - ]) - .withExec(['node', 'tools/scripts/verify-route-freshness.mts']) - .withExec(['pnpm', 'exec', 'nx', 'build-storybook', 'analog-app']); + return this.withHeartbeatExec( + this.withHeartbeatExec( + this.withHeartbeatExec(ctr, 'Nx build run-many', [ + 'pnpm', + 'exec', + 'nx', + 'run-many', + '--target', + 'build', + '--all', + ]), + 'Route freshness verification', + ['node', 'tools/scripts/verify-route-freshness.mts'], + ), + 'Storybook build', + ['pnpm', 'exec', 'nx', 'build-storybook', 'analog-app'], + ); } private withTestTargets(ctr: Container): Container { - return ctr.withExec([ + return this.withHeartbeatExec(ctr, 'Nx test run-many', [ 'pnpm', 'exec', 'nx', @@ -58,7 +78,7 @@ export class AnalogCi { ctr: Container, projects = DEFAULT_E2E_PROJECTS, ): Container { - return ctr.withExec([ + return this.withHeartbeatExec(ctr, `Nx e2e run-many (${projects})`, [ 'pnpm', 'exec', 'nx', @@ -150,7 +170,16 @@ export class AnalogCi { .withDirectory('/app', source) .withWorkdir('/app') .withMountedCache('/app/.nx/cache', nxCache) - .withExec(['pnpm', 'install', '--frozen-lockfile']); + .withExec([ + 'node', + 'tools/scripts/with-heartbeat.mts', + '--label', + 'pnpm install', + '--', + 'pnpm', + 'install', + '--frozen-lockfile', + ]); } /** Check formatting via the workspace prettier:check script. */ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6af89fc18..f509f321d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,6 +8,7 @@ env: NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} NX_VERBOSE_LOGGING: ${{ vars.NX_VERBOSE_LOGGING }} NX_ISOLATE_PLUGINS: 'false' + ANALOG_CI_HEARTBEAT_MS: '30000' concurrency: group: ${{ github.workflow }}-${{ github.event.number || github.sha }} @@ -127,11 +128,11 @@ jobs: cache: 'pnpm' cache-dependency-path: '**/pnpm-lock.yaml' - name: Install - run: pnpm install --frozen-lockfile --prefer-offline + run: node tools/scripts/with-heartbeat.mts --label "pnpm install" -- pnpm install --frozen-lockfile --prefer-offline - name: Build - run: pnpm build + run: node tools/scripts/with-heartbeat.mts --label "pnpm build" -- pnpm build - name: Verify route freshness - run: node tools/scripts/verify-route-freshness.mts + run: node tools/scripts/with-heartbeat.mts --label "verify route freshness" -- node tools/scripts/verify-route-freshness.mts build-native-windows: name: Native / Windows @@ -158,11 +159,11 @@ jobs: cache: 'pnpm' cache-dependency-path: '**/pnpm-lock.yaml' - name: Install - run: pnpm install --frozen-lockfile --prefer-offline + run: node tools/scripts/with-heartbeat.mts --label "pnpm install" -- pnpm install --frozen-lockfile --prefer-offline - name: Build - run: pnpm build + run: node tools/scripts/with-heartbeat.mts --label "pnpm build" -- pnpm build - name: Verify route freshness - run: node tools/scripts/verify-route-freshness.mts + run: node tools/scripts/with-heartbeat.mts --label "verify route freshness" -- node tools/scripts/verify-route-freshness.mts - name: Verify run: more dist\apps\blog-app\analog\public\index.html diff --git a/.gitignore b/.gitignore index ad4639911..18821f6cc 100644 --- a/.gitignore +++ b/.gitignore @@ -81,4 +81,5 @@ vitest.config.*.timestamp* gradle.properties .cursor .claude -gradle.properties \ No newline at end of file +gradle.properties +*.tsbuildinfo \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index ebb9a4602..ead7f019f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# [3.0.0-alpha.26](https://github.com/analogjs/analog/compare/v3.0.0-alpha.25...v3.0.0-alpha.26) (2026-04-06) + +### Features + +- **platform:** add generic style-pipeline hooks for community plugins ([#2245](https://github.com/analogjs/analog/issues/2245)) ([df8971a](https://github.com/analogjs/analog/commit/df8971a50be6f00715a01d3ee66ceea07e3c71f0)) + # [3.0.0-alpha.25](https://github.com/analogjs/analog/compare/v3.0.0-alpha.24...v3.0.0-alpha.25) (2026-04-05) ### Bug Fixes diff --git a/apps/analog-app-e2e/project.json b/apps/analog-app-e2e/project.json index 267323c25..453a4aff9 100644 --- a/apps/analog-app-e2e/project.json +++ b/apps/analog-app-e2e/project.json @@ -16,6 +16,13 @@ "cwd": "apps/analog-app-e2e", "command": "playwright test" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/analog-app-e2e", + "command": "pnpm exec tsgo -p tsconfig.json --noEmit" + } } } } diff --git a/apps/analog-app/.storybook/main.ts b/apps/analog-app/.storybook/main.ts index 6393eb94e..8a8f57cf6 100644 --- a/apps/analog-app/.storybook/main.ts +++ b/apps/analog-app/.storybook/main.ts @@ -1,6 +1,7 @@ import { fileURLToPath } from 'node:url'; import { dirname } from 'node:path'; import type { StorybookConfig } from '@analogjs/storybook-angular'; +import { mergeConfig } from 'vite'; const config: StorybookConfig = { stories: ['../src/**/*.@(mdx|stories.@(js|jsx|ts|tsx))'], @@ -12,6 +13,14 @@ const config: StorybookConfig = { name: getAbsolutePath('@analogjs/storybook-angular'), options: {}, }, + async viteFinal(config) { + return mergeConfig(config, { + build: { + // Lightning CSS currently chokes on the generated Storybook preview CSS. + cssMinify: 'esbuild', + }, + }); + }, }; export default config; diff --git a/apps/analog-app/package.json b/apps/analog-app/package.json index dc8b2824b..a1702bd87 100644 --- a/apps/analog-app/package.json +++ b/apps/analog-app/package.json @@ -4,12 +4,15 @@ "version": "0.0.0", "dependencies": { "@analogjs/content": "workspace:*", + "@analogjs/my-package": "workspace:*", "@analogjs/router": "workspace:*", + "@analogjs/top-bar": "workspace:*", "es-toolkit": "catalog:" }, "devDependencies": { "@analogjs/platform": "workspace:*", "@analogjs/storybook-angular": "workspace:*", - "@analogjs/vite-plugin-angular": "workspace:*" + "@analogjs/vite-plugin-angular": "workspace:*", + "@analogjs/vitest-angular": "workspace:*" } } diff --git a/apps/analog-app/project.json b/apps/analog-app/project.json index 8bad39168..5217ef58e 100644 --- a/apps/analog-app/project.json +++ b/apps/analog-app/project.json @@ -8,7 +8,12 @@ "targets": { "build": { "executor": "@nx/vite:build", - "dependsOn": ["platform:build", "router:build"], + "dependsOn": [ + "platform:build", + "router:build", + "my-package:build", + "top-bar:build" + ], "outputs": [ "{options.outputPath}", "{workspaceRoot}/dist/apps/analog-app/.nitro", @@ -54,7 +59,9 @@ "options": { "cwd": "dist/apps/analog-app/analog", "command": "node --unhandled-rejections=throw ./server/index.mjs", - "env": { "PORT": "43000" } + "env": { + "PORT": "43000" + } }, "dependsOn": ["build"] }, @@ -98,6 +105,13 @@ "loadPaths": [] } } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/analog-app", + "command": "pnpm exec tsgo -p tsconfig.app.json --noEmit" + } } } } diff --git a/apps/analog-app/src/app/pages/package.page.ts b/apps/analog-app/src/app/pages/package.page.ts index 1eff37db2..a5b0ea35d 100644 --- a/apps/analog-app/src/app/pages/package.page.ts +++ b/apps/analog-app/src/app/pages/package.page.ts @@ -1,5 +1,5 @@ import { Component } from '@angular/core'; -import { MyPackage } from 'my-package'; +import { MyPackage } from '@analogjs/my-package'; @Component({ imports: [MyPackage], diff --git a/apps/analog-app/src/main.server.ts b/apps/analog-app/src/main.server.ts index 3715f0e1e..ab8bbab79 100644 --- a/apps/analog-app/src/main.server.ts +++ b/apps/analog-app/src/main.server.ts @@ -1,8 +1,34 @@ import 'zone.js/node'; +import '@angular/compiler'; import '@angular/platform-server/init'; -import { render } from '@analogjs/router/server'; +import { enableProdMode } from '@angular/core'; +import { + bootstrapApplication, + type BootstrapContext, +} from '@angular/platform-browser'; +import { renderApplication } from '@angular/platform-server'; +import { provideServerContext } from '@analogjs/router/server'; +import type { ServerContext } from '@analogjs/router/tokens'; import { config } from './app/app.config.server'; import { AppComponent } from './app/app.component'; -export default render(AppComponent, config); +if (import.meta.env.PROD) { + enableProdMode(); +} + +export function bootstrap(context?: BootstrapContext) { + return bootstrapApplication(AppComponent, config, context); +} + +export default async function render( + url: string, + document: string, + serverContext: ServerContext, +) { + return renderApplication(bootstrap, { + document, + url, + platformProviders: [provideServerContext(serverContext)], + }); +} diff --git a/apps/analog-app/src/stories/button.component.ts b/apps/analog-app/src/stories/button.component.ts index dfbb0a8ad..f7baa667f 100644 --- a/apps/analog-app/src/stories/button.component.ts +++ b/apps/analog-app/src/stories/button.component.ts @@ -13,7 +13,46 @@ import { Component, Input, Output, EventEmitter } from '@angular/core'; > {{ label }} `, - styleUrls: ['./button.css'], + styles: [ + ` + .storybook-button { + font-family: + 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-weight: 700; + border: 0; + border-radius: 3em; + cursor: pointer; + display: inline-block; + line-height: 1; + } + + .storybook-button--primary { + color: white; + background-color: #1ea7fd; + } + + .storybook-button--secondary { + color: #333; + background-color: transparent; + box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset; + } + + .storybook-button--small { + font-size: 12px; + padding: 10px 16px; + } + + .storybook-button--medium { + font-size: 14px; + padding: 11px 20px; + } + + .storybook-button--large { + font-size: 16px; + padding: 12px 24px; + } + `, + ], }) export class ButtonComponent { /** diff --git a/apps/analog-app/src/stories/button.css b/apps/analog-app/src/stories/button.css deleted file mode 100644 index dc91dc763..000000000 --- a/apps/analog-app/src/stories/button.css +++ /dev/null @@ -1,30 +0,0 @@ -.storybook-button { - font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-weight: 700; - border: 0; - border-radius: 3em; - cursor: pointer; - display: inline-block; - line-height: 1; -} -.storybook-button--primary { - color: white; - background-color: #1ea7fd; -} -.storybook-button--secondary { - color: #333; - background-color: transparent; - box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset; -} -.storybook-button--small { - font-size: 12px; - padding: 10px 16px; -} -.storybook-button--medium { - font-size: 14px; - padding: 11px 20px; -} -.storybook-button--large { - font-size: 16px; - padding: 12px 24px; -} diff --git a/apps/analog-app/src/stories/header.component.ts b/apps/analog-app/src/stories/header.component.ts index ecfe9bb73..3b4e79e7b 100644 --- a/apps/analog-app/src/stories/header.component.ts +++ b/apps/analog-app/src/stories/header.component.ts @@ -67,7 +67,43 @@ import type { User } from './user'; `, - styleUrls: ['./header.css'], + styles: [ + ` + .storybook-header { + font-family: + 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); + padding: 15px 20px; + display: flex; + align-items: center; + justify-content: space-between; + } + + .storybook-header svg { + display: inline-block; + vertical-align: top; + } + + .storybook-header h1 { + font-weight: 700; + font-size: 20px; + line-height: 1; + margin: 6px 0 6px 10px; + display: inline-block; + vertical-align: top; + } + + .storybook-header button + button { + margin-left: 10px; + } + + .storybook-header .welcome { + color: #333; + font-size: 14px; + margin-right: 10px; + } + `, + ], }) export class HeaderComponent { @Input() diff --git a/apps/analog-app/src/stories/header.css b/apps/analog-app/src/stories/header.css deleted file mode 100644 index d9a70528a..000000000 --- a/apps/analog-app/src/stories/header.css +++ /dev/null @@ -1,32 +0,0 @@ -.storybook-header { - font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - padding: 15px 20px; - display: flex; - align-items: center; - justify-content: space-between; -} - -.storybook-header svg { - display: inline-block; - vertical-align: top; -} - -.storybook-header h1 { - font-weight: 700; - font-size: 20px; - line-height: 1; - margin: 6px 0 6px 10px; - display: inline-block; - vertical-align: top; -} - -.storybook-header button + button { - margin-left: 10px; -} - -.storybook-header .welcome { - color: #333; - font-size: 14px; - margin-right: 10px; -} diff --git a/apps/analog-app/src/stories/page.component.ts b/apps/analog-app/src/stories/page.component.ts index bd0fb74ec..775b0eb65 100644 --- a/apps/analog-app/src/stories/page.component.ts +++ b/apps/analog-app/src/stories/page.component.ts @@ -81,7 +81,80 @@ import type { User } from './user'; `, - styleUrls: ['./page.css'], + styles: [ + ` + .storybook-page { + font-family: + 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 24px; + padding: 48px 20px; + margin: 0 auto; + max-width: 600px; + color: #333; + } + + .storybook-page h2 { + font-weight: 700; + font-size: 32px; + line-height: 1; + margin: 0 0 4px; + display: inline-block; + vertical-align: top; + } + + .storybook-page p { + margin: 1em 0; + } + + .storybook-page a { + text-decoration: none; + color: #1ea7fd; + } + + .storybook-page ul { + padding-left: 30px; + margin: 1em 0; + } + + .storybook-page li { + margin-bottom: 8px; + } + + .storybook-page .tip { + display: inline-block; + border-radius: 1em; + font-size: 11px; + line-height: 12px; + font-weight: 700; + background: #e7fdd8; + color: #66bf3c; + padding: 4px 12px; + margin-right: 10px; + vertical-align: top; + } + + .storybook-page .tip-wrapper { + font-size: 13px; + line-height: 20px; + margin-top: 40px; + margin-bottom: 40px; + } + + .storybook-page .tip-wrapper svg { + display: inline-block; + height: 12px; + width: 12px; + margin-right: 4px; + vertical-align: top; + margin-top: 3px; + } + + .storybook-page .tip-wrapper svg path { + fill: #1ea7fd; + } + `, + ], }) export class PageComponent { user: User | null = null; diff --git a/apps/analog-app/src/stories/page.css b/apps/analog-app/src/stories/page.css deleted file mode 100644 index 098dad118..000000000 --- a/apps/analog-app/src/stories/page.css +++ /dev/null @@ -1,69 +0,0 @@ -.storybook-page { - font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 24px; - padding: 48px 20px; - margin: 0 auto; - max-width: 600px; - color: #333; -} - -.storybook-page h2 { - font-weight: 700; - font-size: 32px; - line-height: 1; - margin: 0 0 4px; - display: inline-block; - vertical-align: top; -} - -.storybook-page p { - margin: 1em 0; -} - -.storybook-page a { - text-decoration: none; - color: #1ea7fd; -} - -.storybook-page ul { - padding-left: 30px; - margin: 1em 0; -} - -.storybook-page li { - margin-bottom: 8px; -} - -.storybook-page .tip { - display: inline-block; - border-radius: 1em; - font-size: 11px; - line-height: 12px; - font-weight: 700; - background: #e7fdd8; - color: #66bf3c; - padding: 4px 12px; - margin-right: 10px; - vertical-align: top; -} - -.storybook-page .tip-wrapper { - font-size: 13px; - line-height: 20px; - margin-top: 40px; - margin-bottom: 40px; -} - -.storybook-page .tip-wrapper svg { - display: inline-block; - height: 12px; - width: 12px; - margin-right: 4px; - vertical-align: top; - margin-top: 3px; -} - -.storybook-page .tip-wrapper svg path { - fill: #1ea7fd; -} diff --git a/apps/analog-app/tsconfig.app.json b/apps/analog-app/tsconfig.app.json index fb30b98ce..e2dda1afd 100644 --- a/apps/analog-app/tsconfig.app.json +++ b/apps/analog-app/tsconfig.app.json @@ -4,7 +4,8 @@ "outDir": "../../dist/out-tsc", "types": [], "target": "ES2022", - "useDefineForClassFields": false + "useDefineForClassFields": false, + "composite": false }, "files": [ "src/main.ts", diff --git a/apps/analog-app/tsconfig.json b/apps/analog-app/tsconfig.json index 09c61e8e6..2c1af0411 100644 --- a/apps/analog-app/tsconfig.json +++ b/apps/analog-app/tsconfig.json @@ -3,6 +3,30 @@ "files": [], "include": [], "references": [ + { + "path": "../../libs/top-bar" + }, + { + "path": "../../packages/router" + }, + { + "path": "../../libs/my-package" + }, + { + "path": "../../packages/content" + }, + { + "path": "../../packages/vitest-angular" + }, + { + "path": "../../packages/vite-plugin-angular" + }, + { + "path": "../../packages/platform" + }, + { + "path": "../../packages/storybook-angular" + }, { "path": "./tsconfig.app.json" }, diff --git a/apps/analog-app/tsconfig.spec.json b/apps/analog-app/tsconfig.spec.json index deaccd3a7..29d19b116 100644 --- a/apps/analog-app/tsconfig.spec.json +++ b/apps/analog-app/tsconfig.spec.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "../../dist/out-tsc", "types": ["node", "vitest/globals"], - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.spec.ts", "**/*.d.ts"] diff --git a/apps/analog-app/vite.config.ts b/apps/analog-app/vite.config.ts index eb0f14589..d2c434d33 100644 --- a/apps/analog-app/vite.config.ts +++ b/apps/analog-app/vite.config.ts @@ -1,7 +1,7 @@ /// import analog from '@analogjs/platform'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; +import { resolve } from 'node:path'; import { defineConfig, PluginOption } from 'vite'; // Only run in Netlify CI @@ -13,7 +13,8 @@ if (process.env['NETLIFY'] === 'true') { } // https://vitejs.dev/config/ -export default defineConfig(async ({ mode }) => { +export default defineConfig(async ({ mode, command }) => { + const useBuiltWorkspaceLibs = command === 'build'; const fileReplacements = mode === 'production' ? [ @@ -21,19 +22,8 @@ export default defineConfig(async ({ mode }) => { replace: 'apps/analog-app/src/environments/environment.ts', with: 'apps/analog-app/src/environments/environment.prod.ts', }, - { - replace: - 'apps/analog-app/src/app/pages/shipping/shipping-service.ts', - ssr: 'apps/analog-app/src/app/pages/shipping/shipping-service-server.ts', - }, ] - : [ - { - replace: - 'apps/analog-app/src/app/pages/shipping/shipping-service.ts', - ssr: 'apps/analog-app/src/app/pages/shipping/shipping-service-server.ts', - }, - ]; + : []; return { root: __dirname, @@ -53,7 +43,9 @@ export default defineConfig(async ({ mode }) => { content: { highlighter: 'prism', }, - include: ['/libs/my-package/src/**/*.ts'], + include: useBuiltWorkspaceLibs + ? [] + : ['/libs/my-package/src/**/*.ts', '/libs/top-bar/src/**/*.ts'], discoverRoutes: true, fileReplacements, prerender: { @@ -94,13 +86,26 @@ export default defineConfig(async ({ mode }) => { }, }, }), - nxViteTsPaths(), { ...(( await import('rollup-plugin-visualizer') ).visualizer() as PluginOption), }, ], + resolve: useBuiltWorkspaceLibs + ? { + alias: { + '@analogjs/my-package': resolve( + __dirname, + '../../dist/libs/my-package/fesm2022/my-package.js', + ), + '@analogjs/top-bar': resolve( + __dirname, + '../../dist/libs/top-bar/fesm2022/top-bar.js', + ), + }, + } + : undefined, test: { reporters: ['default'], coverage: { diff --git a/apps/astro-app-e2e-playwright/project.json b/apps/astro-app-e2e-playwright/project.json index ed1137b05..101a59435 100644 --- a/apps/astro-app-e2e-playwright/project.json +++ b/apps/astro-app-e2e-playwright/project.json @@ -19,6 +19,13 @@ "lint": { "executor": "@nx/eslint:lint", "outputs": ["{options.outputFile}"] + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/astro-app-e2e-playwright", + "command": "pnpm exec tsgo -p tsconfig.json --noEmit" + } } } } diff --git a/apps/astro-app/project.json b/apps/astro-app/project.json index da211a5a2..029a57954 100644 --- a/apps/astro-app/project.json +++ b/apps/astro-app/project.json @@ -14,6 +14,13 @@ }, "preview": { "command": "astro preview --root apps/astro-app --port 43030" + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/astro-app", + "command": "pnpm exec tsgo -p tsconfig.app.json --noEmit" + } } } } diff --git a/apps/astro-app/tsconfig.app.json b/apps/astro-app/tsconfig.app.json index 2ec8bf88c..baabb741d 100644 --- a/apps/astro-app/tsconfig.app.json +++ b/apps/astro-app/tsconfig.app.json @@ -19,7 +19,8 @@ "module": "es2020", "lib": ["es2020", "dom"], "skipLibCheck": true, - "rootDir": "./src/components" + "rootDir": "./src", + "composite": false }, "angularCompilerOptions": { "disableTypeScriptVersionCheck": true, diff --git a/apps/astro-app/tsconfig.json b/apps/astro-app/tsconfig.json index 2a585b181..afa7ed6dd 100644 --- a/apps/astro-app/tsconfig.json +++ b/apps/astro-app/tsconfig.json @@ -1,9 +1,15 @@ { "extends": "astro/tsconfigs/strict", "compilerOptions": { + "composite": true, "jsx": "react-jsx", "jsxImportSource": "react", "module": "preserve", "moduleResolution": "bundler" - } + }, + "references": [ + { + "path": "../../packages/astro-angular" + } + ] } diff --git a/apps/blog-app-e2e/project.json b/apps/blog-app-e2e/project.json index 4454af9b5..9e6d837af 100644 --- a/apps/blog-app-e2e/project.json +++ b/apps/blog-app-e2e/project.json @@ -17,6 +17,13 @@ "command": "playwright test" }, "dependsOn": ["build"] + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/blog-app-e2e", + "command": "pnpm exec tsgo -p tsconfig.json --noEmit" + } } } } diff --git a/apps/blog-app/project.json b/apps/blog-app/project.json index 0f3a10a67..98eb3d6d8 100644 --- a/apps/blog-app/project.json +++ b/apps/blog-app/project.json @@ -57,6 +57,13 @@ "port": 43010, "staticFilePath": "dist/apps/blog-app/analog/public" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/blog-app", + "command": "pnpm exec tsgo -p tsconfig.app.json --noEmit" + } } } } diff --git a/apps/blog-app/src/app/pages/archived/resolvers.spec.ts b/apps/blog-app/src/app/pages/archived/resolvers.spec.ts new file mode 100644 index 000000000..8c23ac98d --- /dev/null +++ b/apps/blog-app/src/app/pages/archived/resolvers.spec.ts @@ -0,0 +1,60 @@ +import '@angular/compiler'; +import type { ContentFile } from '@analogjs/content'; + +import { describe, expect, it } from 'vitest'; + +import type { ArchivedPostAttributes } from './models'; +import { resolveArchivedPostMeta, resolveArchivedPostTitle } from './resolvers'; + +describe('archived post resolvers', () => { + it('resolves metadata from an archived content file', () => { + const contentFiles: ContentFile[] = [ + { + filename: + '/virtual-workspace/apps/blog-app/src/content/archived/2022-01-08-post1-2024.md', + slug: 'post1-2024', + attributes: { + title: 'My First Archived Blog Post', + slug: 'post1-2024', + description: 'My First Archived Blog Post Description', + coverImage: 'https://example.com/archived-cover.png', + }, + }, + ]; + + expect(resolveArchivedPostTitle(contentFiles, 'post1-2024')).toBe( + 'My First Archived Blog Post', + ); + expect(resolveArchivedPostMeta(contentFiles, 'post1-2024')).toEqual([ + { + name: 'description', + content: 'My First Archived Blog Post Description', + }, + { + name: 'author', + content: 'Analog Team', + }, + { + property: 'og:title', + content: 'My First Archived Blog Post', + }, + { + property: 'og:description', + content: 'My First Archived Blog Post Description', + }, + { + property: 'og:image', + content: 'https://example.com/archived-cover.png', + }, + ]); + }); + + it('falls back cleanly when no archived content file matches the route slug', () => { + const contentFiles: ContentFile[] = []; + + expect(resolveArchivedPostTitle(contentFiles, 'missing-post')).toBe( + 'Archived post not found', + ); + expect(resolveArchivedPostMeta(contentFiles, 'missing-post')).toEqual([]); + }); +}); diff --git a/apps/blog-app/src/app/pages/archived/resolvers.ts b/apps/blog-app/src/app/pages/archived/resolvers.ts index 118bc3751..2382f2b8c 100644 --- a/apps/blog-app/src/app/pages/archived/resolvers.ts +++ b/apps/blog-app/src/app/pages/archived/resolvers.ts @@ -1,30 +1,58 @@ -import { injectContentFiles } from '@analogjs/content'; +import { injectContentFiles, type ContentFile } from '@analogjs/content'; import { MetaTag } from '@analogjs/router'; -import { ActivatedRouteSnapshot, ResolveFn } from '@angular/router'; +import { ResolveFn } from '@angular/router'; import { ArchivedPostAttributes } from './models'; -// temporary -function injectActivePostAttributes( - route: ActivatedRouteSnapshot, -): ArchivedPostAttributes { - const file = injectContentFiles().find( - (contentFile) => { - return ( - contentFile.filename === - `/src/content/archived/${route.params['slug']}.md` || - contentFile.slug === route.params['slug'] - ); - }, - ); +function normalizeContentFilename(filename: string): string { + return filename + .replace(/^(?:.*?)\/content(?=\/)/, '/src/content') + .replace(/\/{2,}/g, '/'); +} + +function findActivePostAttributes( + contentFiles: ContentFile[], + slug: string | undefined, +): ArchivedPostAttributes | undefined { + if (!slug) { + return undefined; + } - return file!.attributes; + return contentFiles.find((contentFile) => { + const normalizedFilename = normalizeContentFilename(contentFile.filename); + const stem = normalizedFilename + .split('/') + .pop() + ?.replace(/\.[^.]+$/, ''); + + return ( + normalizedFilename.startsWith('/src/content/archived/') && + (normalizedFilename === `/src/content/archived/${slug}.md` || + normalizedFilename === `/src/content/archived/${slug}/index.md` || + contentFile.slug === slug || + stem === slug) + ); + })?.attributes; } -export const postTitleResolver: ResolveFn = (route) => - injectActivePostAttributes(route).title; +export function resolveArchivedPostTitle( + contentFiles: ContentFile[], + slug: string | undefined, +): string { + return ( + findActivePostAttributes(contentFiles, slug)?.title ?? + 'Archived post not found' + ); +} -export const postMetaResolver: ResolveFn = (route) => { - const postAttributes = injectActivePostAttributes(route); +export function resolveArchivedPostMeta( + contentFiles: ContentFile[], + slug: string | undefined, +): MetaTag[] { + const postAttributes = findActivePostAttributes(contentFiles, slug); + + if (!postAttributes) { + return []; + } return [ { @@ -48,4 +76,16 @@ export const postMetaResolver: ResolveFn = (route) => { content: postAttributes.coverImage, }, ]; -}; +} + +export const postTitleResolver: ResolveFn = (route) => + resolveArchivedPostTitle( + injectContentFiles(), + route.params['slug'] as string | undefined, + ); + +export const postMetaResolver: ResolveFn = (route) => + resolveArchivedPostMeta( + injectContentFiles(), + route.params['slug'] as string | undefined, + ); diff --git a/apps/blog-app/src/app/pages/blog/resolvers.spec.ts b/apps/blog-app/src/app/pages/blog/resolvers.spec.ts new file mode 100644 index 000000000..fda9afc3e --- /dev/null +++ b/apps/blog-app/src/app/pages/blog/resolvers.spec.ts @@ -0,0 +1,68 @@ +import '@angular/compiler'; +import type { ContentFile } from '@analogjs/content'; + +import { describe, expect, it } from 'vitest'; + +import type { PostAttributes } from './models'; +import { resolvePostMeta, resolvePostTitle } from './resolvers'; + +describe('blog post resolvers', () => { + it('resolves metadata from a slug-matched content file', () => { + const contentFiles: ContentFile[] = [ + { + filename: + '/virtual-workspace/apps/blog-app/src/content/2022-12-31-my-second-post.md', + slug: 'my-second-post', + attributes: { + title: 'My Second Post', + slug: 'my-second-post', + description: 'My Second Post Description', + coverImage: 'https://example.com/cover.png', + }, + }, + ]; + + expect(resolvePostTitle(contentFiles, 'my-second-post')).toBe( + 'My Second Post', + ); + expect( + resolvePostMeta(contentFiles, 'my-second-post', 'https://analogjs.org'), + ).toEqual([ + { + name: 'description', + content: 'My Second Post Description', + }, + { + name: 'author', + content: 'Analog Team', + }, + { + property: 'og:title', + content: 'My Second Post', + }, + { + property: 'og:description', + content: 'My Second Post Description', + }, + { + property: 'og:image', + content: + 'https://analogjs.org/api/v1/og-images/my-second-post?title=My%20Second%20Post', + }, + { + property: 'twitter:image', + content: + 'https://analogjs.org/api/v1/og-images/my-second-post?title=My%20Second%20Post', + }, + ]); + }); + + it('falls back cleanly when no content file matches the route slug', () => { + const contentFiles: ContentFile[] = []; + + expect(resolvePostTitle(contentFiles, 'missing-post')).toBe( + 'Post not found', + ); + expect(resolvePostMeta(contentFiles, 'missing-post')).toEqual([]); + }); +}); diff --git a/apps/blog-app/src/app/pages/blog/resolvers.ts b/apps/blog-app/src/app/pages/blog/resolvers.ts index b15db861d..e8318d33d 100644 --- a/apps/blog-app/src/app/pages/blog/resolvers.ts +++ b/apps/blog-app/src/app/pages/blog/resolvers.ts @@ -1,33 +1,62 @@ -import { injectContentFiles } from '@analogjs/content'; +import { injectContentFiles, type ContentFile } from '@analogjs/content'; import { MetaTag } from '@analogjs/router'; -import { ActivatedRouteSnapshot, ResolveFn } from '@angular/router'; +import { ResolveFn } from '@angular/router'; import { PostAttributes } from './models'; -// temporary -function injectActivePostAttributes( - route: ActivatedRouteSnapshot, -): PostAttributes { - const file = injectContentFiles().find((contentFile) => { +function normalizeContentFilename(filename: string): string { + return filename + .replace(/^(?:.*?)\/content(?=\/)/, '/src/content') + .replace(/\/{2,}/g, '/'); +} + +function findActivePostAttributes( + contentFiles: ContentFile[], + slug: string | undefined, +): PostAttributes | undefined { + if (!slug) { + return undefined; + } + + return contentFiles.find((contentFile) => { + const normalizedFilename = normalizeContentFilename(contentFile.filename); + const stem = normalizedFilename + .split('/') + .pop() + ?.replace(/\.[^.]+$/, ''); + return ( - contentFile.filename === `/src/content/${route.params['slug']}.md` || - contentFile.slug === route.params['slug'] + !normalizedFilename.includes('/archived/') && + (normalizedFilename === `/src/content/${slug}.md` || + normalizedFilename === `/src/content/${slug}/index.md` || + contentFile.slug === slug || + stem === slug) ); - }); + })?.attributes; +} - return file!.attributes; +export function resolvePostTitle( + contentFiles: ContentFile[], + slug: string | undefined, +): string { + return ( + findActivePostAttributes(contentFiles, slug)?.title ?? 'Post not found' + ); } -export const postTitleResolver: ResolveFn = (route) => - injectActivePostAttributes(route).title; +export function resolvePostMeta( + contentFiles: ContentFile[], + slug: string | undefined, + base = import.meta.env['VITE_ANALOG_BASE_URL'] || 'http://localhost:43010', +): MetaTag[] { + const postAttributes = findActivePostAttributes(contentFiles, slug); + + if (!postAttributes) { + return []; + } -export const postMetaResolver: ResolveFn = (route) => { - const postAttributes = injectActivePostAttributes(route); - const base = - import.meta.env['VITE_ANALOG_BASE_URL'] || 'http://localhost:43010'; const title = encodeURIComponent(postAttributes.title); - const slug = postAttributes.slug; - const imageUrl = `${base}/api/v1/og-images/${slug}?title=${title}`; + const imageUrl = `${base}/api/v1/og-images/${postAttributes.slug}?title=${title}`; return [ { @@ -55,4 +84,16 @@ export const postMetaResolver: ResolveFn = (route) => { content: imageUrl, }, ]; -}; +} + +export const postTitleResolver: ResolveFn = (route) => + resolvePostTitle( + injectContentFiles(), + route.params['slug'] as string | undefined, + ); + +export const postMetaResolver: ResolveFn = (route) => + resolvePostMeta( + injectContentFiles(), + route.params['slug'] as string | undefined, + ); diff --git a/apps/blog-app/tsconfig.app.json b/apps/blog-app/tsconfig.app.json index 9a6d13144..74973164a 100644 --- a/apps/blog-app/tsconfig.app.json +++ b/apps/blog-app/tsconfig.app.json @@ -4,7 +4,8 @@ "outDir": "../../dist/out-tsc", "types": [], "target": "ES2022", - "useDefineForClassFields": false + "useDefineForClassFields": false, + "composite": false }, "files": ["src/main.ts", "src/main.server.ts"], "include": [ diff --git a/apps/blog-app/tsconfig.json b/apps/blog-app/tsconfig.json index cb46b5818..73c91a7cf 100644 --- a/apps/blog-app/tsconfig.json +++ b/apps/blog-app/tsconfig.json @@ -15,6 +15,15 @@ "files": [], "include": [], "references": [ + { + "path": "../../packages/router" + }, + { + "path": "../../packages/content" + }, + { + "path": "../../packages/platform" + }, { "path": "./tsconfig.app.json" }, diff --git a/apps/blog-app/vite.config.ts b/apps/blog-app/vite.config.ts index 9eac68284..cd862c2df 100644 --- a/apps/blog-app/vite.config.ts +++ b/apps/blog-app/vite.config.ts @@ -1,6 +1,5 @@ /// -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; import analog, { type PrerenderContentFile } from '@analogjs/platform'; import { defineConfig } from 'vite'; @@ -93,7 +92,6 @@ export default defineConfig(() => { }, }, }), - nxViteTsPaths(), ], }; }); diff --git a/apps/docs-app/docs/guides/debugging.md b/apps/docs-app/docs/guides/debugging.md index d3e1587aa..7d336c213 100644 --- a/apps/docs-app/docs/guides/debugging.md +++ b/apps/docs-app/docs/guides/debugging.md @@ -140,13 +140,14 @@ DEBUG=analog:platform:* pnpm dev ### `@analogjs/platform` -| Scope | Area | -| ------------------------------ | ------------------------------------------------------------------------------------------- | -| `analog:platform` | Platform plugin initialization, experimental option resolution, dependency transform config | -| `analog:platform:routes` | Route discovery and resolution | -| `analog:platform:content` | Content pipeline | -| `analog:platform:typed-router` | Typed route generation, file discovery, collisions, watch-mode regeneration | -| `analog:platform:tailwind` | Tailwind CSS `@reference` injection in component styles | +| Scope | Area | +| -------------------------------- | ------------------------------------------------------------------------------------------- | +| `analog:platform` | Platform plugin initialization, experimental option resolution, dependency transform config | +| `analog:platform:routes` | Route discovery and resolution | +| `analog:platform:content` | Content pipeline | +| `analog:platform:typed-router` | Typed route generation, file discovery, collisions, watch-mode regeneration | +| `analog:platform:tailwind` | Tailwind CSS `@reference` injection in component styles | +| `analog:platform:style-pipeline` | Community style-pipeline plugin registration and platform-level integration | ### `@analogjs/vite-plugin-angular` @@ -157,6 +158,7 @@ DEBUG=analog:platform:* pnpm dev | `analog:angular:compiler` | TypeScript compilation, compiler options | | `analog:angular:compilation-api` | Experimental Angular Compilation API path selection, version checks, incremental updates | | `analog:angular:tailwind` | Tailwind CSS `@reference` injection via the `tailwindCss` plugin option | +| `analog:angular:style-pipeline` | Reserved for Angular-side style-pipeline resource diagnostics | ### `@analogjs/vite-plugin-nitro` diff --git a/apps/docs-app/docs/guides/style-pipeline.md b/apps/docs-app/docs/guides/style-pipeline.md new file mode 100644 index 000000000..3c4716ef7 --- /dev/null +++ b/apps/docs-app/docs/guides/style-pipeline.md @@ -0,0 +1,186 @@ +--- +title: 'Style Pipeline' +--- + +Analog exposes a minimal `experimental.stylePipeline` surface so community +packages can integrate generated CSS and design-token workflows without +requiring Analog core to own those engines directly. + +This is intentionally narrow: + +- Analog owns the top-level framework config surface +- Analog owns the Angular stylesheet-resource seam +- community packages own the actual Vite plugins and token engines +- Tailwind, Panda, Tokiforge, Style Dictionary, and library-specific bridges + stay outside `@analogjs/platform` + +## Configure Analog + +```ts +import { defineConfig } from 'vite'; +import analog from '@analogjs/platform'; +import { stylePipeline } from '@snyder-tech/bdx-analog-style-pipeline-vite'; + +export default defineConfig({ + plugins: [ + analog({ + experimental: { + stylePipeline: { + plugins: [ + stylePipeline({ + configFile: 'style-pipeline.config.ts', + }), + ], + angularPlugins: [ + { + name: 'community-style-pipeline-angular', + preprocessStylesheet(code, context) { + return code; + }, + }, + ], + }, + }, + }), + ], +}); +``` + +## Strongly typed plugin lists + +Use `defineStylePipelinePlugins()` when you want a typed helper around the +plugins you hand to Analog. + +```ts +import { defineStylePipelinePlugins } from '@analogjs/platform'; + +const plugins = defineStylePipelinePlugins([ + stylePipeline({ + configFile: 'style-pipeline.config.ts', + }), +]); +``` + +## Plugin factories + +If a community plugin needs the resolved workspace root, pass a factory. +Analog will call it with a small context object. + +```ts +import analog from '@analogjs/platform'; +import { stylePipeline } from '@snyder-tech/bdx-analog-style-pipeline-vite'; + +analog({ + experimental: { + stylePipeline: { + plugins: [ + ({ workspaceRoot }) => + stylePipeline({ + workspaceRoot, + configFile: 'style-pipeline.config.ts', + }), + ], + }, + }, +}); +``` + +## Angular stylesheet hooks + +`angularPlugins` is the framework-owned part of the contract. + +Use it when a community package needs to participate in: + +- Angular component stylesheet preprocessing +- Angular resource-aware stylesheet HMR behavior +- access to the live Angular stylesheet registry used for externalized styles + +That is the seam a standalone Vite plugin does not own on its own. + +```ts +analog({ + experimental: { + stylePipeline: { + angularPlugins: [ + { + name: 'community-style-pipeline-angular', + preprocessStylesheet(code, context) { + if (context.inline) { + return code; + } + + return { + code: `/* ${context.filename} */\n${code}`, + dependencies: [ + { + id: 'virtual:brandos/tailwind.css', + kind: 'bridge', + }, + ], + diagnostics: [ + { + severity: 'warning', + code: 'tailwind-reference', + message: 'Injected shared Tailwind bridge reference.', + }, + ], + tags: ['tailwind'], + }; + }, + configureStylesheetRegistry(registry, { workspaceRoot }) { + void registry; + void workspaceRoot; + }, + }, + ], + }, + }, +}); +``` + +The stylesheet transform context is strongly typed and includes: + +- `filename` +- `containingFile` +- `resourceFile` +- `className` +- `order` +- `inline` + +Angular-side preprocessors can return either a string or a structured result +with: + +- `code` +- `dependencies` +- `diagnostics` +- `tags` + +Analog tracks that metadata in the live stylesheet registry so HMR diagnostics +and community plugins can reason about which generated bridges, token manifests, +or runtime theme resources a component stylesheet depends on. + +## Scope + +This API is intentionally generic. It does not make Analog responsible for: + +- Style Dictionary dependencies +- Panda config/codegen semantics +- Tokiforge runtime theming +- PrimeNG, Spartan, daisyUI, MUI, or other library-specific target contracts + +Those should remain in community-maintained packages unless real usage later +proves Analog needs a smaller generic hook. + +## Debugging + +Use these debug scopes when experimenting with community style-pipeline +integrations: + +```sh +DEBUG=analog:platform:style-pipeline,analog:angular:style-pipeline pnpm nx serve your-app +``` + +`analog:platform:style-pipeline` is the platform-side namespace for this +integration surface. +`analog:angular:style-pipeline` is reserved for Angular-side diagnostics if +future integrations need them. diff --git a/apps/docs-app/docusaurus.config.js b/apps/docs-app/docusaurus.config.js index 0921e69a0..3769dc77f 100644 --- a/apps/docs-app/docusaurus.config.js +++ b/apps/docs-app/docusaurus.config.js @@ -32,6 +32,13 @@ const DOCUSAURUS_BASE_URL = process.env.DOCUSAURUS_BASE_URL ?? '/docs'; /** @type {import('@docusaurus/types').Config} */ const config = { baseUrl: '/', + future: { + // Webpackbar currently trips webpack's ProgressPlugin schema validation + // in this workspace. Use Docusaurus' Rspack path instead. + experimental_faster: { + rspackBundler: true, + }, + }, // Even if you don't use internalization, you can use this field to set useful // metadata like html lang. For example, if your site is Chinese, you may want // to replace "en" with "zh-Hans". @@ -69,7 +76,11 @@ const config = { }, favicon: 'img/favicon.ico', onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'throw', + markdown: { + hooks: { + onBrokenMarkdownLinks: 'throw', + }, + }, organizationName, plugins: [ // Adapted from https://github.com/prisma/docs/blob/22208d52e4168028dbbe8b020b10682e6b526e50/docusaurus.config.ts diff --git a/apps/docs-app/package.json b/apps/docs-app/package.json index e0f36bce6..89c1e73e1 100644 --- a/apps/docs-app/package.json +++ b/apps/docs-app/package.json @@ -11,6 +11,7 @@ "typecheck": "tsc" }, "dependencies": { + "@docusaurus/faster": "3.9.2", "@docusaurus/core": "3.9.2", "@docusaurus/preset-classic": "3.9.2", "@mdx-js/react": "^3.1.1", @@ -20,6 +21,7 @@ "react-dom": "catalog:" }, "devDependencies": { + "@docusaurus/faster": "3.9.2", "@docusaurus/module-type-aliases": "3.9.2", "@docusaurus/tsconfig": "3.9.2", "@docusaurus/types": "3.9.2", diff --git a/apps/docs-app/project.json b/apps/docs-app/project.json index e896fffc0..ac8635052 100644 --- a/apps/docs-app/project.json +++ b/apps/docs-app/project.json @@ -47,6 +47,13 @@ "cwd": "apps/docs-app", "command": "docusaurus write-translations --locale={args.locale}" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/docs-app", + "command": "pnpm exec tsgo -p tsconfig.json --noEmit" + } } } } diff --git a/apps/docs-app/tsconfig.json b/apps/docs-app/tsconfig.json index 52bfaeab6..242e28f1d 100644 --- a/apps/docs-app/tsconfig.json +++ b/apps/docs-app/tsconfig.json @@ -1,6 +1,8 @@ { + "extends": "../../tsconfig.base.json", "compilerOptions": { "allowJs": true, + "composite": true, "esModuleInterop": true, "jsx": "preserve", "target": "ES2022", diff --git a/apps/ng-app/tsconfig.spec.json b/apps/ng-app/tsconfig.spec.json index 83b3916e3..d18310c5b 100644 --- a/apps/ng-app/tsconfig.spec.json +++ b/apps/ng-app/tsconfig.spec.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "../../dist/out-tsc", "types": ["node", "vitest/globals"], - "target": "es2022" + "target": "es2022", + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] diff --git a/apps/opt-catchall-app/package.json b/apps/opt-catchall-app/package.json index 4f001f652..ca967937d 100644 --- a/apps/opt-catchall-app/package.json +++ b/apps/opt-catchall-app/package.json @@ -5,5 +5,9 @@ "dependencies": { "@analogjs/content": "workspace:*", "@analogjs/router": "workspace:*" + }, + "devDependencies": { + "@analogjs/platform": "workspace:*", + "@analogjs/vite-plugin-angular": "workspace:*" } } diff --git a/apps/opt-catchall-app/project.json b/apps/opt-catchall-app/project.json index c3f2e92fb..638e54f21 100644 --- a/apps/opt-catchall-app/project.json +++ b/apps/opt-catchall-app/project.json @@ -56,6 +56,13 @@ "port": 43041, "staticFilePath": "dist/apps/opt-catchall-app/analog/public" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/opt-catchall-app", + "command": "pnpm exec tsgo -p tsconfig.app.json --noEmit" + } } } } diff --git a/apps/opt-catchall-app/tsconfig.app.json b/apps/opt-catchall-app/tsconfig.app.json index ccb631681..a74f15ac7 100644 --- a/apps/opt-catchall-app/tsconfig.app.json +++ b/apps/opt-catchall-app/tsconfig.app.json @@ -2,7 +2,8 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "../../dist/out-tsc", - "types": [] + "types": [], + "composite": false }, "files": ["src/main.ts"], "include": ["src/**/*.ts"] diff --git a/apps/opt-catchall-app/tsconfig.json b/apps/opt-catchall-app/tsconfig.json index 0a89050bd..0f675edbc 100644 --- a/apps/opt-catchall-app/tsconfig.json +++ b/apps/opt-catchall-app/tsconfig.json @@ -7,6 +7,18 @@ "files": [], "include": [], "references": [ + { + "path": "../../packages/router" + }, + { + "path": "../../packages/content" + }, + { + "path": "../../packages/vite-plugin-angular" + }, + { + "path": "../../packages/platform" + }, { "path": "./tsconfig.app.json" }, diff --git a/apps/opt-catchall-app/vite.config.ts b/apps/opt-catchall-app/vite.config.ts index 039bf7792..94f53fcb7 100644 --- a/apps/opt-catchall-app/vite.config.ts +++ b/apps/opt-catchall-app/vite.config.ts @@ -1,7 +1,6 @@ /// -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; -import analog from '../../packages/platform/src/index.js'; +import analog from '@analogjs/platform'; import { defineConfig } from 'vite'; export default defineConfig(() => { @@ -27,7 +26,6 @@ export default defineConfig(() => { highlighter: 'shiki', }, }), - nxViteTsPaths(), ], }; }); diff --git a/apps/tailwind-debug-app/project.json b/apps/tailwind-debug-app/project.json index 88cb43d21..4cc245585 100644 --- a/apps/tailwind-debug-app/project.json +++ b/apps/tailwind-debug-app/project.json @@ -46,12 +46,21 @@ "options": { "cwd": "dist/apps/tailwind-debug-app/analog", "command": "node --unhandled-rejections=throw ./server/index.mjs", - "env": { "PORT": "43040" } + "env": { + "PORT": "43040" + } } }, "test": { "executor": "@nx/vitest:test", "outputs": ["{projectRoot}/coverage"] + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/tailwind-debug-app", + "command": "pnpm exec tsgo -p tsconfig.app.json --noEmit" + } } } } diff --git a/apps/tailwind-debug-app/tsconfig.app.json b/apps/tailwind-debug-app/tsconfig.app.json index 2bd047b62..50b219c9b 100644 --- a/apps/tailwind-debug-app/tsconfig.app.json +++ b/apps/tailwind-debug-app/tsconfig.app.json @@ -2,7 +2,8 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "../../dist/out-tsc", - "types": [] + "types": [], + "composite": false }, "files": ["src/main.ts", "src/main.server.ts"], "include": [ diff --git a/apps/tailwind-debug-app/tsconfig.json b/apps/tailwind-debug-app/tsconfig.json index 31ba29bcc..508b39a97 100644 --- a/apps/tailwind-debug-app/tsconfig.json +++ b/apps/tailwind-debug-app/tsconfig.json @@ -4,6 +4,18 @@ "include": [], "exclude": [], "references": [ + { + "path": "../../packages/router" + }, + { + "path": "../../packages/vitest-angular" + }, + { + "path": "../../packages/vite-plugin-angular" + }, + { + "path": "../../packages/platform" + }, { "path": "./tsconfig.app.json" }, diff --git a/apps/tailwind-debug-app/tsconfig.spec.json b/apps/tailwind-debug-app/tsconfig.spec.json index dd6a38311..caee04b28 100644 --- a/apps/tailwind-debug-app/tsconfig.spec.json +++ b/apps/tailwind-debug-app/tsconfig.spec.json @@ -2,7 +2,8 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "../../dist/out-tsc", - "types": ["node", "vitest/globals"] + "types": ["node", "vitest/globals"], + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.spec.ts", "**/*.d.ts"] diff --git a/apps/tailwind-debug-app/vite.config.ts b/apps/tailwind-debug-app/vite.config.ts index 430cbf92c..b7f44c6b1 100644 --- a/apps/tailwind-debug-app/vite.config.ts +++ b/apps/tailwind-debug-app/vite.config.ts @@ -1,7 +1,6 @@ /// import analog from '@analogjs/platform'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; import tailwindcss from '@tailwindcss/vite'; import fs from 'node:fs'; import path from 'node:path'; @@ -122,7 +121,6 @@ export default defineConfig(({ mode }) => ({ }, }), tailwindcss(), - nxViteTsPaths(), hmrWiretapPlugin(), ], test: { diff --git a/apps/tanstack-query-app-e2e/project.json b/apps/tanstack-query-app-e2e/project.json index e62d1f369..f0feb874b 100644 --- a/apps/tanstack-query-app-e2e/project.json +++ b/apps/tanstack-query-app-e2e/project.json @@ -16,6 +16,13 @@ "cwd": "apps/tanstack-query-app-e2e", "command": "playwright test" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/tanstack-query-app-e2e", + "command": "pnpm exec tsgo -p tsconfig.json --noEmit" + } } } } diff --git a/apps/tanstack-query-app/project.json b/apps/tanstack-query-app/project.json index ca440a8a7..21bde6f84 100644 --- a/apps/tanstack-query-app/project.json +++ b/apps/tanstack-query-app/project.json @@ -54,7 +54,9 @@ "options": { "cwd": "dist/apps/tanstack-query-app/analog", "command": "node --unhandled-rejections=throw ./server/index.mjs", - "env": { "PORT": "43020" } + "env": { + "PORT": "43020" + } }, "dependsOn": ["build"] }, @@ -65,6 +67,13 @@ "executor": "@nx/vitest:test", "dependsOn": ["platform:build", "router:build"], "outputs": ["{projectRoot}/coverage"] + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "apps/tanstack-query-app", + "command": "pnpm exec tsgo -p tsconfig.app.json --noEmit" + } } } } diff --git a/apps/tanstack-query-app/tsconfig.app.json b/apps/tanstack-query-app/tsconfig.app.json index 64ad6786d..8057d70dc 100644 --- a/apps/tanstack-query-app/tsconfig.app.json +++ b/apps/tanstack-query-app/tsconfig.app.json @@ -2,7 +2,8 @@ "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "../../dist/out-tsc", - "types": ["vite/client"] + "types": ["vite/client"], + "composite": false }, "files": ["src/main.ts", "src/main.server.ts", "src/vite-env.d.ts"], "include": [ diff --git a/apps/tanstack-query-app/tsconfig.json b/apps/tanstack-query-app/tsconfig.json index 3f38df667..5dc11154f 100644 --- a/apps/tanstack-query-app/tsconfig.json +++ b/apps/tanstack-query-app/tsconfig.json @@ -2,6 +2,15 @@ "extends": "../../tsconfig.base.json", "files": [], "references": [ + { + "path": "../../packages/router" + }, + { + "path": "../../packages/vitest-angular" + }, + { + "path": "../../packages/platform" + }, { "path": "./tsconfig.app.json" }, diff --git a/apps/tanstack-query-app/tsconfig.spec.json b/apps/tanstack-query-app/tsconfig.spec.json index 9d4a497ed..b11221fc9 100644 --- a/apps/tanstack-query-app/tsconfig.spec.json +++ b/apps/tanstack-query-app/tsconfig.spec.json @@ -2,7 +2,8 @@ "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "../../dist/out-tsc", - "types": ["vitest/globals"] + "types": ["vitest/globals"], + "composite": false }, "include": ["src/**/*.spec.ts", "src/**/*.test.ts", "src/**/*.d.ts"] } diff --git a/apps/tanstack-query-app/vite.config.ts b/apps/tanstack-query-app/vite.config.ts index 65088fa99..6eda70d1a 100644 --- a/apps/tanstack-query-app/vite.config.ts +++ b/apps/tanstack-query-app/vite.config.ts @@ -2,7 +2,6 @@ import analog from '@analogjs/platform'; import tailwindcss from '@tailwindcss/vite'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; import { defineConfig } from 'vite'; // https://vitejs.dev/config/ @@ -23,7 +22,6 @@ export default defineConfig(({ mode }) => { analog({ apiPrefix: 'api', }), - nxViteTsPaths(), ], test: { reporters: ['default'], diff --git a/libs/card/package.json b/libs/card/package.json index 8dbb7fc5d..93a51d9d5 100644 --- a/libs/card/package.json +++ b/libs/card/package.json @@ -1,8 +1,17 @@ { "name": "@analogjs/card", "private": true, + "type": "module", "version": "0.0.0", "devDependencies": { - "@analogjs/vite-plugin-angular": "workspace:*" + "@analogjs/vite-plugin-angular": "workspace:*", + "@analogjs/vitest-angular": "workspace:*" + }, + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./src/index.ts", + "default": "./src/index.ts" + } } } diff --git a/libs/card/src/lib/autocomplete/__snapshots__/autocomplete.component.spec.ts.snap b/libs/card/src/lib/autocomplete/__snapshots__/autocomplete.component.spec.ts.snap index a1fecf25d..8c5a685af 100644 --- a/libs/card/src/lib/autocomplete/__snapshots__/autocomplete.component.spec.ts.snap +++ b/libs/card/src/lib/autocomplete/__snapshots__/autocomplete.component.spec.ts.snap @@ -3,47 +3,41 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is empty > AND input is focused > THEN component should match snapshot 1`] = `
- + WHEN input value is empty > AND input is aria-label="Test runners" aria-required="false" autocomplete="off" - class="mat-mdc-autocomplete-trigger mat-mdc-input-element ng-tns-c508571215-0 ng-untouched ng-pristine ng-valid mat-mdc-form-field-input-control mdc-text-field__input cdk-text-field-autofill-monitored" + class="mat-mdc-autocomplete-trigger mat-mdc-input-element ng-untouched ng-pristine ng-valid mat-mdc-form-field-input-control mdc-text-field__input cdk-text-field-autofill-monitored" id="mat-input-a2" matinput="" - ng-reflect-autocomplete="[object Object]" - ng-reflect-model="" - ng-reflect-placeholder="Pick one" - ng-reflect-type="text" placeholder="Pick one" role="combobox" type="text" @@ -69,8 +59,7 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is empty > AND input is @@ -79,22 +68,23 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is empty > AND input is
@@ -106,47 +96,41 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is empty > AND input is exports[`GIVEN AutocompleteComponent > WHEN input value is empty > THEN component should match snapshot 1`] = `
- + WHEN input value is empty > THEN componen aria-label="Test runners" aria-required="false" autocomplete="off" - class="mat-mdc-autocomplete-trigger mat-mdc-input-element ng-tns-c508571215-0 ng-untouched ng-pristine ng-valid mat-mdc-form-field-input-control mdc-text-field__input cdk-text-field-autofill-monitored" + class="mat-mdc-autocomplete-trigger mat-mdc-input-element ng-untouched ng-pristine ng-valid mat-mdc-form-field-input-control mdc-text-field__input cdk-text-field-autofill-monitored" id="mat-input-a1" matinput="" - ng-reflect-autocomplete="[object Object]" - ng-reflect-model="" - ng-reflect-placeholder="Pick one" - ng-reflect-type="text" placeholder="Pick one" role="combobox" type="text" @@ -170,8 +150,7 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is empty > THEN componen @@ -180,22 +159,23 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is empty > THEN componen
@@ -207,47 +187,41 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is empty > THEN componen exports[`GIVEN AutocompleteComponent > WHEN input value is not empty > AND input is focused > THEN component should match snapshot 1`] = `
- + WHEN input value is not empty > AND input aria-label="Test runners" aria-required="false" autocomplete="off" - class="mat-mdc-autocomplete-trigger mat-mdc-input-element ng-tns-c508571215-0 ng-untouched ng-pristine ng-valid mat-mdc-form-field-input-control mdc-text-field__input cdk-text-field-autofill-monitored" + class="mat-mdc-autocomplete-trigger mat-mdc-input-element ng-untouched ng-pristine ng-valid mat-mdc-form-field-input-control mdc-text-field__input cdk-text-field-autofill-monitored" id="mat-input-a7" matinput="" - ng-reflect-autocomplete="[object Object]" - ng-reflect-model="est" - ng-reflect-placeholder="Pick one" - ng-reflect-type="text" placeholder="Pick one" role="combobox" type="text" @@ -273,8 +243,7 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is not empty > AND input @@ -283,22 +252,23 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is not empty > AND input
@@ -310,47 +280,41 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is not empty > AND input exports[`GIVEN AutocompleteComponent > WHEN input value is not empty > THEN component should match snapshot 1`] = `
- + WHEN input value is not empty > THEN comp aria-label="Test runners" aria-required="false" autocomplete="off" - class="mat-mdc-autocomplete-trigger mat-mdc-input-element ng-tns-c508571215-0 ng-untouched ng-pristine ng-valid mat-mdc-form-field-input-control mdc-text-field__input cdk-text-field-autofill-monitored" + class="mat-mdc-autocomplete-trigger mat-mdc-input-element ng-untouched ng-pristine ng-valid mat-mdc-form-field-input-control mdc-text-field__input cdk-text-field-autofill-monitored" id="mat-input-a6" matinput="" - ng-reflect-autocomplete="[object Object]" - ng-reflect-model="est" - ng-reflect-placeholder="Pick one" - ng-reflect-type="text" placeholder="Pick one" role="combobox" type="text" @@ -374,8 +334,7 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is not empty > THEN comp @@ -384,22 +343,23 @@ exports[`GIVEN AutocompleteComponent > WHEN input value is not empty > THEN comp
diff --git a/libs/card/src/lib/autocomplete/autocomplete.component.spec.ts b/libs/card/src/lib/autocomplete/autocomplete.component.spec.ts index 4b448f0e6..fa81e0d79 100644 --- a/libs/card/src/lib/autocomplete/autocomplete.component.spec.ts +++ b/libs/card/src/lib/autocomplete/autocomplete.component.spec.ts @@ -1,14 +1,10 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { type HarnessLoader } from '@angular/cdk/testing'; -import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed'; -import { MatAutocompleteHarness } from '@angular/material/autocomplete/testing'; import { provideNoopAnimations } from '@angular/platform-browser/animations'; import { AutocompleteComponent } from './autocomplete.component'; describe('GIVEN AutocompleteComponent', () => { let fixture: ComponentFixture; - let harnessLoader: HarnessLoader; let component: AutocompleteComponent; beforeEach(() => { @@ -18,10 +14,12 @@ describe('GIVEN AutocompleteComponent', () => { }); fixture = TestBed.createComponent(AutocompleteComponent); - harnessLoader = TestbedHarnessEnvironment.loader(fixture); component = fixture.componentInstance; }); + const getInput = () => + fixture.nativeElement.querySelector('input') as HTMLInputElement; + describe('WHEN input value is empty', () => { beforeEach(() => { fixture.componentRef.setInput('value', ''); @@ -33,31 +31,31 @@ describe('GIVEN AutocompleteComponent', () => { }); it('THEN component should match snapshot', () => { - expect(fixture.debugElement.nativeElement).toMatchSnapshot(); + expect(fixture.nativeElement).toMatchSnapshot(); }); describe('AND input is focused', () => { - let autocomplete: MatAutocompleteHarness; - beforeEach(async () => { - autocomplete = await harnessLoader.getHarness(MatAutocompleteHarness); + const input = getInput(); - await autocomplete.focus(); + input.focus(); + input.dispatchEvent(new Event('focus')); + fixture.detectChanges(); + await fixture.whenStable(); }); it('THEN component should match snapshot', () => { - expect(fixture.debugElement.nativeElement).toMatchSnapshot(); + expect(fixture.nativeElement).toMatchSnapshot(); }); it('THEN autocomplete should be opened', async () => { - const actual = await autocomplete.isOpen(); + const actual = getInput().getAttribute('aria-expanded'); - expect(actual).toBe(true); + expect(actual).toBe('true'); }); it('THEN autocomplete should have 3 options', async () => { - const options = await autocomplete.getOptions(); - const actual = options.length; + const actual = document.body.querySelectorAll('mat-option').length; expect(actual).toBe(3); }); @@ -75,31 +73,31 @@ describe('GIVEN AutocompleteComponent', () => { }); it('THEN component should match snapshot', () => { - expect(fixture.debugElement.nativeElement).toMatchSnapshot(); + expect(fixture.nativeElement).toMatchSnapshot(); }); describe('AND input is focused', () => { - let autocomplete: MatAutocompleteHarness; - beforeEach(async () => { - autocomplete = await harnessLoader.getHarness(MatAutocompleteHarness); + const input = getInput(); - await autocomplete.focus(); + input.focus(); + input.dispatchEvent(new Event('focus')); + fixture.detectChanges(); + await fixture.whenStable(); }); it('THEN component should match snapshot', () => { - expect(fixture.debugElement.nativeElement).toMatchSnapshot(); + expect(fixture.nativeElement).toMatchSnapshot(); }); it('THEN autocomplete should be opened', async () => { - const actual = await autocomplete.isOpen(); + const actual = getInput().getAttribute('aria-expanded'); - expect(actual).toBe(true); + expect(actual).toBe('true'); }); it('THEN autocomplete should have 2 options', async () => { - const options = await autocomplete.getOptions(); - const actual = options.length; + const actual = document.body.querySelectorAll('mat-option').length; expect(actual).toBe(2); }); diff --git a/libs/card/src/lib/card/__snapshots__/card.component.spec.ts.snap b/libs/card/src/lib/card/__snapshots__/card.component.spec.ts.snap index 3237b131a..973a2881a 100644 --- a/libs/card/src/lib/card/__snapshots__/card.component.spec.ts.snap +++ b/libs/card/src/lib/card/__snapshots__/card.component.spec.ts.snap @@ -15,3 +15,17 @@ exports[`CardComponent > should create the app 1`] = ` }--> `; + +exports[`CardComponent > should match snapshot 1`] = ` + + card-works + + + + +`; diff --git a/libs/card/src/lib/card2/__snapshots__/card.component.spec.ts.snap b/libs/card/src/lib/card2/__snapshots__/card.component.spec.ts.snap index ba3bb8b48..78291e4c3 100644 --- a/libs/card/src/lib/card2/__snapshots__/card.component.spec.ts.snap +++ b/libs/card/src/lib/card2/__snapshots__/card.component.spec.ts.snap @@ -15,3 +15,17 @@ exports[`CardComponent > should create the app 1`] = ` }--> `; + +exports[`CardComponent > should match snapshot 1`] = ` + + card-works + + + + +`; diff --git a/libs/card/src/lib/card2/card.component.ts b/libs/card/src/lib/card2/card.component.ts index 44bb578c4..0a5d8d983 100644 --- a/libs/card/src/lib/card2/card.component.ts +++ b/libs/card/src/lib/card2/card.component.ts @@ -3,7 +3,7 @@ import { CommonModule } from '@angular/common'; import { MatCardModule } from '@angular/material/card'; @Component({ - selector: 'lib-card', + selector: 'lib-card2', standalone: true, imports: [CommonModule, MatCardModule], templateUrl: './card.component.html', diff --git a/libs/card/src/test-setup.ts b/libs/card/src/test-setup.ts index b56bce0e3..17b796582 100644 --- a/libs/card/src/test-setup.ts +++ b/libs/card/src/test-setup.ts @@ -1,15 +1,5 @@ -import '@analogjs/vitest-angular/setup-zone'; +import '@angular/compiler'; +import '@analogjs/vitest-angular/setup-snapshots'; +import { setupTestBed } from '@analogjs/vitest-angular/setup-testbed'; -/** - * Initialize TestBed for all tests inside of content - */ -import { TestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; - -TestBed.initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), -); +setupTestBed(); diff --git a/libs/card/tsconfig.json b/libs/card/tsconfig.json index 50f9bc5ef..3a90c5311 100644 --- a/libs/card/tsconfig.json +++ b/libs/card/tsconfig.json @@ -13,6 +13,12 @@ "files": [], "include": [], "references": [ + { + "path": "../../packages/vitest-angular" + }, + { + "path": "../../packages/vite-plugin-angular" + }, { "path": "./tsconfig.lib.json" } diff --git a/libs/card/tsconfig.lib.json b/libs/card/tsconfig.lib.json index 9bc8125f5..da24531c6 100644 --- a/libs/card/tsconfig.lib.json +++ b/libs/card/tsconfig.lib.json @@ -8,7 +8,8 @@ "types": [], "esModuleInterop": true, "isolatedModules": true, - "moduleResolution": "bundler" + "moduleResolution": "bundler", + "composite": false }, "exclude": ["src/**/*.spec.ts", "vite.config.ts"], "include": ["src/**/*.ts"] diff --git a/libs/card/tsconfig.spec.json b/libs/card/tsconfig.spec.json index 16fb4afa4..e36e27163 100644 --- a/libs/card/tsconfig.spec.json +++ b/libs/card/tsconfig.spec.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "../../dist/out-tsc", "types": ["node", "vitest/globals"], - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] diff --git a/libs/card/vite.config.ts b/libs/card/vite.config.ts index 2d395ca43..c9033661b 100644 --- a/libs/card/vite.config.ts +++ b/libs/card/vite.config.ts @@ -2,13 +2,12 @@ import { defineConfig } from 'vite'; import angular from '@analogjs/vite-plugin-angular'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; // https://vitejs.dev/config/ export default defineConfig(({ mode }) => { return { root: __dirname, - plugins: [angular(), nxViteTsPaths()], + plugins: [angular()], optimizeDeps: { include: ['@angular/cdk/testing/testbed'], exclude: ['@angular/cdk/testing'], diff --git a/libs/my-package/package.json b/libs/my-package/package.json index c06392bab..096cb2fe7 100644 --- a/libs/my-package/package.json +++ b/libs/my-package/package.json @@ -6,7 +6,8 @@ "@angular/core": "catalog:peerCompat" }, "devDependencies": { - "@analogjs/vite-plugin-angular": "workspace:*" + "@analogjs/vite-plugin-angular": "workspace:*", + "@analogjs/vitest-angular": "workspace:*" }, "dependencies": { "tslib": "^2.8.1" @@ -16,10 +17,9 @@ "default": "./package.json" }, ".": { - "types": "./index.d.ts", - "import": "./fesm2022/my-package.js", - "require": "./fesm2022/my-package.js", - "default": "./fesm2022/my-package.js" + "types": "./src/index.ts", + "import": "./src/index.ts", + "default": "./src/index.ts" } } } diff --git a/libs/my-package/tsconfig.json b/libs/my-package/tsconfig.json index 052bcb177..4eade2a80 100644 --- a/libs/my-package/tsconfig.json +++ b/libs/my-package/tsconfig.json @@ -14,6 +14,12 @@ "files": [], "include": [], "references": [ + { + "path": "../../packages/vitest-angular" + }, + { + "path": "../../packages/vite-plugin-angular" + }, { "path": "./tsconfig.lib.json" }, diff --git a/libs/my-package/tsconfig.lib.json b/libs/my-package/tsconfig.lib.json index 9ddba76b3..96b8515d5 100644 --- a/libs/my-package/tsconfig.lib.json +++ b/libs/my-package/tsconfig.lib.json @@ -5,7 +5,8 @@ "declaration": true, "declarationMap": true, "inlineSources": true, - "types": [] + "types": [], + "composite": false }, "exclude": [ "src/**/*.spec.ts", diff --git a/libs/my-package/tsconfig.spec.json b/libs/my-package/tsconfig.spec.json index 16fb4afa4..e36e27163 100644 --- a/libs/my-package/tsconfig.spec.json +++ b/libs/my-package/tsconfig.spec.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "../../dist/out-tsc", "types": ["node", "vitest/globals"], - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] diff --git a/libs/my-package/vite.config.ts b/libs/my-package/vite.config.ts index 376966eb0..364a13ce8 100644 --- a/libs/my-package/vite.config.ts +++ b/libs/my-package/vite.config.ts @@ -1,7 +1,6 @@ /// import angular from '@analogjs/vite-plugin-angular'; import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; import { defineConfig } from 'vite'; import { playwright } from '@vitest/browser-playwright'; @@ -17,7 +16,6 @@ export default defineConfig(({ command }) => { cacheDir: '../../node_modules/.vite/libs/my-package', plugins: [ angular({ jit: false, tsconfig }), - nxViteTsPaths(), nxCopyAssetsPlugin(['*.md', 'package.json']), ], resolve: { diff --git a/libs/shared/feature/package.json b/libs/shared/feature/package.json index e27a20928..707b20c8f 100644 --- a/libs/shared/feature/package.json +++ b/libs/shared/feature/package.json @@ -1,5 +1,16 @@ { "name": "@analogjs/shared-feature", "private": true, - "version": "0.0.0" + "type": "module", + "version": "0.0.0", + "devDependencies": { + "@analogjs/vitest-angular": "workspace:*" + }, + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./src/index.ts", + "default": "./src/index.ts" + } + } } diff --git a/libs/shared/feature/src/test-setup.ts b/libs/shared/feature/src/test-setup.ts index b56bce0e3..17b796582 100644 --- a/libs/shared/feature/src/test-setup.ts +++ b/libs/shared/feature/src/test-setup.ts @@ -1,15 +1,5 @@ -import '@analogjs/vitest-angular/setup-zone'; +import '@angular/compiler'; +import '@analogjs/vitest-angular/setup-snapshots'; +import { setupTestBed } from '@analogjs/vitest-angular/setup-testbed'; -/** - * Initialize TestBed for all tests inside of content - */ -import { TestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; - -TestBed.initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting(), -); +setupTestBed(); diff --git a/libs/shared/feature/tsconfig.json b/libs/shared/feature/tsconfig.json index 80d38c1dd..2950b63e9 100644 --- a/libs/shared/feature/tsconfig.json +++ b/libs/shared/feature/tsconfig.json @@ -15,6 +15,12 @@ "files": [], "include": [], "references": [ + { + "path": "../../../packages/content" + }, + { + "path": "../../../packages/vitest-angular" + }, { "path": "./tsconfig.lib.json" }, diff --git a/libs/shared/feature/tsconfig.lib.json b/libs/shared/feature/tsconfig.lib.json index dc1283ece..55e1fd000 100644 --- a/libs/shared/feature/tsconfig.lib.json +++ b/libs/shared/feature/tsconfig.lib.json @@ -5,7 +5,8 @@ "declaration": true, "declarationMap": true, "inlineSources": true, - "types": [] + "types": [], + "composite": false }, "exclude": ["src/**/*.spec.ts", "src/test-setup.ts", "src/**/*.test.ts"], "include": ["src/**/*.ts"] diff --git a/libs/shared/feature/tsconfig.spec.json b/libs/shared/feature/tsconfig.spec.json index acd519834..4f49d6ed8 100644 --- a/libs/shared/feature/tsconfig.spec.json +++ b/libs/shared/feature/tsconfig.spec.json @@ -4,7 +4,8 @@ "outDir": "../../dist/out-tsc", "types": ["node", "vitest/globals"], "target": "es2016", - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] diff --git a/libs/top-bar/package.json b/libs/top-bar/package.json index c516fc616..4f08f561f 100644 --- a/libs/top-bar/package.json +++ b/libs/top-bar/package.json @@ -4,6 +4,14 @@ "type": "module", "version": "0.0.0", "devDependencies": { - "@analogjs/vite-plugin-angular": "workspace:*" + "@analogjs/vite-plugin-angular": "workspace:*", + "@analogjs/vitest-angular": "workspace:*" + }, + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./src/index.ts", + "default": "./src/index.ts" + } } } diff --git a/libs/top-bar/project.json b/libs/top-bar/project.json index 3bdab5390..3119ce1a3 100644 --- a/libs/top-bar/project.json +++ b/libs/top-bar/project.json @@ -7,6 +7,31 @@ "tags": [], "implicitDependencies": ["vite-plugin-angular"], "targets": { + "assert-deps": { + "executor": "nx:run-commands", + "options": { + "command": "node tools/scripts/assert-project-dependency.mts top-bar vite-plugin-angular" + } + }, + "build": { + "executor": "@nx/vite:build", + "dependsOn": ["assert-deps", "vite-plugin-angular:build"], + "outputs": ["{options.outputPath}"], + "options": { + "configFile": "libs/top-bar/vite.config.ts", + "outputPath": "dist/libs/top-bar" + }, + "defaultConfiguration": "production", + "configurations": { + "development": { + "mode": "development" + }, + "production": { + "sourcemap": true, + "mode": "production" + } + } + }, "test": { "executor": "@nx/vitest:test", "dependsOn": ["^build"] diff --git a/libs/top-bar/src/lib/top-bar/template.html b/libs/top-bar/src/lib/top-bar/template.html deleted file mode 100644 index c9bda0e39..000000000 --- a/libs/top-bar/src/lib/top-bar/template.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - -

My Store

-
- - - shopping_cartCheckout - diff --git a/libs/top-bar/src/lib/top-bar/top-bar.component.ts b/libs/top-bar/src/lib/top-bar/top-bar.component.ts index de1987f3f..6831d1761 100644 --- a/libs/top-bar/src/lib/top-bar/top-bar.component.ts +++ b/libs/top-bar/src/lib/top-bar/top-bar.component.ts @@ -9,7 +9,21 @@ import { RouterLinkWithHref } from '@angular/router'; selector: 'analogjs-top-bar', standalone: true, imports: [RouterLinkWithHref], - templateUrl: './template.html', + template: ` + + + +

My Store

+
+ + + shopping_cartCheckout + + `, encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, }) diff --git a/libs/top-bar/tsconfig.json b/libs/top-bar/tsconfig.json index 632579ceb..b0716d70d 100644 --- a/libs/top-bar/tsconfig.json +++ b/libs/top-bar/tsconfig.json @@ -15,6 +15,12 @@ "files": [], "include": [], "references": [ + { + "path": "../../packages/vitest-angular" + }, + { + "path": "../../packages/vite-plugin-angular" + }, { "path": "./tsconfig.lib.json" }, diff --git a/libs/top-bar/tsconfig.lib.json b/libs/top-bar/tsconfig.lib.json index 923b757f4..af04615ca 100644 --- a/libs/top-bar/tsconfig.lib.json +++ b/libs/top-bar/tsconfig.lib.json @@ -5,7 +5,8 @@ "declaration": true, "declarationMap": true, "inlineSources": true, - "types": [] + "types": [], + "composite": false }, "exclude": ["src/test-setup.ts", "src/**/*.spec.ts", "src/**/*.test.ts"], "include": ["src/**/*.ts"] diff --git a/libs/top-bar/tsconfig.spec.json b/libs/top-bar/tsconfig.spec.json index 37fc613d5..30b4f3872 100644 --- a/libs/top-bar/tsconfig.spec.json +++ b/libs/top-bar/tsconfig.spec.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "../../dist/out-tsc", "types": ["node", "vitest/globals"], - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"] diff --git a/libs/top-bar/vite.config.ts b/libs/top-bar/vite.config.ts index 49540251e..0740d8af4 100644 --- a/libs/top-bar/vite.config.ts +++ b/libs/top-bar/vite.config.ts @@ -1,14 +1,45 @@ /// +import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; import { defineConfig } from 'vite'; import angular from '@analogjs/vite-plugin-angular'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; // https://vitejs.dev/config/ -export default defineConfig(({ mode }) => { +export default defineConfig(({ command, mode }) => { + const tsconfig = + process.env['ANALOG_BUILD_LIB_TSCONFIG'] ?? + (command === 'build' + ? `${__dirname}/tsconfig.lib.json` + : `${__dirname}/tsconfig.spec.json`); + return { root: __dirname, - plugins: [angular(), nxViteTsPaths()], + cacheDir: '../../node_modules/.vite/libs/top-bar', + plugins: [ + angular({ jit: false, tsconfig }), + nxCopyAssetsPlugin(['*.md', 'package.json']), + ], + resolve: { + mainFields: ['module'], + }, + build: { + target: ['esnext'], + sourcemap: true, + lib: { + entry: 'src/index.ts', + fileName: 'fesm2022/top-bar', + formats: ['es'], + }, + rollupOptions: { + external: [/^@angular\/.*/, 'rxjs', 'rxjs/operators'], + output: { + preserveModules: false, + }, + }, + cssCodeSplit: false, + cssMinify: true, + minify: false, + }, test: { reporters: ['default'], globals: true, diff --git a/nx.json b/nx.json index 93e047c28..895b59eff 100644 --- a/nx.json +++ b/nx.json @@ -16,6 +16,10 @@ "test": { "cache": true }, + "typecheck": { + "cache": true, + "inputs": ["default", "^production"] + }, "e2e": { "cache": true }, @@ -72,6 +76,16 @@ "nxCloudAccessToken": "NDRkYzdkYmMtNDI3NS00MDI0LWFkMGQtMmI0Zjc2MTY2YzU0fHJlYWQtb25seQ==", "defaultBase": "beta", "plugins": [ + { + "plugin": "@nx/js/typescript", + "options": { + "compiler": "tsgo", + "typecheck": { + "targetName": "typecheck" + }, + "build": false + } + }, { "plugin": "@nx/eslint/plugin", "options": { @@ -79,5 +93,13 @@ } } ], + "sync": { + "globalGenerators": ["@nx/js:typescript-sync"], + "generatorOptions": { + "@nx/js:typescript-sync": { + "runtimeTsConfigFileNames": [] + } + } + }, "analytics": false } diff --git a/package.json b/package.json index 1adac2e67..9f5d3b311 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "analogjs-platform", - "version": "3.0.0-alpha.25", + "version": "3.0.0-alpha.26", "license": "MIT", "type": "module", "scripts": { @@ -35,8 +35,10 @@ "release:smoke": "node tools/scripts/smoke-release-consumers.mts", "release:verify": "node tools/scripts/release-artifacts.mts verify", "start": "nx serve", + "typecheck": "nx run-many --target typecheck --projects=analog-app,analog-app-e2e,astro-app,astro-app-e2e-playwright,blog-app-e2e,docs-app,tailwind-debug-app,tanstack-query-app,tanstack-query-app-e2e,content-plugin,nx-plugin,router,vite-plugin-angular-tools,vitest-angular-tools", "test:vite-ci": "nx run-many --target test --exclude card --all --skip-nx-cache", - "test": "nx run-many --target test" + "test": "nx run-many --target test", + "typecheck:all": "nx run-many --target typecheck --all" }, "engines": { "node": "^24.3.0", @@ -156,6 +158,7 @@ "@typescript-eslint/parser": "catalog:", "@typescript-eslint/type-utils": "catalog:", "@typescript-eslint/utils": "catalog:", + "@typescript/native-preview": "7.0.0-dev.20260411.1", "@vitest/browser-playwright": "catalog:", "@vitest/coverage-v8": "catalog:", "@vitest/ui": "catalog:", @@ -247,7 +250,10 @@ "oxc-parser", "sharp", "vite-tsconfig-paths" - ] + ], + "patchedDependencies": { + "srvx@0.11.15": "patches/srvx@0.11.15.patch" + } }, "overrides": { "@angular/animations": "$@angular/animations", diff --git a/packages/astro-angular/package.json b/packages/astro-angular/package.json index c62c65e9a..dae98db80 100644 --- a/packages/astro-angular/package.json +++ b/packages/astro-angular/package.json @@ -1,6 +1,6 @@ { "name": "@analogjs/astro-angular", - "version": "3.0.0-alpha.25", + "version": "3.0.0-alpha.26", "description": "Use Angular components within Astro", "type": "module", "author": "Brandon Roberts ", diff --git a/packages/astro-angular/project.json b/packages/astro-angular/project.json index 3a9fc6720..aa57028b4 100644 --- a/packages/astro-angular/project.json +++ b/packages/astro-angular/project.json @@ -37,6 +37,13 @@ "preset": "conventional", "tagPrefix": "astro-angular@" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/astro-angular", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/astro-angular/tsconfig.json b/packages/astro-angular/tsconfig.json index e9ae9e23b..465ad9281 100644 --- a/packages/astro-angular/tsconfig.json +++ b/packages/astro-angular/tsconfig.json @@ -14,6 +14,12 @@ "files": [], "include": [], "references": [ + { + "path": "../vitest-angular" + }, + { + "path": "../vite-plugin-angular" + }, { "path": "./tsconfig.lib.json" }, diff --git a/packages/astro-angular/tsconfig.lib.json b/packages/astro-angular/tsconfig.lib.json index 7f492fb6a..84babe883 100644 --- a/packages/astro-angular/tsconfig.lib.json +++ b/packages/astro-angular/tsconfig.lib.json @@ -7,12 +7,7 @@ "declarationMap": true, "inlineSources": true, "types": [], - "paths": { - "@analogjs/vite-plugin-angular": [ - "../../packages/vite-plugin-angular/src/index.ts", - "../../packages/vite-plugin-angular/dist" - ] - } + "composite": false }, "include": ["**/*.ts"], "exclude": [ diff --git a/packages/astro-angular/tsconfig.spec.json b/packages/astro-angular/tsconfig.spec.json index 8a7455d9d..4868b02a5 100644 --- a/packages/astro-angular/tsconfig.spec.json +++ b/packages/astro-angular/tsconfig.spec.json @@ -5,7 +5,8 @@ "module": "preserve", "types": ["node", "vitest/globals"], "moduleResolution": "bundler", - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "files": ["src/test-setup.ts"], "include": [ diff --git a/packages/content-plugin/project.json b/packages/content-plugin/project.json index f57df9751..87bcefd42 100644 --- a/packages/content-plugin/project.json +++ b/packages/content-plugin/project.json @@ -19,6 +19,13 @@ }, "test": { "executor": "@nx/vitest:test" + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/content-plugin", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/content-plugin/tsconfig.lib.json b/packages/content-plugin/tsconfig.lib.json index f2c54f349..77d8f557f 100644 --- a/packages/content-plugin/tsconfig.lib.json +++ b/packages/content-plugin/tsconfig.lib.json @@ -4,7 +4,8 @@ "outDir": "../../dist/out-tsc", "declaration": true, "isolatedDeclarations": true, - "types": ["node"] + "types": ["node"], + "composite": false }, "include": ["src/**/*.ts"], "exclude": ["src/**/*.spec.ts", "src/**/*.test.ts"] diff --git a/packages/content-plugin/tsconfig.spec.json b/packages/content-plugin/tsconfig.spec.json index c1357aaa1..2594b51b3 100644 --- a/packages/content-plugin/tsconfig.spec.json +++ b/packages/content-plugin/tsconfig.spec.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "../../dist/out-tsc", "module": "commonjs", - "types": ["node"] + "types": ["node"], + "composite": false }, "include": ["src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"], "exclude": [ diff --git a/packages/content/md4x/src/lib/provide-md4x.spec.ts b/packages/content/md4x/src/lib/provide-md4x.spec.ts index b421ae042..c0c65520a 100644 --- a/packages/content/md4x/src/lib/provide-md4x.spec.ts +++ b/packages/content/md4x/src/lib/provide-md4x.spec.ts @@ -5,7 +5,7 @@ import { ContentRenderer } from '../../../src/lib/content-renderer'; import { provideContent } from '../../../src/lib/provide-content'; import { CONTENT_FILE_LOADER } from '../../../src/lib/content-file-loader'; import { CONTENT_LIST_LOADER } from '../../../src/lib/content-list-loader'; -import { MDC_COMPONENTS, withMdcComponents } from '@analogjs/content/mdc'; +import { MDC_COMPONENTS, withMdcComponents } from '../../../mdc/src/index'; import { Md4xContentRendererService, MD4X_RENDERER_OPTIONS, diff --git a/packages/content/package.json b/packages/content/package.json index 234f7193f..fd5ae700f 100644 --- a/packages/content/package.json +++ b/packages/content/package.json @@ -1,6 +1,6 @@ { "name": "@analogjs/content", - "version": "3.0.0-alpha.25", + "version": "3.0.0-alpha.26", "description": "Content Rendering for Analog", "type": "module", "author": "Brandon Roberts ", @@ -113,7 +113,8 @@ "tslib": "catalog:" }, "devDependencies": { - "@analogjs/vite-plugin-angular": "workspace:*" + "@analogjs/vite-plugin-angular": "workspace:*", + "@analogjs/vitest-angular": "workspace:*" }, "ng-update": { "packageGroup": [ diff --git a/packages/content/prism-highlighter/src/index.ts b/packages/content/prism-highlighter/src/index.ts index ca24cc99f..e50d59ad7 100644 --- a/packages/content/prism-highlighter/src/index.ts +++ b/packages/content/prism-highlighter/src/index.ts @@ -1,7 +1,10 @@ -import { ContentRenderer, NoopContentRenderer } from '@analogjs/content'; import { Provider } from '@angular/core'; import { PrismHighlighter } from './lib/prism-highlighter'; +import { + ContentRenderer, + NoopContentRenderer, +} from '../../src/lib/content-renderer'; import 'prismjs'; import 'prismjs/plugins/toolbar/prism-toolbar'; import 'prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard'; diff --git a/packages/content/prism-highlighter/src/lib/prism-highlighter.ts b/packages/content/prism-highlighter/src/lib/prism-highlighter.ts index d74f87fdc..4c69a4a24 100644 --- a/packages/content/prism-highlighter/src/lib/prism-highlighter.ts +++ b/packages/content/prism-highlighter/src/lib/prism-highlighter.ts @@ -1,7 +1,8 @@ -import { MarkedContentHighlighter } from '@analogjs/content'; import { Injectable } from '@angular/core'; import { markedHighlight } from 'marked-highlight'; +import { MarkedContentHighlighter } from '../../../src/lib/marked-content-highlighter'; + declare const Prism: typeof import('prismjs'); @Injectable() diff --git a/packages/content/project.json b/packages/content/project.json index dae9357c9..f5ee64868 100644 --- a/packages/content/project.json +++ b/packages/content/project.json @@ -45,6 +45,13 @@ "preset": "conventional", "tagPrefix": "content@" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/content", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/content/resources/src/content-file-resource.spec.ts b/packages/content/resources/src/content-file-resource.spec.ts index 02b1e1af7..4ea3c8dd7 100644 --- a/packages/content/resources/src/content-file-resource.spec.ts +++ b/packages/content/resources/src/content-file-resource.spec.ts @@ -3,11 +3,12 @@ import { ApplicationRef } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { ActivatedRoute, convertToParamMap } from '@angular/router'; import type { StandardSchemaV1 } from '@standard-schema/spec'; -import { CONTENT_FILE_LOADER, ContentRenderer } from '@analogjs/content'; import { of } from 'rxjs'; import { describe, expect, it } from 'vitest'; import { contentFileResource } from './content-file-resource'; +import { CONTENT_FILE_LOADER } from '../../src/lib/content-file-loader'; +import { ContentRenderer } from '../../src/lib/content-renderer'; const TEST_RESOURCE_TOKEN = new InjectionToken< ReturnType diff --git a/packages/content/resources/src/content-file-resource.ts b/packages/content/resources/src/content-file-resource.ts index 8d79f60ca..4c4761787 100644 --- a/packages/content/resources/src/content-file-resource.ts +++ b/packages/content/resources/src/content-file-resource.ts @@ -6,19 +6,19 @@ import { Signal, type ResourceRef, } from '@angular/core'; -import { - ContentFile, - ContentRenderer, - FrontmatterValidationError, - parseRawContentFile, - parseRawContentFileAsync, - injectContentFileLoader, -} from '@analogjs/content'; import { ActivatedRoute } from '@angular/router'; import { toSignal } from '@angular/core/rxjs-interop'; import { from } from 'rxjs'; import { map } from 'rxjs/operators'; +import type { ContentFile } from '../../src/lib/content-file'; +import { ContentRenderer } from '../../src/lib/content-renderer'; +import { + FrontmatterValidationError, + parseRawContentFile, + parseRawContentFileAsync, +} from '../../src/lib/parse-raw-content-file'; +import { injectContentFileLoader } from '../../src/lib/content-file-loader'; export interface ContentFileResourceResult< Attributes extends Record = Record, diff --git a/packages/content/resources/src/content-files-resource.ts b/packages/content/resources/src/content-files-resource.ts index 5aa0e00ff..469781523 100644 --- a/packages/content/resources/src/content-files-resource.ts +++ b/packages/content/resources/src/content-files-resource.ts @@ -1,9 +1,7 @@ import { resource, ResourceRef } from '@angular/core'; -import { - ContentFile, - injectContentListLoader, - InjectContentFilesFilterFunction, -} from '@analogjs/content'; +import type { ContentFile } from '../../src/lib/content-file'; +import type { InjectContentFilesFilterFunction } from '../../src/lib/inject-content-files'; +import { injectContentListLoader } from '../../src/lib/content-list-loader'; export function contentFilesResource>( filterFn?: InjectContentFilesFilterFunction | undefined, diff --git a/packages/content/shiki-highlighter/src/index.ts b/packages/content/shiki-highlighter/src/index.ts index 79f88a320..6d4e367ad 100644 --- a/packages/content/shiki-highlighter/src/index.ts +++ b/packages/content/shiki-highlighter/src/index.ts @@ -1,4 +1,3 @@ -import { ContentRenderer, NoopContentRenderer } from '@analogjs/content'; import { Provider } from '@angular/core'; import type { BundledLanguage, @@ -9,6 +8,11 @@ import type { CodeToHastOptionsCommon, } from 'shiki'; +import { + ContentRenderer, + NoopContentRenderer, +} from '../../src/lib/content-renderer'; + export type ShikiHighlightOptions = Partial< Omit, 'lang'> > & diff --git a/packages/content/tsconfig.json b/packages/content/tsconfig.json index ddf4af398..07252e402 100644 --- a/packages/content/tsconfig.json +++ b/packages/content/tsconfig.json @@ -16,6 +16,12 @@ "files": [], "include": [], "references": [ + { + "path": "../vitest-angular" + }, + { + "path": "../vite-plugin-angular" + }, { "path": "./tsconfig.lib.json" } diff --git a/packages/content/tsconfig.lib.json b/packages/content/tsconfig.lib.json index fa56523dd..ec6ece761 100644 --- a/packages/content/tsconfig.lib.json +++ b/packages/content/tsconfig.lib.json @@ -8,10 +8,7 @@ "types": [], "isolatedDeclarations": true, "rootDir": ".", - "paths": { - "@analogjs/content": ["./src/index.ts"], - "@analogjs/content/*": ["./*"] - } + "composite": false }, "exclude": [ "**/*.spec.ts", diff --git a/packages/content/tsconfig.spec.json b/packages/content/tsconfig.spec.json index bd10dba8d..376931585 100644 --- a/packages/content/tsconfig.spec.json +++ b/packages/content/tsconfig.spec.json @@ -5,7 +5,8 @@ "module": "preserve", "types": ["node", "vitest/globals"], "moduleResolution": "bundler", - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "files": ["src/test-setup.ts"], "include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"] diff --git a/packages/create-analog/package.json b/packages/create-analog/package.json index d46b8ebe5..5c6dcbd76 100644 --- a/packages/create-analog/package.json +++ b/packages/create-analog/package.json @@ -1,6 +1,6 @@ { "name": "create-analog", - "version": "3.0.0-alpha.25", + "version": "3.0.0-alpha.26", "type": "module", "license": "MIT", "author": "Brandon Roberts", diff --git a/packages/create-analog/project.json b/packages/create-analog/project.json index bfba2a5de..f86af2ee7 100644 --- a/packages/create-analog/project.json +++ b/packages/create-analog/project.json @@ -25,6 +25,13 @@ "preset": "conventional", "tagPrefix": "create-analog@" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/create-analog", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/create-analog/template-angular-v17/package.json b/packages/create-analog/template-angular-v17/package.json index 564c15bee..77e2cd978 100644 --- a/packages/create-analog/template-angular-v17/package.json +++ b/packages/create-analog/template-angular-v17/package.json @@ -15,8 +15,8 @@ "test": "ng test" }, "dependencies": { - "@analogjs/content": "^3.0.0-alpha.25", - "@analogjs/router": "^3.0.0-alpha.25", + "@analogjs/content": "^3.0.0-alpha.26", + "@analogjs/router": "^3.0.0-alpha.26", "@angular/animations": "^17.2.0", "@angular/common": "^17.2.0", "@angular/compiler": "^17.2.0", @@ -38,9 +38,9 @@ "zone.js": "~0.14.0" }, "devDependencies": { - "@analogjs/platform": "^3.0.0-alpha.25", - "@analogjs/vite-plugin-angular": "^3.0.0-alpha.25", - "@analogjs/vitest-angular": "^3.0.0-alpha.25", + "@analogjs/platform": "^3.0.0-alpha.26", + "@analogjs/vite-plugin-angular": "^3.0.0-alpha.26", + "@analogjs/vitest-angular": "^3.0.0-alpha.26", "@angular-devkit/build-angular": "^17.2.0", "@angular/cli": "^17.2.0", "@angular/compiler-cli": "^17.2.0", diff --git a/packages/create-analog/template-angular-v17/tsconfig.spec.json b/packages/create-analog/template-angular-v17/tsconfig.spec.json index 5e662598a..f8b7b8b7b 100644 --- a/packages/create-analog/template-angular-v17/tsconfig.spec.json +++ b/packages/create-analog/template-angular-v17/tsconfig.spec.json @@ -5,7 +5,8 @@ "outDir": "./out-tsc/spec", "target": "es2016", "types": ["node", "vitest/globals"], - "rootDir": "./src" + "rootDir": "./src", + "composite": false }, "files": ["src/test.ts"], "include": ["src/**/*.spec.ts", "src/**/*.ts"] diff --git a/packages/create-analog/template-angular-v18/package.json b/packages/create-analog/template-angular-v18/package.json index fc45c9afa..b82204306 100644 --- a/packages/create-analog/template-angular-v18/package.json +++ b/packages/create-analog/template-angular-v18/package.json @@ -15,8 +15,8 @@ }, "private": true, "dependencies": { - "@analogjs/content": "^3.0.0-alpha.25", - "@analogjs/router": "^3.0.0-alpha.25", + "@analogjs/content": "^3.0.0-alpha.26", + "@analogjs/router": "^3.0.0-alpha.26", "@angular/animations": "^18.0.0", "@angular/build": "^18.0.0", "@angular/common": "^18.0.0", @@ -38,9 +38,9 @@ "zone.js": "~0.14.3" }, "devDependencies": { - "@analogjs/platform": "^3.0.0-alpha.25", - "@analogjs/vite-plugin-angular": "^3.0.0-alpha.25", - "@analogjs/vitest-angular": "^3.0.0-alpha.25", + "@analogjs/platform": "^3.0.0-alpha.26", + "@analogjs/vite-plugin-angular": "^3.0.0-alpha.26", + "@analogjs/vitest-angular": "^3.0.0-alpha.26", "@angular/cli": "^18.0.0", "@angular/compiler-cli": "^18.0.0", "jsdom": "^22.0.0", diff --git a/packages/create-analog/template-angular-v18/tsconfig.spec.json b/packages/create-analog/template-angular-v18/tsconfig.spec.json index 21cc0c57f..e93d30dfd 100644 --- a/packages/create-analog/template-angular-v18/tsconfig.spec.json +++ b/packages/create-analog/template-angular-v18/tsconfig.spec.json @@ -5,7 +5,8 @@ "outDir": "./out-tsc/spec", "target": "es2016", "types": ["node", "vitest/globals"], - "rootDir": "./src" + "rootDir": "./src", + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] diff --git a/packages/create-analog/template-angular-v19/package.json b/packages/create-analog/template-angular-v19/package.json index 6059f42dc..8d69f8249 100644 --- a/packages/create-analog/template-angular-v19/package.json +++ b/packages/create-analog/template-angular-v19/package.json @@ -15,8 +15,8 @@ }, "private": true, "dependencies": { - "@analogjs/content": "^3.0.0-alpha.25", - "@analogjs/router": "^3.0.0-alpha.25", + "@analogjs/content": "^3.0.0-alpha.26", + "@analogjs/router": "^3.0.0-alpha.26", "@angular/animations": "^19.0.0", "@angular/common": "^19.0.0", "@angular/compiler": "^19.0.0", @@ -37,9 +37,9 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@analogjs/platform": "^3.0.0-alpha.25", - "@analogjs/vite-plugin-angular": "^3.0.0-alpha.25", - "@analogjs/vitest-angular": "^3.0.0-alpha.25", + "@analogjs/platform": "^3.0.0-alpha.26", + "@analogjs/vite-plugin-angular": "^3.0.0-alpha.26", + "@analogjs/vitest-angular": "^3.0.0-alpha.26", "@angular-devkit/build-angular": "^19.0.0", "@angular/build": "^19.0.0", "@angular/cli": "^19.0.0", diff --git a/packages/create-analog/template-angular-v19/tsconfig.spec.json b/packages/create-analog/template-angular-v19/tsconfig.spec.json index 21cc0c57f..e93d30dfd 100644 --- a/packages/create-analog/template-angular-v19/tsconfig.spec.json +++ b/packages/create-analog/template-angular-v19/tsconfig.spec.json @@ -5,7 +5,8 @@ "outDir": "./out-tsc/spec", "target": "es2016", "types": ["node", "vitest/globals"], - "rootDir": "./src" + "rootDir": "./src", + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] diff --git a/packages/create-analog/template-angular-v20/package.json b/packages/create-analog/template-angular-v20/package.json index 8a8f09546..d8b27dba1 100644 --- a/packages/create-analog/template-angular-v20/package.json +++ b/packages/create-analog/template-angular-v20/package.json @@ -16,8 +16,8 @@ }, "private": true, "dependencies": { - "@analogjs/content": "^3.0.0-alpha.25", - "@analogjs/router": "^3.0.0-alpha.25", + "@analogjs/content": "^3.0.0-alpha.26", + "@analogjs/router": "^3.0.0-alpha.26", "@angular/animations": "^20.0.0", "@angular/common": "^20.0.0", "@angular/compiler": "^20.0.0", @@ -37,9 +37,9 @@ "zone.js": "~0.15.0" }, "devDependencies": { - "@analogjs/platform": "^3.0.0-alpha.25", - "@analogjs/vite-plugin-angular": "^3.0.0-alpha.25", - "@analogjs/vitest-angular": "^3.0.0-alpha.25", + "@analogjs/platform": "^3.0.0-alpha.26", + "@analogjs/vite-plugin-angular": "^3.0.0-alpha.26", + "@analogjs/vitest-angular": "^3.0.0-alpha.26", "@angular-devkit/build-angular": "^20.0.0", "@angular/build": "^20.0.0", "@angular/cli": "^20.0.0", diff --git a/packages/create-analog/template-angular-v20/tsconfig.spec.json b/packages/create-analog/template-angular-v20/tsconfig.spec.json index 943820b50..88d9eeb94 100644 --- a/packages/create-analog/template-angular-v20/tsconfig.spec.json +++ b/packages/create-analog/template-angular-v20/tsconfig.spec.json @@ -5,7 +5,8 @@ "outDir": "./out-tsc/spec", "target": "es2022", "types": ["node", "vitest/globals"], - "rootDir": "./src" + "rootDir": "./src", + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] diff --git a/packages/create-analog/template-blog/package.json b/packages/create-analog/template-blog/package.json index a12fde1c3..aa8d8392e 100644 --- a/packages/create-analog/template-blog/package.json +++ b/packages/create-analog/template-blog/package.json @@ -16,8 +16,8 @@ }, "private": true, "dependencies": { - "@analogjs/content": "^3.0.0-alpha.25", - "@analogjs/router": "^3.0.0-alpha.25", + "@analogjs/content": "^3.0.0-alpha.26", + "@analogjs/router": "^3.0.0-alpha.26", "@angular/animations": "^21.0.0", "@angular/common": "^21.0.0", "@angular/compiler": "^21.0.0", @@ -35,9 +35,9 @@ "tslib": "^2.3.0" }, "devDependencies": { - "@analogjs/platform": "^3.0.0-alpha.25", - "@analogjs/vite-plugin-angular": "^3.0.0-alpha.25", - "@analogjs/vitest-angular": "^3.0.0-alpha.25", + "@analogjs/platform": "^3.0.0-alpha.26", + "@analogjs/vite-plugin-angular": "^3.0.0-alpha.26", + "@analogjs/vitest-angular": "^3.0.0-alpha.26", "@angular/build": "^21.0.0", "@angular/cli": "^21.0.0", "@angular/compiler-cli": "^21.0.0", diff --git a/packages/create-analog/template-blog/tsconfig.spec.json b/packages/create-analog/template-blog/tsconfig.spec.json index af32f962e..ba843b416 100644 --- a/packages/create-analog/template-blog/tsconfig.spec.json +++ b/packages/create-analog/template-blog/tsconfig.spec.json @@ -5,7 +5,8 @@ "outDir": "./out-tsc/spec", "target": "es2022", "types": ["node", "vitest/globals"], - "rootDir": "./src" + "rootDir": "./src", + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.spec.ts", "src/**/*.ts"] diff --git a/packages/create-analog/template-latest/package.json b/packages/create-analog/template-latest/package.json index 0bfd9a9d3..1c84ae697 100644 --- a/packages/create-analog/template-latest/package.json +++ b/packages/create-analog/template-latest/package.json @@ -16,8 +16,8 @@ }, "private": true, "dependencies": { - "@analogjs/content": "^3.0.0-alpha.25", - "@analogjs/router": "^3.0.0-alpha.25", + "@analogjs/content": "^3.0.0-alpha.26", + "@analogjs/router": "^3.0.0-alpha.26", "@angular/animations": "^21.0.0", "@angular/common": "^21.0.0", "@angular/compiler": "^21.0.0", @@ -36,9 +36,9 @@ "tslib": "^2.3.0" }, "devDependencies": { - "@analogjs/platform": "^3.0.0-alpha.25", - "@analogjs/vite-plugin-angular": "^3.0.0-alpha.25", - "@analogjs/vitest-angular": "^3.0.0-alpha.25", + "@analogjs/platform": "^3.0.0-alpha.26", + "@analogjs/vite-plugin-angular": "^3.0.0-alpha.26", + "@analogjs/vitest-angular": "^3.0.0-alpha.26", "@angular/build": "^21.0.0", "@angular/cli": "^21.0.0", "@angular/compiler-cli": "^21.0.0", diff --git a/packages/create-analog/template-latest/tsconfig.spec.json b/packages/create-analog/template-latest/tsconfig.spec.json index 943820b50..88d9eeb94 100644 --- a/packages/create-analog/template-latest/tsconfig.spec.json +++ b/packages/create-analog/template-latest/tsconfig.spec.json @@ -5,7 +5,8 @@ "outDir": "./out-tsc/spec", "target": "es2022", "types": ["node", "vitest/globals"], - "rootDir": "./src" + "rootDir": "./src", + "composite": false }, "files": ["src/test-setup.ts"], "include": ["src/**/*.spec.ts", "src/**/*.d.ts"] diff --git a/packages/create-analog/template-minimal/package.json b/packages/create-analog/template-minimal/package.json index 0bfd9a9d3..1c84ae697 100644 --- a/packages/create-analog/template-minimal/package.json +++ b/packages/create-analog/template-minimal/package.json @@ -16,8 +16,8 @@ }, "private": true, "dependencies": { - "@analogjs/content": "^3.0.0-alpha.25", - "@analogjs/router": "^3.0.0-alpha.25", + "@analogjs/content": "^3.0.0-alpha.26", + "@analogjs/router": "^3.0.0-alpha.26", "@angular/animations": "^21.0.0", "@angular/common": "^21.0.0", "@angular/compiler": "^21.0.0", @@ -36,9 +36,9 @@ "tslib": "^2.3.0" }, "devDependencies": { - "@analogjs/platform": "^3.0.0-alpha.25", - "@analogjs/vite-plugin-angular": "^3.0.0-alpha.25", - "@analogjs/vitest-angular": "^3.0.0-alpha.25", + "@analogjs/platform": "^3.0.0-alpha.26", + "@analogjs/vite-plugin-angular": "^3.0.0-alpha.26", + "@analogjs/vitest-angular": "^3.0.0-alpha.26", "@angular/build": "^21.0.0", "@angular/cli": "^21.0.0", "@angular/compiler-cli": "^21.0.0", diff --git a/packages/create-analog/tsconfig.json b/packages/create-analog/tsconfig.json index a016dfd40..e751ca1a1 100644 --- a/packages/create-analog/tsconfig.json +++ b/packages/create-analog/tsconfig.json @@ -13,5 +13,10 @@ "lib": ["dom", "es2022"] }, "files": [], - "include": [] + "include": [], + "references": [ + { + "path": "../platform" + } + ] } diff --git a/packages/create-analog/tsconfig.lib.json b/packages/create-analog/tsconfig.lib.json index dab9ac66a..ef7fcac8b 100644 --- a/packages/create-analog/tsconfig.lib.json +++ b/packages/create-analog/tsconfig.lib.json @@ -8,7 +8,8 @@ "declaration": true, "isolatedDeclarations": true, "types": [], - "moduleResolution": "bundler" + "moduleResolution": "bundler", + "composite": false }, "include": ["**/*.ts"], "exclude": [ diff --git a/packages/create-analog/tsconfig.spec.json b/packages/create-analog/tsconfig.spec.json index b9ea4b8fd..7375bb74d 100644 --- a/packages/create-analog/tsconfig.spec.json +++ b/packages/create-analog/tsconfig.spec.json @@ -5,7 +5,8 @@ "module": "preserve", "types": ["vitest/globals", "node"], "moduleResolution": "bundler", - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"] } diff --git a/packages/nx-plugin/project.json b/packages/nx-plugin/project.json index f706ffc5f..8c893dbdf 100644 --- a/packages/nx-plugin/project.json +++ b/packages/nx-plugin/project.json @@ -20,6 +20,13 @@ }, "test": { "executor": "@nx/vitest:test" + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/nx-plugin", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/nx-plugin/src/generators/app/files/template-angular-v17/vite.config.ts__template__ b/packages/nx-plugin/src/generators/app/files/template-angular-v17/vite.config.ts__template__ index 713977a98..a7c5e682b 100644 --- a/packages/nx-plugin/src/generators/app/files/template-angular-v17/vite.config.ts__template__ +++ b/packages/nx-plugin/src/generators/app/files/template-angular-v17/vite.config.ts__template__ @@ -2,7 +2,6 @@ import analog from '@analogjs/platform'; import { defineConfig, Plugin } from 'vite'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; <% if (addTailwind) { %> import tailwindcss from '@tailwindcss/vite'; <% } %> @@ -28,7 +27,6 @@ export default defineConfig(({ mode }) => { tailwindcss(), <% } %> analog(), - nxViteTsPaths(), ], test: { globals: true, diff --git a/packages/nx-plugin/src/generators/app/files/template-angular-v18/vite.config.ts__template__ b/packages/nx-plugin/src/generators/app/files/template-angular-v18/vite.config.ts__template__ index 8f3f93d06..f8efa3634 100644 --- a/packages/nx-plugin/src/generators/app/files/template-angular-v18/vite.config.ts__template__ +++ b/packages/nx-plugin/src/generators/app/files/template-angular-v18/vite.config.ts__template__ @@ -2,7 +2,6 @@ import analog from '@analogjs/platform'; import { defineConfig, Plugin } from 'vite'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; <% if (addTailwind) { %> import tailwindcss from '@tailwindcss/vite'; <% } %> @@ -27,7 +26,6 @@ export default defineConfig(({ mode }) => { tailwindcss(), <% } %> analog(), - nxViteTsPaths(), ], test: { globals: true, diff --git a/packages/nx-plugin/src/generators/app/files/template-angular-v19/vite.config.ts__template__ b/packages/nx-plugin/src/generators/app/files/template-angular-v19/vite.config.ts__template__ index 2f6632c00..d0fe48d9e 100644 --- a/packages/nx-plugin/src/generators/app/files/template-angular-v19/vite.config.ts__template__ +++ b/packages/nx-plugin/src/generators/app/files/template-angular-v19/vite.config.ts__template__ @@ -2,7 +2,6 @@ import analog from '@analogjs/platform'; import { defineConfig } from 'vite'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; <% if (addTailwind) { %> import tailwindcss from '@tailwindcss/vite'; <% } %> @@ -27,7 +26,6 @@ export default defineConfig(({ mode }) => { tailwindcss(), <% } %> analog(), - nxViteTsPaths(), ], test: { globals: true, diff --git a/packages/nx-plugin/src/generators/app/files/template-angular/vite.config.ts__template__ b/packages/nx-plugin/src/generators/app/files/template-angular/vite.config.ts__template__ index 618061b13..2d4262240 100644 --- a/packages/nx-plugin/src/generators/app/files/template-angular/vite.config.ts__template__ +++ b/packages/nx-plugin/src/generators/app/files/template-angular/vite.config.ts__template__ @@ -2,7 +2,6 @@ import analog from '@analogjs/platform'; import { defineConfig } from 'vite'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; <% if (addTailwind) { %> import tailwindcss from '@tailwindcss/vite'; <% } %> @@ -27,7 +26,6 @@ export default defineConfig(({ mode }) => { tailwindcss(), <% } %> analog(), - nxViteTsPaths(), ], test: { globals: true, diff --git a/packages/nx-plugin/src/generators/app/versions/nx_18_X/versions.ts b/packages/nx-plugin/src/generators/app/versions/nx_18_X/versions.ts index 4bb42e193..6743aa671 100644 --- a/packages/nx-plugin/src/generators/app/versions/nx_18_X/versions.ts +++ b/packages/nx-plugin/src/generators/app/versions/nx_18_X/versions.ts @@ -2,10 +2,10 @@ // dependencies export const V18_X_NX_DEVKIT = '^20.0.0'; export const V18_X_NX_ANGULAR = '^20.0.0'; -export const V18_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.25'; -export const V18_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.25'; -export const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.25'; -export const V18_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.25'; +export const V18_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.26'; +export const V18_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.26'; +export const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.26'; +export const V18_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.26'; export const V18_X_FRONT_MATTER = '^4.0.2'; export const V18_X_MARKED = '^15.0.7'; export const V18_X_MARKED_GFM_HEADING_ID = '^4.1.1'; @@ -19,7 +19,7 @@ export const V18_X_TAILWINDCSS_VITE = '^4.2.2'; export const V18_X_POSTCSS = '^8.5.6'; // devDependencies -export const V18_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.25'; +export const V18_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.26'; export const V18_X_ANGULAR_DEVKIT_BUILD_ANGULAR = '^19.0.0'; export const V18_X_NX_VITE = '^21.0.0'; export const V18_X_NX_LINTER = '^21.0.0'; diff --git a/packages/nx-plugin/src/generators/init/files/vite.config.ts__template__ b/packages/nx-plugin/src/generators/init/files/vite.config.ts__template__ index 9e8ba1586..6a0a81386 100644 --- a/packages/nx-plugin/src/generators/init/files/vite.config.ts__template__ +++ b/packages/nx-plugin/src/generators/init/files/vite.config.ts__template__ @@ -2,9 +2,7 @@ import { defineConfig } from 'vite'; import analog from '@analogjs/platform'; -<% if (isNx) { %> -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; -<% } else { %> +<% if (!isNx) { %> import viteTsConfigPaths from 'vite-tsconfig-paths'; <% } %> @@ -26,9 +24,7 @@ export default defineConfig(({ mode }) => { routes: [] } }), -<% if (isNx) { %> - nxViteTsPaths(), -<% } else { %> +<% if (!isNx) { %> viteTsConfigPaths(), <% } %> ], diff --git a/packages/nx-plugin/src/generators/preset/__snapshots__/generator.spec.ts.snap b/packages/nx-plugin/src/generators/preset/__snapshots__/generator.spec.ts.snap index cce6a6fcd..dcf7ec6f4 100644 --- a/packages/nx-plugin/src/generators/preset/__snapshots__/generator.spec.ts.snap +++ b/packages/nx-plugin/src/generators/preset/__snapshots__/generator.spec.ts.snap @@ -101,7 +101,6 @@ exports[`preset generator > should match vite.config.ts 1`] = ` import analog from '@analogjs/platform'; import { defineConfig } from 'vite'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; import tailwindcss from '@tailwindcss/vite'; @@ -120,7 +119,7 @@ export default defineConfig(({ mode }) => { allow: ['.'], }, }, - plugins: [tailwindcss(), analog(), nxViteTsPaths()], + plugins: [tailwindcss(), analog()], test: { globals: true, environment: 'jsdom', diff --git a/packages/nx-plugin/src/generators/setup-vitest/files/vite.config.mts__template__ b/packages/nx-plugin/src/generators/setup-vitest/files/vite.config.mts__template__ index fbd532115..21fa74638 100644 --- a/packages/nx-plugin/src/generators/setup-vitest/files/vite.config.mts__template__ +++ b/packages/nx-plugin/src/generators/setup-vitest/files/vite.config.mts__template__ @@ -1,9 +1,6 @@ /// import angular from '@analogjs/vite-plugin-angular'; -<% if (addNxPaths) { %> -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; -<% } %> import { defineConfig } from 'vite'; // https://vitejs.dev/config/ @@ -11,9 +8,6 @@ export default defineConfig(({ mode }) => { return { plugins: [ angular(), - <% if (addNxPaths) { %> - nxViteTsPaths() - <% } %> ], test: { globals: true, diff --git a/packages/nx-plugin/src/generators/setup-vitest/generator.spec.ts b/packages/nx-plugin/src/generators/setup-vitest/generator.spec.ts index 7f211df32..dcb4f3c9f 100644 --- a/packages/nx-plugin/src/generators/setup-vitest/generator.spec.ts +++ b/packages/nx-plugin/src/generators/setup-vitest/generator.spec.ts @@ -88,15 +88,12 @@ describe('setup-vitest generator', () => { '/// ', '', `import angular from '@analogjs/vite-plugin-angular';`, - '', - `import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';`, - '', `import { defineConfig } from 'vite';`, '', '// https://vitejs.dev/config/', 'export default defineConfig(({ mode }) => {', ' return {', - ' plugins: [angular(), nxViteTsPaths()],', + ' plugins: [angular()],', ' test: {', ' globals: true,', " environment: 'jsdom',", diff --git a/packages/nx-plugin/src/generators/setup-vitest/generator.ts b/packages/nx-plugin/src/generators/setup-vitest/generator.ts index af6c5e024..2e3ccb384 100644 --- a/packages/nx-plugin/src/generators/setup-vitest/generator.ts +++ b/packages/nx-plugin/src/generators/setup-vitest/generator.ts @@ -20,7 +20,6 @@ function addFiles( majorAngularVersion: number, ) { const projects = getProjects(tree); - const isNx = tree.exists('/nx.json'); const projectConfig = projects.get(options.project); @@ -31,7 +30,6 @@ function addFiles( const templateOptions = { ...options, majorAngularVersion, - addNxPaths: isNx, template: '', }; diff --git a/packages/nx-plugin/src/utils/versions/ng_19_X/versions.ts b/packages/nx-plugin/src/utils/versions/ng_19_X/versions.ts index 1492ca368..2159595c5 100644 --- a/packages/nx-plugin/src/utils/versions/ng_19_X/versions.ts +++ b/packages/nx-plugin/src/utils/versions/ng_19_X/versions.ts @@ -1,6 +1,6 @@ // V19_X -export const V19_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.25'; -export const V19_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.25'; +export const V19_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.26'; +export const V19_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.26'; export const V19_X_MARKED = '^15.0.7'; export const V19_X_MARKED_GFM_HEADING_ID = '^4.1.1'; export const V19_X_MARKED_HIGHLIGHT = '^2.2.1'; @@ -8,9 +8,9 @@ export const V19_X_MARKED_MANGLE = '^1.1.10'; export const V19_X_PRISMJS = '^1.29.0'; // devDependencies -export const V19_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.25'; -export const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.25'; -export const V19_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.25'; +export const V19_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.26'; +export const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.26'; +export const V19_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.26'; export const V19_X_NX_ANGULAR = '^22.0.0'; export const V19_X_NX_VITE = '^22.0.0'; export const V19_X_JSDOM = '^22.0.0'; diff --git a/packages/nx-plugin/tsconfig.lib.json b/packages/nx-plugin/tsconfig.lib.json index 51f125b10..0daa0d3ff 100644 --- a/packages/nx-plugin/tsconfig.lib.json +++ b/packages/nx-plugin/tsconfig.lib.json @@ -6,7 +6,8 @@ "outDir": "../../dist/out-tsc", "declaration": true, "isolatedDeclarations": true, - "types": ["node"] + "types": ["node"], + "composite": false }, "include": ["src/**/*.ts"], "exclude": [ diff --git a/packages/nx-plugin/tsconfig.spec.json b/packages/nx-plugin/tsconfig.spec.json index c1357aaa1..2594b51b3 100644 --- a/packages/nx-plugin/tsconfig.spec.json +++ b/packages/nx-plugin/tsconfig.spec.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "../../dist/out-tsc", "module": "commonjs", - "types": ["node"] + "types": ["node"], + "composite": false }, "include": ["src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"], "exclude": [ diff --git a/packages/platform/package.json b/packages/platform/package.json index 6e9641a89..67f015d47 100644 --- a/packages/platform/package.json +++ b/packages/platform/package.json @@ -1,6 +1,6 @@ { "name": "@analogjs/platform", - "version": "3.0.0-alpha.25", + "version": "3.0.0-alpha.26", "description": "The fullstack meta-framework for Angular", "type": "module", "author": "Brandon Roberts ", @@ -9,6 +9,18 @@ "types": "./dist/src/index.d.ts", "default": "./dist/src/index.js" }, + "./style-pipeline": { + "types": "./dist/src/style-pipeline.d.ts", + "import": "./dist/src/style-pipeline.js", + "require": "./dist/src/style-pipeline.js", + "default": "./dist/src/style-pipeline.js" + }, + "./style-preprocessor": { + "types": "./dist/src/style-preprocessor.d.ts", + "import": "./dist/src/style-preprocessor.js", + "require": "./dist/src/style-preprocessor.js", + "default": "./dist/src/style-preprocessor.js" + }, "./package.json": "./package.json" }, "keywords": [ diff --git a/packages/platform/project.json b/packages/platform/project.json index d4a27638b..edbd2a0c0 100644 --- a/packages/platform/project.json +++ b/packages/platform/project.json @@ -42,6 +42,13 @@ "preset": "conventional", "tagPrefix": "platform@" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/platform", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/platform/src/index.ts b/packages/platform/src/index.ts index adaf9a6b3..c29307ca0 100644 --- a/packages/platform/src/index.ts +++ b/packages/platform/src/index.ts @@ -16,6 +16,34 @@ export type { } from './lib/options.js'; export { routeGenerationPlugin } from './lib/route-generation-plugin.js'; export { tailwindPreprocessor } from './lib/tailwind-preprocessor.js'; +export type { + AngularStylePipelineContext, + AngularStylePipelineOptions, + AngularStylePipelinePlugin, + StylePipelineContext, + StylePipelineOptions, + StylePipelinePluginEntry, + StylePipelinePluginFactory, +} from './lib/style-pipeline.js'; +export { + defineAngularStylePipeline, + defineAngularStylePipelinePlugins, + defineStylePipeline, + defineStylePipelinePlugins, + resolveStylePipelinePlugins, +} from './lib/style-pipeline.js'; +export type { + StylePreprocessor, + StylesheetDependency, + StylesheetDiagnostic, + StylesheetTransformContext, + StylesheetTransformResult, +} from './lib/style-preprocessor.js'; +export { + composeStylePreprocessors, + normalizeStylesheetDependencies, + normalizeStylesheetTransformResult, +} from './lib/style-preprocessor.js'; export type { TailwindPreprocessorMode, TailwindPreprocessorOptions, diff --git a/packages/platform/src/lib/discover-library-routes.spec.ts b/packages/platform/src/lib/discover-library-routes.spec.ts index de0c8ebe9..680608b7a 100644 --- a/packages/platform/src/lib/discover-library-routes.spec.ts +++ b/packages/platform/src/lib/discover-library-routes.spec.ts @@ -1,43 +1,50 @@ -import { describe, expect, it, vi, beforeEach } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; -vi.mock('node:fs', () => ({ - existsSync: vi.fn(), - readFileSync: vi.fn(), +vi.mock('tinyglobby', () => ({ + globSync: vi.fn(() => []), })); -import { existsSync, readFileSync } from 'node:fs'; +import { globSync } from 'tinyglobby'; import { discoverLibraryRoutes } from './discover-library-routes.js'; -const mockExistsSync = vi.mocked(existsSync); -const mockReadFileSync = vi.mocked(readFileSync); - -function mockTsconfig(paths: Record) { - mockReadFileSync.mockReturnValue( - JSON.stringify({ compilerOptions: { paths } }), - ); - // tsconfig.base.json exists - mockExistsSync.mockImplementation((p) => { - if (String(p).endsWith('tsconfig.base.json')) return true; - return false; - }); -} +const mockGlobSync = vi.mocked(globSync); describe('discoverLibraryRoutes', () => { beforeEach(() => { vi.clearAllMocks(); }); - it('discovers pages, content, and api dirs from tsconfig paths', () => { - mockReadFileSync.mockReturnValue( - JSON.stringify({ - compilerOptions: { - paths: { - 'shared/feature': ['./libs/shared/feature/src/index.ts'], - }, - }, + it('discovers pages, content, and api dirs from workspace libraries', () => { + mockGlobSync.mockReturnValue([ + 'libs/shared/feature/src/pages', + 'libs/shared/feature/src/content', + 'libs/shared/feature/src/api', + ]); + + const result = discoverLibraryRoutes('/workspace'); + + expect(mockGlobSync).toHaveBeenCalledWith( + ['libs/**/src/pages', 'libs/**/src/content', 'libs/**/src/api'], + expect.objectContaining({ + cwd: '/workspace', + dot: true, + onlyDirectories: true, }), ); - mockExistsSync.mockReturnValue(true); + expect(result).toEqual({ + additionalPagesDirs: ['/libs/shared/feature'], + additionalContentDirs: ['/libs/shared/feature/src/content'], + additionalAPIDirs: ['/libs/shared/feature/src/api'], + }); + }); + + it('deduplicates multiple discovered dirs from the same library', () => { + mockGlobSync.mockReturnValue([ + 'libs/shared/feature/src/content', + 'libs/shared/feature/src/pages', + 'libs/shared/feature/src/api', + 'libs/shared/feature/src/pages', + ]); const result = discoverLibraryRoutes('/workspace'); @@ -48,62 +55,26 @@ describe('discoverLibraryRoutes', () => { expect(result.additionalAPIDirs).toEqual(['/libs/shared/feature/src/api']); }); - it('skips @analogjs/* framework packages', () => { - mockTsconfig({ - '@analogjs/router': ['./packages/router/src/index.ts'], - '@analogjs/content': ['./packages/content/src/index.ts'], - 'shared/feature': ['./libs/shared/feature/src/index.ts'], - }); - // Only the shared/feature pages dir exists - mockExistsSync.mockImplementation((p) => { - const s = String(p); - if (s.endsWith('tsconfig.base.json')) return true; - if (s.includes('shared/feature') && s.endsWith('src/pages')) return true; - return false; - }); - - const result = discoverLibraryRoutes('/workspace'); - - expect(result.additionalPagesDirs).toEqual(['/libs/shared/feature']); - expect(result.additionalContentDirs).toEqual([]); - expect(result.additionalAPIDirs).toEqual([]); - }); - - it('skips libs without route directories', () => { - mockTsconfig({ - 'libs/card': ['./libs/card/src/index.ts'], - }); - // card has no pages/content/api dirs - mockExistsSync.mockImplementation((p) => { - if (String(p).endsWith('tsconfig.base.json')) return true; - return false; - }); - - const result = discoverLibraryRoutes('/workspace'); - - expect(result.additionalPagesDirs).toEqual([]); - expect(result.additionalContentDirs).toEqual([]); - expect(result.additionalAPIDirs).toEqual([]); - }); - - it('returns empty arrays when tsconfig is missing', () => { - mockReadFileSync.mockImplementation(() => { - throw new Error('ENOENT'); - }); - mockExistsSync.mockReturnValue(false); + it('sorts discovered libraries deterministically', () => { + mockGlobSync.mockReturnValue([ + 'libs/z-last/src/pages', + 'libs/a-first/src/content', + 'libs/m-middle/src/api', + 'libs/a-first/src/pages', + ]); const result = discoverLibraryRoutes('/workspace'); - expect(result).toEqual({ - additionalPagesDirs: [], - additionalContentDirs: [], - additionalAPIDirs: [], - }); + expect(result.additionalPagesDirs).toEqual([ + '/libs/a-first', + '/libs/z-last', + ]); + expect(result.additionalContentDirs).toEqual(['/libs/a-first/src/content']); + expect(result.additionalAPIDirs).toEqual(['/libs/m-middle/src/api']); }); - it('returns empty arrays for malformed JSON', () => { - mockExistsSync.mockReturnValue(true); - mockReadFileSync.mockReturnValue('not valid json {{{'); + it('returns empty arrays when no workspace libraries match', () => { + mockGlobSync.mockReturnValue([]); const result = discoverLibraryRoutes('/workspace'); @@ -114,94 +85,17 @@ describe('discoverLibraryRoutes', () => { }); }); - it('handles nested lib paths', () => { - mockTsconfig({ - 'shared/feature': ['./libs/shared/feature/src/index.ts'], - }); - mockExistsSync.mockImplementation((p) => { - const s = String(p); - if (s.endsWith('tsconfig.base.json')) return true; - if (s.endsWith('shared/feature/src/pages')) return true; - return false; - }); + it('normalizes workspace-relative and absolute-looking glob results', () => { + mockGlobSync.mockReturnValue([ + '/workspace/libs/shared/feature/src/pages/', + '/workspace/libs/shared/feature/src/content/', + ]); - const result = discoverLibraryRoutes('/workspace'); + const result = discoverLibraryRoutes('/workspace/'); expect(result.additionalPagesDirs).toEqual(['/libs/shared/feature']); - }); - - it('deduplicates subpath entries for the same lib', () => { - mockTsconfig({ - 'my-lib': ['./libs/my-lib/src/index.ts'], - 'my-lib/testing': ['./libs/my-lib/src/testing/index.ts'], - }); - mockExistsSync.mockImplementation((p) => { - const s = String(p); - if (s.endsWith('tsconfig.base.json')) return true; - if (s.endsWith('my-lib/src/pages')) return true; - return false; - }); - - const result = discoverLibraryRoutes('/workspace'); - - expect(result.additionalPagesDirs).toEqual(['/libs/my-lib']); - }); - - it('only detects existing subdirectories', () => { - mockTsconfig({ - 'shared/feature': ['./libs/shared/feature/src/index.ts'], - }); - mockExistsSync.mockImplementation((p) => { - const s = String(p); - if (s.endsWith('tsconfig.base.json')) return true; - // only content exists, no pages or api - if (s.endsWith('shared/feature/src/content')) return true; - return false; - }); - - const result = discoverLibraryRoutes('/workspace'); - - expect(result.additionalPagesDirs).toEqual([]); expect(result.additionalContentDirs).toEqual([ '/libs/shared/feature/src/content', ]); - expect(result.additionalAPIDirs).toEqual([]); - }); - - it('falls back to tsconfig.json when tsconfig.base.json is missing', () => { - mockExistsSync.mockImplementation((p) => { - const s = String(p); - // tsconfig.base.json does NOT exist - if (s.endsWith('tsconfig.base.json')) return false; - if (s.endsWith('my-lib/src/pages')) return true; - return false; - }); - mockReadFileSync.mockImplementation((p) => { - if (String(p).endsWith('tsconfig.base.json')) { - throw new Error('ENOENT'); - } - return JSON.stringify({ - compilerOptions: { - paths: { 'my-lib': ['./libs/my-lib/src/index.ts'] }, - }, - }); - }); - - const result = discoverLibraryRoutes('/workspace'); - - expect(result.additionalPagesDirs).toEqual(['/libs/my-lib']); - }); - - it('skips paths that do not resolve into libs/', () => { - mockTsconfig({ - 'my-app': ['./apps/my-app/src/index.ts'], - 'some-tool': ['./tools/some-tool/src/index.ts'], - }); - - const result = discoverLibraryRoutes('/workspace'); - - expect(result.additionalPagesDirs).toEqual([]); - expect(result.additionalContentDirs).toEqual([]); - expect(result.additionalAPIDirs).toEqual([]); }); }); diff --git a/packages/platform/src/lib/discover-library-routes.ts b/packages/platform/src/lib/discover-library-routes.ts index 33ec3681a..8e1b4ef17 100644 --- a/packages/platform/src/lib/discover-library-routes.ts +++ b/packages/platform/src/lib/discover-library-routes.ts @@ -1,5 +1,5 @@ -import { existsSync, readFileSync } from 'node:fs'; -import { join } from 'node:path'; +import { normalizePath } from 'vite'; +import { globSync } from 'tinyglobby'; export interface DiscoveredLibraryRoutes { additionalPagesDirs: string[]; @@ -13,9 +13,18 @@ const empty: DiscoveredLibraryRoutes = Object.freeze({ additionalAPIDirs: Object.freeze([] as string[]), }); +const discoverableLibRouteDirs = [ + 'libs/**/src/pages', + 'libs/**/src/content', + 'libs/**/src/api', +] as const; + +function toWorkspacePath(path: string) { + return normalizePath(path).replace(/\/$/, ''); +} + /** - * Reads `tsconfig.base.json` (or `tsconfig.json`) path aliases from the - * workspace root and checks each library for conventional route directories + * Scans workspace libraries directly for conventional route directories * (`src/pages`, `src/content`, `src/api`). * * Returns workspace-relative paths (e.g. `/libs/shared/feature`) suitable @@ -24,71 +33,76 @@ const empty: DiscoveredLibraryRoutes = Object.freeze({ export function discoverLibraryRoutes( workspaceRoot: string, ): DiscoveredLibraryRoutes { - let raw: string; - try { - const basePath = join(workspaceRoot, 'tsconfig.base.json'); - const fallbackPath = join(workspaceRoot, 'tsconfig.json'); - raw = existsSync(basePath) - ? readFileSync(basePath, 'utf-8') - : readFileSync(fallbackPath, 'utf-8'); - } catch { - return empty; - } - - let paths: Record; - try { - const tsconfig = JSON.parse(raw); - paths = tsconfig?.compilerOptions?.paths ?? {}; - } catch { - return empty; - } - const result: DiscoveredLibraryRoutes = { additionalPagesDirs: [], additionalContentDirs: [], additionalAPIDirs: [], }; - const seen = new Set(); - - for (const [alias, targets] of Object.entries(paths)) { - if (alias.startsWith('@analogjs/')) { + const normalizedWorkspaceRoot = toWorkspacePath(workspaceRoot); + const discovered = new Map< + string, + { + pages: boolean; + content: boolean; + api: boolean; + } + >(); + + for (const dir of globSync(discoverableLibRouteDirs, { + cwd: normalizedWorkspaceRoot, + dot: true, + onlyDirectories: true, + })) { + const normalizedDir = toWorkspacePath(dir); + const workspaceRelativeDir = normalizedDir.startsWith( + `${normalizedWorkspaceRoot}/`, + ) + ? normalizedDir.slice(normalizedWorkspaceRoot.length + 1) + : normalizedDir; + + if (!workspaceRelativeDir.startsWith('libs/')) { continue; } - const target = targets?.[0]; - if (!target) { + const srcIndex = workspaceRelativeDir.indexOf('/src/'); + if (srcIndex === -1) { continue; } - const normalized = target.startsWith('./') ? target.slice(2) : target; + const libRoot = workspaceRelativeDir.slice(0, srcIndex); + const entry = discovered.get(libRoot) ?? { + pages: false, + content: false, + api: false, + }; - if (!normalized.startsWith('libs/')) { - continue; + if (workspaceRelativeDir.endsWith('/src/pages')) { + entry.pages = true; } - const srcIndex = normalized.indexOf('/src/'); - if (srcIndex === -1) { - continue; + if (workspaceRelativeDir.endsWith('/src/content')) { + entry.content = true; } - const libRoot = normalized.slice(0, srcIndex); - - if (seen.has(libRoot)) { - continue; + if (workspaceRelativeDir.endsWith('/src/api')) { + entry.api = true; } - seen.add(libRoot); - const absoluteLibRoot = join(workspaceRoot, libRoot); + discovered.set(libRoot, entry); + } + + for (const libRoot of [...discovered.keys()].sort()) { + const entry = discovered.get(libRoot)!; - if (existsSync(join(absoluteLibRoot, 'src/pages'))) { + if (entry.pages) { result.additionalPagesDirs.push(`/${libRoot}`); } - if (existsSync(join(absoluteLibRoot, 'src/content'))) { + if (entry.content) { result.additionalContentDirs.push(`/${libRoot}/src/content`); } - if (existsSync(join(absoluteLibRoot, 'src/api'))) { + if (entry.api) { result.additionalAPIDirs.push(`/${libRoot}/src/api`); } } diff --git a/packages/platform/src/lib/options.ts b/packages/platform/src/lib/options.ts index 9489ac1b9..76de18f37 100644 --- a/packages/platform/src/lib/options.ts +++ b/packages/platform/src/lib/options.ts @@ -17,6 +17,7 @@ import type { import type { ContentPluginOptions } from './content-plugin.js'; import type { DebugOption } from './utils/debug.js'; +import type { StylePipelineOptions } from './style-pipeline.js'; declare module 'nitro/types' { interface NitroRouteConfig { @@ -121,7 +122,7 @@ export interface Options { additionalAPIDirs?: string[]; /** * Automatically discover route directories (pages, content, API) in - * workspace libraries by scanning tsconfig.base.json path aliases. + * workspace libraries by scanning `libs/**` directories directly. * * Discovered directories are merged with any explicit * `additionalPagesDirs`, `additionalContentDirs`, and @@ -191,6 +192,16 @@ export interface Options { * Inspired by TanStack Router's `routeTree.gen.ts` codegen. */ typedRouter?: boolean | TypedRouterOptions; + + /** + * Experimental slot for community-maintained style-pipeline integrations. + * + * This keeps Analog's core surface intentionally narrow: community + * packages can register Vite plugins through an Analog-first config shape + * without requiring Analog itself to own design-token engines, library + * target contracts, or framework-specific theming semantics. + */ + stylePipeline?: StylePipelineOptions | false; }; } diff --git a/packages/platform/src/lib/platform-plugin.spec.ts b/packages/platform/src/lib/platform-plugin.spec.ts index 80a4570b6..6791294ee 100644 --- a/packages/platform/src/lib/platform-plugin.spec.ts +++ b/packages/platform/src/lib/platform-plugin.spec.ts @@ -12,6 +12,9 @@ const { serverModePluginSpy, clearClientPageEndpointsPluginSpy, discoverLibraryRoutesSpy, + resolveStylePipelinePluginsSpy, + stylePipelineFactorySpy, + stylePipelinePluginSpy, } = vi.hoisted(() => ({ viteNitroPluginSpy: vi.fn(() => []), angularSpy: vi.fn(() => []), @@ -28,15 +31,22 @@ const { additionalContentDirs: [], additionalAPIDirs: [], })), + resolveStylePipelinePluginsSpy: vi.fn(() => []), + stylePipelineFactorySpy: vi.fn(), + stylePipelinePluginSpy: { name: 'community-style-pipeline' }, })); vi.mock('@analogjs/vite-plugin-nitro', () => ({ + nitro: viteNitroPluginSpy, default: viteNitroPluginSpy, })); vi.mock('@analogjs/vite-plugin-nitro/internal', () => ({ debugInstances: [], })); -vi.mock('@analogjs/vite-plugin-angular', () => ({ default: angularSpy })); +vi.mock('@analogjs/vite-plugin-angular', () => ({ + angular: angularSpy, + default: angularSpy, +})); vi.mock('./ssr/ssr-build-plugin.js', () => ({ ssrBuildPlugin: ssrBuildPluginSpy, })); @@ -64,6 +74,20 @@ vi.mock('./clear-client-page-endpoint.js', () => ({ vi.mock('./discover-library-routes.js', () => ({ discoverLibraryRoutes: discoverLibraryRoutesSpy, })); +vi.mock('./style-pipeline.js', () => ({ + resolveStylePipelinePlugins: + resolveStylePipelinePluginsSpy.mockImplementation((options) => { + if (!options) { + return []; + } + return [ + ...(typeof options.plugins?.[0] === 'function' + ? [stylePipelineFactorySpy] + : []), + stylePipelinePluginSpy, + ]; + }), +})); import { platformPlugin } from './platform-plugin.js'; @@ -82,6 +106,7 @@ describe('platformPlugin', () => { contentPluginSpy.mockReturnValue([]); serverModePluginSpy.mockReturnValue([]); clearClientPageEndpointsPluginSpy.mockReturnValue([]); + resolveStylePipelinePluginsSpy.mockClear(); }); it('defaults ssr to true and passes that value to the composed plugins', () => { @@ -210,4 +235,45 @@ describe('platformPlugin', () => { expect(discoverLibraryRoutesSpy).not.toHaveBeenCalled(); }); + + it('wires experimental style-pipeline plugins when configured', () => { + const options = { + plugins: [stylePipelineFactorySpy], + }; + + platformPlugin({ + experimental: { + stylePipeline: options, + }, + workspaceRoot: '/workspace', + }); + + expect(resolveStylePipelinePluginsSpy).toHaveBeenCalledWith( + options, + '/workspace', + ); + expect(stylePipelineFactorySpy).not.toHaveBeenCalled(); + }); + + it('forwards angular style-pipeline plugins to the Angular vite plugin', () => { + const angularStylePipelinePlugin = { + name: 'community-angular-style-pipeline', + }; + + platformPlugin({ + experimental: { + stylePipeline: { + angularPlugins: [angularStylePipelinePlugin], + }, + }, + }); + + expect(angularSpy).toHaveBeenCalledWith( + expect.objectContaining({ + stylePipeline: { + plugins: [angularStylePipelinePlugin], + }, + }), + ); + }); }); diff --git a/packages/platform/src/lib/platform-plugin.ts b/packages/platform/src/lib/platform-plugin.ts index 2acf79e8e..a5312d550 100644 --- a/packages/platform/src/lib/platform-plugin.ts +++ b/packages/platform/src/lib/platform-plugin.ts @@ -18,6 +18,7 @@ import { depsPlugin } from './deps-plugin.js'; import { injectHTMLPlugin } from './ssr/inject-html-plugin.js'; import { serverModePlugin } from '../server-mode-plugin.js'; import { routeGenerationPlugin } from './route-generation-plugin.js'; +import { resolveStylePipelinePlugins } from './style-pipeline.js'; // Bridge Plugin types from external @analogjs packages that resolve a different vite instance function externalPlugins(plugins: unknown): Plugin[] { @@ -59,6 +60,7 @@ export function platformPlugin(opts: Options = {}): Plugin[] { debugPlatform('experimental options resolved', { useAngularCompilationAPI: !!useAngularCompilationAPI, typedRouter: platformOptions.experimental?.typedRouter, + stylePipeline: !!platformOptions.experimental?.stylePipeline, }); let nitroOptions = platformOptions?.nitro; @@ -87,6 +89,10 @@ export function platformPlugin(opts: Options = {}): Plugin[] { ? [...ssrBuildPlugin(), ...injectHTMLPlugin()] : []), ...(!isTest ? depsPlugin(platformOptions) : []), + ...resolveStylePipelinePlugins( + platformOptions.experimental?.stylePipeline, + platformOptions.workspaceRoot, + ), ...routerPlugin(platformOptions), routeGenerationPlugin(platformOptions), ...contentPlugin(platformOptions?.content, platformOptions), @@ -111,6 +117,13 @@ export function platformPlugin(opts: Options = {}): Plugin[] { inlineStylesExtension: platformOptions.inlineStylesExtension, fileReplacements: platformOptions.fileReplacements, debug: platformOptions.debug, + stylePipeline: platformOptions.experimental?.stylePipeline + ?.angularPlugins?.length + ? { + plugins: + platformOptions.experimental.stylePipeline.angularPlugins, + } + : undefined, ...(viteOptions ?? {}), experimental: { ...(viteOptions?.experimental ?? {}), diff --git a/packages/platform/src/lib/style-pipeline.spec.ts b/packages/platform/src/lib/style-pipeline.spec.ts new file mode 100644 index 000000000..2df6d5f39 --- /dev/null +++ b/packages/platform/src/lib/style-pipeline.spec.ts @@ -0,0 +1,58 @@ +import { describe, expect, it, vi } from 'vitest'; +import type { Plugin } from 'vite'; +import { + defineStylePipeline, + defineStylePipelinePlugins, + resolveStylePipelinePlugins, +} from './style-pipeline.js'; + +describe('style-pipeline', () => { + it('keeps style-pipeline options strongly typed during config authoring', () => { + const plugin: Plugin = { name: 'community-style-pipeline' }; + + expect( + defineStylePipeline({ + plugins: [plugin], + angularPlugins: [], + }), + ).toEqual({ + plugins: [plugin], + angularPlugins: [], + }); + }); + + it('keeps plugin arrays strongly typed during config authoring', () => { + const plugin: Plugin = { name: 'community-style-pipeline' }; + + expect(defineStylePipelinePlugins([plugin])).toEqual([plugin]); + }); + + it('resolves direct plugins and plugin factories with the workspace root', () => { + const pluginA: Plugin = { name: 'plugin-a' }; + const pluginB: Plugin = { name: 'plugin-b' }; + const pluginC: Plugin = { name: 'plugin-c' }; + const factory = vi.fn(() => [pluginB, pluginC]); + + const resolved = resolveStylePipelinePlugins( + { + plugins: [pluginA, factory], + }, + '/workspace', + ); + + expect(factory).toHaveBeenCalledWith({ + workspaceRoot: '/workspace', + }); + expect(resolved).toEqual([pluginA, pluginB, pluginC]); + }); + + it('skips falsey plugin entries', () => { + const plugin: Plugin = { name: 'plugin-a' }; + + const resolved = resolveStylePipelinePlugins({ + plugins: [false, undefined, null, plugin], + }); + + expect(resolved).toEqual([plugin]); + }); +}); diff --git a/packages/platform/src/lib/style-pipeline.ts b/packages/platform/src/lib/style-pipeline.ts new file mode 100644 index 000000000..93ff133bd --- /dev/null +++ b/packages/platform/src/lib/style-pipeline.ts @@ -0,0 +1,113 @@ +import type { Plugin } from 'vite'; +import type { + StylesheetDependency, + StylesheetDiagnostic, + StylesheetTransformContext, + StylesheetTransformResult, +} from './style-preprocessor.js'; + +export interface StylePipelineStylesheetRegistry { + getPublicIdsForSource(sourcePath: string): string[]; + getRequestIdsForSource(sourcePath: string): string[]; + getDependenciesForSource(sourcePath: string): StylesheetDependency[]; + getDiagnosticsForSource(sourcePath: string): StylesheetDiagnostic[]; + getTagsForSource(sourcePath: string): string[]; +} + +export interface AngularStylePipelineContext { + workspaceRoot: string; +} + +export interface AngularStylePipelinePlugin { + name: string; + preprocessStylesheet?: ( + code: string, + context: StylesheetTransformContext, + ) => string | StylesheetTransformResult | undefined; + configureStylesheetRegistry?: ( + registry: StylePipelineStylesheetRegistry, + context: AngularStylePipelineContext, + ) => void; +} + +export interface AngularStylePipelineOptions { + plugins: AngularStylePipelinePlugin[]; +} + +export function defineAngularStylePipeline< + const T extends AngularStylePipelineOptions, +>(options: T): T { + return options; +} + +export function defineAngularStylePipelinePlugins< + const T extends AngularStylePipelinePlugin[], +>(plugins: T): T { + return plugins; +} + +export interface StylePipelineContext { + workspaceRoot: string; +} + +export type StylePipelinePluginFactory = ( + context: StylePipelineContext, +) => Plugin | Plugin[] | false | null | undefined; + +export type StylePipelinePluginEntry = + | Plugin + | Plugin[] + | StylePipelinePluginFactory + | false + | null + | undefined; + +export interface StylePipelineOptions { + plugins?: StylePipelinePluginEntry[]; + angularPlugins?: AngularStylePipelinePlugin[]; +} + +export function defineStylePipeline( + options: T, +): T { + return options; +} + +export function defineStylePipelinePlugins< + const T extends StylePipelinePluginEntry[], +>(plugins: T): T { + return plugins; +} + +export function resolveStylePipelinePlugins( + options: StylePipelineOptions | false | undefined, + workspaceRoot?: string, +): Plugin[] { + if (!options?.plugins?.length) { + return []; + } + + const context: StylePipelineContext = { + workspaceRoot: + workspaceRoot ?? process.env['NX_WORKSPACE_ROOT'] ?? process.cwd(), + }; + + const resolved: Plugin[] = []; + + for (const entry of options.plugins) { + const plugins = typeof entry === 'function' ? entry(context) : entry; + + if (!plugins) { + continue; + } + + if (Array.isArray(plugins)) { + resolved.push(...plugins); + continue; + } + + resolved.push(plugins); + } + + return resolved; +} diff --git a/packages/platform/src/lib/style-preprocessor.ts b/packages/platform/src/lib/style-preprocessor.ts new file mode 100644 index 000000000..10279108c --- /dev/null +++ b/packages/platform/src/lib/style-preprocessor.ts @@ -0,0 +1,98 @@ +export interface StylesheetTransformContext { + filename: string; + containingFile?: string; + resourceFile?: string; + className?: string; + order?: number; + inline: boolean; +} + +export interface StylesheetDependency { + id: string; + kind?: 'file' | 'virtual' | 'token' | 'bridge' | 'manifest' | 'runtime'; + owner?: string; +} + +export interface StylesheetDiagnostic { + severity: 'warning' | 'error'; + code: string; + message: string; +} + +export interface StylesheetTransformResult { + code: string; + dependencies?: Array; + diagnostics?: StylesheetDiagnostic[]; + tags?: string[]; +} + +export type StylePreprocessor = ( + code: string, + filename: string, + context?: StylesheetTransformContext, +) => string | StylesheetTransformResult; + +export function normalizeStylesheetTransformResult( + value: string | StylesheetTransformResult | undefined, + fallbackCode: string, +): StylesheetTransformResult { + if (value == null) { + return { code: fallbackCode }; + } + + if (typeof value === 'string') { + return { code: value }; + } + + return { + code: value.code ?? fallbackCode, + dependencies: value.dependencies ?? [], + diagnostics: value.diagnostics ?? [], + tags: value.tags ?? [], + }; +} + +export function normalizeStylesheetDependencies( + dependencies: Array | undefined, +): StylesheetDependency[] { + return (dependencies ?? []).map((dependency) => + typeof dependency === 'string' ? { id: dependency } : dependency, + ); +} + +export function composeStylePreprocessors( + preprocessors: Array, +): StylePreprocessor | undefined { + const active = preprocessors.filter( + (preprocessor): preprocessor is StylePreprocessor => !!preprocessor, + ); + + if (!active.length) { + return undefined; + } + + return (code, filename, context) => { + let current = normalizeStylesheetTransformResult(undefined, code); + + for (const preprocessor of active) { + const next = normalizeStylesheetTransformResult( + preprocessor(current.code, filename, context), + current.code, + ); + current = { + code: next.code, + dependencies: [ + ...(current.dependencies ?? []), + ...(next.dependencies ?? []), + ], + diagnostics: [ + ...(current.diagnostics ?? []), + ...(next.diagnostics ?? []), + ], + tags: [...(current.tags ?? []), ...(next.tags ?? [])], + }; + } + + return current; + }; +} diff --git a/packages/platform/src/lib/tailwind-preprocessor.ts b/packages/platform/src/lib/tailwind-preprocessor.ts index 476dbbab7..65b5905a1 100644 --- a/packages/platform/src/lib/tailwind-preprocessor.ts +++ b/packages/platform/src/lib/tailwind-preprocessor.ts @@ -1,7 +1,7 @@ import { readFileSync } from 'node:fs'; import path from 'node:path'; -import type { StylePreprocessor } from '@analogjs/vite-plugin-angular'; +import type { StylePreprocessor } from './style-preprocessor.js'; import { debugTailwind } from './utils/debug.js'; export type TailwindPreprocessorMode = 'auto' | 'disabled' | { prefix: string }; diff --git a/packages/platform/src/lib/utils/debug.ts b/packages/platform/src/lib/utils/debug.ts index e881f71c9..416e8f9b5 100644 --- a/packages/platform/src/lib/utils/debug.ts +++ b/packages/platform/src/lib/utils/debug.ts @@ -7,6 +7,7 @@ export const debugRoutes = createDebug('analog:platform:routes'); export const debugContent = createDebug('analog:platform:content'); export const debugTypedRouter = createDebug('analog:platform:typed-router'); export const debugTailwind = createDebug('analog:platform:tailwind'); +export const debugStylePipeline = createDebug('analog:platform:style-pipeline'); const platformDebugInstances = [ debugPlatform, @@ -14,6 +15,7 @@ const platformDebugInstances = [ debugContent, debugTypedRouter, debugTailwind, + debugStylePipeline, ]; export type DebugScope = @@ -24,12 +26,14 @@ export type DebugScope = | 'analog:platform:content' | 'analog:platform:typed-router' | 'analog:platform:tailwind' + | 'analog:platform:style-pipeline' | 'analog:angular:*' | 'analog:angular:hmr' | 'analog:angular:styles' | 'analog:angular:compiler' | 'analog:angular:compilation-api' | 'analog:angular:tailwind' + | 'analog:angular:style-pipeline' | 'analog:nitro' | 'analog:nitro:*' | 'analog:nitro:ssr' diff --git a/packages/platform/src/style-pipeline.spec.ts b/packages/platform/src/style-pipeline.spec.ts new file mode 100644 index 000000000..4122d5154 --- /dev/null +++ b/packages/platform/src/style-pipeline.spec.ts @@ -0,0 +1,27 @@ +import { describe, expect, it } from 'vitest'; +import { + defineAngularStylePipeline, + defineAngularStylePipelinePlugins, + defineStylePipeline, + defineStylePipelinePlugins, + resolveStylePipelinePlugins, +} from './style-pipeline.js'; +import * as stylePipelineEntry from './style-pipeline.js'; + +describe('style-pipeline entry point', () => { + it('re-exports the style pipeline helpers', () => { + expect(stylePipelineEntry.defineAngularStylePipeline).toBe( + defineAngularStylePipeline, + ); + expect(stylePipelineEntry.defineAngularStylePipelinePlugins).toBe( + defineAngularStylePipelinePlugins, + ); + expect(stylePipelineEntry.defineStylePipeline).toBe(defineStylePipeline); + expect(stylePipelineEntry.defineStylePipelinePlugins).toBe( + defineStylePipelinePlugins, + ); + expect(stylePipelineEntry.resolveStylePipelinePlugins).toBe( + resolveStylePipelinePlugins, + ); + }); +}); diff --git a/packages/platform/src/style-pipeline.ts b/packages/platform/src/style-pipeline.ts new file mode 100644 index 000000000..d9b6d6fd7 --- /dev/null +++ b/packages/platform/src/style-pipeline.ts @@ -0,0 +1 @@ +export * from './lib/style-pipeline.js'; diff --git a/packages/platform/src/style-preprocessor.spec.ts b/packages/platform/src/style-preprocessor.spec.ts new file mode 100644 index 000000000..f216a4f8b --- /dev/null +++ b/packages/platform/src/style-preprocessor.spec.ts @@ -0,0 +1,21 @@ +import { describe, expect, it } from 'vitest'; +import { + composeStylePreprocessors, + normalizeStylesheetDependencies, + normalizeStylesheetTransformResult, +} from './style-preprocessor.js'; +import * as stylePreprocessorEntry from './style-preprocessor.js'; + +describe('style-preprocessor entry point', () => { + it('re-exports the stylesheet preprocessor helpers', () => { + expect(stylePreprocessorEntry.composeStylePreprocessors).toBe( + composeStylePreprocessors, + ); + expect(stylePreprocessorEntry.normalizeStylesheetDependencies).toBe( + normalizeStylesheetDependencies, + ); + expect(stylePreprocessorEntry.normalizeStylesheetTransformResult).toBe( + normalizeStylesheetTransformResult, + ); + }); +}); diff --git a/packages/platform/src/style-preprocessor.ts b/packages/platform/src/style-preprocessor.ts new file mode 100644 index 000000000..3679fdc33 --- /dev/null +++ b/packages/platform/src/style-preprocessor.ts @@ -0,0 +1 @@ +export * from './lib/style-preprocessor.js'; diff --git a/packages/platform/tsconfig.json b/packages/platform/tsconfig.json index f84d4908d..fa01b3f9b 100644 --- a/packages/platform/tsconfig.json +++ b/packages/platform/tsconfig.json @@ -15,6 +15,12 @@ "files": [], "include": [], "references": [ + { + "path": "../vite-plugin-nitro" + }, + { + "path": "../vite-plugin-angular" + }, { "path": "./tsconfig.lib.json" }, diff --git a/packages/platform/tsconfig.lib.json b/packages/platform/tsconfig.lib.json index c1d22667c..4db7184fb 100644 --- a/packages/platform/tsconfig.lib.json +++ b/packages/platform/tsconfig.lib.json @@ -9,18 +9,8 @@ "types": [], "isolatedDeclarations": true, "allowSyntheticDefaultImports": true, - "paths": { - "@analogjs/vite-plugin-angular": [ - "../../packages/vite-plugin-angular/src/index.ts" - ], - "@analogjs/vite-plugin-nitro": [ - "../../packages/vite-plugin-nitro/src/index.ts" - ], - "@analogjs/vite-plugin-nitro/internal": [ - "../../packages/vite-plugin-nitro/src/lib/utils/debug.ts" - ] - }, - "moduleResolution": "bundler" + "moduleResolution": "bundler", + "composite": false }, "include": ["**/*.ts"], "exclude": [ diff --git a/packages/platform/tsconfig.spec.json b/packages/platform/tsconfig.spec.json index b9ea4b8fd..7375bb74d 100644 --- a/packages/platform/tsconfig.spec.json +++ b/packages/platform/tsconfig.spec.json @@ -5,7 +5,8 @@ "module": "preserve", "types": ["vitest/globals", "node"], "moduleResolution": "bundler", - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"] } diff --git a/packages/platform/vite.config.lib.ts b/packages/platform/vite.config.lib.ts index f6a77e3cd..39d065526 100644 --- a/packages/platform/vite.config.lib.ts +++ b/packages/platform/vite.config.lib.ts @@ -43,7 +43,11 @@ const config: UserConfigExport = defineConfig({ minify: false, emptyOutDir: false, lib: { - entry: { 'src/index': resolve(pkgDir, 'src/index.ts') }, + entry: { + 'src/index': resolve(pkgDir, 'src/index.ts'), + 'src/style-pipeline': resolve(pkgDir, 'src/style-pipeline.ts'), + 'src/style-preprocessor': resolve(pkgDir, 'src/style-preprocessor.ts'), + }, formats: ['es' as const], }, outDir: resolve(pkgDir, 'dist'), diff --git a/packages/platform/vite.config.ts b/packages/platform/vite.config.ts index 1c14fc0a7..c9510b913 100644 --- a/packages/platform/vite.config.ts +++ b/packages/platform/vite.config.ts @@ -1,6 +1,6 @@ /// -import path, { resolve } from 'node:path'; +import path from 'node:path'; import { defineConfig, normalizePath } from 'vite'; // https://vitejs.dev/config/ diff --git a/packages/router/package.json b/packages/router/package.json index f75111c07..9a1afaa5c 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@analogjs/router", - "version": "3.0.0-alpha.25", + "version": "3.0.0-alpha.26", "description": "Filesystem-based routing for Angular", "type": "module", "author": "Brandon Roberts ", @@ -91,7 +91,8 @@ "tslib": "catalog:" }, "devDependencies": { - "@analogjs/vite-plugin-angular": "workspace:*" + "@analogjs/vite-plugin-angular": "workspace:*", + "@analogjs/vitest-angular": "workspace:*" }, "ng-update": { "packageGroup": [ diff --git a/packages/router/project.json b/packages/router/project.json index 0f8e7ef72..8bd3b3478 100644 --- a/packages/router/project.json +++ b/packages/router/project.json @@ -43,6 +43,13 @@ "preset": "conventional", "tagPrefix": "router@" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/router", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/router/server/src/provide-server-context.spec.ts b/packages/router/server/src/provide-server-context.spec.ts index e5cadbc04..a98aa9d15 100644 --- a/packages/router/server/src/provide-server-context.spec.ts +++ b/packages/router/server/src/provide-server-context.spec.ts @@ -1,4 +1,4 @@ -import { ServerRequest } from '@analogjs/router/tokens'; +import type { ServerRequest } from '../../tokens/src/index.js'; import { getBaseUrl, getRequestProtocol } from './provide-server-context'; function createRequest({ diff --git a/packages/router/server/src/provide-server-context.ts b/packages/router/server/src/provide-server-context.ts index 6544620e1..e336c05a4 100644 --- a/packages/router/server/src/provide-server-context.ts +++ b/packages/router/server/src/provide-server-context.ts @@ -9,7 +9,7 @@ import { ServerInternalFetch, ServerRequest, ServerResponse, -} from '@analogjs/router/tokens'; +} from '../../tokens/src/index.js'; function getHeaderValue( value: string | string[] | undefined, diff --git a/packages/router/server/src/render.ts b/packages/router/server/src/render.ts index 47d8aa1f7..8bb1d83b2 100644 --- a/packages/router/server/src/render.ts +++ b/packages/router/server/src/render.ts @@ -9,7 +9,7 @@ import { type BootstrapContext, } from '@angular/platform-browser'; import { renderApplication } from '@angular/platform-server'; -import type { ServerContext } from '@analogjs/router/tokens'; +import type { ServerContext } from '../../tokens/src/index.js'; import { provideServerContext } from './provide-server-context'; import { diff --git a/packages/router/server/src/server-component-render.ts b/packages/router/server/src/server-component-render.ts index 2486d105d..a6e30efc9 100644 --- a/packages/router/server/src/server-component-render.ts +++ b/packages/router/server/src/server-component-render.ts @@ -13,7 +13,7 @@ import { renderApplication, ɵSERVER_CONTEXT as SERVER_CONTEXT, } from '@angular/platform-server'; -import { ServerContext } from '@analogjs/router/tokens'; +import type { ServerContext } from '../../tokens/src/index.js'; import { json as readJsonStream } from 'node:stream/consumers'; import { provideStaticProps } from './tokens'; diff --git a/packages/router/src/lib/cookie-interceptor.ts b/packages/router/src/lib/cookie-interceptor.ts index ab25e6a78..08ed78d6f 100644 --- a/packages/router/src/lib/cookie-interceptor.ts +++ b/packages/router/src/lib/cookie-interceptor.ts @@ -7,7 +7,7 @@ import { } from '@angular/common/http'; import { PLATFORM_ID, inject } from '@angular/core'; import { Observable } from 'rxjs'; -import { injectRequest, ServerRequest } from '@analogjs/router/tokens'; +import { injectRequest, type ServerRequest } from '../../tokens/src/index.js'; export function cookieInterceptor( req: HttpRequest, diff --git a/packages/router/src/lib/form-action.directive.spec.ts b/packages/router/src/lib/form-action.directive.spec.ts index 8e83cfdb4..33e8ee4e7 100644 --- a/packages/router/src/lib/form-action.directive.spec.ts +++ b/packages/router/src/lib/form-action.directive.spec.ts @@ -4,7 +4,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { ActivatedRoute, provideRouter, Router } from '@angular/router'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { API_PREFIX } from '@analogjs/router/tokens'; +import { API_PREFIX } from '../../tokens/src/index.js'; import { ANALOG_META_KEY } from './endpoints'; import { FormAction } from './form-action.directive'; diff --git a/packages/router/src/lib/inject-route-endpoint-url.ts b/packages/router/src/lib/inject-route-endpoint-url.ts index 5ca099972..90618f7d1 100644 --- a/packages/router/src/lib/inject-route-endpoint-url.ts +++ b/packages/router/src/lib/inject-route-endpoint-url.ts @@ -1,5 +1,5 @@ import type { ActivatedRouteSnapshot, Route } from '@angular/router'; -import { injectBaseURL, injectAPIPrefix } from '@analogjs/router/tokens'; +import { injectBaseURL, injectAPIPrefix } from '../../tokens/src/index.js'; import { ANALOG_META_KEY } from './endpoints'; diff --git a/packages/router/src/lib/provide-file-router-base.ts b/packages/router/src/lib/provide-file-router-base.ts index 0e7cac229..7bca554b5 100644 --- a/packages/router/src/lib/provide-file-router-base.ts +++ b/packages/router/src/lib/provide-file-router-base.ts @@ -9,7 +9,7 @@ import { ɵHTTP_ROOT_INTERCEPTOR_FNS as HTTP_ROOT_INTERCEPTOR_FNS } from '@angul import { Meta } from '@angular/platform-browser'; import { provideRouter, RouterFeatures, ROUTES, Routes } from '@angular/router'; import { Router } from '@angular/router'; -import { API_PREFIX } from '@analogjs/router/tokens'; +import { API_PREFIX } from '../../tokens/src/index.js'; import { cookieInterceptor } from './cookie-interceptor'; import { updateJsonLdOnRouteChange } from './json-ld'; diff --git a/packages/router/src/lib/request-context.ts b/packages/router/src/lib/request-context.ts index 3d0a0cbc8..4fb72db64 100644 --- a/packages/router/src/lib/request-context.ts +++ b/packages/router/src/lib/request-context.ts @@ -16,7 +16,7 @@ import { injectAPIPrefix, injectInternalServerFetch, type ServerInternalFetch, -} from '@analogjs/router/tokens'; +} from '../../tokens/src/index.js'; import { makeCacheKey } from './cache-key'; diff --git a/packages/router/src/lib/route-config.ts b/packages/router/src/lib/route-config.ts index 1454cb0d1..7e50079c2 100644 --- a/packages/router/src/lib/route-config.ts +++ b/packages/router/src/lib/route-config.ts @@ -5,7 +5,7 @@ import { firstValueFrom } from 'rxjs'; import { injectInternalServerFetch, type ServerInternalFetch, -} from '@analogjs/router/tokens'; +} from '../../tokens/src/index.js'; import { DefaultRouteMeta, diff --git a/packages/router/src/lib/server.component.ts b/packages/router/src/lib/server.component.ts index 5f291776f..fdafcc849 100644 --- a/packages/router/src/lib/server.component.ts +++ b/packages/router/src/lib/server.component.ts @@ -20,9 +20,9 @@ import { } from '@angular/core'; import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; import { ActivatedRoute } from '@angular/router'; -import { injectBaseURL } from '@analogjs/router/tokens'; import { catchError, map, of, throwError } from 'rxjs'; +import { injectBaseURL } from '../../tokens/src/index.js'; import { makeCacheKey } from './cache-key'; type ServerProps = Record; diff --git a/packages/router/tanstack-query/src/server-query.ts b/packages/router/tanstack-query/src/server-query.ts index 1c68a3196..bacaf3a7e 100644 --- a/packages/router/tanstack-query/src/server-query.ts +++ b/packages/router/tanstack-query/src/server-query.ts @@ -13,7 +13,7 @@ import type { InferRouteQuery, InferRouteBody, InferRouteResult, -} from '@analogjs/router/server/actions'; +} from '../../server/actions/src/index.js'; function buildUrl(base: string, params?: Record): string { if (!params) return base; diff --git a/packages/router/tsconfig.json b/packages/router/tsconfig.json index e69015576..1d3fb58eb 100644 --- a/packages/router/tsconfig.json +++ b/packages/router/tsconfig.json @@ -3,6 +3,15 @@ "files": [], "include": [], "references": [ + { + "path": "../vitest-angular" + }, + { + "path": "../vite-plugin-angular" + }, + { + "path": "../content" + }, { "path": "./tsconfig.lib.json" }, diff --git a/packages/router/tsconfig.lib.json b/packages/router/tsconfig.lib.json index 276e390c6..ac58a1abe 100644 --- a/packages/router/tsconfig.lib.json +++ b/packages/router/tsconfig.lib.json @@ -11,14 +11,7 @@ "useDefineForClassFields": false, "moduleResolution": "bundler", "rootDir": ".", - "paths": { - "@analogjs/content": ["../content/dist/types/src"], - "@analogjs/router": ["./src/index.ts"], - "@analogjs/router/*": ["./*"], - "@analogjs/router/tokens": ["./tokens/src/index.ts"], - "@analogjs/router/server": ["./server/src/index.ts"], - "@analogjs/router/server/actions": ["./server/actions/src/index.ts"] - } + "composite": false }, "exclude": [ "**/*.spec.ts", diff --git a/packages/router/tsconfig.spec.json b/packages/router/tsconfig.spec.json index bd10dba8d..376931585 100644 --- a/packages/router/tsconfig.spec.json +++ b/packages/router/tsconfig.spec.json @@ -5,7 +5,8 @@ "module": "preserve", "types": ["node", "vitest/globals"], "moduleResolution": "bundler", - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "files": ["src/test-setup.ts"], "include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"] diff --git a/packages/storybook-angular/package.json b/packages/storybook-angular/package.json index c93f7b2f7..7623ed3f5 100644 --- a/packages/storybook-angular/package.json +++ b/packages/storybook-angular/package.json @@ -1,6 +1,6 @@ { "name": "@analogjs/storybook-angular", - "version": "3.0.0-alpha.25", + "version": "3.0.0-alpha.26", "description": "Storybook Integration for Angular & Vite", "type": "module", "keywords": [ diff --git a/packages/storybook-angular/project.json b/packages/storybook-angular/project.json index 888f84846..41599368e 100644 --- a/packages/storybook-angular/project.json +++ b/packages/storybook-angular/project.json @@ -19,6 +19,13 @@ "test": { "executor": "@nx/vitest:test", "dependsOn": ["vite-plugin-angular:build", "vitest-angular:build"] + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/storybook-angular", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/storybook-angular/src/lib/preset.spec.ts b/packages/storybook-angular/src/lib/preset.spec.ts index 56b30fefb..3e132c1a5 100644 --- a/packages/storybook-angular/src/lib/preset.spec.ts +++ b/packages/storybook-angular/src/lib/preset.spec.ts @@ -132,6 +132,23 @@ describe('viteFinal', () => { }; describe('Angular plugin options', () => { + it('keeps plugins without a name when filtering analogjs plugins', async () => { + const options = makeOptions(); + const config = { + plugins: [ + { name: 'vite:react' }, + {}, + undefined, + { name: 'analogjs-x' }, + ], + }; + + const result = await viteFinal(config, options); + + expect(config.plugins).toEqual([{ name: 'vite:react' }, {}, undefined]); + expect(result.plugins).toBeDefined(); + }); + it('prefers hmr over liveReload and keeps liveReload as compatibility input', async () => { const options = makeOptions({ hmr: true, liveReload: false }); diff --git a/packages/storybook-angular/src/lib/preset.ts b/packages/storybook-angular/src/lib/preset.ts index 39c898fe0..6cef5d8ee 100644 --- a/packages/storybook-angular/src/lib/preset.ts +++ b/packages/storybook-angular/src/lib/preset.ts @@ -71,7 +71,10 @@ export const viteFinal = async (config: any, options: any): Promise => { // Remove any loaded analogjs plugins from a vite.config.(m)ts file config.plugins = (config.plugins ?? []) .flat() - .filter((plugin: any) => !plugin.name.includes('analogjs')); + .filter( + (plugin: any) => + typeof plugin?.name !== 'string' || !plugin.name.includes('analogjs'), + ); // @ts-expect-error - untyped storybook presets API const framework = await options.presets.apply('framework'); diff --git a/packages/storybook-angular/tsconfig.lib.json b/packages/storybook-angular/tsconfig.lib.json index 79ee2b076..1ef707d54 100644 --- a/packages/storybook-angular/tsconfig.lib.json +++ b/packages/storybook-angular/tsconfig.lib.json @@ -7,7 +7,8 @@ "outDir": "../../dist/out-tsc", "declaration": true, "isolatedDeclarations": true, - "types": ["node"] + "types": ["node"], + "composite": false }, "include": ["src/**/*.ts"], "exclude": ["src/**/*.spec.ts", "src/**/*.test.ts", "**/template/**"] diff --git a/packages/storybook-angular/tsconfig.spec.json b/packages/storybook-angular/tsconfig.spec.json index 979ed3b02..6afb751be 100644 --- a/packages/storybook-angular/tsconfig.spec.json +++ b/packages/storybook-angular/tsconfig.spec.json @@ -4,7 +4,8 @@ "types": ["webpack-env", "node"], "typeRoots": ["../../node_modules/@types", "node_modules/@types"], "allowJs": true, - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "include": ["**/*.test.ts", "**/*.d.ts"] } diff --git a/packages/vite-plugin-angular-tools/project.json b/packages/vite-plugin-angular-tools/project.json index 0dfb2d390..2d01a1e76 100644 --- a/packages/vite-plugin-angular-tools/project.json +++ b/packages/vite-plugin-angular-tools/project.json @@ -22,6 +22,13 @@ }, "test": { "executor": "@nx/vitest:test" + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/vite-plugin-angular-tools", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/vite-plugin-angular-tools/tsconfig.lib.json b/packages/vite-plugin-angular-tools/tsconfig.lib.json index c469022b1..762330090 100644 --- a/packages/vite-plugin-angular-tools/tsconfig.lib.json +++ b/packages/vite-plugin-angular-tools/tsconfig.lib.json @@ -6,7 +6,8 @@ "outDir": "../../dist/out-tsc", "declaration": true, "isolatedDeclarations": true, - "types": ["node"] + "types": ["node"], + "composite": false }, "include": ["src/**/*.ts"], "exclude": ["src/**/*.spec.ts", "src/**/*.test.ts", "vite.config.ts"] diff --git a/packages/vite-plugin-angular-tools/tsconfig.spec.json b/packages/vite-plugin-angular-tools/tsconfig.spec.json index c1357aaa1..2594b51b3 100644 --- a/packages/vite-plugin-angular-tools/tsconfig.spec.json +++ b/packages/vite-plugin-angular-tools/tsconfig.spec.json @@ -3,7 +3,8 @@ "compilerOptions": { "outDir": "../../dist/out-tsc", "module": "commonjs", - "types": ["node"] + "types": ["node"], + "composite": false }, "include": ["src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"], "exclude": [ diff --git a/packages/vite-plugin-angular/package.json b/packages/vite-plugin-angular/package.json index d66f464bd..3fe0c89d6 100644 --- a/packages/vite-plugin-angular/package.json +++ b/packages/vite-plugin-angular/package.json @@ -1,6 +1,6 @@ { "name": "@analogjs/vite-plugin-angular", - "version": "3.0.0-alpha.25", + "version": "3.0.0-alpha.26", "description": "Vite Plugin for Angular", "type": "module", "keywords": [ diff --git a/packages/vite-plugin-angular/project.json b/packages/vite-plugin-angular/project.json index b6e91de16..e1624690c 100644 --- a/packages/vite-plugin-angular/project.json +++ b/packages/vite-plugin-angular/project.json @@ -31,6 +31,13 @@ "preset": "conventional", "tagPrefix": "vite-plugin-angular@" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/vite-plugin-angular", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/vite-plugin-angular/src/index.spec.ts b/packages/vite-plugin-angular/src/index.spec.ts new file mode 100644 index 000000000..4a03b7a6a --- /dev/null +++ b/packages/vite-plugin-angular/src/index.spec.ts @@ -0,0 +1,9 @@ +import { describe, expect, it } from 'vitest'; + +import angularDefault, { angular } from './index.js'; + +describe('vite-plugin-angular entrypoint', () => { + it('exports the angular plugin as both named and default exports', () => { + expect(angularDefault).toBe(angular); + }); +}); diff --git a/packages/vite-plugin-angular/src/index.ts b/packages/vite-plugin-angular/src/index.ts index ccc34a8ac..038d9e73e 100644 --- a/packages/vite-plugin-angular/src/index.ts +++ b/packages/vite-plugin-angular/src/index.ts @@ -1,5 +1,5 @@ import { angular } from './lib/angular-vite-plugin.js'; +export { angular } from './lib/angular-vite-plugin.js'; export type { PluginOptions } from './lib/angular-vite-plugin.js'; -export type { StylePreprocessor } from './lib/style-preprocessor.js'; export default angular; diff --git a/packages/vite-plugin-angular/src/lib/angular-vite-plugin-live-reload.spec.ts b/packages/vite-plugin-angular/src/lib/angular-vite-plugin-live-reload.spec.ts index 42fa5c5d4..337ae4e87 100644 --- a/packages/vite-plugin-angular/src/lib/angular-vite-plugin-live-reload.spec.ts +++ b/packages/vite-plugin-angular/src/lib/angular-vite-plugin-live-reload.spec.ts @@ -153,6 +153,7 @@ describe('angular hmr style preprocessing', () => { expect(stylePreprocessor).toHaveBeenCalledWith( '.demo { color: red; }', '/project/src/app/demo.component.css', + undefined, ); expect(await plugin.load(`${externalId}?ngcomp=ng-c123&e=0`)).toBe( '/* /project/src/app/demo.component.css */\n.demo { color: red; }', @@ -171,6 +172,7 @@ describe('angular hmr style preprocessing', () => { expect(stylePreprocessor).toHaveBeenCalledWith( '.demo { display: grid; }', '/project/src/app/demo.component.css', + undefined, ); expect(await plugin.load(`${inlineId}?ngcomp=ng-c123&e=0`)).toBe( '/* /project/src/app/demo.component.css */\n.demo { display: grid; }', diff --git a/packages/vite-plugin-angular/src/lib/angular-vite-plugin.ts b/packages/vite-plugin-angular/src/lib/angular-vite-plugin.ts index fd9af3cc5..ad1f03e7d 100644 --- a/packages/vite-plugin-angular/src/lib/angular-vite-plugin.ts +++ b/packages/vite-plugin-angular/src/lib/angular-vite-plugin.ts @@ -51,7 +51,14 @@ import { augmentProgramWithVersioning, mergeTransformers, } from './host.js'; -import type { StylePreprocessor } from './style-preprocessor.js'; +import { + composeStylePreprocessors, + normalizeStylesheetDependencies, +} from './style-preprocessor.js'; +import type { + StylePreprocessor, + StylesheetDependency, +} from './style-preprocessor.js'; import { angularVitestPlugins } from './angular-vitest-plugin.js'; import { @@ -93,9 +100,15 @@ import { routerPlugin } from './router-plugin.js'; import { AnalogStylesheetRegistry, preprocessStylesheet, + preprocessStylesheetResult, registerStylesheetContent, rewriteRelativeCssImports, } from './stylesheet-registry.js'; +import { + type AngularStylePipelineOptions, + configureStylePipelineRegistry, + stylePipelinePreprocessorFromPlugins, +} from './style-pipeline.js'; export enum DiagnosticModes { None = 0, @@ -161,6 +174,14 @@ export interface PluginOptions { * @returns Transformed CSS string, or the original code if no transformation is needed */ stylePreprocessor?: StylePreprocessor; + /** + * Experimental Angular stylesheet-resource hooks for community-maintained + * style-pipeline plugins. + * + * These hooks run inside the Angular resource pipeline, which is the seam a + * standalone Vite plugin cannot own on its own. + */ + stylePipeline?: AngularStylePipelineOptions; /** * First-class Tailwind CSS v4 integration for Angular component styles. * @@ -320,11 +341,14 @@ interface DeclarationFile { */ function buildStylePreprocessor( options?: PluginOptions, -): ((code: string, filename: string) => string) | undefined { +): StylePreprocessor | undefined { const userPreprocessor = options?.stylePreprocessor; + const stylePipelinePreprocessor = stylePipelinePreprocessorFromPlugins( + options?.stylePipeline, + ); const tw = options?.tailwindCss; - if (!tw && !userPreprocessor) { + if (!tw && !userPreprocessor && !stylePipelinePreprocessor) { return undefined; } @@ -375,16 +399,15 @@ function buildStylePreprocessor( }; } - // Chain: tailwind preprocessor first, then user preprocessor - if (tailwindPreprocessor && userPreprocessor) { - debugTailwind('chained with user stylePreprocessor'); - return (code: string, filename: string) => { - const intermediate = tailwindPreprocessor!(code, filename); - return userPreprocessor(intermediate, filename); - }; + if (tailwindPreprocessor && (stylePipelinePreprocessor || userPreprocessor)) { + debugTailwind('chained with style pipeline or user stylePreprocessor'); } - return tailwindPreprocessor ?? userPreprocessor; + return composeStylePreprocessors([ + tailwindPreprocessor, + stylePipelinePreprocessor, + userPreprocessor, + ]); } export function angular(options?: PluginOptions): Plugin[] { @@ -900,6 +923,13 @@ export function angular(options?: PluginOptions): Plugin[] { if (pluginOptions.useAngularCompilationAPI) { stylesheetRegistry = new AnalogStylesheetRegistry(); + configureStylePipelineRegistry( + pluginOptions.stylePipeline, + stylesheetRegistry, + { + workspaceRoot: pluginOptions.workspaceRoot, + }, + ); debugStyles( 'stylesheet registry initialized (Angular Compilation API)', ); @@ -2115,7 +2145,7 @@ export function angular(options?: PluginOptions): Plugin[] { `.${pluginOptions.inlineStylesExtension}`, ); - const preprocessedData = preprocessStylesheet( + const preprocessed = preprocessStylesheetResult( data, filename, pluginOptions.stylePreprocessor, @@ -2133,7 +2163,12 @@ export function angular(options?: PluginOptions): Plugin[] { const stylesheetId = registerStylesheetContent( stylesheetRegistry!, { - code: preprocessedData, + code: preprocessed.code, + dependencies: normalizeStylesheetDependencies( + preprocessed.dependencies, + ), + diagnostics: preprocessed.diagnostics, + tags: preprocessed.tags, containingFile, className: className as string | undefined, order, @@ -2150,7 +2185,10 @@ export function angular(options?: PluginOptions): Plugin[] { stylesheetId, filename, resourceFile: resourceFile ?? '(inline)', - ...describeStylesheetContent(preprocessedData), + dependencies: preprocessed.dependencies, + diagnostics: preprocessed.diagnostics, + tags: preprocessed.tags, + ...describeStylesheetContent(preprocessed.code), }); return stylesheetId; @@ -2161,13 +2199,13 @@ export function angular(options?: PluginOptions): Plugin[] { debugStyles('stylesheet processed inline via preprocessCSS', { filename, resourceFile: resourceFile ?? '(inline)', - dataLength: preprocessedData.length, + dataLength: preprocessed.code.length, }); let stylesheetResult; try { stylesheetResult = await preprocessCSS( - preprocessedData, + preprocessed.code, `${filename}?direct`, resolvedConfig, ); @@ -2289,7 +2327,7 @@ export function angular(options?: PluginOptions): Plugin[] { ) { try { const rawCss = readFileSync(key, 'utf-8'); - let preprocessed = preprocessStylesheet( + const preprocessed = preprocessStylesheetResult( rawCss, key, pluginOptions.stylePreprocessor, @@ -2300,18 +2338,23 @@ export function angular(options?: PluginOptions): Plugin[] { mtimeMs: safeStatMtimeMs(key), ...describeStylesheetContent(rawCss), }); - preprocessed = rewriteRelativeCssImports(preprocessed, key); + const servedCss = rewriteRelativeCssImports(preprocessed.code, key); stylesheetRegistry.registerServedStylesheet( { publicId: angularHash, sourcePath: key, originalCode: rawCss, - normalizedCode: preprocessed, + normalizedCode: servedCss, + dependencies: normalizeStylesheetDependencies( + preprocessed.dependencies, + ), + diagnostics: preprocessed.diagnostics, + tags: preprocessed.tags, }, [key, normalizePath(key), basename(key), key.replace(/^\//, '')], ); - if (preprocessed && preprocessed !== rawCss) { + if (servedCss && servedCss !== rawCss) { preprocessStats.injected++; debugStylesV( 'preprocessed external stylesheet for Tailwind @reference', @@ -2320,7 +2363,10 @@ export function angular(options?: PluginOptions): Plugin[] { resolvedPath: key, mtimeMs: safeStatMtimeMs(key), raw: describeStylesheetContent(rawCss), - served: describeStylesheetContent(preprocessed), + served: describeStylesheetContent(servedCss), + dependencies: preprocessed.dependencies, + diagnostics: preprocessed.diagnostics, + tags: preprocessed.tags, }, ); } else { @@ -2330,7 +2376,10 @@ export function angular(options?: PluginOptions): Plugin[] { resolvedPath: key, mtimeMs: safeStatMtimeMs(key), raw: describeStylesheetContent(rawCss), - served: describeStylesheetContent(preprocessed), + served: describeStylesheetContent(servedCss), + dependencies: preprocessed.dependencies, + diagnostics: preprocessed.diagnostics, + tags: preprocessed.tags, hint: 'Registry mapping is still registered so Angular component stylesheet HMR can track and refresh this file even when preprocessing makes no textual changes.', }); } @@ -2571,6 +2620,15 @@ export function angular(options?: PluginOptions): Plugin[] { stylesheetRegistry = externalizeStyles ? new AnalogStylesheetRegistry() : undefined; + if (stylesheetRegistry) { + configureStylePipelineRegistry( + pluginOptions.stylePipeline, + stylesheetRegistry, + { + workspaceRoot: pluginOptions.workspaceRoot, + }, + ); + } debugStyles('stylesheet registry initialized (NgtscProgram path)', { externalizeStyles, }); @@ -3012,12 +3070,15 @@ export function refreshStylesheetRegistryForFile( } const rawCss = readFileSync(normalizedFile, 'utf-8'); - let servedCss = preprocessStylesheet( + const preprocessed = preprocessStylesheetResult( rawCss, normalizedFile, stylePreprocessor, ); - servedCss = rewriteRelativeCssImports(servedCss, normalizedFile); + const servedCss = rewriteRelativeCssImports( + preprocessed.code, + normalizedFile, + ); for (const publicId of publicIds) { stylesheetRegistry.registerServedStylesheet( @@ -3026,6 +3087,11 @@ export function refreshStylesheetRegistryForFile( sourcePath: normalizedFile, originalCode: rawCss, normalizedCode: servedCss, + dependencies: normalizeStylesheetDependencies( + preprocessed.dependencies, + ), + diagnostics: preprocessed.diagnostics, + tags: preprocessed.tags, }, [ normalizedFile, @@ -3039,6 +3105,9 @@ export function refreshStylesheetRegistryForFile( debugStylesV('stylesheet registry refreshed from source file', { file: normalizedFile, publicIds, + dependencies: preprocessed.dependencies, + diagnostics: preprocessed.diagnostics, + tags: preprocessed.tags, source: describeStylesheetContent(rawCss), served: describeStylesheetContent(servedCss), }); @@ -3055,6 +3124,9 @@ function diagnoseComponentStylesheetPipeline( sourcePath?: string; source?: ReturnType; registry?: ReturnType; + dependencies: StylesheetDependency[]; + diagnostics: ReturnType; + tags: string[]; directModuleId?: string; directModuleUrl?: string; trackedRequestIds: string[]; @@ -3082,6 +3154,11 @@ function diagnoseComponentStylesheetPipeline( : undefined; const trackedRequestIds = stylesheetRegistry?.getRequestIdsForSource(sourcePath ?? '') ?? []; + const dependencies = + stylesheetRegistry?.getDependenciesForSource(sourcePath ?? '') ?? []; + const diagnostics = + stylesheetRegistry?.getDiagnosticsForSource(sourcePath ?? '') ?? []; + const tags = stylesheetRegistry?.getTagsForSource(sourcePath ?? '') ?? []; const anomalies: string[] = []; const hints: string[] = []; @@ -3166,6 +3243,9 @@ function diagnoseComponentStylesheetPipeline( registry: registryCode ? describeStylesheetContent(registryCode) : undefined, + dependencies, + diagnostics, + tags, directModuleId: directModule.id, directModuleUrl: directModule.url, trackedRequestIds, diff --git a/packages/vite-plugin-angular/src/lib/angular-vitest-plugin.spec.ts b/packages/vite-plugin-angular/src/lib/angular-vitest-plugin.spec.ts index f950e13a8..a970c9de2 100644 --- a/packages/vite-plugin-angular/src/lib/angular-vitest-plugin.spec.ts +++ b/packages/vite-plugin-angular/src/lib/angular-vitest-plugin.spec.ts @@ -33,6 +33,24 @@ describe('angularVitestPlugin', () => { ); expect(config.test?.pool).toBe('threads'); }); + + it('should noExternal all vitest-angular setup entrypoints', async () => { + const config = await resolveConfig( + defineConfig({ + plugins: [angularVitestPlugin()], + }), + 'serve', + ); + + expect(config.ssr?.noExternal).toEqual( + expect.arrayContaining([ + '@analogjs/vitest-angular/setup-testbed', + '@analogjs/vitest-angular/setup-zone', + '@analogjs/vitest-angular/setup-snapshots', + '@analogjs/vitest-angular/setup-serializers', + ]), + ); + }); }); describe('angularVitestSourcemapPlugin', () => { diff --git a/packages/vite-plugin-angular/src/lib/angular-vitest-plugin.ts b/packages/vite-plugin-angular/src/lib/angular-vitest-plugin.ts index 1b4d46143..35db98e6d 100644 --- a/packages/vite-plugin-angular/src/lib/angular-vitest-plugin.ts +++ b/packages/vite-plugin-angular/src/lib/angular-vitest-plugin.ts @@ -4,6 +4,13 @@ import type { Plugin, TransformResult, UserConfig } from 'vite'; import * as vite from 'vite'; import { getJsTransformConfigKey, isRolldown } from './utils/rolldown.js'; +const vitestAngularSetupEntries = [ + '@analogjs/vitest-angular/setup-testbed', + '@analogjs/vitest-angular/setup-zone', + '@analogjs/vitest-angular/setup-snapshots', + '@analogjs/vitest-angular/setup-serializers', +]; + /** * Sets up test config for Vitest and downlevels Angular FESM bundles and * `@angular/cdk` from modern async/await to ES2016 so that Zone.js can @@ -29,7 +36,7 @@ export function angularVitestPlugin(): Plugin { }, ssr: { noExternal: [ - '@analogjs/vitest-angular/setup-testbed', + ...vitestAngularSetupEntries, /fesm2022(.*?)testing/, /fesm2015/, ], diff --git a/packages/vite-plugin-angular/src/lib/host.spec.ts b/packages/vite-plugin-angular/src/lib/host.spec.ts index 11f8fa1c7..595f80ba0 100644 --- a/packages/vite-plugin-angular/src/lib/host.spec.ts +++ b/packages/vite-plugin-angular/src/lib/host.spec.ts @@ -29,6 +29,14 @@ describe('augmentHostWithResources', () => { expect(stylePreprocessor).toHaveBeenCalledWith( '.demo { color: red; }', '/project/src/app/demo.component.css', + { + filename: '/project/src/app/demo.component.css', + containingFile: '/project/src/app/demo.component.ts', + resourceFile: '/project/src/app/demo.component.css', + className: undefined, + order: undefined, + inline: false, + }, ); expect(transform).toHaveBeenCalledWith( '/* /project/src/app/demo.component.css */\n.demo { color: red; }', @@ -59,6 +67,14 @@ describe('augmentHostWithResources', () => { expect(stylePreprocessor).toHaveBeenCalledWith( '.demo { display: grid; }', '/project/src/app/demo.component.css', + { + filename: '/project/src/app/demo.component.css', + containingFile: '/project/src/app/demo.component.ts', + resourceFile: undefined, + className: undefined, + order: undefined, + inline: true, + }, ); expect(transform).toHaveBeenCalledWith( '/* /project/src/app/demo.component.css */\n.demo { display: grid; }', @@ -93,6 +109,14 @@ describe('augmentHostWithResources', () => { expect(stylePreprocessor).toHaveBeenCalledWith( '.demo { color: red; }', '/project/src/app/demo.component.css', + { + filename: '/project/src/app/demo.component.css', + containingFile: '/project/src/app/demo.component.ts', + resourceFile: undefined, + className: 'DemoComponent', + order: 0, + inline: true, + }, ); expect(transform).not.toHaveBeenCalled(); expect(stylesheetRegistry.getServedContent(result.content)).toBe( @@ -100,6 +124,60 @@ describe('augmentHostWithResources', () => { ); }); + it('stores stylesheet dependencies and diagnostics from structured results', async () => { + const host = { readFile: vi.fn() } as unknown as ts.CompilerHost; + const transform = vi.fn(); + const stylesheetRegistry = new AnalogStylesheetRegistry(); + const stylePreprocessor = vi.fn(() => ({ + code: '.demo { color: red; }', + dependencies: [{ id: 'virtual:brandos/tailwind.css', kind: 'bridge' }], + diagnostics: [ + { + severity: 'warning', + code: 'selector-contract-drift', + message: 'Theme selector drift detected.', + }, + ], + tags: ['tailwind'], + })); + + augmentHostWithResources(host, transform as any, { + inlineStylesExtension: 'css', + stylesheetRegistry, + stylePreprocessor, + }); + + await (host as any).transformResource('.demo { color: red; }', { + type: 'style', + containingFile: '/project/src/app/demo.component.ts', + className: 'DemoComponent', + order: 0, + resourceFile: '/project/src/app/demo.component.css', + }); + + expect( + stylesheetRegistry.getDependenciesForSource( + '/project/src/app/demo.component.css', + ), + ).toEqual([{ id: 'virtual:brandos/tailwind.css', kind: 'bridge' }]); + expect( + stylesheetRegistry.getDiagnosticsForSource( + '/project/src/app/demo.component.css', + ), + ).toEqual([ + { + severity: 'warning', + code: 'selector-contract-drift', + message: 'Theme selector drift detected.', + }, + ]); + expect( + stylesheetRegistry.getTagsForSource( + '/project/src/app/demo.component.css', + ), + ).toEqual(['tailwind']); + }); + it('returns null when eager stylesheet transform fails', async () => { const host = { readFile: vi.fn() } as unknown as ts.CompilerHost; const transform = vi.fn().mockRejectedValue(new Error('boom')); diff --git a/packages/vite-plugin-angular/src/lib/host.ts b/packages/vite-plugin-angular/src/lib/host.ts index e21c8059b..a2d3caa05 100644 --- a/packages/vite-plugin-angular/src/lib/host.ts +++ b/packages/vite-plugin-angular/src/lib/host.ts @@ -5,10 +5,13 @@ import * as ts from 'typescript'; import { createHash } from 'node:crypto'; import path from 'node:path'; -import type { StylePreprocessor } from './style-preprocessor.js'; +import { + normalizeStylesheetDependencies, + type StylePreprocessor, +} from './style-preprocessor.js'; import { AnalogStylesheetRegistry, - preprocessStylesheet, + preprocessStylesheetResult, registerStylesheetContent, } from './stylesheet-registry.js'; import { debugStyles } from './utils/debug.js'; @@ -59,10 +62,18 @@ export function augmentHostWithResources( '.ts', `.${options?.inlineStylesExtension}`, ); - const preprocessedData = preprocessStylesheet( + const preprocessed = preprocessStylesheetResult( data, filename, options.stylePreprocessor, + { + filename, + containingFile: context.containingFile, + resourceFile: context.resourceFile ?? undefined, + className: context.className, + order: context.order, + inline: !context.resourceFile, + }, ); // Externalized path: store preprocessed CSS for Vite's serve-time pipeline. @@ -72,7 +83,12 @@ export function augmentHostWithResources( const stylesheetId = registerStylesheetContent( options.stylesheetRegistry, { - code: preprocessedData, + code: preprocessed.code, + dependencies: normalizeStylesheetDependencies( + preprocessed.dependencies, + ), + diagnostics: preprocessed.diagnostics, + tags: preprocessed.tags, containingFile: context.containingFile, className: context.className, order: context.order, @@ -83,6 +99,9 @@ export function augmentHostWithResources( debugStyles('NgtscProgram: stylesheet deferred to Vite pipeline', { stylesheetId, resourceFile: context.resourceFile ?? '(inline)', + dependencies: preprocessed.dependencies, + diagnostics: preprocessed.diagnostics, + tags: preprocessed.tags, }); return { content: stylesheetId }; } @@ -92,13 +111,13 @@ export function augmentHostWithResources( debugStyles('NgtscProgram: stylesheet processed inline via transform', { filename, resourceFile: context.resourceFile ?? '(inline)', - dataLength: preprocessedData.length, + dataLength: preprocessed.code.length, }); let stylesheetResult; try { stylesheetResult = await transform( - preprocessedData, + preprocessed.code, `${filename}?direct`, ); } catch (e) { diff --git a/packages/vite-plugin-angular/src/lib/style-pipeline.spec.ts b/packages/vite-plugin-angular/src/lib/style-pipeline.spec.ts new file mode 100644 index 000000000..f669aa0d2 --- /dev/null +++ b/packages/vite-plugin-angular/src/lib/style-pipeline.spec.ts @@ -0,0 +1,157 @@ +import { describe, expect, it, vi } from 'vitest'; +import { AnalogStylesheetRegistry } from './stylesheet-registry.js'; +import * as debug from './utils/debug.js'; +import { + type AngularStylePipelineOptions, + type AngularStylePipelinePlugin, + configureStylePipelineRegistry, + stylePipelinePreprocessorFromPlugins, +} from './style-pipeline.js'; + +describe('angular style-pipeline hooks', () => { + it('keeps angular style-pipeline options strongly typed during config authoring', () => { + const plugins: AngularStylePipelinePlugin[] = [ + { + name: 'plugin-a', + }, + ]; + const options: AngularStylePipelineOptions = { plugins }; + + expect(options).toEqual({ + plugins, + }); + }); + + it('chains stylesheet preprocessors from community plugins', () => { + const preprocess = stylePipelinePreprocessorFromPlugins({ + plugins: [ + { + name: 'plugin-a', + preprocessStylesheet: (code) => `${code}\n/* a */`, + }, + { + name: 'plugin-b', + preprocessStylesheet: (code, context) => + `${code}\n/* ${context.filename} */`, + }, + ], + }); + + expect( + preprocess?.('.demo { color: red; }', '/project/demo.css', { + filename: '/project/demo.css', + inline: false, + }), + ).toEqual({ + code: '.demo { color: red; }\n/* a */\n/* /project/demo.css */', + dependencies: [], + diagnostics: [], + tags: [], + }); + }); + + it('merges structured stylesheet metadata from community plugins', () => { + const preprocess = stylePipelinePreprocessorFromPlugins({ + plugins: [ + { + name: 'plugin-a', + preprocessStylesheet: (code) => ({ + code: `${code}\n/* a */`, + dependencies: ['virtual:brandos/tailwind.css'], + diagnostics: [ + { + severity: 'warning', + code: 'tailwind-reference', + message: 'Injected shared Tailwind bridge reference.', + }, + ], + tags: ['tailwind'], + }), + }, + { + name: 'plugin-b', + preprocessStylesheet: (code, context) => ({ + code: `${code}\n/* ${context.filename} */`, + dependencies: [ + { + id: '/tokens/brand.json', + kind: 'token', + }, + ], + tags: ['tokens'], + }), + }, + ], + }); + + expect( + preprocess?.('.demo { color: red; }', '/project/demo.css', { + filename: '/project/demo.css', + inline: false, + }), + ).toEqual({ + code: '.demo { color: red; }\n/* a */\n/* /project/demo.css */', + dependencies: [ + 'virtual:brandos/tailwind.css', + { + id: '/tokens/brand.json', + kind: 'token', + }, + ], + diagnostics: [ + { + severity: 'warning', + code: 'tailwind-reference', + message: 'Injected shared Tailwind bridge reference.', + }, + ], + tags: ['tailwind', 'tokens'], + }); + }); + + it('logs when community preprocessors are skipped because Angular did not provide stylesheet context', () => { + const logSpy = vi.spyOn(debug, 'debugStylePipeline'); + const preprocess = stylePipelinePreprocessorFromPlugins({ + plugins: [ + { + name: 'plugin-a', + preprocessStylesheet: (code) => `${code}\n/* a */`, + }, + ], + }); + + expect(preprocess?.('.demo { color: red; }', '/project/demo.css')).toBe( + '.demo { color: red; }', + ); + expect(logSpy).toHaveBeenCalledWith( + 'skipping community stylesheet preprocessors because Angular did not provide a stylesheet context', + { + filename: '/project/demo.css', + }, + ); + }); + + it('passes the stylesheet registry to community plugins', () => { + const configureRegistry = vi.fn(); + const registry = new AnalogStylesheetRegistry(); + + configureStylePipelineRegistry( + { + plugins: [ + { + name: 'plugin-a', + configureStylesheetRegistry: configureRegistry, + }, + ], + }, + registry, + { + workspaceRoot: '/workspace', + }, + ); + + expect(configureRegistry).toHaveBeenCalledWith(registry, { + workspaceRoot: '/workspace', + }); + }); +}); diff --git a/packages/vite-plugin-angular/src/lib/style-pipeline.ts b/packages/vite-plugin-angular/src/lib/style-pipeline.ts new file mode 100644 index 000000000..f7e2ca30d --- /dev/null +++ b/packages/vite-plugin-angular/src/lib/style-pipeline.ts @@ -0,0 +1,86 @@ +import type { AnalogStylesheetRegistry } from './stylesheet-registry.js'; +import type { + StylePipelineStylesheetRegistry, + StylePreprocessor, + StylesheetTransformContext, + StylesheetTransformResult, +} from './style-preprocessor.js'; +import { normalizeStylesheetTransformResult } from './style-preprocessor.js'; +import { debugStylePipeline } from './utils/debug.js'; + +export interface AngularStylePipelineContext { + workspaceRoot: string; +} + +export interface AngularStylePipelinePlugin { + name: string; + preprocessStylesheet?: ( + code: string, + context: StylesheetTransformContext, + ) => string | StylesheetTransformResult | undefined; + configureStylesheetRegistry?: ( + registry: StylePipelineStylesheetRegistry, + context: AngularStylePipelineContext, + ) => void; +} + +export interface AngularStylePipelineOptions { + plugins: AngularStylePipelinePlugin[]; +} + +export function stylePipelinePreprocessorFromPlugins( + options: AngularStylePipelineOptions | undefined, +): StylePreprocessor | undefined { + const preprocessors = + options?.plugins + .map((plugin) => plugin.preprocessStylesheet) + .filter((preprocessor) => !!preprocessor) ?? []; + + if (!preprocessors.length) { + return undefined; + } + + return (code, filename, context) => { + if (!context) { + debugStylePipeline( + 'skipping community stylesheet preprocessors because Angular did not provide a stylesheet context', + { + filename, + }, + ); + return code; + } + + let current = normalizeStylesheetTransformResult(undefined, code); + for (const preprocess of preprocessors) { + const next = normalizeStylesheetTransformResult( + preprocess(current.code, context), + current.code, + ); + current = { + code: next.code, + dependencies: [ + ...(current.dependencies ?? []), + ...(next.dependencies ?? []), + ], + diagnostics: [ + ...(current.diagnostics ?? []), + ...(next.diagnostics ?? []), + ], + tags: [...(current.tags ?? []), ...(next.tags ?? [])], + }; + } + + return current; + }; +} + +export function configureStylePipelineRegistry( + options: AngularStylePipelineOptions | undefined, + registry: AnalogStylesheetRegistry, + context: AngularStylePipelineContext, +): void { + for (const plugin of options?.plugins ?? []) { + plugin.configureStylesheetRegistry?.(registry, context); + } +} diff --git a/packages/vite-plugin-angular/src/lib/style-preprocessor.ts b/packages/vite-plugin-angular/src/lib/style-preprocessor.ts index 0a093d6fb..5aa3b16df 100644 --- a/packages/vite-plugin-angular/src/lib/style-preprocessor.ts +++ b/packages/vite-plugin-angular/src/lib/style-preprocessor.ts @@ -1 +1,106 @@ -export type StylePreprocessor = (code: string, filename: string) => string; +export interface StylesheetTransformContext { + filename: string; + containingFile?: string; + resourceFile?: string; + className?: string; + order?: number; + inline: boolean; +} + +export interface StylesheetDependency { + id: string; + kind?: 'file' | 'virtual' | 'token' | 'bridge' | 'manifest' | 'runtime'; + owner?: string; +} + +export interface StylesheetDiagnostic { + severity: 'warning' | 'error'; + code: string; + message: string; +} + +export interface StylesheetTransformResult { + code: string; + dependencies?: Array; + diagnostics?: StylesheetDiagnostic[]; + tags?: string[]; +} + +export interface StylePipelineStylesheetRegistry { + getPublicIdsForSource(sourcePath: string): string[]; + getRequestIdsForSource(sourcePath: string): string[]; + getDependenciesForSource(sourcePath: string): StylesheetDependency[]; + getDiagnosticsForSource(sourcePath: string): StylesheetDiagnostic[]; + getTagsForSource(sourcePath: string): string[]; +} + +export type StylePreprocessor = ( + code: string, + filename: string, + context?: StylesheetTransformContext, +) => string | StylesheetTransformResult; + +export function normalizeStylesheetTransformResult( + value: string | StylesheetTransformResult | undefined, + fallbackCode: string, +): StylesheetTransformResult { + if (value == null) { + return { code: fallbackCode }; + } + + if (typeof value === 'string') { + return { code: value }; + } + + return { + code: value.code ?? fallbackCode, + dependencies: value.dependencies ?? [], + diagnostics: value.diagnostics ?? [], + tags: value.tags ?? [], + }; +} + +export function normalizeStylesheetDependencies( + dependencies: Array | undefined, +): StylesheetDependency[] { + return (dependencies ?? []).map((dependency) => + typeof dependency === 'string' ? { id: dependency } : dependency, + ); +} + +export function composeStylePreprocessors( + preprocessors: Array, +): StylePreprocessor | undefined { + const active = preprocessors.filter( + (preprocessor): preprocessor is StylePreprocessor => !!preprocessor, + ); + + if (!active.length) { + return undefined; + } + + return (code, filename, context) => { + let current = normalizeStylesheetTransformResult(undefined, code); + + for (const preprocessor of active) { + const next = normalizeStylesheetTransformResult( + preprocessor(current.code, filename, context), + current.code, + ); + current = { + code: next.code, + dependencies: [ + ...(current.dependencies ?? []), + ...(next.dependencies ?? []), + ], + diagnostics: [ + ...(current.diagnostics ?? []), + ...(next.diagnostics ?? []), + ], + tags: [...(current.tags ?? []), ...(next.tags ?? [])], + }; + } + + return current; + }; +} diff --git a/packages/vite-plugin-angular/src/lib/stylesheet-registry.spec.ts b/packages/vite-plugin-angular/src/lib/stylesheet-registry.spec.ts index db7ba71ab..c61fb3779 100644 --- a/packages/vite-plugin-angular/src/lib/stylesheet-registry.spec.ts +++ b/packages/vite-plugin-angular/src/lib/stylesheet-registry.spec.ts @@ -2,6 +2,7 @@ import { describe, expect, it, vi } from 'vitest'; import { AnalogStylesheetRegistry, preprocessStylesheet, + preprocessStylesheetResult, registerStylesheetContent, rewriteRelativeCssImports, } from './stylesheet-registry.js'; @@ -17,6 +18,10 @@ describe('stylesheet-registry', () => { '.demo { color: red; }', '/project/src/app/demo.component.css', stylePreprocessor, + { + filename: '/project/src/app/demo.component.css', + inline: false, + }, ), ).toBe('/* /project/src/app/demo.component.css */\n.demo { color: red; }'); }); @@ -68,6 +73,51 @@ describe('stylesheet-registry', () => { expect(registry.getServedContent('demo.component.css')).toBeUndefined(); }); + it('keeps structured transform metadata on the source stylesheet', () => { + const registry = new AnalogStylesheetRegistry(); + + const stylesheetId = registerStylesheetContent(registry, { + code: '.demo { color: red; }', + dependencies: [ + { id: 'virtual:brandos/tailwind.css', kind: 'bridge' }, + { id: '/tokens/brand.json', kind: 'token' }, + ], + diagnostics: [ + { + severity: 'warning', + code: 'selector-contract-drift', + message: 'PrimeNG dark selector does not match the shared contract.', + }, + ], + tags: ['tailwind', 'primeng'], + containingFile: '/project/src/app/demo.component.ts', + className: 'DemoComponent', + order: 0, + inlineStylesExtension: 'css', + resourceFile: '/project/src/app/demo.component.css', + }); + + expect(stylesheetId).toMatch(/^[a-f0-9]+\.css$/); + expect( + registry.getDependenciesForSource('/project/src/app/demo.component.css'), + ).toEqual([ + { id: 'virtual:brandos/tailwind.css', kind: 'bridge' }, + { id: '/tokens/brand.json', kind: 'token' }, + ]); + expect( + registry.getDiagnosticsForSource('/project/src/app/demo.component.css'), + ).toEqual([ + { + severity: 'warning', + code: 'selector-contract-drift', + message: 'PrimeNG dark selector does not match the shared contract.', + }, + ]); + expect( + registry.getTagsForSource('/project/src/app/demo.component.css'), + ).toEqual(['tailwind', 'primeng']); + }); + it('tracks active request ids for a source stylesheet', () => { const registry = new AnalogStylesheetRegistry(); @@ -173,4 +223,40 @@ describe('stylesheet-registry', () => { 'abc123.css?ngcomp=ng-c1&e=0', ]); }); + + it('returns structured transform results from preprocessors', () => { + const result = preprocessStylesheetResult( + '.demo { color: red; }', + '/project/src/app/demo.component.css', + () => ({ + code: '.demo { color: blue; }', + dependencies: ['virtual:brandos/tailwind.css'], + diagnostics: [ + { + severity: 'warning', + code: 'tailwind-reference', + message: 'Injected @reference for shared Tailwind bridge.', + }, + ], + tags: ['tailwind'], + }), + { + filename: '/project/src/app/demo.component.css', + inline: false, + }, + ); + + expect(result).toEqual({ + code: '.demo { color: blue; }', + dependencies: ['virtual:brandos/tailwind.css'], + diagnostics: [ + { + severity: 'warning', + code: 'tailwind-reference', + message: 'Injected @reference for shared Tailwind bridge.', + }, + ], + tags: ['tailwind'], + }); + }); }); diff --git a/packages/vite-plugin-angular/src/lib/stylesheet-registry.ts b/packages/vite-plugin-angular/src/lib/stylesheet-registry.ts index 83cabd349..9d4ca6103 100644 --- a/packages/vite-plugin-angular/src/lib/stylesheet-registry.ts +++ b/packages/vite-plugin-angular/src/lib/stylesheet-registry.ts @@ -1,13 +1,23 @@ import { createHash } from 'node:crypto'; import { dirname, normalize, resolve } from 'node:path'; import { normalizePath } from 'vite'; -import type { StylePreprocessor } from './style-preprocessor.js'; +import type { + StylePreprocessor, + StylesheetDependency, + StylesheetDiagnostic, + StylesheetTransformResult, + StylesheetTransformContext, +} from './style-preprocessor.js'; +import { normalizeStylesheetTransformResult as normalizeTransformResult } from './style-preprocessor.js'; export interface AnalogStylesheetRecord { publicId: string; sourcePath?: string; originalCode?: string; normalizedCode: string; + dependencies?: StylesheetDependency[]; + diagnostics?: StylesheetDiagnostic[]; + tags?: string[]; } export class AnalogStylesheetRegistry { @@ -28,6 +38,9 @@ export class AnalogStylesheetRegistry { * file paths once externalized. */ private sourceToRequestIds = new Map>(); + private sourceToDependencies = new Map(); + private sourceToDiagnostics = new Map(); + private sourceToTags = new Map(); /** * Canonicalizes browser-facing stylesheet request ids so Vite timestamp @@ -95,6 +108,18 @@ export class AnalogStylesheetRegistry { return [...(this.sourceToRequestIds.get(sourcePath) ?? [])]; } + getDependenciesForSource(sourcePath: string): StylesheetDependency[] { + return [...(this.sourceToDependencies.get(sourcePath) ?? [])]; + } + + getDiagnosticsForSource(sourcePath: string): StylesheetDiagnostic[] { + return [...(this.sourceToDiagnostics.get(sourcePath) ?? [])]; + } + + getTagsForSource(sourcePath: string): string[] { + return [...(this.sourceToTags.get(sourcePath) ?? [])]; + } + registerExternalRequest(requestId: string, sourcePath: string): void { this.externalRequestToSource.set( this.normalizeRequestId(requestId), @@ -150,9 +175,41 @@ export class AnalogStylesheetRegistry { this.sourceToPublicIds.get(record.sourcePath) ?? new Set(); publicIds.add(publicId); this.sourceToPublicIds.set(record.sourcePath, publicIds); + this.recomputeSourceMetadata(record.sourcePath); } } + private recomputeSourceMetadata(sourcePath: string): void { + const dependencies = new Map(); + const diagnostics = new Map(); + const tags = new Set(); + + for (const publicId of this.sourceToPublicIds.get(sourcePath) ?? []) { + const record = this.servedById.get(publicId); + if (!record) { + continue; + } + + for (const dependency of record.dependencies ?? []) { + const key = `${dependency.kind ?? 'unknown'}:${dependency.id}:${dependency.owner ?? ''}`; + dependencies.set(key, dependency); + } + + for (const diagnostic of record.diagnostics ?? []) { + const key = `${diagnostic.severity}:${diagnostic.code}:${diagnostic.message}`; + diagnostics.set(key, diagnostic); + } + + for (const tag of record.tags ?? []) { + tags.add(tag); + } + } + + this.sourceToDependencies.set(sourcePath, [...dependencies.values()]); + this.sourceToDiagnostics.set(sourcePath, [...diagnostics.values()]); + this.sourceToTags.set(sourcePath, [...tags]); + } + private resolveServedRecord( requestId: string, ): AnalogStylesheetRecord | undefined { @@ -169,8 +226,22 @@ export function preprocessStylesheet( code: string, filename: string, stylePreprocessor?: StylePreprocessor, + context?: StylesheetTransformContext, ): string { - return stylePreprocessor ? (stylePreprocessor(code, filename) ?? code) : code; + return preprocessStylesheetResult(code, filename, stylePreprocessor, context) + .code; +} + +export function preprocessStylesheetResult( + code: string, + filename: string, + stylePreprocessor?: StylePreprocessor, + context?: StylesheetTransformContext, +): StylesheetTransformResult { + return normalizeTransformResult( + stylePreprocessor?.(code, filename, context), + code, + ); } export function rewriteRelativeCssImports( @@ -197,6 +268,9 @@ export function registerStylesheetContent( registry: AnalogStylesheetRegistry, { code, + dependencies, + diagnostics, + tags, containingFile, className, order, @@ -204,6 +278,9 @@ export function registerStylesheetContent( resourceFile, }: { code: string; + dependencies?: StylesheetDependency[]; + diagnostics?: StylesheetDiagnostic[]; + tags?: string[]; containingFile: string; className?: string; order?: number; @@ -238,6 +315,9 @@ export function registerStylesheetContent( publicId: stylesheetId, sourcePath: resourceFile, normalizedCode: code, + dependencies, + diagnostics, + tags, }, aliases, ); diff --git a/packages/vite-plugin-angular/src/lib/utils/debug.ts b/packages/vite-plugin-angular/src/lib/utils/debug.ts index 60515edfe..cb939fe45 100644 --- a/packages/vite-plugin-angular/src/lib/utils/debug.ts +++ b/packages/vite-plugin-angular/src/lib/utils/debug.ts @@ -9,6 +9,7 @@ export const debugCompiler = createDebug('analog:angular:compiler'); export const debugCompilationApi = createDebug( 'analog:angular:compilation-api', ); +export const debugStylePipeline = createDebug('analog:angular:style-pipeline'); // Verbose — per-file detail, enable with :v suffix or parent:* export const debugTailwindV = createDebug('analog:angular:tailwind:v'); @@ -22,6 +23,7 @@ const angularDebugInstances = [ debugStyles, debugCompiler, debugCompilationApi, + debugStylePipeline, debugTailwindV, debugHmrV, debugStylesV, @@ -37,6 +39,7 @@ export type DebugScope = | 'analog:angular:compiler' | 'analog:angular:compiler:v' | 'analog:angular:compilation-api' + | 'analog:angular:style-pipeline' | 'analog:angular:tailwind' | 'analog:angular:tailwind:v' | (string & {}); diff --git a/packages/vite-plugin-angular/tsconfig.lib.json b/packages/vite-plugin-angular/tsconfig.lib.json index e2928b2ea..f03b17723 100644 --- a/packages/vite-plugin-angular/tsconfig.lib.json +++ b/packages/vite-plugin-angular/tsconfig.lib.json @@ -7,7 +7,8 @@ "isolatedDeclarations": true, "types": [], "allowSyntheticDefaultImports": true, - "moduleResolution": "bundler" + "moduleResolution": "bundler", + "composite": false }, "include": ["**/*.ts"], "exclude": [ diff --git a/packages/vite-plugin-angular/tsconfig.spec.json b/packages/vite-plugin-angular/tsconfig.spec.json index 80eb440a7..23d68ea1e 100644 --- a/packages/vite-plugin-angular/tsconfig.spec.json +++ b/packages/vite-plugin-angular/tsconfig.spec.json @@ -5,7 +5,8 @@ "module": "preserve", "types": ["node", "vitest/globals"], "moduleResolution": "bundler", - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"] } diff --git a/packages/vite-plugin-angular/vite.config.ts b/packages/vite-plugin-angular/vite.config.ts index 92a2ae5c4..f614155f6 100644 --- a/packages/vite-plugin-angular/vite.config.ts +++ b/packages/vite-plugin-angular/vite.config.ts @@ -1,6 +1,6 @@ /// -import path, { resolve } from 'node:path'; +import path from 'node:path'; import { defineConfig, normalizePath } from 'vite'; // https://vitejs.dev/config/ diff --git a/packages/vite-plugin-nitro/package.json b/packages/vite-plugin-nitro/package.json index 223288c25..c6a3ae941 100644 --- a/packages/vite-plugin-nitro/package.json +++ b/packages/vite-plugin-nitro/package.json @@ -1,16 +1,18 @@ { "name": "@analogjs/vite-plugin-nitro", - "version": "3.0.0-alpha.25", + "version": "3.0.0-alpha.26", "description": "A Vite plugin for adding a nitro API server", "type": "module", "author": "Brandon Roberts ", "exports": { ".": { "types": "./dist/src/index.d.ts", + "import": "./dist/src/index.js", "default": "./dist/src/index.js" }, "./internal": { "types": "./dist/src/lib/utils/debug.d.ts", + "import": "./dist/src/lib/utils/debug.js", "default": "./dist/src/lib/utils/debug.js" }, "./package.json": "./package.json" diff --git a/packages/vite-plugin-nitro/project.json b/packages/vite-plugin-nitro/project.json index c7f27217b..1da73f8b9 100644 --- a/packages/vite-plugin-nitro/project.json +++ b/packages/vite-plugin-nitro/project.json @@ -35,6 +35,13 @@ "passWithNoTests": true, "reportsDirectory": "{projectRoot}/../../coverage/packages/vite-plugin-nitro" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/vite-plugin-nitro", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/vite-plugin-nitro/src/index.spec.ts b/packages/vite-plugin-nitro/src/index.spec.ts new file mode 100644 index 000000000..82bc0e57e --- /dev/null +++ b/packages/vite-plugin-nitro/src/index.spec.ts @@ -0,0 +1,9 @@ +import { describe, expect, it } from 'vitest'; + +import nitroDefault, { nitro } from './index.js'; + +describe('vite-plugin-nitro entrypoint', () => { + it('exports the nitro plugin as both named and default exports', () => { + expect(nitroDefault).toBe(nitro); + }); +}); diff --git a/packages/vite-plugin-nitro/src/index.ts b/packages/vite-plugin-nitro/src/index.ts index 0668d48d7..fb3c6e6b9 100644 --- a/packages/vite-plugin-nitro/src/index.ts +++ b/packages/vite-plugin-nitro/src/index.ts @@ -1,5 +1,10 @@ -import { nitro } from './lib/vite-plugin-nitro.js'; +import { createAnalogNitroPlugins } from './lib/analog-vite-plugin.js'; + +export { createAnalogNitroPlugins } from './lib/analog-vite-plugin.js'; +export { analogNitroModule } from './lib/analog-nitro-module.js'; +export { buildNitroConfig } from './lib/nitro-config-factory.js'; export { debugInstances } from './lib/utils/debug.js'; +export { nitro } from './lib/vite-plugin-nitro.js'; export type { Options, SitemapConfig, @@ -26,4 +31,4 @@ declare module 'nitro/types' { } } -export default nitro; +export default createAnalogNitroPlugins; diff --git a/packages/vite-plugin-nitro/src/lib/analog-nitro-module.ts b/packages/vite-plugin-nitro/src/lib/analog-nitro-module.ts new file mode 100644 index 000000000..408781824 --- /dev/null +++ b/packages/vite-plugin-nitro/src/lib/analog-nitro-module.ts @@ -0,0 +1,835 @@ +/** + * Analog NitroModule — configures Angular-specific behavior on a Nitro instance. + * + * This module is designed to be used with Nitro's first-party Vite plugin + * (`nitro/vite`) via the `plugin.nitro` pattern: + * + * ```ts + * import { nitro } from 'nitro/vite'; + * + * export default defineConfig({ + * plugins: [ + * ...nitro(config), + * { + * name: '@analogjs/nitro', + * nitro: analogNitroModule(options), + * }, + * ], + * }); + * ``` + */ +import type { NitroConfig, RollupConfig } from 'nitro/types'; +import { normalizePath } from 'vite'; +import { dirname, join, resolve } from 'node:path'; +import { + existsSync, + mkdirSync, + readFileSync, + rmSync, + writeFileSync, +} from 'node:fs'; + +import type { + Options, + PrerenderContentDir, + PrerenderContentFile, + PrerenderRouteConfig, + PrerenderSitemapConfig, +} from './options.js'; +import { getPageHandlers } from './utils/get-page-handlers.js'; +import { + ssrRenderer, + clientRenderer, + apiMiddleware, +} from './utils/renderers.js'; +import { pageEndpointsPlugin } from './plugins/page-endpoints.js'; +import { getMatchingContentFilesWithFrontMatter } from './utils/get-content-files.js'; +import { buildSitemap } from './build-sitemap.js'; +import { isVercelPreset, isNetlifyPreset } from './nitro-config-factory.js'; + +interface NitroModule { + name?: string; + setup: (nitro: any) => void | Promise; +} + +/** + * Shared state between the NitroModule and the Vite plugin wrapper. + * The Vite plugin captures the client index.html during `generateBundle` + * and the module reads it during Nitro's server build. + */ +export interface AnalogBuildState { + clientIndexHtml?: string; + rootDir: string; + resolvedPrerenderRoutes: string[]; + sitemapRoutes: string[]; + routeSitemaps: Record< + string, + PrerenderSitemapConfig | (() => PrerenderSitemapConfig) + >; + routeSourceFiles: Record; +} + +export function createAnalogBuildState(): AnalogBuildState { + return { + rootDir: '.', + resolvedPrerenderRoutes: [], + sitemapRoutes: [], + routeSitemaps: {}, + routeSourceFiles: {}, + }; +} + +export function analogNitroModule( + options: Options | undefined, + state: AnalogBuildState, +): NitroModule { + const workspaceRoot = options?.workspaceRoot ?? process.cwd(); + const sourceRoot = options?.sourceRoot ?? 'src'; + const apiPrefix = `/${options?.apiPrefix || 'api'}`; + const baseURL = process.env['NITRO_APP_BASE_URL'] || ''; + const prefix = baseURL ? baseURL.substring(0, baseURL.length - 1) : ''; + const useAPIMiddleware = + typeof options?.useAPIMiddleware !== 'undefined' + ? options?.useAPIMiddleware + : true; + + return { + name: 'analog', + async setup(nitro) { + // rootDir is set by the Vite plugin's config() hook which runs + // before nitro:init's config() hook (and thus before this setup). + const rootDir = state.rootDir || nitro.options.rootDir || '.'; + + // Update output paths now that rootDir is resolved. + // The initial NitroConfig was created with rootDir='.' before + // the Vite config's `root` was available. + nitro.options.rootDir = normalizePath(rootDir); + nitro.options.output = nitro.options.output || {}; + nitro.options.output.dir = normalizePath( + resolve(workspaceRoot, 'dist', rootDir, 'analog'), + ); + nitro.options.output.publicDir = normalizePath( + resolve(workspaceRoot, 'dist', rootDir, 'analog/public'), + ); + nitro.options.buildDir = normalizePath( + resolve(workspaceRoot, 'dist', rootDir, '.nitro'), + ); + + // Apply preset-specific output path overrides + const preset = nitro.options.preset; + if (isVercelPreset(preset)) { + nitro.options.output.dir = normalizePath( + resolve(workspaceRoot, '.vercel', 'output'), + ); + nitro.options.output.publicDir = normalizePath( + resolve(workspaceRoot, '.vercel', 'output/static'), + ); + } + if ( + isNetlifyPreset(preset) && + rootDir === '.' && + !existsSync(resolve(workspaceRoot, 'netlify.toml')) + ) { + nitro.options.output.dir = normalizePath( + resolve(workspaceRoot, 'netlify/functions'), + ); + } + + const hasAPIDir = existsSync( + resolve( + workspaceRoot, + rootDir, + `${sourceRoot}/server/routes/${options?.apiPrefix || 'api'}`, + ), + ); + const sourceSsrEntry = normalizePath( + options?.entryServer || + resolve(workspaceRoot, rootDir, `${sourceRoot}/main.server.ts`), + ); + + // ── Renderer ────────────────────────────────────────────── + nitro.options.virtual = nitro.options.virtual || {}; + nitro.options.virtual['#ANALOG_SSR_RENDERER'] = + ssrRenderer(sourceSsrEntry); + nitro.options.virtual['#ANALOG_CLIENT_RENDERER'] = clientRenderer(); + if (!hasAPIDir) { + nitro.options.virtual['#ANALOG_API_MIDDLEWARE'] = apiMiddleware; + } + + const rendererHandler = options?.ssr + ? '#ANALOG_SSR_RENDERER' + : '#ANALOG_CLIENT_RENDERER'; + // Set the renderer handler so nitro/vite doesn't auto-detect one. + nitro.options.renderer = nitro.options.renderer || {}; + nitro.options.renderer.handler = rendererHandler; + + // ── Handlers ────────────────────────────────────────────── + const pageHandlers = getPageHandlers({ + workspaceRoot, + sourceRoot, + rootDir, + additionalPagesDirs: options?.additionalPagesDirs, + hasAPIDir, + }); + + nitro.options.handlers = nitro.options.handlers || []; + if (!hasAPIDir && useAPIMiddleware) { + nitro.options.handlers.push({ + route: '/**', + handler: '#ANALOG_API_MIDDLEWARE', + middleware: true, + }); + } + nitro.options.handlers.push(...pageHandlers); + nitro.options.handlers.push({ + handler: rendererHandler, + route: '/**', + lazy: true, + }); + + // ── Route rules ─────────────────────────────────────────── + if (!hasAPIDir && !useAPIMiddleware) { + nitro.options.routeRules = nitro.options.routeRules || {}; + nitro.options.routeRules[`${prefix}${apiPrefix}/**`] = { + proxy: { to: '/**' }, + }; + } + + // ── Scan dirs ───────────────────────────────────────────── + nitro.options.scanDirs = nitro.options.scanDirs || []; + nitro.options.scanDirs.push( + normalizePath(`${rootDir}/${sourceRoot}/server`), + ); + if (options?.additionalAPIDirs) { + for (const dir of options.additionalAPIDirs) { + nitro.options.scanDirs.push(normalizePath(`${workspaceRoot}${dir}`)); + } + } + + // ── Page endpoints Rollup plugin ────────────────────────── + nitro.options.rollupConfig = nitro.options.rollupConfig || {}; + nitro.options.rollupConfig.plugins = + nitro.options.rollupConfig.plugins || []; + if (Array.isArray(nitro.options.rollupConfig.plugins)) { + nitro.options.rollupConfig.plugins.push(pageEndpointsPlugin()); + } + + // Suppress empty chunk warnings for .server files + nitro.options.rollupConfig.onwarn = (warning: { message: string }) => { + if ( + warning.message.includes('empty chunk') && + warning.message.endsWith('.server') + ) { + return; + } + }; + + // ── Module side effects ─────────────────────────────────── + if (options?.ssr || nitro.options.prerender?.routes?.length) { + nitro.options.moduleSideEffects = [ + 'zone.js/node', + 'zone.js/fesm2015/zone-node', + ]; + + if (process.platform === 'win32') { + nitro.options.noExternals = appendNoExternals( + nitro.options.noExternals, + 'std-env', + ); + } + } + + // ── Lazy virtual module resolution ──────────────────────── + // These Rollup plugins resolve #analog/index and #analog/ssr + // at build time. Since nitro/vite builds client → SSR → nitro + // sequentially, the files exist on disk when the nitro + // environment builds. + nitro.options.rollupConfig.plugins.push({ + name: 'analog-index-html-virtual', + resolveId(id: string) { + if (id === '#analog/index') return '\0#analog/index'; + return undefined; + }, + load(id: string) { + if (id !== '\0#analog/index') return; + // Prefer in-memory capture (handles Windows race conditions) + if (state.clientIndexHtml) { + return `export default ${JSON.stringify(state.clientIndexHtml)};`; + } + // Fall back to reading from disk + const publicDir = nitro.options.output?.publicDir; + const clientOutDir = resolve( + workspaceRoot, + 'dist', + rootDir, + 'client', + ); + for (const dir of [publicDir, clientOutDir]) { + if (!dir) continue; + const indexPath = resolve(dir, 'index.html'); + if (existsSync(indexPath)) { + const html = readFileSync(indexPath, 'utf8'); + return `export default ${JSON.stringify(html)};`; + } + } + // In dev mode, read from the source index.html + const sourceIndex = resolve( + workspaceRoot, + rootDir, + options?.index || 'index.html', + ); + if (existsSync(sourceIndex)) { + const html = readFileSync(sourceIndex, 'utf8'); + return `export default ${JSON.stringify(html)};`; + } + // Return empty template as fallback (dev mode) + if (nitro.options.dev) { + return 'export default "";'; + } + throw new Error( + '[analog] Client build output not found. Ensure the client environment build completed successfully.', + ); + }, + }); + + // Set #analog/ssr alias via Nitro config (not Rollup plugin) so it + // applies to both server and prerender builds. The alias is resolved + // lazily via a build:before hook since the SSR entry doesn't exist + // until after the SSR environment build completes. + nitro.hooks.hook('build:before', () => { + if (!options?.ssr && !nitro.options.prerender?.routes?.length) return; + const ssrOutDir = + options?.ssrBuildDir || + resolve(workspaceRoot, 'dist', rootDir, 'ssr'); + const nitroSsrDir = resolve( + workspaceRoot, + 'dist', + rootDir, + '.nitro/vite/services/ssr', + ); + const candidates = [ + resolve(ssrOutDir, 'main.server.mjs'), + resolve(ssrOutDir, 'main.server.js'), + resolve(nitroSsrDir, 'index.mjs'), + ]; + const ssrEntryPath = candidates.find((p) => existsSync(p)); + if (ssrEntryPath) { + nitro.options.alias = nitro.options.alias || {}; + nitro.options.alias['#analog/ssr'] = normalizePath(ssrEntryPath); + } + }); + + // ── Externals and bundler config sanitization ───────────── + nitro.hooks.hook( + 'rollup:before', + (_n: unknown, bundlerConfig: RollupConfig) => { + sanitizeNitroBundlerConfig(bundlerConfig); + + if (!options?.ssr && !nitro.options.prerender?.routes?.length) return; + + const externalEntries = ['rxjs', 'node-fetch-native/dist/polyfill']; + const isExternal = (source: string) => + externalEntries.some( + (entry) => source === entry || source.startsWith(entry + '/'), + ); + + const existing = bundlerConfig.external; + if (typeof existing === 'function') { + const originalFn = existing; + bundlerConfig.external = ( + source: string, + importer: string | undefined, + isResolved: boolean, + ) => { + if (isExternal(source)) return true; + return (originalFn as (...args: unknown[]) => unknown)( + source, + importer, + isResolved, + ); + }; + } else if (Array.isArray(existing)) { + bundlerConfig.external = [ + ...existing, + ...externalEntries, + ] as string[]; + } else if (existing) { + bundlerConfig.external = [ + ...(typeof existing === 'string' ? [existing] : []), + ...externalEntries, + ]; + } else { + bundlerConfig.external = externalEntries; + } + }, + ); + + // ── Prerendering ────────────────────────────────────────── + await resolveAndRegisterPrerenderRoutes( + nitro, + options, + state, + workspaceRoot, + rootDir, + apiPrefix, + ); + + // ── Post-rendering hooks ────────────────────────────────── + if (options?.prerender?.postRenderingHooks) { + for (const hook of options.prerender.postRenderingHooks) { + nitro.hooks.hook('prerender:generate', hook); + } + } + + // ── SSR tsconfig for OXC resolver ───────────────────────── + nitro.hooks.hook('build:before', () => { + ensureSsrTsconfig(options, workspaceRoot, rootDir); + }); + + // ── Remove root index.html before prerender ─────────────── + nitro.hooks.hook('prerender:init', () => { + if ( + options?.ssr && + nitro.options.prerender?.routes && + nitro.options.prerender.routes.find((route: string) => route === '/') + ) { + const publicDir = nitro.options.output?.publicDir ?? ''; + for (const ext of ['', '.br', '.gz']) { + rmSync(join(publicDir, `index.html${ext}`), { force: true }); + } + } + }); + + // ── Route source files output ───────────────────────────── + nitro.hooks.hook('prerender:done', () => { + if (Object.keys(state.routeSourceFiles).length > 0) { + const publicDir = nitro.options.output?.publicDir; + if (!publicDir) return; + for (const [route, content] of Object.entries( + state.routeSourceFiles, + )) { + const outputPath = join(publicDir, `${route}.md`); + mkdirSync(dirname(outputPath), { recursive: true }); + writeFileSync(outputPath, content, 'utf8'); + } + } + }); + + // ── Vercel function config ──────────────────────────────── + nitro.hooks.hook('compiled', () => { + ensureVercelFunctionConfig(nitro); + }); + + // ── Sitemap generation ──────────────────────────────────── + nitro.hooks.hook('close', async () => { + if ( + nitro.options.prerender?.routes?.length && + options?.prerender?.sitemap + ) { + console.log('Building Sitemap...'); + const publicDir = nitro.options.output?.publicDir; + if (!publicDir) return; + await buildSitemap( + {}, + options.prerender.sitemap, + state.sitemapRoutes.length + ? state.sitemapRoutes + : nitro.options.prerender.routes, + publicDir, + state.routeSitemaps, + { apiPrefix: options?.apiPrefix || 'api' }, + ); + } + }); + + // ── Success message ─────────────────────────────────────── + nitro.hooks.hook('close', () => { + console.log( + `\n\nThe '@analogjs/platform' server has been successfully built.`, + ); + }); + }, + }; +} + +// ── Helpers ───────────────────────────────────────────────────────── + +async function resolveAndRegisterPrerenderRoutes( + nitro: any, + options: Options | undefined, + state: AnalogBuildState, + workspaceRoot: string, + rootDir: string, + apiPrefix: string, +) { + if (!options?.prerender) { + if (isEmptyPrerenderRoutes(options)) { + nitro.options.prerender = nitro.options.prerender || {}; + nitro.options.prerender.routes = ['/']; + } + return; + } + + nitro.options.prerender = nitro.options.prerender || {}; + nitro.options.prerender.crawlLinks = options.prerender.discover; + + let routes: ( + | string + | PrerenderContentDir + | PrerenderRouteConfig + | undefined + )[] = []; + + const prerenderRoutes = options.prerender.routes; + const hasExplicitPrerenderRoutes = + typeof prerenderRoutes === 'function' || Array.isArray(prerenderRoutes); + + if (isArrayWithElements(prerenderRoutes)) { + routes = prerenderRoutes; + } else if (typeof prerenderRoutes === 'function') { + routes = await prerenderRoutes(); + } + + const resolvedPrerenderRoutes = routes.reduce((prev, current) => { + if (!current) return prev; + + if (typeof current === 'string') { + prev.push(current); + state.sitemapRoutes.push(current); + return prev; + } + + if ('route' in current) { + if (current.sitemap) { + state.routeSitemaps[current.route] = current.sitemap; + } + if (current.outputSourceFile) { + const sourcePath = resolve( + workspaceRoot, + rootDir, + current.outputSourceFile, + ); + state.routeSourceFiles[current.route] = readFileSync( + sourcePath, + 'utf8', + ); + } + prev.push(current.route); + state.sitemapRoutes.push(current.route); + if ('staticData' in current) { + prev.push(`${apiPrefix}/_analog/pages/${current.route}`); + } + return prev; + } + + const affectedFiles: PrerenderContentFile[] = + getMatchingContentFilesWithFrontMatter( + workspaceRoot, + rootDir, + current.contentDir, + ); + + affectedFiles.forEach((f) => { + const result = current.transform(f); + if (result) { + if (current.sitemap) { + state.routeSitemaps[result] = + typeof current.sitemap === 'function' + ? current.sitemap(f) + : current.sitemap; + } + if (current.outputSourceFile) { + const sourceContent = current.outputSourceFile(f); + if (sourceContent) { + state.routeSourceFiles[result] = sourceContent; + } + } + prev.push(result); + state.sitemapRoutes.push(result); + if ('staticData' in current) { + prev.push(`${apiPrefix}/_analog/pages/${result}`); + } + } + }); + + return prev; + }, []); + + nitro.options.prerender.routes = + hasExplicitPrerenderRoutes || resolvedPrerenderRoutes.length + ? resolvedPrerenderRoutes + : (nitro.options.prerender.routes ?? []); + + // Store resolved routes in shared state for the closeBundle fallback + state.resolvedPrerenderRoutes = nitro.options.prerender.routes; +} + +function resolveBuiltSsrEntryPath(ssrOutDir: string) { + const candidates = [ + resolve(ssrOutDir, 'main.server.mjs'), + resolve(ssrOutDir, 'main.server.js'), + resolve(ssrOutDir, 'main.server'), + ]; + + const ssrEntryPath = candidates.find((p) => existsSync(p)); + if (!ssrEntryPath) { + throw new Error( + `Unable to locate the built SSR entry in "${ssrOutDir}". Expected one of: ${candidates.join(', ')}`, + ); + } + return ssrEntryPath; +} + +function ensureSsrTsconfig( + options: Options | undefined, + workspaceRoot: string, + rootDir: string, +) { + const ssrOutDir = + options?.ssrBuildDir || resolve(workspaceRoot, 'dist', rootDir, 'ssr'); + const tsconfigPath = join(ssrOutDir, 'tsconfig.json'); + + if (existsSync(tsconfigPath)) return; + if (!existsSync(ssrOutDir)) return; + + writeFileSync( + tsconfigPath, + JSON.stringify( + { compilerOptions: { module: 'ESNext', moduleResolution: 'bundler' } }, + null, + 2, + ), + 'utf8', + ); +} + +function ensureVercelFunctionConfig(nitro: any) { + if (!isVercelPreset(nitro.options.preset)) return; + + const serverDir = nitro.options.output.serverDir; + const configPath = join(serverDir, '.vc-config.json'); + if (existsSync(configPath)) return; + + mkdirSync(serverDir, { recursive: true }); + writeFileSync( + configPath, + JSON.stringify( + { + handler: 'index.mjs', + launcherType: 'Nodejs', + shouldAddHelpers: false, + supportsResponseStreaming: true, + ...nitro.options.vercel?.functions, + }, + null, + 2, + ), + 'utf8', + ); +} + +function sanitizeNitroBundlerConfig(bundlerConfig: RollupConfig) { + const output = bundlerConfig['output']; + if (!output || Array.isArray(output) || typeof output !== 'object') return; + + if ('codeSplitting' in output) { + delete (output as Record)['codeSplitting']; + } + if ('manualChunks' in output) { + delete (output as Record)['manualChunks']; + } + + const VALID_ROLLUP_PLACEHOLDER = /^\[(?:name|hash|format|ext)\]$/; + const chunkFileNames = (output as Record)['chunkFileNames']; + if (typeof chunkFileNames === 'function') { + const originalFn = chunkFileNames as (...args: unknown[]) => unknown; + (output as Record)['chunkFileNames'] = ( + ...args: unknown[] + ) => { + const result = originalFn(...args); + if (typeof result !== 'string') return result; + return result.replace(/\[[^\]]+\]/g, (match: string) => + VALID_ROLLUP_PLACEHOLDER.test(match) + ? match + : `_${match.slice(1, -1)}_`, + ); + }; + } +} + +function appendNoExternals( + noExternals: NitroConfig['noExternals'], + ...entries: string[] +): NitroConfig['noExternals'] { + if (!noExternals) return entries; + return Array.isArray(noExternals) + ? [...noExternals, ...entries] + : noExternals; +} + +function isEmptyPrerenderRoutes(options?: Options): boolean { + if (!options || isArrayWithElements(options?.prerender?.routes)) return false; + return !options.prerender?.routes; +} + +function isArrayWithElements(arr: unknown): arr is [T, ...T[]] { + return !!(Array.isArray(arr) && arr.length); +} + +/** + * Resolves prerender routes into the shared build state. + * Used by the closeBundle fallback when the NitroModule's setup() + * doesn't run (build-only mode with nitro/vite restricted to serve). + */ +export async function resolveAnalogPrerenderRoutes( + options: Options | undefined, + state: AnalogBuildState, + workspaceRoot: string, + rootDir: string, +): Promise { + if (state.resolvedPrerenderRoutes.length > 0) return; + + const apiPrefix = `/${options?.apiPrefix || 'api'}`; + + if (!options?.prerender) { + if (isEmptyPrerenderRoutes(options)) { + state.resolvedPrerenderRoutes = ['/']; + } + return; + } + + let routes: ( + | string + | PrerenderContentDir + | PrerenderRouteConfig + | undefined + )[] = []; + + const prerenderRoutes = options.prerender.routes; + const hasExplicitPrerenderRoutes = + typeof prerenderRoutes === 'function' || Array.isArray(prerenderRoutes); + + if (isArrayWithElements(prerenderRoutes)) { + routes = prerenderRoutes; + } else if (typeof prerenderRoutes === 'function') { + routes = await prerenderRoutes(); + } + + const resolved = routes.reduce((prev, current) => { + if (!current) return prev; + + if (typeof current === 'string') { + prev.push(current); + state.sitemapRoutes.push(current); + return prev; + } + + if ('route' in current) { + if (current.sitemap) { + state.routeSitemaps[current.route] = current.sitemap; + } + if (current.outputSourceFile) { + const sourcePath = resolve( + workspaceRoot, + rootDir, + current.outputSourceFile, + ); + state.routeSourceFiles[current.route] = readFileSync( + sourcePath, + 'utf8', + ); + } + prev.push(current.route); + state.sitemapRoutes.push(current.route); + if ('staticData' in current) { + prev.push(`${apiPrefix}/_analog/pages/${current.route}`); + } + return prev; + } + + const affectedFiles: PrerenderContentFile[] = + getMatchingContentFilesWithFrontMatter( + workspaceRoot, + rootDir, + current.contentDir, + ); + + affectedFiles.forEach((f) => { + const result = current.transform(f); + if (result) { + if (current.sitemap) { + state.routeSitemaps[result] = + typeof current.sitemap === 'function' + ? current.sitemap(f) + : current.sitemap; + } + if (current.outputSourceFile) { + const sourceContent = current.outputSourceFile(f); + if (sourceContent) { + state.routeSourceFiles[result] = sourceContent; + } + } + prev.push(result); + state.sitemapRoutes.push(result); + if ('staticData' in current) { + prev.push(`${apiPrefix}/_analog/pages/${result}`); + } + } + }); + return prev; + }, []); + + state.resolvedPrerenderRoutes = + hasExplicitPrerenderRoutes || resolved.length ? resolved : ['/']; +} + +/** + * Registers rollup:before hooks for bundler config sanitization and + * externalization on a Nitro instance. Used by the closeBundle fallback + * since the NitroModule's setup() only runs on the nitro/vite instance. + */ +export function sanitizeAndExternalize( + nitro: any, + needsExternals: boolean, +): void { + nitro.hooks.hook( + 'rollup:before', + (_n: unknown, bundlerConfig: RollupConfig) => { + sanitizeNitroBundlerConfig(bundlerConfig); + + if (!needsExternals) return; + + const externalEntries = ['rxjs', 'node-fetch-native/dist/polyfill']; + const isExternal = (source: string) => + externalEntries.some( + (entry) => source === entry || source.startsWith(entry + '/'), + ); + + const existing = bundlerConfig.external; + if (typeof existing === 'function') { + const originalFn = existing; + bundlerConfig.external = ( + source: string, + importer: string | undefined, + isResolved: boolean, + ) => { + if (isExternal(source)) return true; + return (originalFn as (...args: unknown[]) => unknown)( + source, + importer, + isResolved, + ); + }; + } else if (Array.isArray(existing)) { + bundlerConfig.external = [...existing, ...externalEntries] as string[]; + } else if (existing) { + bundlerConfig.external = [ + ...(typeof existing === 'string' ? [existing] : []), + ...externalEntries, + ]; + } else { + bundlerConfig.external = externalEntries; + } + }, + ); +} diff --git a/packages/vite-plugin-nitro/src/lib/analog-vite-plugin.ts b/packages/vite-plugin-nitro/src/lib/analog-vite-plugin.ts new file mode 100644 index 000000000..6a2f9fb79 --- /dev/null +++ b/packages/vite-plugin-nitro/src/lib/analog-vite-plugin.ts @@ -0,0 +1,427 @@ +/** + * Analog Vite Plugin — composes Nitro's first-party Vite plugin with + * Angular-specific server behavior (SSR, API routes, prerendering). + * + * Architecture: + * Dev mode → nitro/vite handles the dev server, HMR, and API routing. + * Build mode → closeBundle fallback drives the SSR → Nitro pipeline + * because Nx executors don't trigger the Environment API + * buildApp flow that nitro/vite expects. + * + * Plugins returned (in order): + * 1. @analogjs/vite-plugin-nitro — main plugin: config, bundle + * capture, closeBundle build pipeline, and carries the NitroModule + * 2. @analogjs/vite-plugin-nitro-api-prefix — injects ANALOG_API_PREFIX + * 3. @analogjs/vite-plugin-nitro-page-endpoints — dev-only transform that + * wraps .server.ts page files into Nitro handlers + * 4. nitro/vite plugins (serve only) — first-party Nitro dev server + * + * This is the default export of `@analogjs/vite-plugin-nitro`. + */ +import type { NitroConfig } from 'nitro/types'; +import { nitro as nitroVitePlugin, type NitroPluginConfig } from 'nitro/vite'; +import type { Plugin, UserConfig } from 'vite'; +import { mergeConfig, normalizePath } from 'vite'; +import { existsSync, readFileSync } from 'node:fs'; +import { resolve } from 'node:path'; + +import type { Options } from './options.js'; +import { + buildNitroConfig, + type NitroConfigContext, +} from './nitro-config-factory.js'; +import { ssrRenderer } from './utils/renderers.js'; +import { + analogNitroModule, + createAnalogBuildState, + type AnalogBuildState, +} from './analog-nitro-module.js'; +import { buildServer } from './build-server.js'; +import { buildClientApp, buildSSRApp } from './build-ssr.js'; +import { buildSitemap } from './build-sitemap.js'; +import { getBundleOptionsKey, isRolldown } from './utils/rolldown.js'; +import { pageEndpointsPlugin } from './plugins/page-endpoints.js'; + +function assetSourceToString(source: string | Uint8Array) { + return typeof source === 'string' + ? source + : Buffer.from(source).toString('utf8'); +} + +export function createAnalogNitroPlugins( + options?: Options, + nitroOptions?: NitroConfig, +): Plugin[] { + const workspaceRoot = options?.workspaceRoot ?? process.cwd(); + const sourceRoot = options?.sourceRoot ?? 'src'; + const baseURL = process.env['NITRO_APP_BASE_URL'] || ''; + const prefix = baseURL ? baseURL.substring(0, baseURL.length - 1) : ''; + const apiPrefix = `/${options?.apiPrefix || 'api'}`; + const useAPIMiddleware = + typeof options?.useAPIMiddleware !== 'undefined' + ? options?.useAPIMiddleware + : true; + const isTest = process.env['NODE_ENV'] === 'test' || !!process.env['VITEST']; + + const state: AnalogBuildState = createAnalogBuildState(); + let rootDir = '.'; + let savedConfig: UserConfig | undefined; + // Guards against recursive closeBundle from nested sub-builds + // (buildClientApp / buildSSRApp call Vite's build() which re-enters plugins). + let legacyClientSubBuild = false; + // Prevents duplicate closeBundle execution across Vite 8 environments. + // Vite 8 fires closeBundle once per environment (client, ssr, nitro, services). + // Multiple client-like environments can exist (the main client + nitro/vite's + // client), so the environment name check alone is insufficient — this flag + // ensures at-most-once semantics for the production build pipeline. + let closeBundleRunning = false; + + const getContext = (): NitroConfigContext => ({ + workspaceRoot, + rootDir, + sourceRoot, + apiPrefix, + prefix, + hasAPIDir: existsSync( + resolve( + workspaceRoot, + rootDir, + `${sourceRoot}/server/routes/${options?.apiPrefix || 'api'}`, + ), + ), + useAPIMiddleware, + }); + + /** + * Builds the NitroPluginConfig passed to nitro/vite. + * Called eagerly at plugin creation time — rootDir is still '.' here. + * The NitroModule's setup() corrects paths once the real rootDir is known. + */ + const buildConfig = (): NitroPluginConfig => { + const ctx = getContext(); + let config = buildNitroConfig(options, nitroOptions, ctx); + const sourceSsrEntry = normalizePath( + options?.entryServer || + resolve(workspaceRoot, rootDir, `${sourceRoot}/main.server.ts`), + ); + if (options?.ssr || config.prerender?.routes?.length) { + config.virtual = config.virtual || {}; + config.virtual['#ANALOG_SSR_RENDERER'] = ssrRenderer(sourceSsrEntry); + } + config = mergeConfig(config, nitroOptions as Record); + return config as NitroPluginConfig; + }; + + const viteRolldownOutput = options?.vite?.build?.rolldownOptions?.output; + const viteRolldownOutputConfig = + viteRolldownOutput && !Array.isArray(viteRolldownOutput) + ? viteRolldownOutput + : undefined; + const codeSplitting = viteRolldownOutputConfig?.codeSplitting; + + return [ + // ── Plugin 1: Analog Nitro Plugin ───────────────────────────── + // Core plugin that attaches the NitroModule, configures Vite + // environments (client + ssr), captures client index.html during + // bundling, and drives the production build pipeline in closeBundle. + { + name: '@analogjs/vite-plugin-nitro', + // nitro/vite reads plugin.nitro during init and registers it as a + // NitroModule whose setup() configures handlers, renderers, virtual + // modules, and build hooks on the Nitro instance. + nitro: analogNitroModule(options, state), + // Resolve rootDir from Vite config root (e.g. 'apps/analog-app') + // relative to workspace root, shared with NitroModule via state. + config(userConfig) { + const resolvedConfigRoot = userConfig.root + ? resolve(workspaceRoot, userConfig.root) + : workspaceRoot; + rootDir = + resolvedConfigRoot === workspaceRoot + ? '.' + : normalizePath( + resolve(workspaceRoot, userConfig.root || '.'), + ).replace(normalizePath(workspaceRoot) + '/', ''); + const sourceSsrEntry = normalizePath( + options?.entryServer || + resolve(workspaceRoot, rootDir, `${sourceRoot}/main.server.ts`), + ); + state.rootDir = rootDir; + savedConfig = userConfig; + + if (isTest) return {}; + + return { + environments: { + client: { + build: { + outDir: + userConfig?.build?.outDir || + resolve(workspaceRoot, 'dist', rootDir, 'client'), + emptyOutDir: true, + ...(isRolldown() && codeSplitting !== undefined + ? { + rolldownOptions: { + output: { + ...viteRolldownOutputConfig, + codeSplitting, + }, + }, + } + : {}), + }, + }, + ssr: { + build: { + ssr: true, + [getBundleOptionsKey()]: { + input: + options?.entryServer || + resolve( + workspaceRoot, + rootDir, + `${sourceRoot}/main.server.ts`, + ), + }, + outDir: + options?.ssrBuildDir || + resolve(workspaceRoot, 'dist', rootDir, 'ssr'), + emptyOutDir: false, + }, + }, + }, + }; + }, + // Capture client index.html from the bundle for SSR/prerender use. + // Both hooks needed: generateBundle catches the in-memory asset before + // disk write (faster), writeBundle catches it after (fallback). + generateBundle( + _options: unknown, + bundle: Record< + string, + { type?: string; fileName?: string; source?: string | Uint8Array } + >, + ) { + const indexHtmlAsset = Object.values(bundle).find( + (chunk) => + chunk.type === 'asset' && + chunk.fileName === 'index.html' && + typeof chunk.source !== 'undefined', + ); + if (indexHtmlAsset?.source) { + state.clientIndexHtml = assetSourceToString(indexHtmlAsset.source); + } + }, + writeBundle( + _options: unknown, + bundle: Record< + string, + { type?: string; fileName?: string; source?: string | Uint8Array } + >, + ) { + const indexHtmlAsset = Object.values(bundle).find( + (chunk) => + chunk.type === 'asset' && + chunk.fileName === 'index.html' && + typeof chunk.source !== 'undefined', + ); + if (indexHtmlAsset?.source) { + state.clientIndexHtml = assetSourceToString(indexHtmlAsset.source); + } + }, + + // ── closeBundle: production build orchestration ───────────── + // Drives the SSR → Nitro build pipeline when nitro/vite's + // Environment API buildApp doesn't fire (Nx executors, CLI builds). + // + // Pipeline: resolve client output → resolve prerender routes → + // build Nitro config → build SSR → set #analog/ssr alias → + // build Nitro server → build sitemap + async closeBundle() { + if (isTest || legacyClientSubBuild || closeBundleRunning) return; + + // Vite 8 fires closeBundle once per environment. Only proceed from + // client environments — skip SSR, nitro, and service environments. + // closeBundleRunning prevents duplicate runs when multiple client-like + // environments exist (main client + nitro/vite's client environment). + const envName = (this as any).environment?.name; + if (envName && envName !== 'client') return; + + closeBundleRunning = true; + try { + // Skip if Nitro already built (idempotency across environments) + const nitroOutputPath = resolve( + workspaceRoot, + 'dist', + rootDir, + 'analog/server/index.mjs', + ); + if (existsSync(nitroOutputPath)) return; + + // Resolve client output path + const resolvedClientOutputPath = savedConfig?.build?.outDir + ? normalizePath( + resolve(workspaceRoot, rootDir, savedConfig.build.outDir), + ) + : normalizePath(resolve(workspaceRoot, 'dist', rootDir, 'client')); + + const indexHtmlPath = resolve(resolvedClientOutputPath, 'index.html'); + if ( + !existsSync(indexHtmlPath) && + typeof state.clientIndexHtml !== 'string' + ) { + legacyClientSubBuild = true; + try { + await buildClientApp(savedConfig || {}, options); + } finally { + legacyClientSubBuild = false; + } + } + + if (typeof state.clientIndexHtml !== 'string') { + const htmlPath = resolve(resolvedClientOutputPath, 'index.html'); + if (existsSync(htmlPath)) { + state.clientIndexHtml = readFileSync(htmlPath, 'utf8'); + } + } + + // Resolve prerender routes + const { resolveAnalogPrerenderRoutes } = + await import('./analog-nitro-module.js'); + await resolveAnalogPrerenderRoutes( + options, + state, + workspaceRoot, + rootDir, + ); + + // Build Nitro config + const ctx = getContext(); + let nitroConfig = buildNitroConfig(options, nitroOptions, ctx); + nitroConfig = mergeConfig( + nitroConfig, + nitroOptions as Record, + ); + + // Register client HTML virtual module + nitroConfig.virtual = nitroConfig.virtual || {}; + nitroConfig.virtual['#analog/index'] = + `export default ${JSON.stringify(state.clientIndexHtml || '')};`; + + // Build SSR + if (options?.ssr || state.resolvedPrerenderRoutes.length > 0) { + console.log('Building SSR application...'); + await buildSSRApp(savedConfig || {}, options); + } + + // Set SSR entry alias + const ssrOutDir = + options?.ssrBuildDir || + resolve(workspaceRoot, 'dist', rootDir, 'ssr'); + if (options?.ssr || state.resolvedPrerenderRoutes.length > 0) { + const candidates = [ + resolve(ssrOutDir, 'main.server.mjs'), + resolve(ssrOutDir, 'main.server.js'), + ]; + const ssrEntry = candidates.find((p) => existsSync(p)); + if (ssrEntry) { + nitroConfig.alias = { + ...nitroConfig.alias, + '#analog/ssr': normalizePath(ssrEntry), + }; + } + } + + // Re-register HTML after SSR build + nitroConfig.virtual['#analog/index'] = + `export default ${JSON.stringify(state.clientIndexHtml || '')};`; + + nitroConfig.publicAssets = [ + { dir: normalizePath(resolvedClientOutputPath), maxAge: 0 }, + ]; + if (state.resolvedPrerenderRoutes.length > 0) { + nitroConfig.prerender = nitroConfig.prerender || {}; + nitroConfig.prerender.routes = state.resolvedPrerenderRoutes; + } + if (options?.ssr || state.resolvedPrerenderRoutes.length > 0) { + nitroConfig.moduleSideEffects = [ + 'zone.js/node', + 'zone.js/fesm2015/zone-node', + ]; + } + + await buildServer(options, nitroConfig, state.routeSourceFiles); + + if ( + nitroConfig.prerender?.routes?.length && + options?.prerender?.sitemap + ) { + console.log('Building Sitemap...'); + const publicDir = nitroConfig.output?.publicDir; + if (publicDir) { + await buildSitemap( + savedConfig || {}, + options.prerender.sitemap, + state.sitemapRoutes.length + ? state.sitemapRoutes + : nitroConfig.prerender.routes, + publicDir, + state.routeSitemaps, + { apiPrefix: options?.apiPrefix || 'api' }, + ); + } + } + + console.log( + `\n\nThe '@analogjs/platform' server has been successfully built.`, + ); + } finally { + closeBundleRunning = false; + } + }, + } as Plugin, + + // ── Plugin 2: API prefix define ────────────────────────────── + // Injects ANALOG_API_PREFIX as a compile-time constant so client + // and server code can reference the configured API prefix. + { + name: '@analogjs/vite-plugin-nitro-api-prefix', + config() { + return { + define: { + ANALOG_API_PREFIX: `"${baseURL.substring(1)}${apiPrefix.substring(1)}"`, + }, + }; + }, + }, + + // ── Plugin 3: Page endpoints transform (dev only) ──────────── + // In dev mode, Nitro loads .server.ts page files via Vite's SSR + // module runner. These files export `load`/`action` functions but + // Nitro expects a default `defineHandler` export. This plugin wraps + // them into proper Nitro handlers at transform time. + // + // Only needed during serve — production builds apply the same + // transform via the Rollup plugin registered on + // nitro.options.rollupConfig.plugins in the NitroModule's setup(). + { + ...pageEndpointsPlugin(), + name: '@analogjs/vite-plugin-nitro-page-endpoints', + apply: 'serve' as const, + } as Plugin, + + // ── Plugin 4: nitro/vite (dev server only) ─────────────────── + // Nitro's first-party Vite plugins handle the srvx HTTP server, + // HMR, and preview mode. Restricted to serve via `apply`. + // + // Production builds use the closeBundle fallback (Plugin 1) because + // nitro/vite's buildApp conflicts with Nx executor flow and Nitro + // alias timing (aliases resolve before SSR output exists on disk). + ...(isTest + ? [] + : (nitroVitePlugin(buildConfig()) as Plugin[]).map((p) => ({ + ...p, + apply: 'serve' as const, + }))), + ]; +} diff --git a/packages/vite-plugin-nitro/src/lib/build-server.spec.ts b/packages/vite-plugin-nitro/src/lib/build-server.spec.ts deleted file mode 100644 index fb66acf93..000000000 --- a/packages/vite-plugin-nitro/src/lib/build-server.spec.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { afterEach, describe, expect, it, vi } from 'vitest'; -import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from 'node:fs'; -import { tmpdir } from 'node:os'; -import { join, resolve } from 'node:path'; - -vi.mock('nitro/builder', () => ({ - build: vi.fn(), - copyPublicAssets: vi.fn(), - createNitro: vi.fn(), - prepare: vi.fn(), - prerender: vi.fn(), -})); - -import { - build, - copyPublicAssets, - createNitro, - prepare, - prerender, -} from 'nitro/builder'; - -import { buildServer } from './build-server'; - -describe('buildServer', () => { - afterEach(() => { - vi.restoreAllMocks(); - }); - - it('fails when Nitro leaves an empty vercel config.json', async () => { - const workspaceRoot = mkdtempSync(join(tmpdir(), 'analog-vercel-config-')); - const outputDir = resolve(workspaceRoot, '.vercel', 'output'); - const serverDir = resolve(outputDir, 'functions', '__server.func'); - const publicDir = resolve(outputDir, 'static'); - const buildConfigPath = resolve(outputDir, 'config.json'); - - mkdirSync(serverDir, { recursive: true }); - mkdirSync(publicDir, { recursive: true }); - - vi.mocked(createNitro).mockResolvedValue({ - options: { - framework: { - name: 'nitro', - version: '3.0.0', - }, - output: { - dir: outputDir, - publicDir, - serverDir, - }, - preset: 'vercel', - routeRules: {}, - static: false, - vercel: { - functions: { - runtime: 'nodejs24.x', - }, - }, - }, - close: vi.fn().mockResolvedValue(undefined), - } as never); - vi.mocked(prepare).mockResolvedValue(undefined as never); - vi.mocked(copyPublicAssets).mockResolvedValue(undefined as never); - vi.mocked(prerender).mockResolvedValue(undefined as never); - vi.mocked(build).mockImplementation(async () => { - writeFileSync(buildConfigPath, '', 'utf8'); - }); - - try { - await expect( - buildServer({}, { preset: 'vercel', output: { publicDir } }), - ).rejects.toThrow( - `Nitro generated an empty Vercel build output config at "${buildConfigPath}".`, - ); - } finally { - rmSync(workspaceRoot, { recursive: true, force: true }); - } - }); -}); diff --git a/packages/vite-plugin-nitro/src/lib/build-ssr.spec.ts b/packages/vite-plugin-nitro/src/lib/build-ssr.spec.ts deleted file mode 100644 index fce106e13..000000000 --- a/packages/vite-plugin-nitro/src/lib/build-ssr.spec.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { describe, expect, it, vi } from 'vitest'; - -vi.mock('vite', async (importOriginal) => { - const actual = await importOriginal(); - return { - ...actual, - build: vi.fn(), - }; -}); - -import { build } from 'vite'; - -import { buildClientApp, buildSSRApp } from './build-ssr'; - -describe('build helpers', () => { - it('uses the client output directory for the explicit legacy rebuild', async () => { - const workspaceRoot = '/workspace'; - - await buildClientApp( - { - root: '/workspace/apps/my-app', - }, - { - workspaceRoot, - }, - ); - - expect(build).toHaveBeenCalledWith( - expect.objectContaining({ - build: expect.objectContaining({ - ssr: false, - outDir: '/workspace/dist/apps/my-app/client', - emptyOutDir: true, - }), - }), - ); - }); - - it('preserves client output when starting the SSR sub-build', async () => { - const workspaceRoot = '/workspace'; - - await buildSSRApp( - { - root: '/workspace/apps/my-app', - build: { - outDir: '../../dist/apps/my-app/client', - emptyOutDir: true, - }, - }, - { - workspaceRoot, - }, - ); - - expect(build).toHaveBeenCalledWith( - expect.objectContaining({ - build: expect.objectContaining({ - ssr: true, - outDir: '/workspace/dist/apps/my-app/ssr', - emptyOutDir: false, - }), - }), - ); - }); -}); diff --git a/packages/vite-plugin-nitro/src/lib/nitro-config-factory.ts b/packages/vite-plugin-nitro/src/lib/nitro-config-factory.ts new file mode 100644 index 000000000..52a3d4ec6 --- /dev/null +++ b/packages/vite-plugin-nitro/src/lib/nitro-config-factory.ts @@ -0,0 +1,289 @@ +import type { NitroConfig } from 'nitro/types'; +import { normalizePath } from 'vite'; +import { existsSync } from 'node:fs'; +import { pathToFileURL } from 'node:url'; +import { resolve } from 'node:path'; + +import type { Options } from './options.js'; +import { pageEndpointsPlugin } from './plugins/page-endpoints.js'; +import { getPageHandlers } from './utils/get-page-handlers.js'; +import { + ssrRenderer, + clientRenderer, + apiMiddleware, +} from './utils/renderers.js'; + +/** + * Patches Nitro's internal Rollup/Rolldown bundler config to work around + * incompatibilities in the Nitro v3 alpha series. + */ +function sanitizeNitroBundlerConfig(bundlerConfig: any) { + const output = bundlerConfig['output']; + if (!output || Array.isArray(output) || typeof output !== 'object') return; + + if ('codeSplitting' in output) { + delete output['codeSplitting']; + } + if ('manualChunks' in output) { + delete output['manualChunks']; + } + + const VALID_ROLLUP_PLACEHOLDER = /^\[(?:name|hash|format|ext)\]$/; + const chunkFileNames = output['chunkFileNames']; + if (typeof chunkFileNames === 'function') { + const originalFn = chunkFileNames; + output['chunkFileNames'] = (...args: unknown[]) => { + const result = originalFn(...args); + if (typeof result !== 'string') return result; + return result.replace(/\[[^\]]+\]/g, (match: string) => + VALID_ROLLUP_PLACEHOLDER.test(match) + ? match + : `_${match.slice(1, -1)}_`, + ); + }; + } +} + +export interface NitroConfigContext { + workspaceRoot: string; + rootDir: string; + sourceRoot: string; + apiPrefix: string; + prefix: string; + hasAPIDir: boolean; + useAPIMiddleware: boolean; +} + +function createNitroMiddlewareHandler(handler: string) { + return { + route: '/**', + handler, + middleware: true, + }; +} + +export function buildNitroConfig( + options: Options | undefined, + nitroOptions: NitroConfig | undefined, + ctx: NitroConfigContext, +): NitroConfig { + const { workspaceRoot, rootDir, sourceRoot, apiPrefix, prefix } = ctx; + const { hasAPIDir, useAPIMiddleware } = ctx; + const sourceSsrEntry = normalizePath( + options?.entryServer || + resolve(workspaceRoot, rootDir, `${sourceRoot}/main.server.ts`), + ); + + const buildPreset = + process.env['BUILD_PRESET'] ?? + (nitroOptions?.preset as string | undefined) ?? + (process.env['VERCEL'] ? 'vercel' : undefined); + + const pageHandlers = getPageHandlers({ + workspaceRoot, + sourceRoot, + rootDir, + additionalPagesDirs: options?.additionalPagesDirs, + hasAPIDir, + }); + + const rendererHandler = options?.ssr + ? '#ANALOG_SSR_RENDERER' + : '#ANALOG_CLIENT_RENDERER'; + + let nitroConfig: NitroConfig = { + rootDir: normalizePath(rootDir), + preset: buildPreset, + compatibilityDate: '2025-11-19', + logLevel: nitroOptions?.logLevel || 0, + serverDir: normalizePath(`${sourceRoot}/server`), + scanDirs: [ + normalizePath(`${rootDir}/${sourceRoot}/server`), + ...(options?.additionalAPIDirs || []).map((dir) => + normalizePath(`${workspaceRoot}${dir}`), + ), + ], + output: { + dir: normalizePath(resolve(workspaceRoot, 'dist', rootDir, 'analog')), + publicDir: normalizePath( + resolve(workspaceRoot, 'dist', rootDir, 'analog/public'), + ), + }, + buildDir: normalizePath(resolve(workspaceRoot, 'dist', rootDir, '.nitro')), + typescript: { generateTsConfig: false }, + runtimeConfig: { + apiPrefix: apiPrefix.substring(1), + prefix, + }, + // Analog's NitroModule sets the real renderer handler in setup(). + // Use an empty object so nitro/vite's `renderer ??= {}` doesn't + // try to set properties on a boolean. + renderer: {}, + imports: { autoImport: false }, + hooks: { + 'rollup:before': (_nitro: unknown, bundlerConfig: any) => { + sanitizeNitroBundlerConfig(bundlerConfig); + }, + }, + rollupConfig: { + onwarn(warning: { message: string }) { + if ( + warning.message.includes('empty chunk') && + warning.message.endsWith('.server') + ) { + return; + } + }, + plugins: [pageEndpointsPlugin()], + }, + handlers: [ + ...(hasAPIDir + ? [] + : useAPIMiddleware + ? [createNitroMiddlewareHandler('#ANALOG_API_MIDDLEWARE')] + : []), + ...pageHandlers, + { + handler: rendererHandler, + route: '/**', + lazy: true, + }, + ], + routeRules: hasAPIDir + ? undefined + : useAPIMiddleware + ? undefined + : { + [`${prefix}${apiPrefix}/**`]: { + proxy: { to: '/**' }, + }, + }, + virtual: { + '#ANALOG_SSR_RENDERER': ssrRenderer(), + '#ANALOG_CLIENT_RENDERER': clientRenderer(), + ...(hasAPIDir ? {} : { '#ANALOG_API_MIDDLEWARE': apiMiddleware }), + }, + alias: + options?.ssr || nitroOptions?.prerender?.routes?.length + ? { '#analog/ssr': sourceSsrEntry } + : {}, + }; + + if (isVercelPreset(buildPreset)) { + nitroConfig = withVercelOutputAPI(nitroConfig, workspaceRoot); + } + + if (isCloudflarePreset(buildPreset)) { + nitroConfig = withCloudflareOutput(nitroConfig); + } + + if ( + isNetlifyPreset(buildPreset) && + rootDir === '.' && + !existsSync(resolve(workspaceRoot, 'netlify.toml')) + ) { + nitroConfig = withNetlifyOutputAPI(nitroConfig, workspaceRoot); + } + + if (isFirebaseAppHosting()) { + nitroConfig = withAppHostingOutput(nitroConfig); + } + + return nitroConfig; +} + +// ── Preset helpers ──────────────────────────────────────────────────── + +export function isVercelPreset(preset: string | undefined): boolean { + return !!preset?.toLowerCase().includes('vercel'); +} + +const isCloudflarePreset = (buildPreset: string | undefined) => + process.env['CF_PAGES'] || + (buildPreset && + (buildPreset.toLowerCase().includes('cloudflare-pages') || + buildPreset.toLowerCase().includes('cloudflare_pages'))); + +export const isNetlifyPreset = ( + buildPreset: string | undefined, +): string | boolean | undefined => + process.env['NETLIFY'] || + (buildPreset && buildPreset.toLowerCase().includes('netlify')); + +const isFirebaseAppHosting = () => !!process.env['NG_BUILD_LOGS_JSON']; + +const withVercelOutputAPI = ( + nitroConfig: NitroConfig | undefined, + workspaceRoot: string, +) => ({ + ...nitroConfig, + preset: nitroConfig?.preset ?? 'vercel', + vercel: { + ...(nitroConfig as any)?.vercel, + entryFormat: (nitroConfig as any)?.vercel?.entryFormat ?? 'node', + functions: { + runtime: (nitroConfig as any)?.vercel?.functions?.runtime ?? 'nodejs24.x', + ...(nitroConfig as any)?.vercel?.functions, + }, + }, + output: { + ...nitroConfig?.output, + dir: normalizePath(resolve(workspaceRoot, '.vercel', 'output')), + publicDir: normalizePath( + resolve(workspaceRoot, '.vercel', 'output/static'), + ), + }, +}); + +const withCloudflareOutput = (nitroConfig: NitroConfig | undefined) => ({ + ...nitroConfig, + output: { + ...nitroConfig?.output, + serverDir: '{{ output.publicDir }}/_worker.js', + }, +}); + +const withNetlifyOutputAPI = ( + nitroConfig: NitroConfig | undefined, + workspaceRoot: string, +) => ({ + ...nitroConfig, + output: { + ...nitroConfig?.output, + dir: normalizePath(resolve(workspaceRoot, 'netlify/functions')), + }, +}); + +const withAppHostingOutput = (nitroConfig: NitroConfig) => { + let hasOutput = false; + + return { + ...nitroConfig, + serveStatic: true, + rollupConfig: { + ...nitroConfig.rollupConfig, + output: { + ...nitroConfig.rollupConfig?.output, + entryFileNames: 'server.mjs', + }, + }, + hooks: { + ...nitroConfig.hooks, + compiled: () => { + if (!hasOutput) { + const buildOutput = { + errors: [], + warnings: [], + outputPaths: { + root: pathToFileURL(`${nitroConfig.output?.dir}`), + browser: pathToFileURL(`${nitroConfig.output?.publicDir}`), + server: pathToFileURL(`${nitroConfig.output?.dir}/server`), + }, + }; + console.log(JSON.stringify(buildOutput, null, 2)); + hasOutput = true; + } + }, + }, + }; +}; diff --git a/packages/vite-plugin-nitro/src/lib/plugins/dev-server-plugin.ts b/packages/vite-plugin-nitro/src/lib/plugins/dev-server-plugin.ts deleted file mode 100644 index d916d5237..000000000 --- a/packages/vite-plugin-nitro/src/lib/plugins/dev-server-plugin.ts +++ /dev/null @@ -1,160 +0,0 @@ -// SSR dev server, middleware and error page source modified from -// https://github.com/solidjs/solid-start/blob/main/packages/start/dev/server.js - -import { - Connect, - Plugin, - UserConfig, - ViteDevServer, - normalizePath, -} from 'vite'; -import { resolve } from 'node:path'; -import { readFileSync } from 'node:fs'; -import { createRouter as createRadixRouter, toRouteMatcher } from 'radix3'; -import { defu } from 'defu'; -import type { NitroRouteRules } from 'nitro/types'; - -import { registerDevServerMiddleware } from '../utils/register-dev-middleware.js'; -import { writeWebResponseToNode } from '../utils/node-web-bridge.js'; -import { Options } from '../options.js'; - -type ServerOptions = Options & { routeRules?: Record | undefined }; - -export function devServerPlugin(options: ServerOptions): Plugin { - const workspaceRoot = options?.workspaceRoot || process.cwd(); - const sourceRoot = options?.sourceRoot ?? 'src'; - const index = options.index || 'index.html'; - let config: UserConfig; - let root: string; - let isTest = false; - - return { - name: 'analogjs-dev-ssr-plugin', - config(userConfig, { mode }) { - config = userConfig; - root = normalizePath(resolve(workspaceRoot, config.root || '.') || '.'); - isTest = isTest ? isTest : mode === 'test'; - return { - appType: 'custom', - resolve: { - alias: { - '~analog/entry-server': - options.entryServer || `${root}/${sourceRoot}/main.server.ts`, - }, - }, - }; - }, - configureServer(viteServer) { - if (isTest) { - return; - } - - return async () => { - remove_html_middlewares(viteServer.middlewares); - registerDevServerMiddleware(root, sourceRoot, viteServer); - - viteServer.middlewares.use(async (req, res) => { - let template = readFileSync( - resolve(viteServer.config.root, index), - 'utf-8', - ); - - template = await viteServer.transformIndexHtml( - req.originalUrl as string, - template, - ); - - const _routeRulesMatcher = toRouteMatcher( - createRadixRouter({ routes: options.routeRules }), - ); - const _getRouteRules = (path: string) => - defu( - {}, - ..._routeRulesMatcher.matchAll(path).reverse(), - ) as NitroRouteRules; - - try { - let result: string | Response; - // Check for route rules explicitly disabling SSR - if (_getRouteRules(req.originalUrl as string).ssr === false) { - result = template; - } else { - const entryServer = ( - await viteServer.ssrLoadModule('~analog/entry-server') - )['default']; - result = await entryServer(req.originalUrl, template, { - req, - res, - }); - } - - if (result instanceof Response) { - await writeWebResponseToNode(res, result); - return; - } - res.setHeader('Content-Type', 'text/html'); - res.end(result); - } catch (e) { - viteServer.ssrFixStacktrace(e as Error); - res.statusCode = 500; - res.end(` - - - - - Error - - - - - - `); - } - }); - }; - }, - }; -} - -/** - * Removes Vite internal middleware - * - * @param server - */ -function remove_html_middlewares(server: ViteDevServer['middlewares']) { - const html_middlewares = [ - 'viteIndexHtmlMiddleware', - 'vite404Middleware', - 'viteSpaFallbackMiddleware', - 'viteHtmlFallbackMiddleware', - ]; - for (let i = server.stack.length - 1; i > 0; i--) { - const handler = server.stack[i]?.handle; - const handlerName = - typeof handler === 'function' ? handler.name : undefined; - if (handlerName && html_middlewares.includes(handlerName)) { - server.stack.splice(i, 1); - } - } -} - -/** - * Formats error for SSR message in error overlay - * @param req - * @param error - * @returns - */ -function prepareError(req: Connect.IncomingMessage, error: unknown) { - const e = error as Error; - return { - message: `An error occured while server rendering ${req.url}:\n\n\t${ - typeof e === 'string' ? e : e.message - } `, - stack: typeof e === 'string' ? '' : e.stack, - }; -} diff --git a/packages/vite-plugin-nitro/src/lib/plugins/page-endpoints.ts b/packages/vite-plugin-nitro/src/lib/plugins/page-endpoints.ts index bd1f18bf3..f5107e880 100644 --- a/packages/vite-plugin-nitro/src/lib/plugins/page-endpoints.ts +++ b/packages/vite-plugin-nitro/src/lib/plugins/page-endpoints.ts @@ -9,7 +9,11 @@ export function pageEndpointsPlugin() { _code: string, id: string, ): Promise<{ code: string; map: null } | undefined> { - if (normalizePath(id).includes('/pages/') && id.endsWith('.server.ts')) { + if ( + normalizePath(id).includes('/pages/') && + id.endsWith('.server.ts') && + !_code.includes('defineHandler') + ) { const result = parseSync(id, _code, { sourceType: 'module', lang: 'ts', diff --git a/packages/vite-plugin-nitro/src/lib/utils/load-esm.ts b/packages/vite-plugin-nitro/src/lib/utils/load-esm.ts deleted file mode 100644 index f9a76f683..000000000 --- a/packages/vite-plugin-nitro/src/lib/utils/load-esm.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.dev/license - */ - -import { URL } from 'node:url'; - -/** - * This uses a dynamic import to load a module which may be ESM. - * CommonJS code can load ESM code via a dynamic import. Unfortunately, TypeScript - * will currently, unconditionally downlevel dynamic import into a require call. - * require calls cannot load ESM code and will result in a runtime error. To workaround - * this, a Function constructor is used to prevent TypeScript from changing the dynamic import. - * Once TypeScript provides support for keeping the dynamic import this workaround can - * be dropped. - * - * @param modulePath The path of the module to load. - * @returns A Promise that resolves to the dynamically imported module. - */ -export function loadEsmModule(modulePath: string | URL): Promise { - return new Function('modulePath', `return import(modulePath);`)( - modulePath, - ) as Promise; -} diff --git a/packages/vite-plugin-nitro/src/lib/utils/node-web-bridge.ts b/packages/vite-plugin-nitro/src/lib/utils/node-web-bridge.ts deleted file mode 100644 index fb97d424a..000000000 --- a/packages/vite-plugin-nitro/src/lib/utils/node-web-bridge.ts +++ /dev/null @@ -1,110 +0,0 @@ -import type { - IncomingHttpHeaders, - IncomingMessage, - ServerResponse, -} from 'node:http'; -import { Readable } from 'node:stream'; -import { pipeline } from 'node:stream/promises'; - -function toWebHeaders(headers: IncomingHttpHeaders) { - return Object.entries(headers).reduce((acc, [key, value]) => { - if (value && !key.startsWith(':')) { - acc.set(key, Array.isArray(value) ? value.join(', ') : value); - } - - return acc; - }, new Headers()); -} - -export function toWebRequest(req: IncomingMessage): Request { - const protocol = 'http'; - const host = req.headers.host || 'localhost'; - const url = new URL(req.url || '/', `${protocol}://${host}`); - const body = - req.method && !['GET', 'HEAD'].includes(req.method) - ? (Readable.toWeb(req) as ReadableStream) - : undefined; - - return new Request(url, { - method: req.method, - headers: toWebHeaders(req.headers), - body, - // @ts-expect-error duplex is required for streaming request bodies in Node.js - duplex: body ? 'half' : undefined, - }); -} - -function isClientDisconnectError(error: unknown, res: ServerResponse): boolean { - if (!(error instanceof Error)) { - return false; - } - - const hasDisconnectCode = - 'code' in error && - typeof error.code === 'string' && - [ - 'ERR_STREAM_PREMATURE_CLOSE', - 'ERR_INVALID_STATE', - 'ECONNRESET', - 'EPIPE', - ].includes(error.code); - - const hasDisconnectMessage = /closed or destroyed stream/i.test( - error.message, - ); - - return ( - (res.destroyed || res.writableEnded) && - (hasDisconnectCode || hasDisconnectMessage) - ); -} - -export async function writeWebResponseToNode( - res: ServerResponse, - response: Response, -): Promise { - res.statusCode = response.status; - res.statusMessage = response.statusText; - - const setCookies = - 'getSetCookie' in response.headers && - typeof response.headers.getSetCookie === 'function' - ? response.headers.getSetCookie() - : []; - - if (setCookies.length > 0) { - res.setHeader('set-cookie', setCookies); - } - - response.headers.forEach((value, key) => { - if (key !== 'set-cookie') { - res.setHeader(key, value); - } - }); - - if (!response.body) { - res.end(); - return; - } - - // The Web ReadableStream and Node.js stream/web ReadableStream types - // are structurally identical at runtime but TypeScript treats them as - // distinct nominal types. The double-cast bridges this gap safely. - try { - await pipeline( - Readable.fromWeb( - response.body as unknown as import('node:stream/web').ReadableStream, - ), - res, - ); - } catch (error) { - // Long-lived dev responses such as SSE can be interrupted by a browser - // refresh or HMR-triggered reconnect. Those closed-stream cases are - // expected and should not surface as noisy server errors. - if (isClientDisconnectError(error, res)) { - return; - } - - throw error; - } -} diff --git a/packages/vite-plugin-nitro/src/lib/utils/register-dev-middleware.ts b/packages/vite-plugin-nitro/src/lib/utils/register-dev-middleware.ts deleted file mode 100644 index 4c3d5648a..000000000 --- a/packages/vite-plugin-nitro/src/lib/utils/register-dev-middleware.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { ViteDevServer } from 'vite'; -import { EventHandler, H3 } from 'nitro/h3'; -import { globSync } from 'tinyglobby'; - -import { toWebRequest, writeWebResponseToNode } from './node-web-bridge.js'; - -const PASSTHROUGH_HEADER = 'x-analog-passthrough'; - -/** - * Registers development server middleware by discovering and loading middleware files. - * - * Each discovered h3 middleware module is loaded through Vite's SSR loader, - * wrapped in a temporary H3 app, then bridged back into Vite's Connect stack. - * If the middleware does not write a response, control falls through to the - * next Vite middleware. - * - * @param root The project root directory path - * @param sourceRoot The source directory path (e.g., 'src') - * @param viteServer The Vite development server instance - */ -export async function registerDevServerMiddleware( - root: string, - sourceRoot: string, - viteServer: ViteDevServer, -): Promise { - const middlewareFiles = globSync( - [`${root}/${sourceRoot}/server/middleware/**/*.ts`], - { - dot: true, - absolute: true, - }, - ); - - middlewareFiles.forEach((file) => { - // Create the H3 app once per middleware file (not per request). - // The dynamic handler inside still loads the module fresh each request - // via ssrLoadModule, preserving HMR. - const app = new H3(); - app.use(async (event) => { - const handler: EventHandler = await viteServer - .ssrLoadModule(file) - .then((m: unknown) => (m as { default: EventHandler }).default); - return handler(event); - }); - // Sentinel catch-all: when the middleware returns undefined (does not - // handle the request), h3 does not emit its default 404 — instead we - // detect the passthrough header and let the Connect stack continue. - app.use( - () => - new Response(null, { - status: 204, - headers: { [PASSTHROUGH_HEADER]: '1' }, - }), - ); - - viteServer.middlewares.use(async (req, res, next) => { - const response = await app.fetch(toWebRequest(req)); - - if (response.headers.get(PASSTHROUGH_HEADER) === '1') { - next(); - return; - } - - await writeWebResponseToNode(res, response); - }); - }); -} diff --git a/packages/vite-plugin-nitro/src/lib/utils/renderers.spec.ts b/packages/vite-plugin-nitro/src/lib/utils/renderers.spec.ts index b21878a5f..a8df237b9 100644 --- a/packages/vite-plugin-nitro/src/lib/utils/renderers.spec.ts +++ b/packages/vite-plugin-nitro/src/lib/utils/renderers.spec.ts @@ -9,7 +9,7 @@ describe('renderers virtual modules', () => { expect(moduleSource).toContain("import template from '#analog/index';"); expect(moduleSource).not.toContain('readFileSync('); expect(moduleSource).toContain( - "event.res.headers.set('content-type', 'text/html; charset=utf-8');", + "setResponseHeader(event, 'content-type', 'text/html; charset=utf-8');", ); expect(moduleSource).toContain( 'const requestPath = normalizeHtmlRequestUrl(event.path);', @@ -18,7 +18,7 @@ describe('renderers virtual modules', () => { expect(moduleSource).toContain( 'const html = await renderer(requestPath, template, { req, res, fetch: serverFetch });', ); - expect(moduleSource).toContain("import renderer from '#analog/ssr';"); + expect(moduleSource).toContain('await import("#analog/ssr")'); }); it('emits a client renderer that serves HTML responses', () => { @@ -27,13 +27,13 @@ describe('renderers virtual modules', () => { expect(moduleSource).toContain("import template from '#analog/index';"); expect(moduleSource).not.toContain('readFileSync('); expect(moduleSource).toContain( - "event.res.headers.set('content-type', 'text/html; charset=utf-8');", + "setResponseHeader(event, 'content-type', 'text/html; charset=utf-8');", ); }); it('uses event-bound forwarding for API middleware', () => { expect(apiMiddleware).toContain( - "import { defineHandler, fetchWithEvent, proxyRequest } from 'nitro/h3';", + "import { defineHandler, fetchWithEvent, proxyRequest, getRequestHeaders } from 'nitro/h3';", ); expect(apiMiddleware).toContain('return fetchWithEvent(event, reqUrl'); expect(apiMiddleware).toContain('return proxyRequest(event, reqUrl);'); diff --git a/packages/vite-plugin-nitro/src/lib/utils/renderers.ts b/packages/vite-plugin-nitro/src/lib/utils/renderers.ts index 19fd29c10..26f6dacf6 100644 --- a/packages/vite-plugin-nitro/src/lib/utils/renderers.ts +++ b/packages/vite-plugin-nitro/src/lib/utils/renderers.ts @@ -30,26 +30,41 @@ export const SERVER_FETCH_FACTORY_SNIPPET = ` * - event.path (replaces event.node.req.url) * - getResponseHeader compat shim (still available in h3 v2) */ -export function ssrRenderer() { +export function ssrRenderer(rendererImport = '#analog/ssr') { return ` import { createFetch } from 'ofetch'; -import { defineHandler, fetchWithEvent } from 'nitro/h3'; -// @ts-ignore -import renderer from '#analog/ssr'; +import { defineHandler, fetchWithEvent, setResponseHeader, getResponseHeader } from 'nitro/h3'; import template from '#analog/index'; +// Capture the native Promise before zone.js (loaded by the Angular SSR entry) +// patches globalThis.Promise. V8 async functions return native Promises that +// fail srvx's instanceof check against the patched ZoneAwarePromise. +const _NativePromise = globalThis.Promise; +let _renderer; + +async function loadRenderer() { + if (!_renderer) { + _renderer = (await import(${JSON.stringify(rendererImport)})).default; + // Restore native Promise after zone.js patches it + globalThis.Promise = _NativePromise; + } + return _renderer; +} + const normalizeHtmlRequestUrl = (url) => url.replace(/\\/index\\.html(?=$|[?#])/, '/'); export default defineHandler(async (event) => { - event.res.headers.set('content-type', 'text/html; charset=utf-8'); - const noSSR = event.res.headers.get('x-analog-no-ssr'); + setResponseHeader(event, 'content-type', 'text/html; charset=utf-8'); + const noSSR = getResponseHeader(event, 'x-analog-no-ssr'); const requestPath = normalizeHtmlRequestUrl(event.path); if (noSSR === 'true') { return template; } + const renderer = await loadRenderer(); + // event.path is the canonical h3 v2 way to access the request URL. // event.node?.req and event.node?.res are needed by the Angular SSR renderer // which operates on raw Node.js request/response objects. @@ -85,11 +100,11 @@ ${SERVER_FETCH_FACTORY_SNIPPET} */ export function clientRenderer() { return ` -import { defineHandler } from 'nitro/h3'; +import { defineHandler, setResponseHeader } from 'nitro/h3'; import template from '#analog/index'; export default defineHandler(async (event) => { - event.res.headers.set('content-type', 'text/html; charset=utf-8'); + setResponseHeader(event, 'content-type', 'text/html; charset=utf-8'); return template; }); `; @@ -115,7 +130,7 @@ export default defineHandler(async (event) => { * SSR code makes relative API requests. */ export const apiMiddleware = ` -import { defineHandler, fetchWithEvent, proxyRequest } from 'nitro/h3'; +import { defineHandler, fetchWithEvent, proxyRequest, getRequestHeaders } from 'nitro/h3'; import { useRuntimeConfig } from 'nitro/runtime-config'; export default defineHandler(async (event) => { @@ -132,7 +147,7 @@ export default defineHandler(async (event) => { !event.path?.endsWith('.xml') ) { return fetchWithEvent(event, reqUrl, { - headers: Object.fromEntries(event.req.headers.entries()), + headers: getRequestHeaders(event), }); } diff --git a/packages/vite-plugin-nitro/src/lib/vite-nitro-plugin.spec.data.ts b/packages/vite-plugin-nitro/src/lib/vite-nitro-plugin.spec.data.ts deleted file mode 100644 index ca4a2639c..000000000 --- a/packages/vite-plugin-nitro/src/lib/vite-nitro-plugin.spec.data.ts +++ /dev/null @@ -1,73 +0,0 @@ -import type { NitroConfig } from 'nitro/types'; -import { ConfigEnv, UserConfig, Plugin } from 'vite'; -import { vi } from 'vitest'; -import { resolve } from 'node:path'; - -export const mockViteDevServer = { - middlewares: { - // eslint-disable-next-line @typescript-eslint/no-empty-function - use: () => {}, - }, -}; - -export const mockNitroConfig: NitroConfig = { - buildDir: resolve('./dist/.nitro'), - preset: undefined, - compatibilityDate: '2025-11-19', - handlers: [], - logLevel: 0, - output: { - dir: resolve('dist/analog'), - publicDir: resolve('dist/analog/public'), - }, - rootDir: '.', - scanDirs: ['src/server'], - serverDir: 'src/server', - prerender: { - crawlLinks: undefined, - }, - typescript: { - generateTsConfig: false, - }, - imports: { - autoImport: false, - }, - rollupConfig: { - plugins: [ - { - name: 'analogjs-vite-plugin-nitro-rollup-page-endpoint', - transform() { - return undefined; - }, - }, - ], - }, - routeRules: undefined, - runtimeConfig: { - apiPrefix: 'api', - }, - virtual: { - '#ANALOG_API_MIDDLEWARE': expect.anything(), - }, -}; - -export async function mockBuildFunctions() { - const buildServerImport = await import('./build-server'); - const buildServerImportSpy = vi.fn(); - buildServerImport.buildServer = buildServerImportSpy; - - const buildSitemapImport = await import('./build-sitemap'); - const buildSitemapImportSpy = vi.fn(); - buildSitemapImport.buildSitemap = buildSitemapImportSpy; - - return { buildServerImportSpy, buildSitemapImportSpy }; -} - -export async function runConfigAndCloseBundle(plugin: Plugin[]): Promise { - await ( - plugin[1].config as ( - config: UserConfig, - env: ConfigEnv, - ) => Promise - )({}, { command: 'build' } as ConfigEnv); -} diff --git a/packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.spec.ts b/packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.spec.ts index 213f1f6df..96f0748e7 100644 --- a/packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.spec.ts +++ b/packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.spec.ts @@ -1,49 +1,197 @@ import { describe, expect, it, vi } from 'vitest'; -import * as vite from 'vite'; -import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from 'node:fs'; -import { join, resolve } from 'node:path'; -import { tmpdir } from 'node:os'; - -vi.mock('nitro/builder', () => ({ - build: vi.fn(), - createDevServer: vi.fn(), - createNitro: vi.fn(), +import { nitro as nitroVitePlugin } from 'nitro/vite'; + +import { createAnalogNitroPlugins } from './analog-vite-plugin'; +import { + analogNitroModule, + createAnalogBuildState, +} from './analog-nitro-module'; +import { buildNitroConfig } from './nitro-config-factory'; + +vi.mock('nitro/vite', () => ({ + nitro: vi.fn(() => [ + { name: 'nitro:init' }, + { name: 'nitro:env' }, + { name: 'nitro:main' }, + ]), })); -vi.mock('./build-ssr', async (importOriginal) => { - const actual = await importOriginal(); - return { - ...actual, - buildClientApp: vi.fn(), - buildSSRApp: vi.fn(), - }; +describe('createAnalogNitroPlugins', () => { + it('should return an array of plugins', () => { + const plugins = createAnalogNitroPlugins(); + expect(Array.isArray(plugins)).toBe(true); + expect(plugins.length).toBeGreaterThan(0); + }); + + it('should include the analog nitro plugin with NitroModule', () => { + const plugins = createAnalogNitroPlugins(); + const modulePlugin = plugins.find( + (p) => p.name === '@analogjs/vite-plugin-nitro', + ); + expect(modulePlugin).toBeDefined(); + expect((modulePlugin as any).nitro).toBeDefined(); + expect((modulePlugin as any).nitro.name).toBe('analog'); + }); + + it('should point the SSR renderer at the source server entry during serve', () => { + const originalNodeEnv = process.env['NODE_ENV']; + const originalVitest = process.env['VITEST']; + delete process.env['NODE_ENV']; + delete process.env['VITEST']; + + createAnalogNitroPlugins({ ssr: true, workspaceRoot: '/app' as any }); + const calls = vi.mocked(nitroVitePlugin).mock.calls; + const nitroConfig = calls[calls.length - 1]?.[0] as any; + + expect(nitroConfig.virtual['#ANALOG_SSR_RENDERER']).toContain( + 'await import("/app/src/main.server.ts")', + ); + + process.env['NODE_ENV'] = originalNodeEnv; + process.env['VITEST'] = originalVitest; + }); + + it('should include the API prefix plugin', () => { + const plugins = createAnalogNitroPlugins(); + const prefixPlugin = plugins.find( + (p) => p.name === '@analogjs/vite-plugin-nitro-api-prefix', + ); + expect(prefixPlugin).toBeDefined(); + }); + + it('should include nitro/vite plugins when not in test mode', () => { + const originalEnv = process.env['NODE_ENV']; + delete process.env['NODE_ENV']; + delete process.env['VITEST']; + + const plugins = createAnalogNitroPlugins(); + const nitroPlugins = plugins.filter((p) => p.name?.startsWith('nitro:')); + expect(nitroPlugins.length).toBeGreaterThan(0); + + process.env['NODE_ENV'] = originalEnv; + }); }); -import { build, createDevServer, createNitro } from 'nitro/builder'; -import { buildClientApp } from './build-ssr'; -import { - mockBuildFunctions, - mockNitroConfig, - mockViteDevServer, - runConfigAndCloseBundle, -} from './vite-nitro-plugin.spec.data'; -import { nitro } from './vite-plugin-nitro'; - -function writeBuiltClientIndexHtml( - workspaceRoot: string, - html = '', - clientBuildDir = resolve(workspaceRoot, 'dist', 'client'), -) { - mkdirSync(clientBuildDir, { recursive: true }); - writeFileSync(resolve(clientBuildDir, 'index.html'), html); -} +describe('analogNitroModule', () => { + it('should create a NitroModule with name "analog"', () => { + const state = createAnalogBuildState(); + const module = analogNitroModule(undefined, state); + expect(module.name).toBe('analog'); + expect(typeof module.setup).toBe('function'); + }); + + it('should register SSR renderer when ssr is true', async () => { + const state = createAnalogBuildState(); + const module = analogNitroModule({ ssr: true }, state); + const nitro = createMockNitro(); + + await module.setup(nitro); + + expect(nitro.options.virtual['#ANALOG_SSR_RENDERER']).toBeDefined(); + expect(nitro.options.virtual['#ANALOG_CLIENT_RENDERER']).toBeDefined(); + }); + + it('should register renderer handler as catch-all', async () => { + const state = createAnalogBuildState(); + const module = analogNitroModule({ ssr: true }, state); + const nitro = createMockNitro(); + + await module.setup(nitro); + + const catchAll = nitro.options.handlers.find( + (h: any) => h.route === '/**' && !h.middleware, + ); + expect(catchAll).toBeDefined(); + expect(catchAll.handler).toBe('#ANALOG_SSR_RENDERER'); + }); -describe('nitro', () => { - vi.mock('./build-server'); - vi.mock('./build-sitemap'); + it('should use client renderer when ssr is false', async () => { + const state = createAnalogBuildState(); + const module = analogNitroModule({ ssr: false }, state); + const nitro = createMockNitro(); + + await module.setup(nitro); + + const catchAll = nitro.options.handlers.find( + (h: any) => h.route === '/**' && !h.middleware, + ); + expect(catchAll.handler).toBe('#ANALOG_CLIENT_RENDERER'); + }); + + it('should set module side effects for zone.js when ssr is true', async () => { + const state = createAnalogBuildState(); + const module = analogNitroModule({ ssr: true }, state); + const nitro = createMockNitro(); + + await module.setup(nitro); + + expect(nitro.options.moduleSideEffects).toContain('zone.js/node'); + }); + + it('should register rollup:before hook for externals', async () => { + const state = createAnalogBuildState(); + const module = analogNitroModule({ ssr: true }, state); + const nitro = createMockNitro(); + + await module.setup(nitro); + + expect(nitro.hooks.hook).toHaveBeenCalledWith( + 'rollup:before', + expect.any(Function), + ); + }); +}); + +describe('buildNitroConfig', () => { + it('should build a NitroConfig with defaults', () => { + const config = buildNitroConfig(undefined, undefined, { + workspaceRoot: '/app', + rootDir: '.', + sourceRoot: 'src', + apiPrefix: '/api', + prefix: '', + hasAPIDir: false, + useAPIMiddleware: true, + }); + + expect(config.rootDir).toBe('.'); + expect(config.renderer).toEqual({}); + expect(config.imports?.autoImport).toBe(false); + expect(config.typescript?.generateTsConfig).toBe(false); + expect(config.virtual?.['#ANALOG_SSR_RENDERER']).toBeDefined(); + }); + + it('should alias #analog/ssr to the source server entry in SSR mode', () => { + const config = buildNitroConfig({ ssr: true }, undefined, { + workspaceRoot: '/app', + rootDir: 'apps/demo', + sourceRoot: 'src', + apiPrefix: '/api', + prefix: '', + hasAPIDir: false, + useAPIMiddleware: true, + }); + + expect(config.alias?.['#analog/ssr']).toBe( + '/app/apps/demo/src/main.server.ts', + ); + }); + + it('should apply Vercel preset output paths', () => { + vi.stubEnv('BUILD_PRESET', 'vercel'); + + const config = buildNitroConfig(undefined, undefined, { + workspaceRoot: '/app', + rootDir: '.', + sourceRoot: 'src', + apiPrefix: '/api', + prefix: '', + hasAPIDir: false, + useAPIMiddleware: true, + }); + + expect(config.output?.dir).toContain('.vercel/output'); - afterEach(() => { - vi.restoreAllMocks(); vi.unstubAllEnvs(); }); @@ -849,3 +997,27 @@ describe('nitro', () => { }); }); }); + +function createMockNitro() { + return { + options: { + rootDir: '.', + virtual: {} as Record, + handlers: [] as any[], + scanDirs: [] as string[], + rollupConfig: { plugins: [] as any[] } as any, + renderer: undefined as any, + routeRules: {} as any, + prerender: {} as any, + output: { publicDir: '/tmp/test/public', dir: '/tmp/test' } as any, + moduleSideEffects: undefined as any, + noExternals: undefined as any, + alias: {} as any, + preset: undefined as any, + vercel: undefined as any, + }, + hooks: { + hook: vi.fn(), + }, + }; +} diff --git a/packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.ts b/packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.ts deleted file mode 100644 index 7b347adbc..000000000 --- a/packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.ts +++ /dev/null @@ -1,1552 +0,0 @@ -import type { NitroConfig, NitroEventHandler, RollupConfig } from 'nitro/types'; -import { build, createDevServer, createNitro } from 'nitro/builder'; -import * as vite from 'vite'; -import type { Plugin, UserConfig, ViteDevServer } from 'vite'; -import { mergeConfig, normalizePath } from 'vite'; -import { relative, resolve } from 'node:path'; -import { pathToFileURL } from 'node:url'; -import { existsSync, readFileSync, readdirSync } from 'node:fs'; -import type { IncomingMessage, ServerResponse } from 'node:http'; - -import { buildServer, isVercelPreset } from './build-server.js'; -import { buildClientApp, buildSSRApp } from './build-ssr.js'; -import { - Options, - PrerenderContentDir, - PrerenderContentFile, - PrerenderRouteConfig, - PrerenderSitemapConfig, -} from './options.js'; -import { pageEndpointsPlugin } from './plugins/page-endpoints.js'; -import { getPageHandlers } from './utils/get-page-handlers.js'; -import { buildSitemap } from './build-sitemap.js'; -import { devServerPlugin } from './plugins/dev-server-plugin.js'; -import { - toWebRequest, - writeWebResponseToNode, -} from './utils/node-web-bridge.js'; -import { getMatchingContentFilesWithFrontMatter } from './utils/get-content-files.js'; -import { - ssrRenderer, - clientRenderer, - apiMiddleware, -} from './utils/renderers.js'; -import { getBundleOptionsKey, isRolldown } from './utils/rolldown.js'; -import { debugNitro, debugSsr } from './utils/debug.js'; - -function createNitroMiddlewareHandler(handler: string): NitroEventHandler { - return { - route: '/**', - handler, - middleware: true, - }; -} - -/** - * Creates a `rollup:before` hook that marks specified packages as external - * in Nitro's bundler config (applied to both the server build and the - * prerender build). - * - * ## Subpath matching (Rolldown compatibility) - * - * When `bundlerConfig.external` is an **array**, Rollup automatically - * prefix-matches entries — `'rxjs'` in the array will also externalise - * `'rxjs/operators'`, `'rxjs/internal/Observable'`, etc. - * - * Rolldown (the default bundler in Nitro v3) does **not** do this. It - * treats array entries as exact strings. To keep behaviour consistent - * across both bundlers, the **function** branch already needed explicit - * subpath matching. We now use the same `isExternal` helper for all - * branches so that `'rxjs'` reliably matches `'rxjs/operators'` - * regardless of whether the existing `external` value is a function, - * array, or absent. - * - * Without this, the Nitro prerender build fails on Windows CI with: - * - * [RESOLVE_ERROR] Could not resolve 'rxjs/operators' - */ -function createRollupBeforeHook(externalEntries: string[]) { - const isExternal = (source: string) => - externalEntries.some( - (entry) => source === entry || source.startsWith(entry + '/'), - ); - - return (_nitro: unknown, bundlerConfig: RollupConfig) => { - sanitizeNitroBundlerConfig(_nitro, bundlerConfig); - - if (externalEntries.length === 0) { - return; - } - - const existing = bundlerConfig.external; - if (!existing) { - bundlerConfig.external = externalEntries; - } else if (typeof existing === 'function') { - bundlerConfig.external = ( - source: string, - importer: string | undefined, - isResolved: boolean, - ) => existing(source, importer, isResolved) || isExternal(source); - } else if (Array.isArray(existing)) { - bundlerConfig.external = [...existing, ...externalEntries]; - } else { - bundlerConfig.external = [existing as string, ...externalEntries]; - } - }; -} - -function appendNoExternals( - noExternals: NitroConfig['noExternals'], - ...entries: string[] -): NitroConfig['noExternals'] { - if (!noExternals) { - return entries; - } - - return Array.isArray(noExternals) - ? [...noExternals, ...entries] - : noExternals; -} - -/** - * Patches Nitro's internal Rollup/Rolldown bundler config to work around - * incompatibilities in the Nitro v3 alpha series. - * - * Called from the `rollup:before` hook, this function runs against the *final* - * bundler config that Nitro assembles for its server/prerender builds — it - * does NOT touch the normal Vite client or SSR environment configs. - * - * Each workaround is narrowly scoped and safe to remove once the corresponding - * upstream Nitro issue is resolved. - */ -function sanitizeNitroBundlerConfig( - _nitro: unknown, - bundlerConfig: RollupConfig, -) { - const output = bundlerConfig['output']; - if (!output || Array.isArray(output) || typeof output !== 'object') { - return; - } - - // ── 1. Remove invalid `output.codeSplitting` ──────────────────────── - // - // Nitro 3.0.1-alpha.2 adds `output.codeSplitting` to its internal bundler - // config, but Rolldown rejects it as an unknown key: - // - // Warning: Invalid output options (1 issue found) - // - For the "codeSplitting". Invalid key: Expected never but received "codeSplitting". - // - // Analog never sets this option. Removing it restores default bundler - // behavior without changing any Analog semantics. - if ('codeSplitting' in output) { - delete (output as Record)['codeSplitting']; - } - - // ── 2. Remove invalid `output.manualChunks` ───────────────────────── - // - // Nitro's default config enables manual chunking for node_modules. Under - // Nitro v3 alpha + Rollup 4.59 this crashes during the prerender rebundle: - // - // Cannot read properties of undefined (reading 'included') - // - // A single server bundle is acceptable for Analog's use case, so we strip - // `manualChunks` until the upstream bug is fixed. - if ('manualChunks' in output) { - delete (output as Record)['manualChunks']; - } - - // ── 3. Escape route params in `output.chunkFileNames` ─────────────── - // - // Nitro's `getChunkName()` derives chunk filenames from route patterns, - // using its internal `routeToFsPath()` helper to convert route params - // (`:productId` → `[productId]`) and catch-alls (`**` → `[...]`). - // - // Rollup/Rolldown interprets *any* `[token]` in the string returned by a - // `chunkFileNames` function as a placeholder. Only a handful are valid — - // `[name]`, `[hash]`, `[format]`, `[ext]` — so route-derived tokens like - // `[productId]` or `[...]` trigger a build error: - // - // "[productId]" is not a valid placeholder in the "output.chunkFileNames" pattern. - // - // We wrap the original function to replace non-standard `[token]` patterns - // with `_token_`, preserving the intended filename while avoiding the - // placeholder validation error. - // - // Example: `_routes/products/[productId].mjs` → `_routes/products/_productId_.mjs` - const VALID_ROLLUP_PLACEHOLDER = /^\[(?:name|hash|format|ext)\]$/; - const chunkFileNames = (output as Record)['chunkFileNames']; - if (typeof chunkFileNames === 'function') { - const originalFn = chunkFileNames as (...args: unknown[]) => unknown; - (output as Record)['chunkFileNames'] = ( - ...args: unknown[] - ) => { - const result = originalFn(...args); - if (typeof result !== 'string') return result; - return result.replace(/\[[^\]]+\]/g, (match: string) => - VALID_ROLLUP_PLACEHOLDER.test(match) - ? match - : `_${match.slice(1, -1)}_`, - ); - }; - } -} - -function resolveClientOutputPath( - cachedPath: string, - workspaceRoot: string, - rootDir: string, - configuredOutDir: string | undefined, -) { - if (cachedPath) { - debugNitro('resolveClientOutputPath using cached path', { - cachedPath, - workspaceRoot, - rootDir, - configuredOutDir, - }); - return cachedPath; - } - - if (configuredOutDir) { - const resolvedPath = normalizePath( - resolve(workspaceRoot, rootDir, configuredOutDir), - ); - debugNitro('resolveClientOutputPath using configured build.outDir', { - workspaceRoot, - rootDir, - configuredOutDir, - resolvedPath, - }); - return resolvedPath; - } - - // When no explicit build.outDir is set, the environment build config defaults - // to `/dist//client` for the client build. The non-SSR - // (client) and SSR paths must agree on this so that registerIndexHtmlVirtual() - // and publicAssets read from the directory the client build actually wrote to. - const resolvedPath = normalizePath( - resolve(workspaceRoot, 'dist', rootDir, 'client'), - ); - debugNitro('resolveClientOutputPath using default dist client path', { - workspaceRoot, - rootDir, - configuredOutDir, - resolvedPath, - }); - return resolvedPath; -} - -function getEnvironmentBuildOutDir(environment: unknown): string | undefined { - if (!environment || typeof environment !== 'object') { - return undefined; - } - - const environmentConfig = environment as { - config?: { - build?: { - outDir?: string; - }; - }; - build?: { - outDir?: string; - }; - }; - - return ( - environmentConfig.config?.build?.outDir ?? environmentConfig.build?.outDir - ); -} - -function resolveBuiltClientOutputPath( - cachedPath: string, - workspaceRoot: string, - rootDir: string, - configuredOutDir: string | undefined, - environment?: unknown, -) { - const environmentOutDir = getEnvironmentBuildOutDir(environment); - if (environmentOutDir) { - const resolvedPath = normalizePath( - resolve(workspaceRoot, rootDir, environmentOutDir), - ); - debugNitro('resolveBuiltClientOutputPath using environment outDir', { - cachedPath, - workspaceRoot, - rootDir, - configuredOutDir, - environmentOutDir, - resolvedPath, - }); - return resolvedPath; - } - - debugNitro('resolveBuiltClientOutputPath falling back to shared resolver', { - cachedPath, - workspaceRoot, - rootDir, - configuredOutDir, - environmentOutDir, - }); - return resolveClientOutputPath( - cachedPath, - workspaceRoot, - rootDir, - configuredOutDir, - ); -} - -function getNitroPublicOutputDir(nitroConfig: NitroConfig): string { - const publicDir = nitroConfig.output?.publicDir; - if (!publicDir) { - throw new Error( - 'Nitro public output directory is required to build the sitemap.', - ); - } - - return publicDir; -} - -function readDirectoryEntries(path: string): string[] { - try { - return readdirSync(path).sort(); - } catch (error) { - return [ - `<>`, - ]; - } -} - -function getPathDebugInfo(path: string) { - return { - rawPath: path, - normalizedPath: normalizePath(path), - exists: existsSync(path), - entries: existsSync(path) ? readDirectoryEntries(path) : [], - }; -} - -function assetSourceToString(source: string | Uint8Array) { - return typeof source === 'string' - ? source - : Buffer.from(source).toString('utf8'); -} - -function captureClientIndexHtmlFromBundle( - bundle: Record< - string, - { - type?: string; - fileName?: string; - source?: string | Uint8Array; - } - >, - hook: 'generateBundle' | 'writeBundle', -) { - const indexHtmlAsset = Object.values(bundle).find( - (chunk) => - chunk.type === 'asset' && - chunk.fileName === 'index.html' && - typeof chunk.source !== 'undefined', - ); - - if (!indexHtmlAsset?.source) { - debugNitro(`client bundle did not expose index.html during ${hook}`, { - hook, - bundleKeys: Object.keys(bundle).sort(), - assetFileNames: Object.values(bundle) - .filter((chunk) => chunk.type === 'asset') - .map((chunk) => chunk.fileName) - .filter(Boolean), - }); - return undefined; - } - - const indexHtml = assetSourceToString(indexHtmlAsset.source); - debugNitro(`captured client bundle index.html asset during ${hook}`, { - hook, - fileName: indexHtmlAsset.fileName, - htmlLength: indexHtml.length, - }); - return indexHtml; -} - -// Nitro only needs the HTML template string. Prefer the on-disk file when it -// exists, but allow the captured client asset to cover build flows where the -// client output directory disappears before Nitro assembles its virtual modules. -function registerIndexHtmlVirtual( - nitroConfig: NitroConfig, - clientOutputPath: string, - inlineIndexHtml?: string, -) { - const indexHtmlPath = resolve(clientOutputPath, 'index.html'); - debugNitro('registerIndexHtmlVirtual inspecting client output', { - platform: process.platform, - cwd: process.cwd(), - clientOutputPath, - clientOutputPathInfo: getPathDebugInfo(clientOutputPath), - indexHtmlPath, - indexHtmlExists: existsSync(indexHtmlPath), - hasInlineIndexHtml: typeof inlineIndexHtml === 'string', - }); - if (!existsSync(indexHtmlPath) && typeof inlineIndexHtml !== 'string') { - debugNitro('registerIndexHtmlVirtual missing index.html', { - platform: process.platform, - cwd: process.cwd(), - clientOutputPath, - clientOutputPathInfo: getPathDebugInfo(clientOutputPath), - indexHtmlPath, - hasInlineIndexHtml: typeof inlineIndexHtml === 'string', - nitroOutput: nitroConfig.output, - nitroPublicAssets: nitroConfig.publicAssets, - }); - throw new Error( - `[analog] Client build output not found at ${indexHtmlPath}.\n` + - `Ensure the client environment build completed successfully before the server build.`, - ); - } - const indexHtml = - typeof inlineIndexHtml === 'string' - ? inlineIndexHtml - : readFileSync(indexHtmlPath, 'utf8'); - debugNitro('registerIndexHtmlVirtual using HTML template source', { - source: - typeof inlineIndexHtml === 'string' - ? 'captured client bundle asset' - : 'client output index.html file', - indexHtmlPath, - }); - nitroConfig.virtual = { - ...nitroConfig.virtual, - '#analog/index': `export default ${JSON.stringify(indexHtml)};`, - }; -} - -/** - * Converts the built SSR entry path into a specifier that Nitro's bundler - * can resolve, including all relative `./assets/*` chunk imports inside - * the entry. - * - * The returned path **must** be an absolute filesystem path with forward - * slashes (e.g. `D:/a/analog/dist/apps/blog-app/ssr/main.server.js`). - * This lets Rollup/Rolldown determine the entry's directory and resolve - * sibling chunk imports like `./assets/core-DTazUigR.js` correctly. - * - * ## Why not pathToFileURL() on Windows? - * - * Earlier versions converted the path to a `file:///D:/a/...` URL on - * Windows, which worked with Nitro v2 + Rollup. Nitro v3 switched its - * default bundler to Rolldown, and Rolldown does **not** extract the - * importer directory from `file://` URLs. This caused every relative - * import inside the SSR entry to fail during the prerender build: - * - * [RESOLVE_ERROR] Could not resolve './assets/core-DTazUigR.js' - * in ../../dist/apps/blog-app/ssr/main.server.js - * - * `normalizePath()` (from Vite) simply converts backslashes to forward - * slashes, which both Rollup and Rolldown handle correctly on all - * platforms. - */ -function toNitroSsrEntrypointSpecifier(ssrEntryPath: string) { - return normalizePath(ssrEntryPath); -} - -function applySsrEntryAlias( - nitroConfig: NitroConfig, - options: Options | undefined, - workspaceRoot: string, - rootDir: string, -): void { - const ssrOutDir = - options?.ssrBuildDir || resolve(workspaceRoot, 'dist', rootDir, 'ssr'); - if (options?.ssr || nitroConfig.prerender?.routes?.length) { - const ssrEntryPath = resolveBuiltSsrEntryPath(ssrOutDir); - const ssrEntry = toNitroSsrEntrypointSpecifier(ssrEntryPath); - nitroConfig.alias = { - ...nitroConfig.alias, - '#analog/ssr': ssrEntry, - }; - } -} - -function resolveBuiltSsrEntryPath(ssrOutDir: string) { - const candidatePaths = [ - resolve(ssrOutDir, 'main.server.mjs'), - resolve(ssrOutDir, 'main.server.js'), - resolve(ssrOutDir, 'main.server'), - ]; - - const ssrEntryPath = candidatePaths.find((candidatePath) => - existsSync(candidatePath), - ); - - if (!ssrEntryPath) { - throw new Error( - `Unable to locate the built SSR entry in "${ssrOutDir}". Expected one of: ${candidatePaths.join( - ', ', - )}`, - ); - } - - return ssrEntryPath; -} - -export function nitro(options?: Options, nitroOptions?: NitroConfig): Plugin[] { - const workspaceRoot = options?.workspaceRoot ?? process.cwd(); - const sourceRoot = options?.sourceRoot ?? 'src'; - let isTest = process.env['NODE_ENV'] === 'test' || !!process.env['VITEST']; - const baseURL = process.env['NITRO_APP_BASE_URL'] || ''; - const prefix = baseURL ? baseURL.substring(0, baseURL.length - 1) : ''; - const apiPrefix = `/${options?.apiPrefix || 'api'}`; - const useAPIMiddleware = - typeof options?.useAPIMiddleware !== 'undefined' - ? options?.useAPIMiddleware - : true; - const viteRolldownOutput = options?.vite?.build?.rolldownOptions?.output; - // Vite's native build typing allows `output` to be either a single object or - // an array. Analog only forwards `codeSplitting` into the client environment - // when there is a single output object to merge into. - const viteRolldownOutputConfig = - viteRolldownOutput && !Array.isArray(viteRolldownOutput) - ? viteRolldownOutput - : undefined; - const codeSplitting = viteRolldownOutputConfig?.codeSplitting; - - let isBuild = false; - let isServe = false; - let ssrBuild = false; - let config: UserConfig; - let nitroConfig: NitroConfig; - let environmentBuild = false; - let hasAPIDir = false; - let clientOutputPath = ''; - let clientIndexHtml: string | undefined; - let legacyClientSubBuild = false; - const rollupExternalEntries: string[] = []; - const sitemapRoutes: string[] = []; - const routeSitemaps: Record< - string, - PrerenderSitemapConfig | (() => PrerenderSitemapConfig) - > = {}; - const routeSourceFiles: Record = {}; - let rootDir = workspaceRoot; - - return [ - (options?.ssr - ? devServerPlugin({ - entryServer: options?.entryServer, - index: options?.index, - routeRules: nitroOptions?.routeRules, - }) - : false) as Plugin, - { - name: '@analogjs/vite-plugin-nitro', - async config(userConfig, { mode, command }) { - isServe = command === 'serve'; - isBuild = command === 'build'; - ssrBuild = userConfig.build?.ssr === true; - config = userConfig; - isTest = isTest ? isTest : mode === 'test'; - rollupExternalEntries.length = 0; - clientIndexHtml = undefined; - sitemapRoutes.length = 0; - for (const key of Object.keys(routeSitemaps)) { - delete routeSitemaps[key]; - } - for (const key of Object.keys(routeSourceFiles)) { - delete routeSourceFiles[key]; - } - - const resolvedConfigRoot = config.root - ? resolve(workspaceRoot, config.root) - : workspaceRoot; - rootDir = relative(workspaceRoot, resolvedConfigRoot) || '.'; - hasAPIDir = existsSync( - resolve( - workspaceRoot, - rootDir, - `${sourceRoot}/server/routes/${options?.apiPrefix || 'api'}`, - ), - ); - const buildPreset = - process.env['BUILD_PRESET'] ?? - (nitroOptions?.preset as string | undefined) ?? - (process.env['VERCEL'] ? 'vercel' : undefined); - - const pageHandlers = getPageHandlers({ - workspaceRoot, - sourceRoot, - rootDir, - additionalPagesDirs: options?.additionalPagesDirs, - hasAPIDir, - }); - const resolvedClientOutputPath = resolveClientOutputPath( - clientOutputPath, - workspaceRoot, - rootDir, - config.build?.outDir, - ); - debugNitro('nitro config resolved client output path', { - platform: process.platform, - workspaceRoot, - configRoot: config.root, - resolvedConfigRoot, - rootDir, - buildOutDir: config.build?.outDir, - clientOutputPath, - resolvedClientOutputPath, - hasEnvironmentConfig: !!config.environments, - clientEnvironmentOutDir: - config.environments?.['client'] && - typeof config.environments['client'] === 'object' && - 'build' in config.environments['client'] - ? ( - config.environments['client'] as { - build?: { outDir?: string }; - } - ).build?.outDir - : undefined, - }); - - nitroConfig = { - rootDir: normalizePath(rootDir), - preset: buildPreset, - compatibilityDate: '2025-11-19', - logLevel: nitroOptions?.logLevel || 0, - serverDir: normalizePath(`${sourceRoot}/server`), - scanDirs: [ - normalizePath(`${rootDir}/${sourceRoot}/server`), - ...(options?.additionalAPIDirs || []).map((dir) => - normalizePath(`${workspaceRoot}${dir}`), - ), - ], - output: { - dir: normalizePath( - resolve(workspaceRoot, 'dist', rootDir, 'analog'), - ), - publicDir: normalizePath( - resolve(workspaceRoot, 'dist', rootDir, 'analog/public'), - ), - }, - buildDir: normalizePath( - resolve(workspaceRoot, 'dist', rootDir, '.nitro'), - ), - typescript: { - generateTsConfig: false, - }, - runtimeConfig: { - apiPrefix: apiPrefix.substring(1), - prefix, - }, - // Analog provides its own renderer handler; prevent Nitro v3 from - // auto-detecting index.html in rootDir and adding a conflicting one. - renderer: false, - imports: { - autoImport: false, - }, - hooks: { - 'rollup:before': createRollupBeforeHook(rollupExternalEntries), - }, - rollupConfig: { - onwarn(warning) { - if ( - warning.message.includes('empty chunk') && - warning.message.endsWith('.server') - ) { - return; - } - }, - plugins: [pageEndpointsPlugin()], - }, - handlers: [ - ...(hasAPIDir - ? [] - : useAPIMiddleware - ? [createNitroMiddlewareHandler('#ANALOG_API_MIDDLEWARE')] - : []), - ...pageHandlers, - ], - routeRules: hasAPIDir - ? undefined - : useAPIMiddleware - ? undefined - : { - [`${prefix}${apiPrefix}/**`]: { - proxy: { to: '/**' }, - }, - }, - virtual: { - '#ANALOG_SSR_RENDERER': ssrRenderer(), - '#ANALOG_CLIENT_RENDERER': clientRenderer(), - ...(hasAPIDir ? {} : { '#ANALOG_API_MIDDLEWARE': apiMiddleware }), - }, - }; - - if (isVercelPreset(buildPreset)) { - nitroConfig = withVercelOutputAPI(nitroConfig, workspaceRoot); - } - - if (isCloudflarePreset(buildPreset)) { - nitroConfig = withCloudflareOutput(nitroConfig); - } - - if ( - isNetlifyPreset(buildPreset) && - rootDir === '.' && - !existsSync(resolve(workspaceRoot, 'netlify.toml')) - ) { - nitroConfig = withNetlifyOutputAPI(nitroConfig, workspaceRoot); - } - - if (isFirebaseAppHosting()) { - nitroConfig = withAppHostingOutput(nitroConfig); - } - - if (!ssrBuild && !isTest) { - // store the client output path for the SSR build config - clientOutputPath = resolvedClientOutputPath; - debugNitro( - 'nitro config cached client output path for later SSR/Nitro build', - { - ssrBuild, - isTest, - clientOutputPath, - }, - ); - } - - // Start with a clean alias map. #analog/index is registered as a Nitro - // virtual module after the client build, inlining the HTML template so - // the server bundle imports it instead of using readFileSync with an - // absolute path. - nitroConfig.alias = {}; - - if (isBuild) { - nitroConfig.publicAssets = [ - { dir: normalizePath(resolvedClientOutputPath), maxAge: 0 }, - ]; - - // In Nitro v3, renderer.entry is resolved via resolveModulePath() - // during options normalization, which requires a real filesystem path. - // Virtual modules (prefixed with #) can't survive this resolution. - // Instead, we add the renderer as a catch-all handler directly — - // this is functionally equivalent to what Nitro does internally - // (it converts renderer.entry into a { route: '/**', lazy: true } - // handler), but avoids the filesystem resolution step. - const rendererHandler = options?.ssr - ? '#ANALOG_SSR_RENDERER' - : '#ANALOG_CLIENT_RENDERER'; - nitroConfig.handlers = [ - ...(nitroConfig.handlers || []), - { - handler: rendererHandler, - route: '/**', - lazy: true, - }, - ]; - - if (isEmptyPrerenderRoutes(options)) { - nitroConfig.prerender = {}; - nitroConfig.prerender.routes = ['/']; - } - - if (options?.prerender) { - nitroConfig.prerender = nitroConfig.prerender ?? {}; - nitroConfig.prerender.crawlLinks = options?.prerender?.discover; - - let routes: ( - | string - | PrerenderContentDir - | PrerenderRouteConfig - | undefined - )[] = []; - - const prerenderRoutes = options?.prerender?.routes; - const hasExplicitPrerenderRoutes = - typeof prerenderRoutes === 'function' || - Array.isArray(prerenderRoutes); - if ( - isArrayWithElements(prerenderRoutes) - ) { - routes = prerenderRoutes; - } else if (typeof prerenderRoutes === 'function') { - routes = await prerenderRoutes(); - } - - const resolvedPrerenderRoutes = routes.reduce( - (prev, current) => { - if (!current) { - return prev; - } - if (typeof current === 'string') { - prev.push(current); - sitemapRoutes.push(current); - return prev; - } - - if ('route' in current) { - if (current.sitemap) { - routeSitemaps[current.route] = current.sitemap; - } - - if (current.outputSourceFile) { - const sourcePath = resolve( - workspaceRoot, - rootDir, - current.outputSourceFile, - ); - routeSourceFiles[current.route] = readFileSync( - sourcePath, - 'utf8', - ); - } - - prev.push(current.route); - sitemapRoutes.push(current.route); - - // Add the server-side data fetching endpoint URL - if ('staticData' in current) { - prev.push(`${apiPrefix}/_analog/pages/${current.route}`); - } - - return prev; - } - - const affectedFiles: PrerenderContentFile[] = - getMatchingContentFilesWithFrontMatter( - workspaceRoot, - rootDir, - current.contentDir, - ); - - affectedFiles.forEach((f) => { - const result = current.transform(f); - - if (result) { - if (current.sitemap) { - routeSitemaps[result] = - current.sitemap && typeof current.sitemap === 'function' - ? current.sitemap?.(f) - : current.sitemap; - } - - if (current.outputSourceFile) { - const sourceContent = current.outputSourceFile(f); - if (sourceContent) { - routeSourceFiles[result] = sourceContent; - } - } - - prev.push(result); - sitemapRoutes.push(result); - - // Add the server-side data fetching endpoint URL - if ('staticData' in current) { - prev.push(`${apiPrefix}/_analog/pages/${result}`); - } - } - }); - - return prev; - }, - [], - ); - - nitroConfig.prerender.routes = - hasExplicitPrerenderRoutes || resolvedPrerenderRoutes.length - ? resolvedPrerenderRoutes - : (nitroConfig.prerender.routes ?? []); - } - - // ── SSR / prerender Nitro config ───────────────────────────── - // - // This block configures Nitro for builds that rebundle the SSR - // entry (main.server.{js,mjs}). That happens in two cases: - // - // 1. Full SSR apps — `options.ssr === true` - // 2. Prerender-only — no runtime SSR, but the prerender build - // still imports the SSR entry to render static pages. - // - // The original gate was `if (ssrBuild)`, which checks the Vite - // top-level `build.ssr` flag. That works for SSR-only builds but - // misses two Vite 6+ paths: - // - // a. **Vite Environment API (Vite 6+)** — SSR config lives in - // `environments.ssr.build.ssr`, not `build.ssr`, so - // `ssrBuild` is always `false`. - // b. **Prerender-only apps** (e.g. blog-app) — `options.ssr` - // is `false`, but prerender routes exist and the prerender - // build still processes the SSR entry. - // - // Without this block: - // - `rxjs` is never externalised → RESOLVE_ERROR in the - // Nitro prerender build (especially on Windows CI). - // - `moduleSideEffects` for zone.js is never set → zone.js - // side-effects may be tree-shaken. - // - The handlers list is not reassembled with page endpoints - // + the renderer catch-all. - // - // The widened condition covers all supported build paths: - // - `ssrBuild` → SSR-only build - // - `options?.ssr` → Environment API SSR - // - `nitroConfig.prerender?.routes?.length` → prerender-only - if ( - ssrBuild || - options?.ssr || - nitroConfig.prerender?.routes?.length - ) { - nitroConfig.noExternals = appendNoExternals( - nitroConfig.noExternals, - 'es-toolkit', - ); - - if (process.platform === 'win32') { - nitroConfig.noExternals = appendNoExternals( - nitroConfig.noExternals, - 'std-env', - ); - } - - rollupExternalEntries.push( - 'rxjs', - 'node-fetch-native/dist/polyfill', - // sharp is a native module with platform-specific binaries - // (e.g. @img/sharp-darwin-arm64). pnpm creates symlinks for - // ALL optional platform deps but only installs the matching - // one — leaving broken symlinks that crash Nitro's bundler - // with ENOENT during realpath(). Externalizing sharp avoids - // bundling it entirely; it resolves from node_modules at - // runtime instead. - 'sharp', - ); - - nitroConfig = { - ...nitroConfig, - moduleSideEffects: ['zone.js/node', 'zone.js/fesm2015/zone-node'], - handlers: [ - ...(hasAPIDir - ? [] - : useAPIMiddleware - ? [createNitroMiddlewareHandler('#ANALOG_API_MIDDLEWARE')] - : []), - ...pageHandlers, - // Preserve the renderer catch-all handler added above - { - handler: rendererHandler, - route: '/**', - lazy: true, - }, - ], - }; - } - } - - nitroConfig = mergeConfig( - nitroConfig, - nitroOptions as Record, - ); - - // Only configure Vite 8 environments + builder on the top-level - // build invocation. When buildApp's builder.build() calls re-enter - // the config hook, returning environments/builder again would create - // recursive buildApp invocations — each nesting another client build - // that re-triggers config, producing an infinite loop of - // "building client environment... ✓ 1 modules transformed". - // - // environmentBuild — already inside a buildApp call (recursion guard) - // ssrBuild — legacy SSR-only sub-build - // isServe — dev server / Vitest test runner (command: 'serve') - if (environmentBuild || ssrBuild || isServe) { - return {}; - } - - return { - environments: { - client: { - build: { - outDir: - config?.build?.outDir || - resolve(workspaceRoot, 'dist', rootDir, 'client'), - emptyOutDir: true, - // Forward code-splitting config to Rolldown when running - // under Vite 8+. `false` disables splitting (inlines all - // dynamic imports); an object configures chunk groups. - // The `!== undefined` check ensures `codeSplitting: false` - // is forwarded correctly (a truthy check would swallow it). - ...(isRolldown() && codeSplitting !== undefined - ? { - rolldownOptions: { - output: { - // Preserve any sibling Rolldown output options while - // overriding just `codeSplitting` for the client build. - ...viteRolldownOutputConfig, - codeSplitting, - }, - }, - } - : {}), - }, - }, - ssr: { - build: { - ssr: true, - [getBundleOptionsKey()]: { - input: - options?.entryServer || - resolve( - workspaceRoot, - rootDir, - `${sourceRoot}/main.server.ts`, - ), - }, - outDir: - options?.ssrBuildDir || - resolve(workspaceRoot, 'dist', rootDir, 'ssr'), - // Preserve the client build output. The client environment is - // built first and Nitro reads its index.html after SSR finishes. - emptyOutDir: false, - }, - }, - }, - builder: { - sharedPlugins: true, - buildApp: async (builder) => { - environmentBuild = true; - debugNitro('builder.buildApp starting', { - platform: process.platform, - workspaceRoot, - rootDir, - cachedClientOutputPath: clientOutputPath, - configuredBuildOutDir: config.build?.outDir, - clientEnvironmentOutDir: getEnvironmentBuildOutDir( - builder.environments['client'], - ), - ssrEnvironmentOutDir: getEnvironmentBuildOutDir( - builder.environments['ssr'], - ), - }); - - // Client must complete before SSR — the server build reads the - // client's index.html via registerIndexHtmlVirtual(). Running - // them in parallel caused a race on Windows where emptyOutDir - // could delete client output before the server read it. - await builder.build(builder.environments['client']); - const postClientBuildOutputPath = resolveBuiltClientOutputPath( - clientOutputPath, - workspaceRoot, - rootDir, - config.build?.outDir, - builder.environments['client'], - ); - // Capture the client template before any SSR/prerender work runs. - // On Windows, later phases can leave the client output directory - // unavailable even though the client build itself succeeded. - registerIndexHtmlVirtual( - nitroConfig, - postClientBuildOutputPath, - clientIndexHtml, - ); - debugNitro('builder.buildApp completed client build', { - postClientBuildOutputPath, - postClientBuildOutputInfo: getPathDebugInfo( - postClientBuildOutputPath, - ), - postClientBuildIndexHtmlPath: resolve( - postClientBuildOutputPath, - 'index.html', - ), - postClientBuildIndexHtmlExists: existsSync( - resolve(postClientBuildOutputPath, 'index.html'), - ), - }); - - if (options?.ssr || nitroConfig.prerender?.routes?.length) { - debugSsr('builder.buildApp starting SSR build', { - ssrEnabled: options?.ssr, - prerenderRoutes: nitroConfig.prerender?.routes, - }); - await builder.build(builder.environments['ssr']); - debugSsr('builder.buildApp completed SSR build', { - ssrOutputPath: - options?.ssrBuildDir || - resolve(workspaceRoot, 'dist', rootDir, 'ssr'), - }); - } - - applySsrEntryAlias(nitroConfig, options, workspaceRoot, rootDir); - - const resolvedClientOutputPath = resolveBuiltClientOutputPath( - clientOutputPath, - workspaceRoot, - rootDir, - config.build?.outDir, - builder.environments['client'], - ); - - nitroConfig.publicAssets = [ - { dir: normalizePath(resolvedClientOutputPath), maxAge: 0 }, - ]; - debugNitro( - 'builder.buildApp resolved final client output path before Nitro build', - { - resolvedClientOutputPath, - resolvedClientOutputInfo: getPathDebugInfo( - resolvedClientOutputPath, - ), - nitroPublicAssets: nitroConfig.publicAssets, - }, - ); - - await buildServer(options, nitroConfig, routeSourceFiles); - - if ( - nitroConfig.prerender?.routes?.length && - options?.prerender?.sitemap - ) { - console.log('Building Sitemap...'); - // sitemap needs to be built after all directories are built - await buildSitemap( - config, - options.prerender.sitemap, - sitemapRoutes.length - ? sitemapRoutes - : nitroConfig.prerender.routes, - getNitroPublicOutputDir(nitroConfig), - routeSitemaps, - { apiPrefix: options?.apiPrefix || 'api' }, - ); - } - - console.log( - `\n\nThe '@analogjs/platform' server has been successfully built.`, - ); - }, - }, - }; - }, - generateBundle( - _options, - bundle: Record< - string, - { - type?: string; - fileName?: string; - source?: string | Uint8Array; - } - >, - ) { - if (!isBuild || ssrBuild) { - return; - } - - clientIndexHtml = - captureClientIndexHtmlFromBundle(bundle, 'generateBundle') ?? - clientIndexHtml; - }, - writeBundle( - _options, - bundle: Record< - string, - { - type?: string; - fileName?: string; - source?: string | Uint8Array; - } - >, - ) { - if (!isBuild || ssrBuild) { - return; - } - - clientIndexHtml = - captureClientIndexHtmlFromBundle(bundle, 'writeBundle') ?? - clientIndexHtml; - }, - async configureServer(viteServer: ViteDevServer) { - if (isServe && !isTest) { - const nitro = await createNitro({ - dev: true, - // Nitro's Vite builder now rejects `build()` in dev mode, but Analog's - // dev integration still relies on the builder-driven reload hooks. - // Force the server worker onto Rollup for this dev-only path. - builder: 'rollup', - ...nitroConfig, - }); - const server = createDevServer(nitro); - await build(nitro); - const nitroSourceRoots = [ - normalizePath( - resolve(workspaceRoot, rootDir, `${sourceRoot}/server`), - ), - ...(options?.additionalAPIDirs || []).map((dir) => - normalizePath(`${workspaceRoot}${dir}`), - ), - ]; - const isNitroSourceFile = (path: string) => { - const normalizedPath = normalizePath(path); - return nitroSourceRoots.some( - (root) => - normalizedPath === root || - normalizedPath.startsWith(`${root}/`), - ); - }; - let nitroRebuildPromise: Promise | undefined; - let nitroRebuildPending = false; - const rebuildNitroServer = () => { - if (nitroRebuildPromise) { - // Coalesce rapid file events so a save that touches multiple server - // route files results in one follow-up rebuild instead of many. - nitroRebuildPending = true; - return nitroRebuildPromise; - } - - nitroRebuildPromise = (async () => { - do { - nitroRebuildPending = false; - // Nitro API routes are not part of Vite's normal client HMR graph, - // so rebuild the Nitro dev server to pick up handler edits. - await build(nitro); - } while (nitroRebuildPending); - - // Reload the page after the server rebuild completes so the next - // request observes the updated API route implementation. - viteServer.ws.send('analog:debug-full-reload', { - plugin: 'vite-plugin-nitro', - reason: 'nitro-server-rebuilt', - }); - viteServer.ws.send({ type: 'full-reload' }); - })() - .catch((error: unknown) => { - viteServer.config.logger.error( - `[analog] Failed to rebuild Nitro dev server.\n${error instanceof Error ? error.stack || error.message : String(error)}`, - ); - }) - .finally(() => { - nitroRebuildPromise = undefined; - }); - - return nitroRebuildPromise; - }; - const onNitroSourceChange = (path: string) => { - if (!isNitroSourceFile(path)) { - return; - } - - void rebuildNitroServer(); - }; - - // Watch the full Nitro source roots instead of only the API route - // directory. API handlers often read helper modules, shared data, or - // middleware from elsewhere under `src/server`, and those edits should - // still rebuild the Nitro dev server and refresh connected browsers. - viteServer.watcher.on('add', onNitroSourceChange); - viteServer.watcher.on('change', onNitroSourceChange); - viteServer.watcher.on('unlink', onNitroSourceChange); - - const apiHandler = async ( - req: IncomingMessage, - res: ServerResponse, - ) => { - // Nitro v3's dev server is fetch-first, so adapt Vite's Node - // request once and let Nitro respond with a standard Web Response. - const response = await server.fetch(toWebRequest(req)); - await writeWebResponseToNode(res, response); - }; - - if (hasAPIDir) { - viteServer.middlewares.use( - ( - req: IncomingMessage, - res: ServerResponse, - next: (error?: unknown) => void, - ) => { - if (req.url?.startsWith(`${prefix}${apiPrefix}`)) { - void apiHandler(req, res).catch((error) => next(error)); - return; - } - - next(); - }, - ); - } else { - viteServer.middlewares.use( - apiPrefix, - ( - req: IncomingMessage, - res: ServerResponse, - next: (error?: unknown) => void, - ) => { - void apiHandler(req, res).catch((error) => next(error)); - }, - ); - } - - viteServer.httpServer?.once('listening', () => { - process.env['ANALOG_HOST'] = !viteServer.config.server.host - ? 'localhost' - : (viteServer.config.server.host as string); - process.env['ANALOG_PORT'] = `${viteServer.config.server.port}`; - }); - - // handle upgrades if websockets are enabled - if (nitroOptions?.experimental?.websocket) { - debugNitro('experimental websocket upgrade handler enabled'); - viteServer.httpServer?.on('upgrade', server.upgrade); - } - - console.log( - `\n\nThe server endpoints are accessible under the "${prefix}${apiPrefix}" path.`, - ); - } - }, - - async closeBundle() { - if (legacyClientSubBuild) { - return; - } - - // When builder.buildApp ran, it already handled the full - // client → SSR → Nitro pipeline. Skip to avoid double work. - if (environmentBuild) { - return; - } - - // SSR sub-build — Vite re-enters the plugin with build.ssr; - // Nitro server assembly happens only after the client pass. - if (ssrBuild) { - return; - } - - // Nx executors (and any caller that runs `vite build` without - // the Environment API) never trigger builder.buildApp, so - // closeBundle is the only place to drive the SSR + Nitro build. - if (isBuild) { - const resolvedClientOutputPath = resolveClientOutputPath( - clientOutputPath, - workspaceRoot, - rootDir, - config.build?.outDir, - ); - debugNitro( - 'closeBundle resolved client output path before legacy SSR build', - { - platform: process.platform, - workspaceRoot, - rootDir, - cachedClientOutputPath: clientOutputPath, - configuredBuildOutDir: config.build?.outDir, - resolvedClientOutputPath, - resolvedClientOutputInfo: getPathDebugInfo( - resolvedClientOutputPath, - ), - }, - ); - const indexHtmlPath = resolve(resolvedClientOutputPath, 'index.html'); - if ( - !existsSync(indexHtmlPath) && - typeof clientIndexHtml !== 'string' - ) { - debugNitro( - 'closeBundle rebuilding missing client output before SSR/Nitro', - { - platform: process.platform, - workspaceRoot, - rootDir, - configuredBuildOutDir: config.build?.outDir, - resolvedClientOutputPath, - indexHtmlPath, - }, - ); - legacyClientSubBuild = true; - try { - await buildClientApp(config, options); - } finally { - legacyClientSubBuild = false; - } - } - // Capture the client HTML before kicking off the standalone SSR build. - // This mirrors the successful sequencing from before the closeBundle - // refactor and avoids depending on the client directory surviving the - // nested SSR build on Windows. - registerIndexHtmlVirtual( - nitroConfig, - resolvedClientOutputPath, - clientIndexHtml, - ); - - if (options?.ssr) { - console.log('Building SSR application...'); - await buildSSRApp(config, options); - debugSsr('closeBundle completed standalone SSR build', { - ssrBuildDir: - options?.ssrBuildDir || - resolve(workspaceRoot, 'dist', rootDir, 'ssr'), - clientOutputPathInfo: clientOutputPath - ? getPathDebugInfo(clientOutputPath) - : null, - }); - } - - applySsrEntryAlias(nitroConfig, options, workspaceRoot, rootDir); - debugNitro( - 'closeBundle resolved client output path before Nitro build', - { - platform: process.platform, - workspaceRoot, - rootDir, - cachedClientOutputPath: clientOutputPath, - configuredBuildOutDir: config.build?.outDir, - resolvedClientOutputPath, - resolvedClientOutputInfo: getPathDebugInfo( - resolvedClientOutputPath, - ), - }, - ); - registerIndexHtmlVirtual( - nitroConfig, - resolvedClientOutputPath, - clientIndexHtml, - ); - - await buildServer(options, nitroConfig, routeSourceFiles); - - if ( - nitroConfig.prerender?.routes?.length && - options?.prerender?.sitemap - ) { - console.log('Building Sitemap...'); - await buildSitemap( - config, - options.prerender.sitemap, - sitemapRoutes.length - ? sitemapRoutes - : nitroConfig.prerender.routes, - getNitroPublicOutputDir(nitroConfig), - routeSitemaps, - { apiPrefix: options?.apiPrefix || 'api' }, - ); - } - - console.log( - `\n\nThe '@analogjs/platform' server has been successfully built.`, - ); - } - }, - }, - { - name: '@analogjs/vite-plugin-nitro-api-prefix', - config() { - return { - define: { - ANALOG_API_PREFIX: `"${baseURL.substring(1)}${apiPrefix.substring(1)}"`, - }, - }; - }, - }, - ]; -} - -function isEmptyPrerenderRoutes(options?: Options): boolean { - if (!options || isArrayWithElements(options?.prerender?.routes)) { - return false; - } - return !options.prerender?.routes; -} - -function isArrayWithElements(arr: unknown): arr is [T, ...T[]] { - return !!(Array.isArray(arr) && arr.length); -} - -const VERCEL_PRESET = 'vercel'; -// Nitro v3 consolidates the old `vercel-edge` preset into `vercel` with -// fluid compute enabled by default, so a single preset covers both -// serverless and edge deployments. -const withVercelOutputAPI = ( - nitroConfig: NitroConfig | undefined, - workspaceRoot: string, -) => ({ - ...nitroConfig, - preset: nitroConfig?.preset ?? 'vercel', - vercel: { - ...nitroConfig?.vercel, - entryFormat: nitroConfig?.vercel?.entryFormat ?? 'node', - functions: { - runtime: nitroConfig?.vercel?.functions?.runtime ?? 'nodejs24.x', - ...nitroConfig?.vercel?.functions, - }, - }, - output: { - ...nitroConfig?.output, - dir: normalizePath(resolve(workspaceRoot, '.vercel', 'output')), - publicDir: normalizePath( - resolve(workspaceRoot, '.vercel', 'output/static'), - ), - }, -}); - -// Nitro v3 uses underscore-separated preset names (e.g. `cloudflare_pages`), -// but we accept both hyphen and underscore forms for backwards compatibility. -const isCloudflarePreset = (buildPreset: string | undefined) => - process.env['CF_PAGES'] || - (buildPreset && - (buildPreset.toLowerCase().includes('cloudflare-pages') || - buildPreset.toLowerCase().includes('cloudflare_pages'))); - -const withCloudflareOutput = (nitroConfig: NitroConfig | undefined) => ({ - ...nitroConfig, - output: { - ...nitroConfig?.output, - serverDir: '{{ output.publicDir }}/_worker.js', - }, -}); - -const isFirebaseAppHosting = () => !!process.env['NG_BUILD_LOGS_JSON']; -const withAppHostingOutput = (nitroConfig: NitroConfig) => { - let hasOutput = false; - - return { - ...nitroConfig, - serveStatic: true, - rollupConfig: { - ...nitroConfig.rollupConfig, - output: { - ...nitroConfig.rollupConfig?.output, - entryFileNames: 'server.mjs', - }, - }, - hooks: { - ...nitroConfig.hooks, - compiled: () => { - if (!hasOutput) { - const buildOutput = { - errors: [], - warnings: [], - outputPaths: { - root: pathToFileURL(`${nitroConfig.output?.dir}`), - browser: pathToFileURL(`${nitroConfig.output?.publicDir}`), - server: pathToFileURL(`${nitroConfig.output?.dir}/server`), - }, - }; - - // Log the build output for Firebase App Hosting to pick up - console.log(JSON.stringify(buildOutput, null, 2)); - hasOutput = true; - } - }, - }, - }; -}; - -const isNetlifyPreset = (buildPreset: string | undefined) => - process.env['NETLIFY'] || - (buildPreset && buildPreset.toLowerCase().includes('netlify')); - -const withNetlifyOutputAPI = ( - nitroConfig: NitroConfig | undefined, - workspaceRoot: string, -) => ({ - ...nitroConfig, - output: { - ...nitroConfig?.output, - dir: normalizePath(resolve(workspaceRoot, 'netlify/functions')), - }, -}); diff --git a/packages/vite-plugin-nitro/tsconfig.lib.json b/packages/vite-plugin-nitro/tsconfig.lib.json index 421bca608..d7b49f044 100644 --- a/packages/vite-plugin-nitro/tsconfig.lib.json +++ b/packages/vite-plugin-nitro/tsconfig.lib.json @@ -5,7 +5,8 @@ "outDir": "../../dist/out-tsc", "declaration": true, "isolatedDeclarations": true, - "types": [] + "types": [], + "composite": false }, "include": ["src/**/*.ts"], "exclude": [ diff --git a/packages/vite-plugin-nitro/tsconfig.spec.json b/packages/vite-plugin-nitro/tsconfig.spec.json index cd6974b4d..ee604f003 100644 --- a/packages/vite-plugin-nitro/tsconfig.spec.json +++ b/packages/vite-plugin-nitro/tsconfig.spec.json @@ -2,7 +2,8 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "../../dist/out-tsc", - "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node"] + "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node"], + "composite": false }, "include": [ "vite.config.ts", diff --git a/packages/vitest-angular-tools/project.json b/packages/vitest-angular-tools/project.json index 66e3eb11d..da6de9d30 100644 --- a/packages/vitest-angular-tools/project.json +++ b/packages/vitest-angular-tools/project.json @@ -21,6 +21,13 @@ "test": { "executor": "@nx/vitest:test", "dependsOn": ["vitest-angular:build"] + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/vitest-angular-tools", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/vitest-angular-tools/src/schematics/setup/files/vite.config.mts.template b/packages/vitest-angular-tools/src/schematics/setup/files/vite.config.mts.template index deb0b8310..42087ee0e 100644 --- a/packages/vitest-angular-tools/src/schematics/setup/files/vite.config.mts.template +++ b/packages/vitest-angular-tools/src/schematics/setup/files/vite.config.mts.template @@ -2,17 +2,12 @@ import { defineConfig } from 'vite'; import angular from '@analogjs/vite-plugin-angular'; -<% if (isNx) { %>import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; -<% } else { %>import viteTsConfigPaths from 'vite-tsconfig-paths';<% } %> +<% if (!isNx) { %>import viteTsConfigPaths from 'vite-tsconfig-paths';<% } %> <% if (browserMode) { %>import { playwright } from '@vitest/browser-playwright';<% } %> // https://vitejs.dev/config/ export default defineConfig(({ mode }) => ({ -<% if (isNx) { %> - plugins: [angular(), nxViteTsPaths()], -<% } else { %> - plugins: [angular(), viteTsConfigPaths()], -<% } %> + plugins: [angular()<% if (!isNx) { %>, viteTsConfigPaths()<% } %>], test: { globals: true, <% if (browserMode) { %> diff --git a/packages/vitest-angular-tools/src/schematics/setup/index.spec.ts b/packages/vitest-angular-tools/src/schematics/setup/index.spec.ts index ded1217c4..2ffac9eb2 100644 --- a/packages/vitest-angular-tools/src/schematics/setup/index.spec.ts +++ b/packages/vitest-angular-tools/src/schematics/setup/index.spec.ts @@ -127,9 +127,12 @@ describe('setup schematic', () => { ); expect(viteConfig).toContain('plugins: [angular(), viteTsConfigPaths()]'); expect(viteConfig).not.toContain('nxViteTsPaths'); + expect(viteConfig).not.toContain( + '@nx/vite/plugins/nx-tsconfig-paths.plugin', + ); }); - it('should create vite.config.mts with nxViteTsPaths for Nx workspace', async () => { + it('should create vite.config.mts without path plugins for Nx workspace', async () => { // Create nx.json to simulate Nx workspace tree.create('/nx.json', JSON.stringify({ version: 2 })); @@ -144,11 +147,12 @@ describe('setup schematic', () => { expect(viteConfig).toContain( "import angular from '@analogjs/vite-plugin-angular'", ); - expect(viteConfig).toContain( - "import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'", - ); - expect(viteConfig).toContain('plugins: [angular(), nxViteTsPaths()]'); + expect(viteConfig).toContain('plugins: [angular()]'); + expect(viteConfig).not.toContain('nxViteTsPaths'); expect(viteConfig).not.toContain('viteTsConfigPaths'); + expect(viteConfig).not.toContain( + '@nx/vite/plugins/nx-tsconfig-paths.plugin', + ); }); it('should create test-setup.ts with BrowserTestingModule for Angular 20', async () => { diff --git a/packages/vitest-angular-tools/src/schematics/utils/versions.ts b/packages/vitest-angular-tools/src/schematics/utils/versions.ts index deef8a7f1..e22d8f767 100644 --- a/packages/vitest-angular-tools/src/schematics/utils/versions.ts +++ b/packages/vitest-angular-tools/src/schematics/utils/versions.ts @@ -1,5 +1,5 @@ // Version constants (Angular 20+) -export const ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.25'; +export const ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.26'; export const JSDOM = '^22.0.0'; export const VITE_TSCONFIG_PATHS = '^4.2.0'; export const VITE = '^7.0.0'; diff --git a/packages/vitest-angular-tools/tsconfig.lib.json b/packages/vitest-angular-tools/tsconfig.lib.json index a64319dfb..8e32e8322 100644 --- a/packages/vitest-angular-tools/tsconfig.lib.json +++ b/packages/vitest-angular-tools/tsconfig.lib.json @@ -9,7 +9,8 @@ "declaration": true, "isolatedDeclarations": true, "types": ["node"], - "skipLibCheck": true + "skipLibCheck": true, + "composite": false }, "include": ["src/**/*.ts"], "exclude": ["src/**/*.spec.ts", "src/**/*.test.ts", "vite.config.ts"] diff --git a/packages/vitest-angular-tools/tsconfig.spec.json b/packages/vitest-angular-tools/tsconfig.spec.json index 1e15b66d5..3a4ee695f 100644 --- a/packages/vitest-angular-tools/tsconfig.spec.json +++ b/packages/vitest-angular-tools/tsconfig.spec.json @@ -2,7 +2,8 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "../../dist/out-tsc", - "types": ["vitest/globals", "node"] + "types": ["vitest/globals", "node"], + "composite": false }, "include": [ "vite.config.ts", diff --git a/packages/vitest-angular/package.json b/packages/vitest-angular/package.json index 8e1aac288..4b71549fc 100644 --- a/packages/vitest-angular/package.json +++ b/packages/vitest-angular/package.json @@ -1,6 +1,6 @@ { "name": "@analogjs/vitest-angular", - "version": "3.0.0-alpha.25", + "version": "3.0.0-alpha.26", "description": "Vitest Builder for Angular", "type": "module", "author": "Brandon Roberts ", diff --git a/packages/vitest-angular/project.json b/packages/vitest-angular/project.json index 192c4266e..a29f05a15 100644 --- a/packages/vitest-angular/project.json +++ b/packages/vitest-angular/project.json @@ -21,6 +21,13 @@ "options": { "command": "node tools/scripts/verify-package-artifacts.mts vitest-angular" } + }, + "typecheck": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/vitest-angular", + "command": "pnpm exec tsgo --build tsconfig.lib.json --emitDeclarationOnly" + } } } } diff --git a/packages/vitest-angular/setup-zone.ts b/packages/vitest-angular/setup-zone.ts index 2413a1c61..cc49f8d7e 100644 --- a/packages/vitest-angular/setup-zone.ts +++ b/packages/vitest-angular/setup-zone.ts @@ -3,7 +3,7 @@ import 'zone.js/plugins/sync-test'; import 'zone.js/plugins/proxy'; import 'zone.js/testing'; -import './setup-snapshots.js'; +import { createAngularFixtureSnapshotSerializer } from './snapshot-serializers.js'; /** * Patch Vitest's describe/test/beforeEach/afterEach functions so test code * always runs in a testZone (ProxyZone). @@ -33,6 +33,13 @@ if (ProxyZoneSpec === undefined) { const env = globalThis as any; const ambientZone = Zone.current; +const originalExpect = env['expect']; +if (originalExpect) { + originalExpect.addSnapshotSerializer( + createAngularFixtureSnapshotSerializer(), + ); +} + // Create a synchronous-only zone in which to run `describe` blocks in order to // raise an error if any asynchronous operations are attempted // inside of a `describe` but outside of a `beforeEach` or `it`. diff --git a/packages/vitest-angular/tsconfig.lib.json b/packages/vitest-angular/tsconfig.lib.json index 1fa96fa1d..5fca44a26 100644 --- a/packages/vitest-angular/tsconfig.lib.json +++ b/packages/vitest-angular/tsconfig.lib.json @@ -4,7 +4,8 @@ "outDir": "../../dist/out-tsc", "declaration": true, "isolatedDeclarations": true, - "types": ["node"] + "types": ["node"], + "composite": false }, "include": [ "src/**/*.ts", diff --git a/packages/vitest-angular/tsconfig.spec.json b/packages/vitest-angular/tsconfig.spec.json index c9274be57..f107fd5fb 100644 --- a/packages/vitest-angular/tsconfig.spec.json +++ b/packages/vitest-angular/tsconfig.spec.json @@ -5,7 +5,8 @@ "module": "preserve", "types": ["vitest/globals"], "moduleResolution": "bundler", - "isolatedModules": true + "isolatedModules": true, + "composite": false }, "include": ["**/*.test.ts", "**/*.spec.ts", "**/*.d.ts"] } diff --git a/patches/srvx@0.11.15.patch b/patches/srvx@0.11.15.patch new file mode 100644 index 000000000..92ce31104 --- /dev/null +++ b/patches/srvx@0.11.15.patch @@ -0,0 +1,22 @@ +diff --git a/dist/adapters/node.mjs b/dist/adapters/node.mjs +index bf860db..845af0b 100644 +--- a/dist/adapters/node.mjs ++++ b/dist/adapters/node.mjs +@@ -717,7 +717,7 @@ function toNodeHandler(handler) { + req: nodeReq, + res: nodeRes + })); +- return res instanceof Promise ? res.then((resolvedRes) => sendNodeResponse(nodeRes, resolvedRes)) : sendNodeResponse(nodeRes, res); ++ return (res && typeof res.then === 'function') ? res.then((resolvedRes) => (resolvedRes && typeof resolvedRes.then === 'function') ? resolvedRes.then((r) => sendNodeResponse(nodeRes, r)) : sendNodeResponse(nodeRes, resolvedRes)) : sendNodeResponse(nodeRes, res); + } + convertedNodeHandler.__fetchHandler = handler; + assignFnName(convertedNodeHandler, handler, " (converted to Node handler)"); +@@ -772,7 +772,7 @@ var NodeServer = class { + }); + request.waitUntil = this.#wait?.waitUntil; + const res = fetchHandler(request); +- return res instanceof Promise ? res.then((resolvedRes) => sendNodeResponse(nodeRes, resolvedRes)) : sendNodeResponse(nodeRes, res); ++ return (res && typeof res.then === 'function') ? res.then((resolvedRes) => (resolvedRes && typeof resolvedRes.then === 'function') ? resolvedRes.then((r) => sendNodeResponse(nodeRes, r)) : sendNodeResponse(nodeRes, resolvedRes)) : sendNodeResponse(nodeRes, res); + }; + this.node = { + handler, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 410a1e7a7..fc87436cc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,8 +28,8 @@ catalogs: specifier: 21.3.1 version: 21.3.1 '@angular/animations': - specifier: 21.2.6 - version: 21.2.6 + specifier: 21.2.8 + version: 21.2.8 '@angular/build': specifier: 21.2.4 version: 21.2.4 @@ -40,38 +40,38 @@ catalogs: specifier: 21.2.4 version: 21.2.4 '@angular/common': - specifier: 21.2.6 - version: 21.2.6 + specifier: 21.2.8 + version: 21.2.8 '@angular/compiler': - specifier: 21.2.6 - version: 21.2.6 + specifier: 21.2.8 + version: 21.2.8 '@angular/compiler-cli': - specifier: 21.2.6 - version: 21.2.6 + specifier: 21.2.8 + version: 21.2.8 '@angular/core': - specifier: 21.2.6 - version: 21.2.6 + specifier: 21.2.8 + version: 21.2.8 '@angular/forms': - specifier: 21.2.6 - version: 21.2.6 + specifier: 21.2.8 + version: 21.2.8 '@angular/language-service': - specifier: 21.2.6 - version: 21.2.6 + specifier: 21.2.8 + version: 21.2.8 '@angular/material': specifier: 21.2.4 version: 21.2.4 '@angular/platform-browser': - specifier: 21.2.6 - version: 21.2.6 + specifier: 21.2.8 + version: 21.2.8 '@angular/platform-browser-dynamic': - specifier: 21.2.6 - version: 21.2.6 + specifier: 21.2.8 + version: 21.2.8 '@angular/platform-server': - specifier: 21.2.6 - version: 21.2.6 + specifier: 21.2.8 + version: 21.2.8 '@angular/router': - specifier: 21.2.6 - version: 21.2.6 + specifier: 21.2.8 + version: 21.2.8 '@angular/ssr': specifier: 21.2.4 version: 21.2.4 @@ -83,7 +83,7 @@ catalogs: version: 5.0.3 '@astrojs/react': specifier: ^5.0.2 - version: 5.0.2 + version: 5.0.3 '@commitlint/cli': specifier: ^20.5.0 version: 20.5.0 @@ -104,40 +104,40 @@ catalogs: version: 3.1.1 '@netlify/functions': specifier: ^5.1.5 - version: 5.1.5 + version: 5.2.0 '@nx/angular': - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 '@nx/devkit': - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 '@nx/eslint': - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 '@nx/eslint-plugin': - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 '@nx/js': - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 '@nx/playwright': - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 '@nx/plugin': - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 '@nx/storybook': - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 '@nx/vite': - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 '@nx/vitest': - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 '@nx/web': - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 '@oxc-angular/vite': specifier: ^0.0.22 version: 0.0.22 @@ -164,13 +164,13 @@ catalogs: version: 1.1.0 '@storybook/addon-docs': specifier: ^10.3.3 - version: 10.3.4 + version: 10.3.5 '@storybook/addon-links': specifier: ^10.3.3 - version: 10.3.4 + version: 10.3.5 '@storybook/addon-vitest': specifier: ^10.3.3 - version: 10.3.4 + version: 10.3.5 '@storybook/angular': specifier: 10.3.3 version: 10.3.3 @@ -191,16 +191,16 @@ catalogs: version: 4.2.2 '@tanstack/angular-query-experimental': specifier: ^5.95.2 - version: 5.96.2 + version: 5.99.0 '@tanstack/query-core': specifier: ^5.95.2 - version: 5.96.2 + version: 5.99.0 '@types/hast': specifier: ^3.0.4 version: 3.0.4 '@types/node': specifier: ^25.5.0 - version: 25.5.2 + version: 25.6.0 '@types/prismjs': specifier: ^1.26.6 version: 1.26.6 @@ -224,7 +224,7 @@ catalogs: version: 8.58.0 '@typescript-eslint/utils': specifier: ^8.57.2 - version: 8.58.0 + version: 8.58.1 '@vitest/browser-playwright': specifier: 4.1.2 version: 4.1.2 @@ -257,7 +257,7 @@ catalogs: version: 7.0.0 defu: specifier: ^6.1.4 - version: 6.1.6 + version: 6.1.7 destr: specifier: ^2.0.5 version: 2.0.5 @@ -275,7 +275,7 @@ catalogs: version: 10.1.8 eslint-plugin-oxlint: specifier: ^1.57.0 - version: 1.58.0 + version: 1.59.0 eslint-plugin-playwright: specifier: ^2.10.1 version: 2.10.1 @@ -326,16 +326,16 @@ catalogs: version: 16.4.0 marked: specifier: ^17.0.5 - version: 17.0.5 + version: 17.0.6 marked-gfm-heading-id: specifier: ^4.1.3 - version: 4.1.3 + version: 4.1.4 marked-highlight: specifier: ^2.2.3 - version: 2.2.3 + version: 2.2.4 marked-mangle: specifier: ^1.1.12 - version: 1.1.12 + version: 1.1.13 marked-shiki: specifier: ^1.2.1 version: 1.2.1 @@ -355,8 +355,8 @@ catalogs: specifier: 3.0.260311-beta version: 3.0.260311-beta nx: - specifier: 22.7.0-beta.10 - version: 22.7.0-beta.10 + specifier: 22.7.0-beta.12 + version: 22.7.0-beta.12 obug: specifier: ^2.1.1 version: 2.1.1 @@ -374,7 +374,7 @@ catalogs: version: 0.123.0 oxlint: specifier: ^1.57.0 - version: 1.58.0 + version: 1.59.0 oxlint-tsgolint: specifier: ^0.19.0 version: 0.19.0 @@ -383,10 +383,10 @@ catalogs: version: 1.59.1 postcss: specifier: ^8.5.8 - version: 8.5.8 + version: 8.5.9 prettier: specifier: ^3.8.1 - version: 3.8.1 + version: 3.8.2 prismjs: specifier: ^1.30.0 version: 1.30.0 @@ -398,16 +398,16 @@ catalogs: version: 1.1.2 react: specifier: ^19.2.4 - version: 19.2.4 + version: 19.2.5 react-dom: specifier: ^19.2.4 - version: 19.2.4 + version: 19.2.5 rehype: specifier: ^13.0.2 version: 13.0.2 rolldown: specifier: ^1.0.0-rc.13 - version: 1.0.0-rc.13 + version: 1.0.0-rc.15 rolldown-plugin-dts: specifier: ^0.23.0 version: 0.23.2 @@ -452,7 +452,7 @@ catalogs: version: 4.0.2 start-server-and-test: specifier: ^3.0.0 - version: 3.0.0 + version: 3.0.2 storybook: specifier: 10.3.3 version: 10.3.3 @@ -461,7 +461,7 @@ catalogs: version: 4.2.2 tinyglobby: specifier: ^0.2.15 - version: 0.2.15 + version: 0.2.16 ts-dedent: specifier: ^2.2.0 version: 2.2.0 @@ -479,7 +479,7 @@ catalogs: version: 6.0.2 typescript-eslint: specifier: ^8.57.2 - version: 8.58.0 + version: 8.58.1 ufo: specifier: ^1.6.3 version: 1.6.3 @@ -488,7 +488,7 @@ catalogs: version: 1.3.1 vite: specifier: ^8.0.3 - version: 8.0.3 + version: 8.0.8 vite-plugin-eslint: specifier: ^1.8.1 version: 1.8.1 @@ -519,31 +519,31 @@ catalogs: peerAngular20Plus: '@angular/animations': specifier: '>=20.0.0' - version: 21.2.6 + version: 21.2.8 '@angular/build': specifier: '>=20.0.0' - version: 21.2.4 + version: 21.2.7 '@angular/common': specifier: '>=20.0.0' - version: 21.2.6 + version: 21.2.8 '@angular/compiler': specifier: '>=20.0.0' - version: 21.2.6 + version: 21.2.8 '@angular/compiler-cli': specifier: '>=20.0.0' - version: 21.2.6 + version: 21.2.8 '@angular/core': specifier: '>=20.0.0' - version: 21.2.6 + version: 21.2.8 '@angular/language-service': specifier: '>=20.0.0' - version: 21.2.6 + version: 21.2.8 '@angular/platform-browser': specifier: '>=20.0.0' - version: 21.2.6 + version: 21.2.8 '@angular/platform-server': specifier: '>=20.0.0' - version: 21.2.6 + version: 21.2.8 rxjs: specifier: ^7.8.0 version: 7.8.2 @@ -553,38 +553,38 @@ catalogs: peerAngularBuilders: '@angular-devkit/build-angular': specifier: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 - version: 21.2.4 + version: 21.2.7 '@angular/build': specifier: ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 - version: 21.2.4 + version: 21.2.7 peerCompat: '@angular/common': specifier: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 - version: 21.2.6 + version: 21.2.8 '@angular/core': specifier: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 - version: 21.2.6 + version: 21.2.8 '@angular/platform-browser': specifier: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 - version: 21.2.6 + version: 21.2.8 '@angular/router': specifier: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 - version: 21.2.6 + version: 21.2.8 '@nx/angular': specifier: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0 || ^22 - version: 22.6.2 + version: 22.6.5 '@nx/devkit': specifier: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0 || ^22 - version: 22.6.2 + version: 22.6.5 '@nx/vite': specifier: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0 || ^22 - version: 22.6.2 + version: 22.6.5 rxjs: specifier: ^6.5.0 || ^7.5.0 version: 7.8.2 vite: specifier: ^6.0.0 || ^7.0.0 || ^8.0.0 - version: 8.0.3 + version: 8.0.8 peerContentOptional: md4x: specifier: '>=0.0.20' @@ -595,85 +595,90 @@ catalogs: peerStorybook10: '@storybook/angular': specifier: ^10.0.0 - version: 10.3.3 + version: 10.3.5 '@storybook/builder-vite': specifier: ^10.3.3 - version: 10.3.4 + version: 10.3.5 storybook: specifier: ^10.0.0 - version: 10.3.3 + version: 10.3.5 peerVitestAngular: '@analogjs/vite-plugin-angular': specifier: '*' - version: 2.4.0 + version: 2.4.5 '@angular-devkit/architect': specifier: '>=0.1500.0 < 0.2200.0' - version: 0.2102.6 + version: 0.2102.7 '@angular-devkit/schematics': specifier: '>=17.0.0' - version: 21.2.4 + version: 21.2.7 vitest: specifier: ^1.3.1 || ^2.0.0 || ^3.0.0 || ^4.0.0 - version: 4.1.2 + version: 4.1.4 zone.js: specifier: '>=0.14.0' version: 0.16.1 +patchedDependencies: + srvx@0.11.15: + hash: 12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591 + path: patches/srvx@0.11.15.patch + importers: .: dependencies: '@angular/animations': specifier: 'catalog:' - version: 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + version: 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) '@angular/cdk': specifier: 'catalog:' - version: 21.2.4(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + version: 21.2.4(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) '@angular/common': specifier: 'catalog:' - version: 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + version: 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) '@angular/compiler': specifier: 'catalog:' - version: 21.2.6 + version: 21.2.8 '@angular/core': specifier: 'catalog:' - version: 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + version: 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) '@angular/forms': specifier: 'catalog:' - version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + version: 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) '@angular/material': specifier: 'catalog:' - version: 21.2.4(2045f7bd5f6e95e11cc97fff9a766245) + version: 21.2.4(fbde9ce512ad4d9140426a0e0f8b7baf) '@angular/platform-browser': specifier: 'catalog:' - version: 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + version: 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) '@angular/platform-browser-dynamic': specifier: 'catalog:' - version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))) + version: 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))) '@angular/platform-server': specifier: 'catalog:' - version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + version: 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) '@angular/router': specifier: 'catalog:' - version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + version: 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) '@angular/ssr': specifier: 'catalog:' - version: 21.2.4(7413267c1883f3ede58570ed37d43fb5) + version: 21.2.4(9c898ff27dabd87c2e39c7d23b6394cf) '@astrojs/mdx': specifier: 'catalog:' - version: 5.0.3(astro@6.1.1(@types/node@25.5.2)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)) + version: 5.0.3(astro@6.1.1(@types/node@25.6.0)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)) '@astrojs/react': specifier: 'catalog:' - version: 5.0.2(@types/node@25.5.2)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + version: 5.0.3(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) '@mdx-js/react': specifier: 'catalog:' - version: 3.1.1(@types/react@19.2.14)(react@19.2.4) + version: 3.1.1(@types/react@19.2.14)(react@19.2.5) '@nx/angular': specifier: 'catalog:' - version: 22.7.0-beta.10(4e99d45cd480f6afd2d570979ef69272) + version: 22.7.0-beta.12(511707817f1ccc80b4289f18bce96908) '@nx/devkit': specifier: 'catalog:' - version: 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + version: 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@standard-schema/spec': specifier: 'catalog:' version: 1.1.0 @@ -682,16 +687,16 @@ importers: version: 4.2.2 '@tanstack/angular-query-experimental': specifier: 'catalog:' - version: 5.96.2(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + version: 5.99.0(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) '@tanstack/query-core': specifier: 'catalog:' - version: 5.96.2 + version: 5.99.0 ajv-formats: specifier: 'catalog:' version: 3.0.1(ajv@8.18.0) defu: specifier: 'catalog:' - version: 6.1.6 + version: 6.1.7 destr: specifier: 'catalog:' version: 2.0.5 @@ -700,13 +705,13 @@ importers: version: 4.0.2 marked: specifier: 'catalog:' - version: 17.0.5 + version: 17.0.6 marked-gfm-heading-id: specifier: 'catalog:' - version: 4.1.3(marked@17.0.5) + version: 4.1.4(marked@17.0.6) marked-highlight: specifier: 'catalog:' - version: 2.2.3(marked@17.0.5) + version: 2.2.4(marked@17.0.6) mermaid: specifier: 'catalog:' version: 11.14.0 @@ -715,10 +720,10 @@ importers: version: 1.1.2 react: specifier: 'catalog:' - version: 19.2.4 + version: 19.2.5 react-dom: specifier: 'catalog:' - version: 19.2.4(react@19.2.4) + version: 19.2.5(react@19.2.5) rehype: specifier: 'catalog:' version: 13.0.2 @@ -752,7 +757,7 @@ importers: version: 0.2102.6(chokidar@5.0.0) '@angular-devkit/build-angular': specifier: 'catalog:' - version: 21.2.4(add8bde166a9c825117621996a363ef3) + version: 21.2.4(58973c4e634acdaeac68b624dc858cb9) '@angular-devkit/core': specifier: 'catalog:' version: 21.2.4(chokidar@5.0.0) @@ -761,31 +766,31 @@ importers: version: 21.2.4(chokidar@5.0.0) '@angular-eslint/eslint-plugin': specifier: 'catalog:' - version: 21.3.1(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + version: 21.3.1(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) '@angular-eslint/eslint-plugin-template': specifier: 'catalog:' - version: 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/types@8.58.0)(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + version: 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/types@8.58.1)(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) '@angular-eslint/template-parser': specifier: 'catalog:' version: 21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) '@angular/build': specifier: 'catalog:' - version: 21.2.4(d177fe19ad80c073ee03544d343f9ed0) + version: 21.2.4(d420cc8f9f399e85da6a2b440ffa8d8e) '@angular/cli': specifier: 'catalog:' - version: 21.2.4(@types/node@25.5.2)(chokidar@5.0.0) + version: 21.2.4(@types/node@25.6.0)(chokidar@5.0.0) '@angular/compiler-cli': specifier: 'catalog:' - version: 21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2) + version: 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) '@angular/language-service': specifier: 'catalog:' - version: 21.2.6 + version: 21.2.8 '@astrojs/markdown-component': specifier: 'catalog:' version: 1.0.5 '@commitlint/cli': specifier: 'catalog:' - version: 20.5.0(@types/node@25.5.2)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.2) + version: 20.5.0(@types/node@25.6.0)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.2) '@commitlint/config-conventional': specifier: 'catalog:' version: 20.5.0 @@ -800,37 +805,37 @@ importers: version: 10.0.1(eslint@10.2.0(jiti@2.6.1)) '@netlify/functions': specifier: 'catalog:' - version: 5.1.5 + version: 5.2.0 '@nx/eslint': specifier: 'catalog:' - version: 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + version: 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@nx/eslint-plugin': specifier: 'catalog:' - version: 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint-config-prettier@10.1.8(eslint@10.2.0(jiti@2.6.1)))(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) + version: 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint-config-prettier@10.1.8(eslint@10.2.0(jiti@2.6.1)))(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) '@nx/js': specifier: 'catalog:' - version: 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + version: 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@nx/playwright': specifier: 'catalog:' - version: 22.7.0-beta.10(@babel/traverse@7.29.0)(@playwright/test@1.59.1)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + version: 22.7.0-beta.12(@babel/traverse@7.29.0)(@playwright/test@1.59.1)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@nx/plugin': specifier: 'catalog:' - version: 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/node@25.5.2)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) + version: 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/node@25.6.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) '@nx/storybook': specifier: 'catalog:' - version: 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@6.0.2) + version: 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.2) '@nx/vite': specifier: 'catalog:' - version: 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + version: 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) '@nx/vitest': specifier: 'catalog:' - version: 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + version: 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) '@nx/web': specifier: 'catalog:' - version: 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + version: 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@oxc-angular/vite': specifier: 'catalog:' - version: 0.0.22(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 0.0.22(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) '@oxc-project/runtime': specifier: 'catalog:' version: 0.123.0 @@ -851,19 +856,19 @@ importers: version: 10.0.1(semantic-release@25.0.3(typescript@6.0.2)) '@storybook/addon-docs': specifier: 'catalog:' - version: 10.3.4(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + version: 10.3.5(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) '@storybook/addon-links': specifier: 'catalog:' - version: 10.3.4(react@19.2.4)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 10.3.5(react@19.2.5)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) '@storybook/addon-vitest': specifier: 'catalog:' - version: 10.3.4(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vitest@4.1.2) + version: 10.3.5(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.4)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vitest@4.1.2) '@storybook/angular': specifier: 'catalog:' - version: 10.3.3(bc89a49b7ef7c3b0ebc444702278ad2d) + version: 10.3.3(997df74c02245c6578b235f702d52bf0) '@storybook/builder-vite': specifier: catalog:peerStorybook10 - version: 10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + version: 10.3.5(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) '@swc-node/register': specifier: 'catalog:' version: 1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2) @@ -875,13 +880,13 @@ importers: version: 0.5.21 '@tailwindcss/vite': specifier: 'catalog:' - version: 4.2.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.2.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) '@types/hast': specifier: 'catalog:' version: 3.0.4 '@types/node': specifier: 'catalog:' - version: 25.5.2 + version: 25.6.0 '@types/prismjs': specifier: 'catalog:' version: 1.26.6 @@ -905,13 +910,16 @@ importers: version: 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) '@typescript-eslint/utils': specifier: 'catalog:' - version: 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + version: 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript/native-preview': + specifier: 7.0.0-dev.20260411.1 + version: 7.0.0-dev.20260411.1 '@vitest/browser-playwright': specifier: 'catalog:' - version: 4.1.2(playwright@1.59.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + version: 4.1.2(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) '@vitest/coverage-v8': specifier: 'catalog:' - version: 4.1.2(@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2) + version: 4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2) '@vitest/ui': specifier: 'catalog:' version: 4.1.2(vitest@4.1.2) @@ -923,10 +931,10 @@ importers: version: 6.26.1(encoding@0.1.13) angular-eslint: specifier: 'catalog:' - version: 21.3.1(@angular/cli@21.2.4(@types/node@25.5.2)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript-eslint@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(typescript@6.0.2) + version: 21.3.1(@angular/cli@21.2.4(@types/node@25.6.0)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript-eslint@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(typescript@6.0.2) astro: specifier: 'catalog:' - version: 6.1.1(@types/node@25.5.2)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) + version: 6.1.1(@types/node@25.6.0)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) conventional-changelog: specifier: 'catalog:' version: 7.2.0(conventional-commits-filter@5.0.0) @@ -944,13 +952,13 @@ importers: version: 10.1.8(eslint@10.2.0(jiti@2.6.1)) eslint-plugin-oxlint: specifier: 'catalog:' - version: 1.58.0(oxlint@1.58.0(oxlint-tsgolint@0.19.0)) + version: 1.59.0(oxlint@1.59.0(oxlint-tsgolint@0.19.0)) eslint-plugin-playwright: specifier: 'catalog:' version: 2.10.1(eslint@10.2.0(jiti@2.6.1)) eslint-plugin-storybook: specifier: 'catalog:' - version: 10.3.3(eslint@10.2.0(jiti@2.6.1))(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@6.0.2) + version: 10.3.3(eslint@10.2.0(jiti@2.6.1))(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.2) execa: specifier: 'catalog:' version: 9.6.1 @@ -992,10 +1000,10 @@ importers: version: 16.4.0 marked-mangle: specifier: 'catalog:' - version: 1.1.12(marked@17.0.5) + version: 1.1.13(marked@17.0.6) marked-shiki: specifier: 'catalog:' - version: 1.2.1(marked@17.0.5)(shiki@4.0.2) + version: 1.2.1(marked@17.0.6)(shiki@4.0.2) md4x: specifier: 'catalog:' version: 0.0.25 @@ -1004,13 +1012,13 @@ importers: version: 1.2.8 ng-packagr: specifier: 'catalog:' - version: 21.2.1(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + version: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) nitro: specifier: 'catalog:' - version: 3.0.260311-beta(chokidar@5.0.0)(dotenv@16.4.7)(jiti@2.6.1)(lru-cache@11.2.7)(rollup@4.60.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 3.0.260311-beta(chokidar@5.0.0)(dotenv@16.4.7)(jiti@2.6.1)(lru-cache@11.3.3)(rollup@4.60.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) nx: specifier: 'catalog:' - version: 22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) + version: 22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) obug: specifier: 'catalog:' version: 2.1.1 @@ -1028,7 +1036,7 @@ importers: version: 0.123.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) oxlint: specifier: 'catalog:' - version: 1.58.0(oxlint-tsgolint@0.19.0) + version: 1.59.0(oxlint-tsgolint@0.19.0) oxlint-tsgolint: specifier: 'catalog:' version: 0.19.0 @@ -1037,10 +1045,10 @@ importers: version: 1.59.1 postcss: specifier: 'catalog:' - version: 8.5.8 + version: 8.5.9 prettier: specifier: 'catalog:' - version: 3.8.1 + version: 3.8.2 prismjs: specifier: 'catalog:' version: 1.30.0 @@ -1049,16 +1057,16 @@ importers: version: 2.4.2 rolldown: specifier: 'catalog:' - version: 1.0.0-rc.13 + version: 1.0.0-rc.15 rolldown-plugin-dts: specifier: 'catalog:' - version: 0.23.2(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rolldown@1.0.0-rc.13)(typescript@6.0.2) + version: 0.23.2(@typescript/native-preview@7.0.0-dev.20260411.1)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rolldown@1.0.0-rc.15)(typescript@6.0.2) rollup: specifier: 'catalog:' version: 4.60.1 rollup-plugin-visualizer: specifier: 'catalog:' - version: 7.0.1(rolldown@1.0.0-rc.13)(rollup@4.60.1) + version: 7.0.1(rolldown@1.0.0-rc.15)(rollup@4.60.1) sass: specifier: 'catalog:' version: 1.99.0 @@ -1088,16 +1096,16 @@ importers: version: 4.0.2 start-server-and-test: specifier: 'catalog:' - version: 3.0.0 + version: 3.0.2 storybook: specifier: 'catalog:' - version: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) tailwindcss: specifier: 'catalog:' version: 4.2.2 tinyglobby: specifier: 'catalog:' - version: 0.2.15 + version: 0.2.16 ts-dedent: specifier: 'catalog:' version: 2.2.0 @@ -1106,31 +1114,31 @@ importers: version: 27.0.2 tsdown: specifier: 'catalog:' - version: 0.21.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(synckit@0.11.12)(typescript@6.0.2) + version: 0.21.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@typescript/native-preview@7.0.0-dev.20260411.1)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(synckit@0.11.12)(typescript@6.0.2) typescript: specifier: 'catalog:' version: 6.0.2 typescript-eslint: specifier: 'catalog:' - version: 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + version: 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) vite: specifier: 'catalog:' - version: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + version: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) vite-plugin-eslint: specifier: 'catalog:' - version: 1.8.1(eslint@10.2.0(jiti@2.6.1))(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 1.8.1(eslint@10.2.0(jiti@2.6.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) vite-plugin-inspect: specifier: 'catalog:' - version: 12.0.0-beta.1(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(ws@8.20.0) + version: 12.0.0-beta.1(typescript@6.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(ws@8.20.0) vite-tsconfig-paths: specifier: 'catalog:' - version: 7.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 7.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(typescript@6.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) vitefu: specifier: 'catalog:' - version: 1.1.3(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 1.1.3(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) vitest: specifier: 'catalog:' - version: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.1.2(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) xmlbuilder2: specifier: 'catalog:' version: 4.0.3 @@ -1140,9 +1148,15 @@ importers: '@analogjs/content': specifier: workspace:* version: link:../../packages/content + '@analogjs/my-package': + specifier: workspace:* + version: link:../../libs/my-package '@analogjs/router': specifier: workspace:* version: link:../../packages/router + '@analogjs/top-bar': + specifier: workspace:* + version: link:../../libs/top-bar es-toolkit: specifier: 'catalog:' version: 1.45.1 @@ -1156,6 +1170,9 @@ importers: '@analogjs/vite-plugin-angular': specifier: workspace:* version: link:../../packages/vite-plugin-angular + '@analogjs/vitest-angular': + specifier: workspace:* + version: link:../../packages/vitest-angular apps/analog-app-e2e: {} @@ -1166,13 +1183,13 @@ importers: version: link:../../packages/astro-angular '@astrojs/mdx': specifier: 'catalog:' - version: 5.0.3(astro@6.1.1(@types/node@25.5.2)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + version: 5.0.3(astro@6.1.1(@types/node@25.6.0)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) '@astrojs/react': specifier: 'catalog:' - version: 5.0.2(@types/node@25.5.2)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + version: 5.0.3(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) astro: specifier: 'catalog:' - version: 6.1.1(@types/node@25.5.2)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + version: 6.1.1(@types/node@25.6.0)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) apps/astro-app-e2e-playwright: {} @@ -1195,35 +1212,38 @@ importers: dependencies: '@docusaurus/core': specifier: 3.9.2 - version: 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) + version: 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/faster': + specifier: 3.9.2 + version: 3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7) '@docusaurus/preset-classic': specifier: 3.9.2 - version: 3.9.2(@algolia/client-search@5.50.1)(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@6.0.2) + version: 3.9.2(@algolia/client-search@5.50.1)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(search-insights@2.17.3)(typescript@6.0.2) '@mdx-js/react': specifier: ^3.1.1 - version: 3.1.1(@types/react@18.3.28)(react@19.2.4) + version: 3.1.1(@types/react@18.3.28)(react@19.2.5) clsx: specifier: ^2.1.1 version: 2.1.1 prism-react-renderer: specifier: ^2.4.1 - version: 2.4.1(react@19.2.4) + version: 2.4.1(react@19.2.5) react: specifier: 'catalog:' - version: 19.2.4 + version: 19.2.5 react-dom: specifier: 'catalog:' - version: 19.2.4(react@19.2.4) + version: 19.2.5(react@19.2.5) devDependencies: '@docusaurus/module-type-aliases': specifier: 3.9.2 - version: 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/tsconfig': specifier: 3.9.2 version: 3.9.2 '@docusaurus/types': specifier: 3.9.2 - version: 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/react': specifier: ^18.3.28 version: 18.3.28 @@ -1242,6 +1262,13 @@ importers: '@analogjs/router': specifier: workspace:* version: link:../../packages/router + devDependencies: + '@analogjs/platform': + specifier: workspace:* + version: link:../../packages/platform + '@analogjs/vite-plugin-angular': + specifier: workspace:* + version: link:../../packages/vite-plugin-angular apps/tailwind-debug-app: dependencies: @@ -1275,7 +1302,7 @@ importers: version: link:../../packages/vitest-angular '@tailwindcss/vite': specifier: 'catalog:' - version: 4.2.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.2.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) daisyui: specifier: ^5.5.19 version: 5.5.19 @@ -1290,12 +1317,15 @@ importers: '@analogjs/vite-plugin-angular': specifier: workspace:* version: link:../../packages/vite-plugin-angular + '@analogjs/vitest-angular': + specifier: workspace:* + version: link:../../packages/vitest-angular libs/my-package: dependencies: '@angular/core': specifier: catalog:peerCompat - version: 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + version: 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -1303,14 +1333,24 @@ importers: '@analogjs/vite-plugin-angular': specifier: workspace:* version: link:../../packages/vite-plugin-angular + '@analogjs/vitest-angular': + specifier: workspace:* + version: link:../../packages/vitest-angular - libs/shared/feature: {} + libs/shared/feature: + devDependencies: + '@analogjs/vitest-angular': + specifier: workspace:* + version: link:../../../packages/vitest-angular libs/top-bar: devDependencies: '@analogjs/vite-plugin-angular': specifier: workspace:* version: link:../../packages/vite-plugin-angular + '@analogjs/vitest-angular': + specifier: workspace:* + version: link:../../packages/vitest-angular packages/astro-angular: dependencies: @@ -1319,31 +1359,31 @@ importers: version: link:../vite-plugin-angular '@angular/animations': specifier: catalog:peerAngular20Plus - version: 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + version: 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) '@angular/build': specifier: catalog:peerAngular20Plus - version: 21.2.4(d177fe19ad80c073ee03544d343f9ed0) + version: 21.2.7(d96f627e1308d93e6fd6257980a11d4d) '@angular/common': specifier: catalog:peerAngular20Plus - version: 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + version: 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) '@angular/compiler': specifier: catalog:peerAngular20Plus - version: 21.2.6 + version: 21.2.8 '@angular/compiler-cli': specifier: catalog:peerAngular20Plus - version: 21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2) + version: 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) '@angular/core': specifier: catalog:peerAngular20Plus - version: 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + version: 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) '@angular/language-service': specifier: catalog:peerAngular20Plus - version: 21.2.6 + version: 21.2.8 '@angular/platform-browser': specifier: catalog:peerAngular20Plus - version: 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + version: 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) '@angular/platform-server': specifier: catalog:peerAngular20Plus - version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + version: 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) rehype: specifier: ^13.0.2 version: 13.0.2 @@ -1355,25 +1395,25 @@ importers: version: 2.8.1 vite: specifier: catalog:peerCompat - version: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + version: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) packages/content: dependencies: '@angular/common': specifier: catalog:peerCompat - version: 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + version: 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) '@angular/core': specifier: catalog:peerCompat - version: 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + version: 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) '@angular/platform-browser': specifier: catalog:peerCompat - version: 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + version: 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) '@angular/router': specifier: catalog:peerCompat - version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + version: 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) '@nx/devkit': specifier: catalog:peerCompat - version: 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + version: 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@standard-schema/spec': specifier: 'catalog:' version: 1.1.0 @@ -1382,16 +1422,16 @@ importers: version: 4.0.2 marked: specifier: 'catalog:' - version: 17.0.5 + version: 17.0.6 marked-gfm-heading-id: specifier: 'catalog:' - version: 4.1.3(marked@17.0.5) + version: 4.1.4(marked@17.0.6) marked-highlight: specifier: 'catalog:' - version: 2.2.3(marked@17.0.5) + version: 2.2.4(marked@17.0.6) marked-mangle: specifier: 'catalog:' - version: 1.1.12(marked@17.0.5) + version: 1.1.13(marked@17.0.6) md4x: specifier: catalog:peerContentOptional version: 0.0.25 @@ -1417,18 +1457,21 @@ importers: '@analogjs/vite-plugin-angular': specifier: workspace:* version: link:../vite-plugin-angular + '@analogjs/vitest-angular': + specifier: workspace:* + version: link:../vitest-angular packages/content-plugin: dependencies: '@nx/devkit': specifier: catalog:peerCompat - version: 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + version: 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) tsdown: specifier: 'catalog:' - version: 0.21.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(synckit@0.11.12)(typescript@6.0.2) + version: 0.21.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@typescript/native-preview@7.0.0-dev.20260411.1)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(synckit@0.11.12)(typescript@6.0.2) vite: specifier: catalog:peerCompat - version: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + version: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) packages/create-analog: dependencies: @@ -1462,13 +1505,13 @@ importers: version: link:../vite-plugin-nitro '@nx/angular': specifier: catalog:peerCompat - version: 22.6.2(471fad38a868a22111c123225b52bfe1) + version: 22.6.5(dfc411f39ba79e806b6c04d6ffa96d4a) '@nx/devkit': specifier: catalog:peerCompat - version: 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + version: 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@nx/vite': specifier: catalog:peerCompat - version: 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + version: 22.6.5(67fb89f18cba02cb97ab828d68b53680) es-toolkit: specifier: 'catalog:' version: 1.45.1 @@ -1477,40 +1520,40 @@ importers: version: 4.0.2 marked: specifier: 'catalog:' - version: 17.0.5 + version: 17.0.6 marked-gfm-heading-id: specifier: 'catalog:' - version: 4.1.3(marked@17.0.5) + version: 4.1.4(marked@17.0.6) marked-highlight: specifier: 'catalog:' - version: 2.2.3(marked@17.0.5) + version: 2.2.4(marked@17.0.6) marked-mangle: specifier: 'catalog:' - version: 1.1.12(marked@17.0.5) + version: 1.1.13(marked@17.0.6) marked-shiki: specifier: 'catalog:' - version: 1.2.1(marked@17.0.5)(shiki@4.0.2) + version: 1.2.1(marked@17.0.6)(shiki@4.0.2) nitro: specifier: 'catalog:' - version: 3.0.260311-beta(chokidar@5.0.0)(dotenv@16.4.7)(jiti@2.6.1)(lru-cache@11.2.7)(rollup@4.60.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 3.0.260311-beta(chokidar@5.0.0)(dotenv@16.4.7)(jiti@2.6.1)(lru-cache@11.3.3)(rollup@4.60.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) obug: specifier: 'catalog:' version: 2.1.1 rolldown: specifier: 'catalog:' - version: 1.0.0-rc.13 + version: 1.0.0-rc.15 shiki: specifier: 'catalog:' version: 4.0.2 tinyglobby: specifier: 'catalog:' - version: 0.2.15 + version: 0.2.16 vite: specifier: catalog:peerCompat - version: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + version: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) vitefu: specifier: 'catalog:' - version: 1.1.3(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 1.1.3(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) packages/router: dependencies: @@ -1519,19 +1562,19 @@ importers: version: link:../content '@angular/core': specifier: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 - version: 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + version: 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) '@angular/platform-server': specifier: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 - version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + version: 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) '@angular/router': specifier: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 - version: 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + version: 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) '@standard-schema/spec': specifier: 'catalog:' version: 1.1.0 '@tanstack/angular-query-experimental': specifier: '>=5.95.0' - version: 5.96.2(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + version: 5.99.0(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) es-toolkit: specifier: 'catalog:' version: 1.45.1 @@ -1545,33 +1588,36 @@ importers: '@analogjs/vite-plugin-angular': specifier: workspace:* version: link:../vite-plugin-angular + '@analogjs/vitest-angular': + specifier: workspace:* + version: link:../vitest-angular packages/storybook-angular: dependencies: '@analogjs/vite-plugin-angular': specifier: catalog:peerVitestAngular - version: 2.4.0(@angular-devkit/build-angular@21.2.4(add8bde166a9c825117621996a363ef3))(@angular/build@21.2.4(d177fe19ad80c073ee03544d343f9ed0)) + version: 2.4.5(@angular-devkit/build-angular@21.2.7(3964406a4d3b8b07c14eff877b373c9b))(@angular/build@21.2.7(8e65f8e48c9e332d0b9f72f53830b70c)) '@storybook/angular': specifier: catalog:peerStorybook10 - version: 10.3.3(bc89a49b7ef7c3b0ebc444702278ad2d) + version: 10.3.5(4b5b4b200dc9e9443dd730f6f6132f07) '@storybook/builder-vite': specifier: catalog:peerStorybook10 - version: 10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + version: 10.3.5(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) storybook: specifier: catalog:peerStorybook10 - version: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) vite: specifier: catalog:peerCompat - version: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + version: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) packages/vite-plugin-angular: dependencies: '@angular-devkit/build-angular': specifier: catalog:peerAngularBuilders - version: 21.2.4(b8427e3316f5f1e4538d50a5e8d618ff) + version: 21.2.7(fc79cc3d3a205494e4e38b22dbe7acdf) '@angular/build': specifier: catalog:peerAngularBuilders - version: 21.2.4(33aa2f808a50cac312b6b6a28e7f9322) + version: 21.2.7(96b25aee48d0098251f6172ee94d10d9) es-toolkit: specifier: 'catalog:' version: 1.45.1 @@ -1586,10 +1632,10 @@ importers: version: 11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) rolldown: specifier: 'catalog:' - version: 1.0.0-rc.13 + version: 1.0.0-rc.15 tinyglobby: specifier: 'catalog:' - version: 0.2.15 + version: 0.2.16 packages/vite-plugin-angular-tools: {} @@ -1597,10 +1643,10 @@ importers: dependencies: defu: specifier: 'catalog:' - version: 6.1.6 + version: 6.1.7 nitro: specifier: 'catalog:' - version: 3.0.260311-beta(chokidar@5.0.0)(dotenv@16.4.7)(jiti@2.6.1)(lru-cache@11.2.7)(rollup@4.60.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 3.0.260311-beta(chokidar@5.0.0)(dotenv@16.4.7)(jiti@2.6.1)(lru-cache@11.3.3)(rollup@4.60.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) obug: specifier: 'catalog:' version: 2.1.1 @@ -1624,19 +1670,19 @@ importers: dependencies: '@analogjs/vite-plugin-angular': specifier: catalog:peerVitestAngular - version: 2.4.0(@angular-devkit/build-angular@21.2.4(add8bde166a9c825117621996a363ef3))(@angular/build@21.2.4(d177fe19ad80c073ee03544d343f9ed0)) + version: 2.4.5(@angular-devkit/build-angular@21.2.7(3964406a4d3b8b07c14eff877b373c9b))(@angular/build@21.2.7(8e65f8e48c9e332d0b9f72f53830b70c)) '@angular-devkit/architect': specifier: catalog:peerVitestAngular - version: 0.2102.6(chokidar@5.0.0) + version: 0.2102.7(chokidar@5.0.0) '@angular-devkit/schematics': specifier: catalog:peerVitestAngular - version: 21.2.4(chokidar@5.0.0) + version: 21.2.7(chokidar@5.0.0) oxc-transform: specifier: 'catalog:' version: 0.123.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) vitest: specifier: catalog:peerVitestAngular - version: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + version: 4.1.4(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2))(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) zone.js: specifier: catalog:peerVitestAngular version: 0.16.1 @@ -1809,8 +1855,8 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@analogjs/vite-plugin-angular@2.4.0': - resolution: {integrity: sha512-aMDyyI7vOZ39vyMjCifqnkw4854GJtmfNtC4gxws6f6ET2JeXiNQApf6r+HB2M6dP3kAuPLqaQbNEhh0FrunYA==} + '@analogjs/vite-plugin-angular@2.4.5': + resolution: {integrity: sha512-nrDV7vqbclBuACykxO5H1TBuG9G1GAT/IW7I8if1oGDHyiNNhjSs/lhxTomJXrgYeJ4SXWBnx+x+8ctb/3tpFg==} peerDependencies: '@angular-devkit/build-angular': ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 '@angular/build': ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 @@ -1830,6 +1876,11 @@ packages: 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/architect@0.2102.7': + resolution: {integrity: sha512-4K/5hln9iaPEt3F/NyYqncNLvYpzSjRslEkHl2xIgZwQsIFHEvhnDRBYj2/oatURQhBqO/Yu15z/icVOYLxuTg==} + 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@21.2.4': resolution: {integrity: sha512-cwkv3hI1O8lxrKYUEDGYqIKVjN967kjrBjcTiTQODd9p3zk1NPI8uBPK2zFYdJqmDNR6lBdayH4dNMEUI5v3/Q==} 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'} @@ -1880,6 +1931,56 @@ packages: tailwindcss: optional: true + '@angular-devkit/build-angular@21.2.7': + resolution: {integrity: sha512-MeAsrvTq3of5x2r5g3cFhWpcb/goHVC5/7BfE+AiWuwClqsgbVoD/HiSXkQ50g2P+JQJ3Qx/DR2cC01H+k6pjg==} + 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': ^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.7 + '@web/test-runner': ^0.20.0 + browser-sync: ^3.0.2 + jest: ^30.2.0 + jest-environment-jsdom: ^30.2.0 + karma: ^6.3.0 + ng-packagr: ^21.0.0 + protractor: ^7.0.0 + tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 + typescript: '>=5.9 <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.2102.4': resolution: {integrity: sha512-LssZSYuqF2b6uf/vLSIHOWjQK/NH4hsW96D5EhphqWyzKJpCH/bi0phJ4/n6dTUAryBPoULmOeiiZOv7RrFaRw==} 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'} @@ -1887,6 +1988,13 @@ packages: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 + '@angular-devkit/build-webpack@0.2102.7': + resolution: {integrity: sha512-EANoPney0B0SsbF5LVZvABDkxrSXw0nly7TmGrrV5UNmSLxhmF29IZ14vVGyy7En/zJHOIlQAP7YI39PdtYxqg==} + 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@21.1.0': resolution: {integrity: sha512-dPfVy0CictDjWffRv4pGTPOFjdlJL3ZkGUqxzaosUjMbJW+Ai9cNn1VNr7zxYZ4kem3BxLBh1thzDsCPrkXlZA==} 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'} @@ -1914,6 +2022,15 @@ packages: chokidar: optional: true + '@angular-devkit/core@21.2.7': + resolution: {integrity: sha512-DONYY5u4IENO2qpd23mODaE4JI2EIohWV1kuJnsU9HIcm5wN714QB2z9WY/s4gLfUiAMIUu/8lpnW/0kOQZAnQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^5.0.0 + peerDependenciesMeta: + chokidar: + optional: true + '@angular-devkit/schematics@21.1.0': resolution: {integrity: sha512-sVgTntCZCOV7mOpHzj6V14KOAoy4B9Ur9yHNRFZVgL2yD77TYRrJ0qwq+l7Im9fSjMCar6csjboqCvyAEpfV1g==} 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'} @@ -1922,6 +2039,10 @@ packages: resolution: {integrity: sha512-LkmpNrjcbGmm61YzDzli3m7VYv2h/8mLmXPZBtAmjXjpJWgbsls7KOTF3cjln7Pd4eYmF/dXMR0oThENwga5iA==} 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/schematics@21.2.7': + resolution: {integrity: sha512-LYAjjUI1qM7pR/sd0yYt8OLA6ljOOXjcfzV40I5XQNmhAxq90YYS5xwMcixOmWX+z5zvCYGvPXvJGWjzio6SUg==} + 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-eslint/builder@21.3.1': resolution: {integrity: sha512-1f1Lyp5e7OH6txiV224HaY3G1uRCj91OSKq7hT2Vw9NRw6zWFc1anBpDeLVjpL9ptUxzUGIQR5jEV54hOPayoQ==} peerDependencies: @@ -1966,11 +2087,11 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '*' - '@angular/animations@21.2.6': - resolution: {integrity: sha512-SPzTOlkyVagPdb7OMe9hw3dnpMGq2p/nADatzNfRUMXwit8AU8VaiPIrFRsCD52sAL1zDDj60gKsk/dprzIyFA==} + '@angular/animations@21.2.8': + resolution: {integrity: sha512-RIqfVmfretQ0x/mXgMXe7Bw0Tpe8+zBV/Mm2OaNVyrmNG+9gYItEn5t/ZnQGcPD5nMNqckgp3+4/ZMc/qkS5ww==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 21.2.6 + '@angular/core': 21.2.8 '@angular/build@21.2.4': resolution: {integrity: sha512-H/3qBfITqCipFFntUj961YbjlJsXjFI1Td7KZWF+WbcPVW11AgS2+CouE5aqdt4Gx7QZOM5HiBe+f7Ub1dgxAg==} @@ -2018,6 +2139,52 @@ packages: vitest: optional: true + '@angular/build@21.2.7': + resolution: {integrity: sha512-FpSkFqpsJtdN1cROekVYkmeV1QepdP+/d7fyYQEuNmlOlyqXSDh9qJmy4iL9VNbAU0rk+vFCtYM86rO7Pt9cSw==} + 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': ^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.7 + 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.4': resolution: {integrity: sha512-Zv+q9Z/wVWTt0ckuO3gnU7PbpCLTr1tKPEsofLGGzDufA5/85aBLn2UiLcjlY6wQ+V3EMqANhGo/8XJgvBEYFA==} peerDependencies: @@ -2031,33 +2198,33 @@ packages: 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@21.2.6': - resolution: {integrity: sha512-2FcpZ1h6AZ4JwCIlnpHCYrbRTGQTOj/RFXkuX/qw7K6cFmJGfWFMmr++xWtHZEvUddfbR9hqDo+v1mkqEKE/Kw==} + '@angular/common@21.2.8': + resolution: {integrity: sha512-ZvgcxsLPkSG0B1jc2ZXshAWIFBoQ0U9uwIX/zG/RGcfMpoKyEDNAebli6FTIpxIlz/35rtBNV7EGPhinjPTJFQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/core': 21.2.6 + '@angular/core': 21.2.8 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@21.2.6': - resolution: {integrity: sha512-CiPmat4+D+hWXMTAY++09WeII/5D0r6iTjdLdaTq8tlo0uJcrOlazib4CpA94kJ2CRdzfhmC1H+ttwBI1xIlTg==} + '@angular/compiler-cli@21.2.8': + resolution: {integrity: sha512-S0W+6QazCsn/4xWZu0V5VmU9zmKIlqFR2FJSsAQUPReVmpA40SuQSP6A/cyMVIMYaHvO/cAXSHJVgpxBzBSL/Q==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} hasBin: true peerDependencies: - '@angular/compiler': 21.2.6 + '@angular/compiler': 21.2.8 typescript: '>=5.9 <6.1' peerDependenciesMeta: typescript: optional: true - '@angular/compiler@21.2.6': - resolution: {integrity: sha512-shGkb/aAIPbG8oSYkVJ0msGlRdDVcJBVaUVx2KenMltifQjfLn5N8DFMAzOR6haaA3XeugFExxKqmvySjrVq+A==} + '@angular/compiler@21.2.8': + resolution: {integrity: sha512-Il9KlT6qX8rWmun5jY6wMLx56bCQZpOVIFEyHM4ai2wmxvbqyxgRFKDs4iMRNn1h04Tgupl6cKSqP9lecIvH6w==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@angular/core@21.2.6': - resolution: {integrity: sha512-svgK5DhFlQlS+sMybXftn08rHHRiDGY/uIKT5LZUaKgyffnkPb8uClpMIW0NzANtU8qs8pwgDZFoJw85Ia3oqQ==} + '@angular/core@21.2.8': + resolution: {integrity: sha512-hI7n4t8qgFJaVV55LIaNuzcdP+/IeuqQRu3huSLo47Gf6uZAD0Acj4Ye9SC8YNmhUu5/RiImngm9NOlcI2oCJA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/compiler': 21.2.6 + '@angular/compiler': 21.2.8 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 || ~0.16.0 peerDependenciesMeta: @@ -2066,17 +2233,17 @@ packages: zone.js: optional: true - '@angular/forms@21.2.6': - resolution: {integrity: sha512-i8BoWxBAm0g2xOMcQ8wTdj07gqMPIFYIyefCOo0ezcGj5XhYjd+C2UrYnKsup0aMZqqEAO1l2aZbmfHx9xLheQ==} + '@angular/forms@21.2.8': + resolution: {integrity: sha512-tyQAHjfMHcqETRkKQaZHjYqIK9W8uRenPpY2DF/Jl+S7CwcaX4T8t8TKgzvTynNzQW9QGiLg0pqVosVMKzBXJg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.2.6 - '@angular/core': 21.2.6 - '@angular/platform-browser': 21.2.6 + '@angular/common': 21.2.8 + '@angular/core': 21.2.8 + '@angular/platform-browser': 21.2.8 rxjs: ^6.5.3 || ^7.4.0 - '@angular/language-service@21.2.6': - resolution: {integrity: sha512-ui2Zf/h736Kf/jwyXHN2OBQC9fEzGUCz5fJr72sEe4nqa6aTiCL0FfkTarHDLKEYPNr8M+ZX/icgo3j9yztJhQ==} + '@angular/language-service@21.2.8': + resolution: {integrity: sha512-Eyvoo3ttFhRAAEmPcLkLfbEtTLfKnAxRAbxNoA9eDXozskkgaDDBUAHd9qOC1A6cnVda5nP4aNeUa+I81Q2maw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} '@angular/material@21.2.4': @@ -2089,43 +2256,43 @@ packages: '@angular/platform-browser': ^21.0.0 || ^22.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/platform-browser-dynamic@21.2.6': - resolution: {integrity: sha512-6a+zA9jM70b1kH3fSfAJIEVmkE3qB3oIXw7otWkv1nEhOJtNO0mM0dTUuO70C3GhnV9tmpLXa2him56C2LhVig==} + '@angular/platform-browser-dynamic@21.2.8': + resolution: {integrity: sha512-9XeplSHsKnLDm14dvwXG00Ox6WbDrhf7ub7MxxcJ6gCgRm/yqJ3Vrz4a+NBpYnelapqiCCGEdHeyx2xt8vG1qA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.2.6 - '@angular/compiler': 21.2.6 - '@angular/core': 21.2.6 - '@angular/platform-browser': 21.2.6 + '@angular/common': 21.2.8 + '@angular/compiler': 21.2.8 + '@angular/core': 21.2.8 + '@angular/platform-browser': 21.2.8 - '@angular/platform-browser@21.2.6': - resolution: {integrity: sha512-LW1vPXVHvy71LBahn+fSzPlWQl25kJIdcXq+ptG7HsMVgbPQ3/vvkKXAHYaRdppLGCFL+v+3dQGHYLNLiYL9qg==} + '@angular/platform-browser@21.2.8': + resolution: {integrity: sha512-4fwmGf7GCuIsjFqx1gqqWC92YjlN9SmGJO17TPPsOm5zUOnDx+h3Bj9XjdXxlcBtugTb2xHk6Auqyv3lzWGlkw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/animations': 21.2.6 - '@angular/common': 21.2.6 - '@angular/core': 21.2.6 + '@angular/animations': 21.2.8 + '@angular/common': 21.2.8 + '@angular/core': 21.2.8 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/platform-server@21.2.6': - resolution: {integrity: sha512-IatXqKzRRT8H1UolijS3Lv3SgthH5w3qHe5ZpQADYi9NIaIvtVMnDH3kIxWGhepjMtvUz235J3E6FrPer6mNZA==} + '@angular/platform-server@21.2.8': + resolution: {integrity: sha512-dIbw8NsDGiKkA388AM8eq2IpsQcpTKUSGXyNCv6HlJi6BULF3zAAH9eeGXrbibrcKru2p02Vs8lxnLzo+5tkLw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.2.6 - '@angular/compiler': 21.2.6 - '@angular/core': 21.2.6 - '@angular/platform-browser': 21.2.6 + '@angular/common': 21.2.8 + '@angular/compiler': 21.2.8 + '@angular/core': 21.2.8 + '@angular/platform-browser': 21.2.8 rxjs: ^6.5.3 || ^7.4.0 - '@angular/router@21.2.6': - resolution: {integrity: sha512-0ajhkKYeOqHQEEH88+Q0HrheR3helwTvdTqD/0gTaapCe+HOoC+SYwmzzsYP2zwAxBNQEg4JHOGKQ30X9/gwgw==} + '@angular/router@21.2.8': + resolution: {integrity: sha512-KSlUbFHHKY84G6iKlB2FDMmh+lLmGjmpyT1p/kx8qZm1BuxJGOOU+oNgkCfaPJT1R2/muDXuxQ51uc/la6y28g==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: - '@angular/common': 21.2.6 - '@angular/core': 21.2.6 - '@angular/platform-browser': 21.2.6 + '@angular/common': 21.2.8 + '@angular/core': 21.2.8 + '@angular/platform-browser': 21.2.8 rxjs: ^6.5.3 || ^7.4.0 '@angular/ssr@21.2.4': @@ -2146,12 +2313,12 @@ packages: resolution: {integrity: sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==} engines: {node: '>=4'} - '@asamuzakjp/css-color@5.1.5': - resolution: {integrity: sha512-8cMAA1bE66Mb/tfmkhcfJLjEPgyT7SSy6lW6id5XL113ai1ky76d/1L27sGnXCMsLfq66DInAU3OzuahB4lu9Q==} + '@asamuzakjp/css-color@5.1.10': + resolution: {integrity: sha512-02OhhkKtgNRuicQ/nF3TRnGsxL9wp0r3Y7VlKWyOHHGmGyvXv03y+PnymU8FKFJMTjIr1Bk8U2g1HWSLrpAHww==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - '@asamuzakjp/dom-selector@7.0.6': - resolution: {integrity: sha512-Tgmk6EQM0nc9xvp7sEHRVavbknhb/vGKht+04yAT3t5KQwZ02CSobCtcFgaHH04ZrjD1BhEKNA8tRhzFV20gkA==} + '@asamuzakjp/dom-selector@7.0.9': + resolution: {integrity: sha512-r3ElRr7y8ucyN2KdICwGsmj19RoN13CLCa/pvGydghWK6ZzeKQ+TcDjVdtEZz2ElpndM5jXw//B9CEee0mWnVg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} '@asamuzakjp/nwsapi@2.3.9': @@ -2179,8 +2346,8 @@ packages: resolution: {integrity: sha512-nksZQVjlferuWzhPsBpQ1JE5XuKAf1id1/9Hj4a9KG4+ofrlzxUUwX4YGQF/SuDiuiGKEnzopGOt38F3AnVWsQ==} engines: {node: '>=22.12.0'} - '@astrojs/react@5.0.2': - resolution: {integrity: sha512-BDpPrapV3Wgp9sD7aTMvP+ORH0jFEue9OmkBu98KcBbTlsQCnvisDW3m7PQrMptXwEDlX5HGfP/CHmkEVY2tZA==} + '@astrojs/react@5.0.3': + resolution: {integrity: sha512-z6JXjgADH4/7e0hqcRj+dO9UQlrKmsm2ZJoVT1GzOTYY0ThQ3Znpfr8tY8XKlEHWSTUlT9LP5u4v6QpEJwLz5A==} engines: {node: '>=22.12.0'} peerDependencies: '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0 @@ -2928,20 +3095,20 @@ packages: resolution: {integrity: sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==} engines: {node: '>=18'} - '@chevrotain/cst-dts-gen@11.1.2': - resolution: {integrity: sha512-XTsjvDVB5nDZBQB8o0o/0ozNelQtn2KrUVteIHSlPd2VAV2utEb6JzyCJaJ8tGxACR4RiBNWy5uYUHX2eji88Q==} + '@chevrotain/cst-dts-gen@12.0.0': + resolution: {integrity: sha512-fSL4KXjTl7cDgf0B5Rip9Q05BOrYvkJV/RrBTE/bKDN096E4hN/ySpcBK5B24T76dlQ2i32Zc3PAE27jFnFrKg==} - '@chevrotain/gast@11.1.2': - resolution: {integrity: sha512-Z9zfXR5jNZb1Hlsd/p+4XWeUFugrHirq36bKzPWDSIacV+GPSVXdk+ahVWZTwjhNwofAWg/sZg58fyucKSQx5g==} + '@chevrotain/gast@12.0.0': + resolution: {integrity: sha512-1ne/m3XsIT8aEdrvT33so0GUC+wkctpUPK6zU9IlOyJLUbR0rg4G7ZiApiJbggpgPir9ERy3FRjT6T7lpgetnQ==} - '@chevrotain/regexp-to-ast@11.1.2': - resolution: {integrity: sha512-nMU3Uj8naWer7xpZTYJdxbAs6RIv/dxYzkYU8GSwgUtcAAlzjcPfX1w+RKRcYG8POlzMeayOQ/znfwxEGo5ulw==} + '@chevrotain/regexp-to-ast@12.0.0': + resolution: {integrity: sha512-p+EW9MaJwgaHguhoqwOtx/FwuGr+DnNn857sXWOi/mClXIkPGl3rn7hGNWvo31HA3vyeQxjqe+H36yZJwYU8cA==} - '@chevrotain/types@11.1.2': - resolution: {integrity: sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==} + '@chevrotain/types@12.0.0': + resolution: {integrity: sha512-S+04vjFQKeuYw0/eW3U52LkAHQsB1ASxsPGsLPUyQgrZ2iNNibQrsidruDzjEX2JYfespXMG0eZmXlhA6z7nWA==} - '@chevrotain/utils@11.1.2': - resolution: {integrity: sha512-4mudFAQ6H+MqBTfqLmU7G1ZwRzCLfJEooL/fsF6rCX5eePMbGhoy5n4g+G4vlh2muDcsCTJtL+uKbOzWxs5LHA==} + '@chevrotain/utils@12.0.0': + resolution: {integrity: sha512-lB59uJoaGIfOOL9knQqQRfhl9g7x8/wqFkp13zTdkRu1huG9kg6IJs1O8hqj9rs6h7orGxHJUKb+mX3rPbWGhA==} '@clack/core@1.2.0': resolution: {integrity: sha512-qfxof/3T3t9DPU/Rj3OmcFyZInceqj/NVtO9rwIuJqCUgh32gwPjpFQQp/ben07qKlhpwq7GzfWpST4qdJ5Drg==} @@ -3043,12 +3210,12 @@ packages: resolution: {integrity: sha512-oWxJza7CpWR8/FeWYfE6j+jgncnGBsTWnZLt5rD2GUpsGSQTuGrsFPnmbbaVLgRS5QIVWBJYke7QFBr/7qVMWg==} engines: {node: '>= 10.0.0'} - '@conventional-changelog/git-client@2.6.0': - resolution: {integrity: sha512-T+uPDciKf0/ioNNDpMGc8FDsehJClZP0yR3Q5MN6wE/Y/1QZ7F+80OgznnTCOlMEG4AV0LvH2UJi3C/nBnaBUg==} + '@conventional-changelog/git-client@2.7.0': + resolution: {integrity: sha512-j7A8/LBEQ+3rugMzPXoKYzyUPpw/0CBQCyvtTR7Lmu4olG4yRC/Tfkq79Mr3yuPs0SUitlO2HwGP3gitMJnRFw==} engines: {node: '>=18'} peerDependencies: conventional-commits-filter: ^5.0.0 - conventional-commits-parser: ^6.3.0 + conventional-commits-parser: ^6.4.0 peerDependenciesMeta: conventional-commits-filter: optional: true @@ -3459,6 +3626,12 @@ packages: resolution: {integrity: sha512-8gBKup94aGttRduABsj7bpPFTX7kbwu+xh3K9NMCF5K4bWBqTFYW+REKHF6iBVDHRJ4grZdIPbvkiHd/XNKRMQ==} engines: {node: '>=20.0'} + '@docusaurus/faster@3.9.2': + resolution: {integrity: sha512-DEVIwhbrZZ4ir31X+qQNEQqDWkgCJUV6kiPPAd2MGTY8n5/n0c4B8qA5k1ipF2izwH00JEf0h6Daaut71zzkyw==} + engines: {node: '>=20.0'} + peerDependencies: + '@docusaurus/types': '*' + '@docusaurus/logger@3.9.2': resolution: {integrity: sha512-/SVCc57ByARzGSU60c50rMyQlBuMIJCjcsJlkphxY6B0GV4UH3tcA1994N8fFfbJ9kX3jIBe/xg3XP5qBtGDbA==} engines: {node: '>=20.0'} @@ -3607,20 +3780,20 @@ packages: resolution: {integrity: sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==} engines: {node: '>=0.8.0'} - '@emnapi/core@1.9.1': - resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==} + '@emnapi/core@1.4.5': + resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} '@emnapi/core@1.9.2': resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} - '@emnapi/runtime@1.9.1': - resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} + '@emnapi/runtime@1.4.5': + resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} '@emnapi/runtime@1.9.2': resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} - '@emnapi/wasi-threads@1.2.0': - resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} + '@emnapi/wasi-threads@1.0.4': + resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} @@ -3947,16 +4120,16 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.23.4': - resolution: {integrity: sha512-lf19F24LSMfF8weXvW5QEtnLqW70u7kgit5e9PSx0MsHAFclGd1T9ynvWEMDT1w5J4Qt54tomGeAhdoAku1Xow==} + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.5.4': - resolution: {integrity: sha512-jJhqiY3wPMlWWO3370M86CPJ7pt8GmEwSLglMfQhjXal07RCvhmU0as4IuUEW5SJeunfItiEetHmSxCCe9lDBg==} + '@eslint/config-helpers@0.5.5': + resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@1.2.0': - resolution: {integrity: sha512-8FTGbNzTvmSlc4cZBaShkC6YvFMG0riksYWRFKXztqVdXaQbcZLXlFbSpC05s70sGEsXAw0qwhx69JiW7hQS7A==} + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/eslintrc@3.3.5': @@ -3972,12 +4145,12 @@ packages: eslint: optional: true - '@eslint/object-schema@3.0.4': - resolution: {integrity: sha512-55lO/7+Yp0ISKRP0PsPtNTeNGapXaO085aELZmWCVc5SH3jfrqpuU6YgOdIxMS99ZHkQN1cXKE+cdIqwww9ptw==} + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.7.0': - resolution: {integrity: sha512-ejvBr8MQCbVsWNZnCwDXjUKq40MDmHalq7cJ6e9s/qzTUFIIo/afzt1Vui9T97FM/V/pN4YsFVoed5NIa96RDg==} + '@eslint/plugin-kit@0.7.1': + resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@exodus/bytes@1.15.0': @@ -4022,8 +4195,8 @@ packages: '@harperfast/extended-iterable@1.0.3': resolution: {integrity: sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==} - '@hono/node-server@1.19.12': - resolution: {integrity: sha512-txsUW4SQ1iilgE0l9/e9VQWmELXifEFvmdA1j6WFh/aFPj99hIntrSsq/if0UWyGVkmrRPKA1wCeP+UCr1B9Uw==} + '@hono/node-server@1.19.13': + resolution: {integrity: sha512-TsQLe4i2gvoTtrHje625ngThGBySOgSK3Xo2XRYOdqGN1teR8+I7vchQC46uLJi8OF62YTYA3AhSpumtkhsaKQ==} engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 @@ -4357,6 +4530,10 @@ packages: resolution: {integrity: sha512-PAwCvFJ4696XP2qZj+LAn1BWjZaJ6RjG6c7/lkMaUJnkyMS34ucuIsfqYvfskVNvUI27R/u4P1HMYFnlVXG/Ww==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/diff-sequences@30.0.1': + resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/diff-sequences@30.3.0': resolution: {integrity: sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -4618,9 +4795,6 @@ packages: cpu: [x64] os: [win32] - '@ltd/j-toml@1.38.0': - resolution: {integrity: sha512-lYtBcmvHustHQtg4X7TXUu1Xa/tbLC3p2wLvgQI+fWVySguVZJF60Snxijw5EiohumxZbR10kWYFFebh1zotiw==} - '@mdx-js/mdx@3.1.1': resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} @@ -4913,14 +5087,14 @@ packages: '@napi-rs/wasm-runtime@1.0.7': resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} - '@napi-rs/wasm-runtime@1.1.2': - resolution: {integrity: sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==} + '@napi-rs/wasm-runtime@1.1.3': + resolution: {integrity: sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@netlify/functions@5.1.5': - resolution: {integrity: sha512-mhTl6x3TWoRwNgz8HZ9zvSR9OHB/hDEA6VinBmWY5ubgycKNCerf6XyFaFnujH2Ygx3c32yg6QOOr1v9y8euug==} + '@netlify/functions@5.2.0': + resolution: {integrity: sha512-Pj93qeQd1tkQ5xm9gWJZmBf/1riLYqYHc0OzFukrJomrj82Ott53Rr/Q88H1ms5cF+P5QXRKWmA2JSxSybKfjA==} engines: {node: '>=18.0.0'} '@netlify/types@2.6.0': @@ -4935,6 +5109,14 @@ packages: typescript: '>=5.9 <6.0' webpack: ^5.54.0 + '@ngtools/webpack@21.2.7': + resolution: {integrity: sha512-Z4gjCaJbO16VUO8I2QjRNT87uRYxjTKSSImDhzgVgLpV2/stlv/akbLU8dJYa7pK7eIYb/tkNRxGn/AtCiViUQ==} + 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': ^21.0.0 + typescript: '>=5.9 <6.0' + webpack: ^5.54.0 + '@noble/hashes@1.4.0': resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} engines: {node: '>= 16'} @@ -4988,8 +5170,8 @@ packages: resolution: {integrity: sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==} engines: {node: ^20.17.0 || >=22.9.0} - '@nx/angular@22.6.2': - resolution: {integrity: sha512-+X73fpGNocYRkkP94wYa+es/LegpTLtjaSAkPZ79BNUpswcug6LjpZQ02u1cAm+LC9CkxxXOctBFdpjHRKpYyg==} + '@nx/angular@22.6.5': + resolution: {integrity: sha512-NPkrGGatlUUK7twHKYpv3mv6jYL6dRiqdPuqAhQfmUnuz5lA4ZhpCfwEBKUFEKsGNwOft0ZCGZdSdODliaKZzA==} peerDependencies: '@angular-devkit/build-angular': '>= 19.0.0 < 22.0.0' '@angular-devkit/core': '>= 19.0.0 < 22.0.0' @@ -5006,8 +5188,8 @@ packages: ng-packagr: optional: true - '@nx/angular@22.7.0-beta.10': - resolution: {integrity: sha512-ALp2lhfeeOLfcfxaUVoB0wFOZEXo2uxqTf1P/EdEhw5+aTh6Rfp32HVfAXjYlrqNoMgCG+WQYjHT24ViNQf+8w==} + '@nx/angular@22.7.0-beta.12': + resolution: {integrity: sha512-kOz7zrWUoH3O1jtYhoNeDNVpVw8DJ9hKZPqRxo2E+yyehqpce1T/wVck71O6XVpwIWJR+Fgmgyp9P94arkCRsg==} peerDependencies: '@angular-devkit/build-angular': '>= 19.0.0 < 22.0.0' '@angular-devkit/core': '>= 19.0.0 < 22.0.0' @@ -5024,26 +5206,26 @@ packages: ng-packagr: optional: true - '@nx/cypress@22.7.0-beta.10': - resolution: {integrity: sha512-1qtvolDX6PJUkfbD1XV7Xr7Y8h3sI7PXCgB2U6za8itjkLqekZBlwv5u4YmTRV/h1lGu4PMv9u+F2CuW/q36BQ==} + '@nx/cypress@22.7.0-beta.12': + resolution: {integrity: sha512-SrVgbD/0SsgPFp4EzFby+38ftNTnneodf/3waujGufuNUmQBkOHl0e1X5bFPfklhl1yP6hkD7+Ff5BLV/KhUfA==} peerDependencies: cypress: '>= 13 < 16' peerDependenciesMeta: cypress: optional: true - '@nx/devkit@22.6.2': - resolution: {integrity: sha512-XDSaapU6y75MLxvD68itwY0jzkzPhM8k5ZRngEl9eEQeBxDmwj9lDK85R58KuBl9F6j2FWULK27eAnH6nc9W6Q==} + '@nx/devkit@22.6.5': + resolution: {integrity: sha512-9kvAI+kk2pfEXLqS8OyjI9XvWmp+Gdn7jPfxDAz8BOqxMyPy3p5hYl+jc4TIsLOWunAFl8azqrcYsHzEpaWCIA==} peerDependencies: nx: '>= 21 <= 23 || ^22.0.0-0' - '@nx/devkit@22.7.0-beta.10': - resolution: {integrity: sha512-8GJjzCeYKIpl0AAOWnoIa2xcMjgqZpWu7z7RVizXaHQP+FKYiDB/dHVA5U3U4sDa7jgfQ0DNcmlF1+igUzk23w==} + '@nx/devkit@22.7.0-beta.12': + resolution: {integrity: sha512-oIvA7gWv5YBtUMJsrnul4TtOz7m6bPLm0Vt8Y5YAJsPNkPxCtsiXZKysZdzjImDILZ7nXOL1oK4JQlBI3Saz1Q==} peerDependencies: nx: '>= 21 <= 23 || ^22.0.0-0' - '@nx/eslint-plugin@22.7.0-beta.10': - resolution: {integrity: sha512-OgK45XRlRjgxCqyEnc1vm17M1WHtxCbMzDaZFmZIQ2Atcxjvo2jI8VdhQFozooNhR5A/jbWbMaXRUuGN81KhIA==} + '@nx/eslint-plugin@22.7.0-beta.12': + resolution: {integrity: sha512-4Mkw1eKqVelJJWX6j73Kcrk3laSPTYD0XCxDyNasIBz5uTC4HvQshD6fTxQwTIKVeOPeJ8+uDzE+hYvdC2XkgA==} peerDependencies: '@typescript-eslint/parser': ^6.13.2 || ^7.0.0 || ^8.0.0 eslint-config-prettier: ^10.0.0 @@ -5051,8 +5233,8 @@ packages: eslint-config-prettier: optional: true - '@nx/eslint@22.6.2': - resolution: {integrity: sha512-6zjhPsEYBeEMz4hJ3CNCWFq0w9pQi8jRlY8F1MfRnYE/jYAM8iAravmCiMi5+2JB74KW3Ib9S/RKaySP1w026g==} + '@nx/eslint@22.6.5': + resolution: {integrity: sha512-rEV8CveVA3CCW8MHSKauUI+6XSpQ0nZ/z64fBvBulLUoUO10/mVpkbl3NpRyhCKXzOHYhW35wwuzq6YrfSi6gA==} peerDependencies: '@zkochan/js-yaml': 0.0.7 eslint: ^8.0.0 || ^9.0.0 || ^10.0.0 @@ -5060,8 +5242,8 @@ packages: '@zkochan/js-yaml': optional: true - '@nx/eslint@22.7.0-beta.10': - resolution: {integrity: sha512-DH6K1wRQBjvQMs0RhFS8k0mwmcTBeiZ+MND6/KDmXEd3D8Dx8EV7A1WhSlD9g8muPhTBYBfKUV6TnQ25JhevGg==} + '@nx/eslint@22.7.0-beta.12': + resolution: {integrity: sha512-7SZPJC3MRz+ILjyfMQmmzZdk6riwQbigbUHopS+hnchRrt8lcXdhHpZHLW8JvzpMQVuR+0u/BqQf/bbyz93v1Q==} peerDependencies: '@zkochan/js-yaml': 0.0.7 eslint: ^8.0.0 || ^9.0.0 || ^10.0.0 @@ -5069,181 +5251,181 @@ packages: '@zkochan/js-yaml': optional: true - '@nx/jest@22.7.0-beta.10': - resolution: {integrity: sha512-slwGuWBs89S4+scehYIN1/MzjFdSa209orsMLIiPbJNRIc413GsWeay2HuIPrDby3aWI729UzK4iPTFSZ02IrQ==} + '@nx/jest@22.7.0-beta.12': + resolution: {integrity: sha512-KnVbhGZRU2QCUIIV/N885FospSfX0f/XzhK5b87nQ8tJTA9d9YuljlXWru8NDDWg8A9JvdWPb3Coz2hnc1Y3Lg==} - '@nx/js@22.6.2': - resolution: {integrity: sha512-KYw/B9WektFxEig0gcybyv87eXBuOZFR89ITj6TxoH21iYS1jPsvU+p459IcIaraOsyQjTv7OU8NCoM4fL2foQ==} + '@nx/js@22.6.5': + resolution: {integrity: sha512-bmikz6qaBHfuAgsqPB/TfLIKfvI4g+EKIRAiU2FHnEtVWOKDAmSQXHFwE3rMS49jl2JLgxkdNjZHpg4g/OLy0g==} peerDependencies: verdaccio: ^6.0.5 peerDependenciesMeta: verdaccio: optional: true - '@nx/js@22.7.0-beta.10': - resolution: {integrity: sha512-GqP4vMVFie4Dh0sbP3R9o/hcpJwdCqFZ0JO755pF7B3a3cgskejFQCVbXweHlNQ9pPha7l4LPoBgshtx1scxmQ==} + '@nx/js@22.7.0-beta.12': + resolution: {integrity: sha512-KQX4Dzt/30JrFvDg5EOe4xbyxa3kN5c0ylerSsr6O8poRguB39HmDHJ2LGYy0wmqoXCkU54uMx3UzU0AHfiNBQ==} peerDependencies: verdaccio: ^6.0.5 peerDependenciesMeta: verdaccio: optional: true - '@nx/module-federation@22.6.2': - resolution: {integrity: sha512-vZCJK6igyR+4qNnpnbg/t14YmBirPSerr+sXjl1S63HnYFo5b7x5FSJJdchUYlqYYYw+mhqFato/0T7Q2TFRsg==} + '@nx/module-federation@22.6.5': + resolution: {integrity: sha512-nQS3qFGs8lQ87ZQ8hab+oL+BfjCYjNPkGrpH4fXovnFgwaRNudnQnh2vTud1+JcUl0e+sJi/wIwZH4AB75jzSA==} - '@nx/module-federation@22.7.0-beta.10': - resolution: {integrity: sha512-Zkvf+FweqLwgvRPMPcR6SY4/jGgfwnQs/CvMUOFdIB7REEPAxleRSy7b4TGhtIyZPHkswly+ylr/DNv1ZGoGmA==} + '@nx/module-federation@22.7.0-beta.12': + resolution: {integrity: sha512-CX/JftdhPWItxn+WarJPXh4ZsPkb4CSf0EPK0y/hpMl0UOcqlHCNSxH1fO1HhFF+gt/AIy2ePKWRCFtm2czkJA==} - '@nx/nx-darwin-arm64@22.6.2': - resolution: {integrity: sha512-pq21tJO3ykatm4P8P8owMThOor/Kg/kDs/y4xsmz+N68NUYKvFPgc3p90SCyJnFKbNohlMSPFJYHY3zxrDUYhQ==} + '@nx/nx-darwin-arm64@22.6.5': + resolution: {integrity: sha512-qT77Omkg5xQuL2+pDbneX2tI+XW5ZeayMylu7UUgK8OhTrAkJLKjpuYRH4xT5XBipxbDtlxmO3aLS3Ib1pKzJQ==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-arm64@22.7.0-beta.10': - resolution: {integrity: sha512-/DmO2FX9Usplb0AHnz8AOeQIYfOszcSxa7sSYgON0gvntJZhOJIHGbBUHL8jNvUSLcbgCb7qr8TOFk4bahusmA==} + '@nx/nx-darwin-arm64@22.7.0-beta.12': + resolution: {integrity: sha512-LehstJ4xNHbSkr3evlsEmJFPNTPFqVLSr6hoS40tmAIOqbRQdqjYa55iRFz256AQ5tGYWgJE16llQpuYS9l0BQ==} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@22.6.2': - resolution: {integrity: sha512-CllU9XhOM64dYJPcedQsfdJKmJNTIfDj+UYWInUJkkpf2Y/sl08qmZmUwHjWuOkH0L//ZrDSw8XE0SzyWCm7VA==} + '@nx/nx-darwin-x64@22.6.5': + resolution: {integrity: sha512-9jICxb7vfJ56y/7Yuh3b/n1QJqWxO9xnXKYEs6SO8xPoW/KomVckILGc1C6RQSs6/3ixVJC7k1Dh1wm5tKPFrg==} cpu: [x64] os: [darwin] - '@nx/nx-darwin-x64@22.7.0-beta.10': - resolution: {integrity: sha512-hexThbnm09aUyOSs53LMK17FgYaym0SN6OSLwba3U7rXAeJXc0P4jpD2GeqpFJIkvRjnKWV+d0zqdLnDzEyrRw==} + '@nx/nx-darwin-x64@22.7.0-beta.12': + resolution: {integrity: sha512-M/+zMu8Ik3Q6ORNSiSW5NO35zklNGDXoPrNsp5xgJNev2TSS6o3atcvm2prE4mLn13hv66x1AH/WqaUmw54VYw==} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@22.6.2': - resolution: {integrity: sha512-CUkXPLm9R5Wihv/WgrYNF2l169BEk6NwQbYhl7x4D6A2jpISf0JHKup42PetFoq62TT2KGMjuLRP3xOoVB/Yrg==} + '@nx/nx-freebsd-x64@22.6.5': + resolution: {integrity: sha512-6B1wEKpqz5dI3AGMqttAVnA6M3DB/besAtuGyQiymK9ROlta1iuWgCcIYwcCQyhLn2Rx7vqj447KKcgCa8HlVw==} cpu: [x64] os: [freebsd] - '@nx/nx-freebsd-x64@22.7.0-beta.10': - resolution: {integrity: sha512-K1LkW2wHRWr2tGXqN3SXqmI1A1NCBW1FaH4vTlILBJ43RLV7EgImzFpbXvSJS8r/geBBxgIe2jXCvWJovp04QQ==} + '@nx/nx-freebsd-x64@22.7.0-beta.12': + resolution: {integrity: sha512-AdnPQF4irrZye7wUj+CBr6jgNrpM/YndW7KoxM7uL2IFd7rzxBCO8XPoSwfkblYcqI567/e/82MVfPz0ofyE8Q==} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@22.6.2': - resolution: {integrity: sha512-qV34eeQIZlagodInOXK6mUBfytxA39wK01es5CSHGmdRdYyQlwfaBkPY+GfWSA/sOem33lxYV2eu5H+rxkeRIA==} + '@nx/nx-linux-arm-gnueabihf@22.6.5': + resolution: {integrity: sha512-xV50B8mnDPboct7JkAHftajI02s+8FszA8WTzhore+YGR+lEKHTLpucwGEaQuMlSdLplH7pQix4B4uK5pcMhZw==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm-gnueabihf@22.7.0-beta.10': - resolution: {integrity: sha512-99p5fx/PhFGtKHEip+uZP4X2clqHFueVaUGIlvsBd4YOPaq62x8Ex0cId6/4wYt/DE8lmsFielf3c0H362FOCQ==} + '@nx/nx-linux-arm-gnueabihf@22.7.0-beta.12': + resolution: {integrity: sha512-qOWVTwaa24acol0tzHjmMi/GnL78QzhWwGMOKvJqcmIY9ZvRTSYTMfM/P6kBR61Vlq/o2r4h+pnduUOTlOFEvA==} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@22.6.2': - resolution: {integrity: sha512-P7EGH74jsFGY/gd881EeHdz6MXSrjkLHDrwes4cs3ETpaa3ZnCSQrG84imFnOeRQucqB3P2QZc1eL44ATc6nVw==} + '@nx/nx-linux-arm64-gnu@22.6.5': + resolution: {integrity: sha512-2JkWuMGj+HpW6oPAvU5VdAx1afTnEbiM10Y3YOrl3fipWV4BiP5VDx762QTrfCraP4hl6yqTgvTe7F9xaby+jQ==} cpu: [arm64] os: [linux] libc: [glibc] - '@nx/nx-linux-arm64-gnu@22.7.0-beta.10': - resolution: {integrity: sha512-OmFxvtKE3dbOafv+ymPtV0F4goH+tP3E5BkYzbsYDn48RjW259jAyo2uuHWCDv4VBLHvUvxIOHI83mkg2ufhtQ==} + '@nx/nx-linux-arm64-gnu@22.7.0-beta.12': + resolution: {integrity: sha512-KNaZBbhFOqUkaXp0ros8/80uvqkBE9FJsSBOQK5AbeMn6FUQlqqFp6gfoFy6hR3rm/qcPdGKMEs23VqhtzDUvA==} cpu: [arm64] os: [linux] libc: [glibc] - '@nx/nx-linux-arm64-musl@22.6.2': - resolution: {integrity: sha512-qwq2hFBsoR2tJSlflA3mKyrgzo5eNK2CTxcN3gPmBfxVA4jEIa+30pjpbQrK1C+lshhQrItZiPGlvcpL7rOESQ==} + '@nx/nx-linux-arm64-musl@22.6.5': + resolution: {integrity: sha512-Z/zMqFClnEyqDXouJKEPoWVhMQIif5F0YuECWBYjd3ZLwQsXGTItoh+6Wm3XF/nGMA2uLOHyTq/X7iFXQY3RzA==} cpu: [arm64] os: [linux] libc: [musl] - '@nx/nx-linux-arm64-musl@22.7.0-beta.10': - resolution: {integrity: sha512-xrzF8npFZzbDrIqw1FSKKQ4GWk/VwENHTYklpafEqAQ+rSWbkNsvhS8ooEV20f1N2hlookh5ieHMDTuBNQ60Aw==} + '@nx/nx-linux-arm64-musl@22.7.0-beta.12': + resolution: {integrity: sha512-3Ub6WWbG7KQYstH8p+a/vje4hpQPIOj1sF8DV2yCmVBlEcKXoYY7gl40vvK8HN8Ngo5xiIPVTn3WZq04NpAnBQ==} cpu: [arm64] os: [linux] libc: [musl] - '@nx/nx-linux-x64-gnu@22.6.2': - resolution: {integrity: sha512-Ru92V5qOivrvhJqIXbJUaHTv2zS19OGf30+FFdD+gnyCz6EzWtVcozYHAsjVfIQRWtwM0kEql77SpdV7dEnIVQ==} + '@nx/nx-linux-x64-gnu@22.6.5': + resolution: {integrity: sha512-FlotSyqNnaXSn0K+yWw+hRdYBwusABrPgKLyixfJIYRzsy+xPKN6pON6vZfqGwzuWF/9mEGReRz+iM8PiW0XSg==} cpu: [x64] os: [linux] libc: [glibc] - '@nx/nx-linux-x64-gnu@22.7.0-beta.10': - resolution: {integrity: sha512-E06UIqc06lN/BEGVWtHLqQWPzRLp+SWDUTvV8e+lJZ1oBPPTnIr7e6gwWujjmldb9FUb3ckCCvGF++JvMF668g==} + '@nx/nx-linux-x64-gnu@22.7.0-beta.12': + resolution: {integrity: sha512-m0Loqti4yHnazQQ2vGX3AEEnRaiUmRzE289RGPr1v+eUgSXICQ/K7I5ZBhw1C7GLf8D76Fd0iHwuH0XDkKIQdg==} cpu: [x64] os: [linux] libc: [glibc] - '@nx/nx-linux-x64-musl@22.6.2': - resolution: {integrity: sha512-/AIa8MNZZZh6EnPjWEq6EXsYl9B8JwD2QFcPGFRavXfpiYtK8Uk0q3NVSVcmg5L8WEW9ve5sxAY27lswym8cJw==} + '@nx/nx-linux-x64-musl@22.6.5': + resolution: {integrity: sha512-RVOe2qcwhoIx6mxQURPjUfAW5SEOmT2gdhewvdcvX9ICq1hj5B2VarmkhTg0qroO7xiyqOqwq26mCzoV2I3NgQ==} cpu: [x64] os: [linux] libc: [musl] - '@nx/nx-linux-x64-musl@22.7.0-beta.10': - resolution: {integrity: sha512-iccmouwR3i6kaWb0/tFOsb75jZr8FjkxhMo04d3xtFg1D4bmyz0TnQ1NwpbTpeaJdrlEyI8F1MbmuoEfBCd2mg==} + '@nx/nx-linux-x64-musl@22.7.0-beta.12': + resolution: {integrity: sha512-gYExWfEHwXcA1XCDEqmYA0Toeq8OYxWoE99oG9nBOsjwgIG7LBqJ3cretzI0IKZCnjkSdWF2NUNML3zDqBZTNA==} cpu: [x64] os: [linux] libc: [musl] - '@nx/nx-win32-arm64-msvc@22.6.2': - resolution: {integrity: sha512-0y9FHSbUj1bhD7obbQXFgnCYHNGuqajMks+oVhqsd0p48U8kjqLPG0aZchztDNzqPk52UHqIBBSiLeMofIcIzw==} + '@nx/nx-win32-arm64-msvc@22.6.5': + resolution: {integrity: sha512-ZqurqI8VuYnsr2Kn4K4t+Gx6j/BZdf6qz/6Tv4A7XQQ6oNYVQgTqoNEFj+CCkVaIe6aIdCWpousFLqs+ZgBqYQ==} cpu: [arm64] os: [win32] - '@nx/nx-win32-arm64-msvc@22.7.0-beta.10': - resolution: {integrity: sha512-QkejT027bun0NTHi/kr0MNJ5d/iMIG2oR0EXxFhF6IOfl/PVi/Op2eaW3X+9FAHTC4a2qqwWy2mDhn+mfO+Gvg==} + '@nx/nx-win32-arm64-msvc@22.7.0-beta.12': + resolution: {integrity: sha512-utp860YS3IdYNl32/I6ZE/FsB1QuL4gFFPl/DkRQoORBWDg/QZ0TyxHs8YLNTSp9eo5rrBPQ6ZtmD56AbHR5qA==} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@22.6.2': - resolution: {integrity: sha512-6rcB7ioI47GP+ocKO7m1NETW9yV6nW88kiEI8kkQv4kU5fPD3t9EcI7Gu5eF0Ms9cCx/EUspFgh1ZDwDDw4Uzg==} + '@nx/nx-win32-x64-msvc@22.6.5': + resolution: {integrity: sha512-i2QFBJIuaYg9BHxrrnBV4O7W9rVL2k0pSIdk/rRp3EYJEU93iUng+qbZiY9wh1xvmXuUCE2G7TRd+8/SG/RFKg==} cpu: [x64] os: [win32] - '@nx/nx-win32-x64-msvc@22.7.0-beta.10': - resolution: {integrity: sha512-tVVsEeQ7Gd8D7BexViYrKsL6m4cFz+mYtX3vUWyYVVUwjq4jhe/SGJce8mkW0fxJfCqliaDkqS48ZluWAFg4IQ==} + '@nx/nx-win32-x64-msvc@22.7.0-beta.12': + resolution: {integrity: sha512-gVFeQXRgx6bt3FRXVBpcgH7aZmiIEu2+40OLRKNdaAWHOQVcoMBZgRreLzyRu6JiiHnSO3Uv3TdhmyF8cQG+ZQ==} cpu: [x64] os: [win32] - '@nx/playwright@22.7.0-beta.10': - resolution: {integrity: sha512-6jTz7VnT2CGpipXHETuaeXEqvc/AtERmmagSKdAfOrHk08VTzfRdJtYZqF3Ps1bTOBaxA3CLYmC4/EifxEvqHQ==} + '@nx/playwright@22.7.0-beta.12': + resolution: {integrity: sha512-466p2cXpg/FfRdq11M0WUiSBVXAET81Di8W1eaFsLwgSzKQXbwmN5/pel2bMe727l7nhXwyb4Q4xdLECH2I42w==} peerDependencies: '@playwright/test': ^1.36.0 peerDependenciesMeta: '@playwright/test': optional: true - '@nx/plugin@22.7.0-beta.10': - resolution: {integrity: sha512-UpFLNrEpa0vKXOdb3m0ON2PhJKNmujXNHkenE7b4l/fL75jyXLKaud2CzqoEou9PkRWSpXqsUYMIUsVE1aoRGQ==} + '@nx/plugin@22.7.0-beta.12': + resolution: {integrity: sha512-Ri2iPL69z98spQPOej+hfW7tXqhC/Jxn+AXeRXQhcur31cZr51n49psURmiMsG8bzKcQPSgoD8O1jaffT/j3Rg==} - '@nx/rspack@22.6.2': - resolution: {integrity: sha512-x34CrO8ikSd/QQXZr0HNqSVTmC1RcviVCOhEuU+pDh2GOxsiq/D0Qxbc25SfK+p7aICcD8PjTpf5mEcvMtbkHA==} + '@nx/rspack@22.6.5': + resolution: {integrity: sha512-ugjdD7OY4Cy7AcSlEJcfcfDWxev5PnVagb4FEEEutneITLz8hrBmQ+uY5cJg07Vsx6eauskpirkwRtXAQeHgFQ==} peerDependencies: '@module-federation/enhanced': ^2.1.0 '@module-federation/node': ^2.7.21 - '@nx/rspack@22.7.0-beta.10': - resolution: {integrity: sha512-JmkgR3tRq7/e8wMXEKWsEsqDzeEzKXgsTX6jBVAO7N9a9T57OXOG/7ZsPiupz0aI3tNxo5hBooXA4xOIYLemgQ==} + '@nx/rspack@22.7.0-beta.12': + resolution: {integrity: sha512-kwPm36j4aptXwfcPobM62nEHq9dDgE3SvV35tOuksUV6t3to5oN3b/MfrL23BB7WeTyuFM3SlIHhO0NBP8zoTA==} peerDependencies: '@module-federation/enhanced': ^2.1.0 '@module-federation/node': ^2.7.21 - '@nx/storybook@22.7.0-beta.10': - resolution: {integrity: sha512-nHuyNnAOkgZ/Gtrjt92LynUWqf9Nk2K/a9yGNHde5KPqKWn0d8YXx7twnW4ETgdBJsiB9HK6kg4k5IQLaPG2jg==} + '@nx/storybook@22.7.0-beta.12': + resolution: {integrity: sha512-eea/DOTNhZXyFIAJrze59xjoR6hXCxmAlWC35FEbfQuzjhvf6B7/13ypnAzZ40NzTuCw/lF0rKOtK0dBFGgiwA==} peerDependencies: storybook: '>=7.0.0 <11.0.0' - '@nx/vite@22.6.2': - resolution: {integrity: sha512-5Ic++TXWMdfaxJ/7TpM5/3uUplA1WgVPl5KwrqYYGTG50IqVQtRLwJRiPI9E4ETcw6QDF/fD8A7R61BdLbf3zA==} + '@nx/vite@22.6.5': + resolution: {integrity: sha512-uj8vcQYkuXjsVII2u9LNfHaR4QEpK4bcOtUQBmxKDhAZGe6cFEs2b4sxlOZs1Wx7O5nS/gwPvajOIZbxmEI63Q==} peerDependencies: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 vitest: ^1.3.1 || ^2.0.0 || ^3.0.0 || ^4.0.0 - '@nx/vite@22.7.0-beta.10': - resolution: {integrity: sha512-/ZJ4W2tkuQ3o9Xr7lYC+v/NhFv7KVO93liqIkjXzKrU9A0UJRehlgW0MuMNhfUL/1YgfJC9W9yAZlR8n/kNxZw==} + '@nx/vite@22.7.0-beta.12': + resolution: {integrity: sha512-ypn30OPsT+6DCBNRvHxVPFHVec+heqaMZJrKW8Azpa/zeywkPVr0HTBC9Z1PQodJrtO94grRU07PTMQ+cUoXZg==} peerDependencies: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 vitest: ^1.3.1 || ^2.0.0 || ^3.0.0 || ^4.0.0 - '@nx/vitest@22.6.2': - resolution: {integrity: sha512-kGu423BnpTbAVxevBWBdtEvaVMiY0btaQFizbdbKhIRN6kN6zQX9CEXeZlmfgcoSdwEROMNNhv+m484fueOyhw==} + '@nx/vitest@22.6.5': + resolution: {integrity: sha512-0f0MyDLrfOD6S0+aXoMX5/+vLiAAAKEaC5SKdcUsoPbVkK6MOw0fh0eNb5FhKLrb1GjRyx9nwo9elGiCXj7X7Q==} peerDependencies: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 vitest: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 @@ -5253,8 +5435,8 @@ packages: vitest: optional: true - '@nx/vitest@22.7.0-beta.10': - resolution: {integrity: sha512-DNkEqAaEKOxeLGhdAzYnbWh8k5+Z7PTXmF2Nv4yZRX6HuPvuaI8kSi1kt4gprsVsiMqTXHnfP4R5VNJpRqwGEw==} + '@nx/vitest@22.7.0-beta.12': + resolution: {integrity: sha512-GVPooKW2kyDgnFfyC7Rws1JVL9jXcPM5GLvN7gTuegu/7m3RBL95G3Pr4iRfELDKCISq2eE2d1p0a8+AN08Dwg==} peerDependencies: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 vitest: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 @@ -5264,23 +5446,23 @@ packages: vitest: optional: true - '@nx/web@22.6.2': - resolution: {integrity: sha512-WLNTi8oPZF+5u9azYiteSRS+OCN4Z28vLNtOcJawNrviiMzI68cnIk6mZZS6tbsmH/zzJXAFHuLDXojxQkXXog==} + '@nx/web@22.6.5': + resolution: {integrity: sha512-LjKPLWbgEI9FDIsMGqbW0tisVJfhme0EBi1kZfTi4cIu9Pna5nYkNBefD/d/DuK0ZrRqdONNjhRkCO3TcVbtIQ==} - '@nx/web@22.7.0-beta.10': - resolution: {integrity: sha512-8LpTZ77XlbUuZREwXf/27RVF986kEpFdkY3ql3iJG5ZJi/t47MgVg8Ehi4xQDEYvdydWwYQe6B8qJdmNr0NvJQ==} + '@nx/web@22.7.0-beta.12': + resolution: {integrity: sha512-6BoHK8WFbbHEh/hRMtfPBKahP/EDgg3i0wKnaH846j+ivG4fyK+wxztKWs7vRMk4D/l72ycchwYCcTf1Axrd8g==} - '@nx/webpack@22.6.2': - resolution: {integrity: sha512-wCpNcxlrtrKP7CE2asbVc+umULkscjpGRksACdCKC+XRQTP0YYDGgC3d3zjBf6SgqlFrjU3QXIC3XOaBlOE4bg==} + '@nx/webpack@22.6.5': + resolution: {integrity: sha512-LN75xxd/6U/r8vI3nzs/N5sj22nrJdBhTfDPlYlhKz2caCCWImSvQSXmprU46xNbXuYAY0DmRcZ5fkeqjHegtw==} - '@nx/webpack@22.7.0-beta.10': - resolution: {integrity: sha512-3O1jEDPLzPRowxc5TczDrAwUZxvjbj2awqrFBDrfj9I2YVyoQpxWkOyzS33BdqJMLOHu1IQY+9QT051ZAmYTOg==} + '@nx/webpack@22.7.0-beta.12': + resolution: {integrity: sha512-7aOOp32zRt0hYRJtGNV4m+GDFtHEEHVD3ju9FfyeAzyn3Z1Bv/5UHlS9oFpSilLTahuRin0mLrAQPIyHQbmzKA==} - '@nx/workspace@22.6.2': - resolution: {integrity: sha512-G5Ft3eb7ZrvNN0D3j1tyIyT6BuRwMNbjgvNWfEnZ1fKHRTIwqsXvx5S5fK4aJhCgpxTlPzQZpIr0XUTS0t6sjQ==} + '@nx/workspace@22.6.5': + resolution: {integrity: sha512-/CZtv1ESSfZ1MVqSlCsmnBWysU1z5VdNlwANlqL6BV2X6RUHKDPVj4YuNPvCK+0LsqyzfJdUt3pcnBYxnT5TIg==} - '@nx/workspace@22.7.0-beta.10': - resolution: {integrity: sha512-BPiBAV8wtsi4o5Y/XEb54nmKy/sR5PxaUVConrEXQ3rb6BDiJQtUeKlLl4RQscPWLeFUlT0tbrfNORHcVxjkTQ==} + '@nx/workspace@22.7.0-beta.12': + resolution: {integrity: sha512-lc5EwcYmpjyAHFr+wIwRGAGtxS+2obGOcL27FYUEViU3c/u6ns6z4R+qBgXMBGdJSgSKoTM+bulH0Nb2hNUemg==} '@octokit/auth-token@6.0.0': resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} @@ -5538,6 +5720,9 @@ packages: '@oxc-project/types@0.123.0': resolution: {integrity: sha512-YtECP/y8Mj1lSHiUWGSRzy/C6teUKlS87dEfuVKT09LgQbUsBW1rNg+MiJ4buGu3yuADV60gbIvo9/HplA56Ew==} + '@oxc-project/types@0.124.0': + resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==} + '@oxc-resolver/binding-android-arm-eabi@11.19.1': resolution: {integrity: sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==} cpu: [arm] @@ -5803,124 +5988,124 @@ packages: cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.58.0': - resolution: {integrity: sha512-1T7UN3SsWWxpWyWGn1cT3ASNJOo+pI3eUkmEl7HgtowapcV8kslYpFQcYn431VuxghXakPNlbjRwhqmR37PFOg==} + '@oxlint/binding-android-arm-eabi@1.59.0': + resolution: {integrity: sha512-etYDw/UaEv936AQUd/CRMBVd+e+XuuU6wC+VzOv1STvsTyZenLChepLWqLtnyTTp4YMlM22ypzogDDwqYxv5cg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.58.0': - resolution: {integrity: sha512-GryzujxuiRv2YFF7bRy8mKcxlbuAN+euVUtGJt9KKbLT8JBUIosamVhcthLh+VEr6KE6cjeVMAQxKAzJcoN7dg==} + '@oxlint/binding-android-arm64@1.59.0': + resolution: {integrity: sha512-TgLc7XVLKH2a4h8j3vn1MDjfK33i9MY60f/bKhRGWyVzbk5LCZ4X01VZG7iHrMmi5vYbAp8//Ponigx03CLsdw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.58.0': - resolution: {integrity: sha512-7/bRSJIwl4GxeZL9rPZ11anNTyUO9epZrfEJH/ZMla3+/gbQ6xZixh9nOhsZ0QwsTW7/5J2A/fHbD1udC5DQQA==} + '@oxlint/binding-darwin-arm64@1.59.0': + resolution: {integrity: sha512-DXyFPf5ZKldMLloRHx/B9fsxsiTQomaw7cmEW3YIJko2HgCh+GUhp9gGYwHrqlLJPsEe3dYj9JebjX92D3j3AA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.58.0': - resolution: {integrity: sha512-EqdtJSiHweS2vfILNrpyJ6HUwpEq2g7+4Zx1FPi4hu3Hu7tC3znF6ufbXO8Ub2LD4mGgznjI7kSdku9NDD1Mkg==} + '@oxlint/binding-darwin-x64@1.59.0': + resolution: {integrity: sha512-LgvrsdgVLX1qWqIEmNsSmMXJhpAWdtUQ0M+oR0CySwi+9IHWyOGuIL8w8+u/kbZNMyZr4WUyYB5i0+D+AKgkLg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.58.0': - resolution: {integrity: sha512-VQt5TH4M42mY20F545G637RKxV/yjwVtKk2vfXuazfReSIiuvWBnv+FVSvIV5fKVTJNjt3GSJibh6JecbhGdBw==} + '@oxlint/binding-freebsd-x64@1.59.0': + resolution: {integrity: sha512-bOJhqX/ny4hrFuTPlyk8foSRx/vLRpxJh0jOOKN2NWW6FScXHPAA5rQbrwdQPcgGB5V8Ua51RS03fke8ssBcug==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.58.0': - resolution: {integrity: sha512-fBYcj4ucwpAtjJT3oeBdFBYKvNyjRSK+cyuvBOTQjh0jvKp4yeA4S/D0IsCHus/VPaNG5L48qQkh+Vjy3HL2/Q==} + '@oxlint/binding-linux-arm-gnueabihf@1.59.0': + resolution: {integrity: sha512-vVUXxYMF9trXCsz4m9H6U0IjehosVHxBzVgJUxly1uz4W1PdDyicaBnpC0KRXsHYretLVe+uS9pJy8iM57Kujw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.58.0': - resolution: {integrity: sha512-0BeuFfwlUHlJ1xpEdSD1YO3vByEFGPg36uLjK1JgFaxFb4W6w17F8ET8sz5cheZ4+x5f2xzdnRrrWv83E3Yd8g==} + '@oxlint/binding-linux-arm-musleabihf@1.59.0': + resolution: {integrity: sha512-TULQW8YBPGRWg5yZpFPL54HLOnJ3/HiX6VenDPi6YfxB/jlItwSMFh3/hCeSNbh+DAMaE1Py0j5MOaivHkI/9Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.58.0': - resolution: {integrity: sha512-TXlZgnPTlxrQzxG9ZXU7BNwx1Ilrr17P3GwZY0If2EzrinqRH3zXPc3HrRcBJgcsoZNMuNL5YivtkJYgp467UQ==} + '@oxlint/binding-linux-arm64-gnu@1.59.0': + resolution: {integrity: sha512-Gt54Y4eqSgYJ90xipm24xeyaPV854706o/kiT8oZvUt3VDY7qqxdqyGqchMaujd87ib+/MXvnl9WkK8Cc1BExg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.58.0': - resolution: {integrity: sha512-zSoYRo5dxHLcUx93Stl2hW3hSNjPt99O70eRVWt5A1zwJ+FPjeCCANCD2a9R4JbHsdcl11TIQOjyigcRVOH2mw==} + '@oxlint/binding-linux-arm64-musl@1.59.0': + resolution: {integrity: sha512-3CtsKp7NFB3OfqQzbuAecrY7GIZeiv7AD+xutU4tefVQzlfmTI7/ygWLrvkzsDEjTlMq41rYHxgsn6Yh8tybmA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.58.0': - resolution: {integrity: sha512-NQ0U/lqxH2/VxBYeAIvMNUK1y0a1bJ3ZicqkF2c6wfakbEciP9jvIE4yNzCFpZaqeIeRYaV7AVGqEO1yrfVPjA==} + '@oxlint/binding-linux-ppc64-gnu@1.59.0': + resolution: {integrity: sha512-K0diOpT3ncDmOfl9I1HuvpEsAuTxkts0VYwIv/w6Xiy9CdwyPBVX88Ga9l8VlGgMrwBMnSY4xIvVlVY/fkQk7Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.58.0': - resolution: {integrity: sha512-X9J+kr3gIC9FT8GuZt0ekzpNUtkBVzMVU4KiKDSlocyQuEgi3gBbXYN8UkQiV77FTusLDPsovjo95YedHr+3yg==} + '@oxlint/binding-linux-riscv64-gnu@1.59.0': + resolution: {integrity: sha512-xAU7+QDU6kTJJ7mJLOGgo7oOjtAtkKyFZ0Yjdb5cEo3DiCCPFLvyr08rWiQh6evZ7RiUTf+o65NY/bqttzJiQQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.58.0': - resolution: {integrity: sha512-CDze3pi1OO3Wvb/QsXjmLEY4XPKGM6kIo82ssNOgmcl1IdndF9VSGAE38YLhADWmOac7fjqhBw82LozuUVxD0Q==} + '@oxlint/binding-linux-riscv64-musl@1.59.0': + resolution: {integrity: sha512-KUmZmKlTTyauOnvUNVxK7G40sSSx0+w5l1UhaGsC6KPpOYHenx2oqJTnabmpLJicok7IC+3Y6fXAUOMyexaeJQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.58.0': - resolution: {integrity: sha512-b/89glbxFaEAcA6Uf1FvCNecBJEgcUTsV1quzrqXM/o4R1M4u+2KCVuyGCayN2UpsRWtGGLb+Ver0tBBpxaPog==} + '@oxlint/binding-linux-s390x-gnu@1.59.0': + resolution: {integrity: sha512-4usRxC8gS0PGdkHnRmwJt/4zrQNZyk6vL0trCxwZSsAKM+OxhB8nKiR+mhjdBbl8lbMh2gc3bZpNN/ik8c4c2A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.58.0': - resolution: {integrity: sha512-0/yYpkq9VJFCEcuRlrViGj8pJUFFvNS4EkEREaN7CB1EcLXJIaVSSa5eCihwBGXtOZxhnblWgxks9juRdNQI7w==} + '@oxlint/binding-linux-x64-gnu@1.59.0': + resolution: {integrity: sha512-s/rNE2gDmbwAOOP493xk2X7M8LZfI1LJFSSW1+yanz3vuQCFPiHkx4GY+O1HuLUDtkzGlhtMrIcxxzyYLv308w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.58.0': - resolution: {integrity: sha512-hr6FNvmcAXiH+JxSvaJ4SJ1HofkdqEElXICW9sm3/Rd5eC3t7kzvmLyRAB3NngKO2wzXRCAm4Z/mGWfrsS4X8w==} + '@oxlint/binding-linux-x64-musl@1.59.0': + resolution: {integrity: sha512-+yYj1udJa2UvvIUmEm0IcKgc0UlPMgz0nsSTvkPL2y6n0uU5LgIHSwVu4AHhrve6j9BpVSoRksnz8c9QcvITJA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.58.0': - resolution: {integrity: sha512-R+O368VXgRql1K6Xar+FEo7NEwfo13EibPMoTv3sesYQedRXd6m30Dh/7lZMxnrQVFfeo4EOfYIP4FpcgWQNHg==} + '@oxlint/binding-openharmony-arm64@1.59.0': + resolution: {integrity: sha512-bUplUb48LYsB3hHlQXP2ZMOenpieWoOyppLAnnAhuPag3MGPnt+7caxE3w/Vl9wpQsTA3gzLntQi9rxWrs7Xqg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.58.0': - resolution: {integrity: sha512-Q0FZiAY/3c4YRj4z3h9K1PgaByrifrfbBoODSeX7gy97UtB7pySPUQfC2B/GbxWU6k7CzQrRy5gME10PltLAFQ==} + '@oxlint/binding-win32-arm64-msvc@1.59.0': + resolution: {integrity: sha512-/HLsLuz42rWl7h7ePdmMTpHm2HIDmPtcEMYgm5BBEHiEiuNOrzMaUpd2z7UnNni5LGN9obJy2YoAYBLXQwazrA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.58.0': - resolution: {integrity: sha512-Y8FKBABrSPp9H0QkRLHDHOSUgM/309a3IvOVgPcVxYcX70wxJrk608CuTg7w+C6vEd724X5wJoNkBcGYfH7nNQ==} + '@oxlint/binding-win32-ia32-msvc@1.59.0': + resolution: {integrity: sha512-rUPy+JnanpPwV/aJCPnxAD1fW50+XPI0VkWr7f0vEbqcdsS8NpB24Rw6RsS7SdpFv8Dw+8ugCwao5nCFbqOUSg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.58.0': - resolution: {integrity: sha512-bCn5rbiz5My+Bj7M09sDcnqW0QJyINRVxdZ65x1/Y2tGrMwherwK/lpk+HRQCKvXa8pcaQdF5KY5j54VGZLwNg==} + '@oxlint/binding-win32-x64-msvc@1.59.0': + resolution: {integrity: sha512-xkE7puteDS/vUyRngLXW0t8WgdWoS/tfxXjhP/P7SMqPDx+hs44SpssO3h3qmTqECYEuXBUPzcAw5257Ka+ofA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -6095,8 +6280,8 @@ packages: cpu: [arm64] os: [android] - '@rolldown/binding-android-arm64@1.0.0-rc.13': - resolution: {integrity: sha512-5ZiiecKH2DXAVJTNN13gNMUcCDg4Jy8ZjbXEsPnqa248wgOVeYRX0iqXXD5Jz4bI9BFHgKsI2qmyJynstbmr+g==} + '@rolldown/binding-android-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] @@ -6113,8 +6298,8 @@ packages: cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.0.0-rc.13': - resolution: {integrity: sha512-tz/v/8G77seu8zAB3A5sK3UFoOl06zcshEzhUO62sAEtrEuW/H1CcyoupOrD+NbQJytYgA4CppXPzlrmp4JZKA==} + '@rolldown/binding-darwin-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] @@ -6131,8 +6316,8 @@ packages: cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.13': - resolution: {integrity: sha512-8DakphqOz8JrMYWTJmWA+vDJxut6LijZ8Xcdc4flOlAhU7PNVwo2MaWBF9iXjJAPo5rC/IxEFZDhJ3GC7NHvug==} + '@rolldown/binding-darwin-x64@1.0.0-rc.15': + resolution: {integrity: sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] @@ -6149,8 +6334,8 @@ packages: cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.0.0-rc.13': - resolution: {integrity: sha512-4wBQFfjDuXYN/SVI8inBF3Aa+isq40rc6VMFbk5jcpolUBTe5cYnMsHZ51nFWsx3PVyyNN3vgoESki0Hmr/4BA==} + '@rolldown/binding-freebsd-x64@1.0.0-rc.15': + resolution: {integrity: sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] @@ -6167,8 +6352,8 @@ packages: cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.13': - resolution: {integrity: sha512-JW/e4yPIXLms+jmnbwwy5LA/LxVwZUWLN8xug+V200wzaVi5TEGIWQlh8o91gWYFxW609euI98OCCemmWGuPrw==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': + resolution: {integrity: sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] @@ -6186,8 +6371,8 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.13': - resolution: {integrity: sha512-ZfKWpXiUymDnavepCaM6KG/uGydJ4l2nBmMxg60Ci4CbeefpqjPWpfaZM7PThOhk2dssqBAcwLc6rAyr0uTdXg==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -6207,8 +6392,8 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.13': - resolution: {integrity: sha512-bmRg3O6Z0gq9yodKKWCIpnlH051sEfdVwt+6m5UDffAQMUUqU0xjnQqqAUm+Gu7ofAAly9DqiQDtKu2nPDEABA==} + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': + resolution: {integrity: sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] @@ -6228,8 +6413,8 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.13': - resolution: {integrity: sha512-8Wtnbw4k7pMYN9B/mOEAsQ8HOiq7AZ31Ig4M9BKn2So4xRaFEhtCSa4ZJaOutOWq50zpgR4N5+L/opnlaCx8wQ==} + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] @@ -6242,8 +6427,8 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.13': - resolution: {integrity: sha512-D/0Nlo8mQuxSMohNJUF2lDXWRsFDsHldfRRgD9bRgktj+EndGPj4DOV37LqDKPYS+osdyhZEH7fTakTAEcW7qg==} + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] @@ -6256,8 +6441,8 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.13': - resolution: {integrity: sha512-eRrPvat2YaVQcwwKi/JzOP6MKf1WRnOCr+VaI3cTWz3ZoLcP/654z90lVCJ4dAuMEpPdke0n+qyAqXDZdIC4rA==} + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -6277,8 +6462,8 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.13': - resolution: {integrity: sha512-PsdONiFRp8hR8KgVjTWjZ9s7uA3uueWL0t74/cKHfM4dR5zXYv4AjB8BvA+QDToqxAFg4ZkcVEqeu5F7inoz5w==} + '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': + resolution: {integrity: sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] @@ -6297,8 +6482,8 @@ packages: cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.13': - resolution: {integrity: sha512-hCNXgC5dI3TVOLrPT++PKFNZ+1EtS0mLQwfXXXSUD/+rGlB65gZDwN/IDuxLpQP4x8RYYHqGomlUXzpO8aVI2w==} + '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] @@ -6314,8 +6499,8 @@ packages: engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.13': - resolution: {integrity: sha512-viLS5C5et8NFtLWw9Sw3M/w4vvnVkbWkO7wSNh3C+7G1+uCkGpr6PcjNDSFcNtmXY/4trjPBqUfcOL+P3sWy/g==} + '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': + resolution: {integrity: sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==} engines: {node: '>=14.0.0'} cpu: [wasm32] @@ -6330,8 +6515,8 @@ packages: cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.13': - resolution: {integrity: sha512-Fqa3Tlt1xL4wzmAYxGNFV36Hb+VfPc9PYU+E25DAnswXv3ODDu/yyWjQDbXMo5AGWkQVjLgQExuVu8I/UaZhPQ==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': + resolution: {integrity: sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] @@ -6348,8 +6533,8 @@ packages: cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.13': - resolution: {integrity: sha512-/pLI5kPkGEi44TDlnbio3St/5gUFeN51YWNAk/Gnv6mEQBOahRBh52qVFVBpmrnU01n2yysvBML9Ynu7K4kGAQ==} + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': + resolution: {integrity: sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -6363,8 +6548,8 @@ packages: '@rolldown/pluginutils@1.0.0-rc.12': resolution: {integrity: sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==} - '@rolldown/pluginutils@1.0.0-rc.13': - resolution: {integrity: sha512-3ngTAv6F/Py35BsYbeeLeecvhMKdsKm4AoOETVhAA+Qc8nrA2I0kF7oa93mE9qnIurngOSpMnQ0x2nQY2FPviA==} + '@rolldown/pluginutils@1.0.0-rc.15': + resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==} '@rolldown/pluginutils@1.0.0-rc.3': resolution: {integrity: sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==} @@ -6611,8 +6796,8 @@ packages: '@rspack/lite-tapable@1.1.0': resolution: {integrity: sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==} - '@rspack/plugin-react-refresh@1.6.1': - resolution: {integrity: sha512-eqqW5645VG3CzGzFgNg5HqNdHVXY+567PGjtDhhrM8t67caxmsSzRmT5qfoEIfBcGgFkH9vEg7kzXwmCYQdQDw==} + '@rspack/plugin-react-refresh@1.6.2': + resolution: {integrity: sha512-k+/VrfTNgo+KirjI6V+8CWRj6y+DH9jOUWv8JorYY4vKf/9xfnZ8xHzuB4iqCwTtoZl9YnxOaOuoyjJipc2tiQ==} peerDependencies: react-refresh: '>=0.10.0 <1.0.0' webpack-hot-middleware: 2.x @@ -6730,8 +6915,8 @@ packages: resolution: {integrity: sha512-kxHrDQ9YgfrWUSXU0cjsQGv8JykOFZQ9ErNKbFPWzk3Hgpwu8x2hHrQ9IdA8yl+j9RTLTC3sAF3Tdq1IQCP4oA==} engines: {node: ^20.17.0 || >=22.9.0} - '@sigstore/protobuf-specs@0.5.0': - resolution: {integrity: sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==} + '@sigstore/protobuf-specs@0.5.1': + resolution: {integrity: sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g==} engines: {node: ^18.17.0 || >=20.5.0} '@sigstore/sign@4.1.1': @@ -6779,8 +6964,8 @@ packages: '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - '@sinonjs/fake-timers@15.3.0': - resolution: {integrity: sha512-m2xozxSfCIxjDdvbhIWazlP2i2aha/iUmbl94alpsIbd3iLTfeXgfBVbwyWogB6l++istyGZqamgA/EcqYf+Bg==} + '@sinonjs/fake-timers@15.3.2': + resolution: {integrity: sha512-mrn35Jl2pCpns+mE3HaZa1yPN5EYCRgiMI+135COjr2hr8Cls9DXqIZ57vZe2cz7y2XVSq92tcs6kGQcT1J8Rw==} '@slorber/react-helmet-async@1.3.0': resolution: {integrity: sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==} @@ -6794,27 +6979,27 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@storybook/addon-docs@10.3.4': - resolution: {integrity: sha512-ohS8fX8UIP3LN6+mDZJLCDS4Qd2rsmGwes6V6fD0sbLOmIyCVY5y68r6NHMMGJKFRwadDQOmtOt8Vc6snExrIQ==} + '@storybook/addon-docs@10.3.5': + resolution: {integrity: sha512-WuHbxia/o5TX4Rg/IFD0641K5qId/Nk0dxhmAUNoFs5L0+yfZUwh65XOBbzXqrkYmYmcVID4v7cgDRmzstQNkA==} peerDependencies: - storybook: ^10.3.4 + storybook: ^10.3.5 - '@storybook/addon-links@10.3.4': - resolution: {integrity: sha512-4Kcdv0U5WEyteN08Mv4oAUXTigF8OHMLA7Bpf1VEQrtJfQsxoUjXzItOHhCyBvphufkZzbU0n6wCC8upEb7X7w==} + '@storybook/addon-links@10.3.5': + resolution: {integrity: sha512-Xe2wCGZ+hpZ0cDqAIBHk+kPc8nODNbu585ghd5bLrlYJMDVXoNM/fIlkrLgjIDVbfpgeJLUEg7vldJrn+FyOLw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.3.4 + storybook: ^10.3.5 peerDependenciesMeta: react: optional: true - '@storybook/addon-vitest@10.3.4': - resolution: {integrity: sha512-lSn8opaHVzDxLtMy28FnSkyx6uP1oQVnGzodNunTjrbJ8Ue8JVK+fjWtC/JfErIio0avlq79mgC5tfHSWlPr9w==} + '@storybook/addon-vitest@10.3.5': + resolution: {integrity: sha512-PQDeeMwoF55kvzlhFqVKOryBJskkVk71AbDh7F0y8PdRRxlGbTvIUkKXktHZWBdESo0dV6BkeVxGQ4ZpiFxirg==} peerDependencies: '@vitest/browser': ^3.0.0 || ^4.0.0 '@vitest/browser-playwright': ^4.0.0 '@vitest/runner': ^3.0.0 || ^4.0.0 - storybook: ^10.3.4 + storybook: ^10.3.5 vitest: ^3.0.0 || ^4.0.0 peerDependenciesMeta: '@vitest/browser': @@ -6852,10 +7037,36 @@ packages: zone.js: optional: true - '@storybook/builder-vite@10.3.4': - resolution: {integrity: sha512-dNQyBZpBKvwmhSTpjrsuxxY8FqFCh0hgu5+46h2WbgQ2Te3pO458heWkGb+QO7mC6FmkXO6j6zgYzXticD6F2A==} + '@storybook/angular@10.3.5': + resolution: {integrity: sha512-Wqhls4MONM8P3ZoHrsK7KuI/Evz2zowpyV3peiqgq1Sir9W1az74EzNXlo1KxY4cM/kI6UDvv6BaZ+cyfqVmFA==} peerDependencies: - storybook: ^10.3.4 + '@angular-devkit/architect': '>=0.1800.0 < 0.2200.0' + '@angular-devkit/build-angular': '>=18.0.0 < 22.0.0' + '@angular-devkit/core': '>=18.0.0 < 22.0.0' + '@angular/animations': '>=18.0.0 < 22.0.0' + '@angular/cli': '>=18.0.0 < 22.0.0' + '@angular/common': '>=18.0.0 < 22.0.0' + '@angular/compiler': '>=18.0.0 < 22.0.0' + '@angular/compiler-cli': '>=18.0.0 < 22.0.0' + '@angular/core': '>=18.0.0 < 22.0.0' + '@angular/platform-browser': '>=18.0.0 < 22.0.0' + '@angular/platform-browser-dynamic': '>=18.0.0 < 22.0.0' + rxjs: ^6.5.3 || ^7.4.0 + storybook: ^10.3.5 + typescript: ^4.9.0 || ^5.0.0 + zone.js: '>=0.14.0' + peerDependenciesMeta: + '@angular/animations': + optional: true + '@angular/cli': + optional: true + zone.js: + optional: true + + '@storybook/builder-vite@10.3.5': + resolution: {integrity: sha512-i4KwCOKbhtlbQIbhm53+Kk7bMnxa0cwTn1pxmtA/x5wm1Qu7FrrBQV0V0DNjkUqzcSKo1CjspASJV/HlY0zYlw==} + peerDependencies: + storybook: ^10.3.5 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 '@storybook/builder-webpack5@10.3.3': @@ -6867,17 +7078,31 @@ packages: typescript: optional: true + '@storybook/builder-webpack5@10.3.5': + resolution: {integrity: sha512-DYjIpfuwkl8CrDbYWjMcwxrLY3QpcZtDJr4ZcT3hrbZHF5BJ3HnVIv1YM+KF/bJfIUMS2h/YMsRyKVYGthiSzQ==} + peerDependencies: + storybook: ^10.3.5 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@storybook/core-webpack@10.3.3': resolution: {integrity: sha512-ESRM2k9m1V0qXaqEM+bvtCjv9+gYVE3PMuoNZMyIYNdGA4Pdc2PvQsUrKQNVByVbEGwjt+h0RE6b20bnBkdYsg==} peerDependencies: storybook: ^10.3.3 - '@storybook/csf-plugin@10.3.4': - resolution: {integrity: sha512-WPP0Z39o82WiohPkhPOs6z+9yJ+bVvqPz4d+QUPfE6FMvOOBLojlwOcGx6Xmclyn5H/CKwywFrjuz4mBO/nHhA==} + '@storybook/core-webpack@10.3.5': + resolution: {integrity: sha512-CEtGU2f6+FefIR3v4P1KBJB17UngZDSmib2w36jfVp1pNPIzqdIG2s1NCKAM7vbQHxXVcLpBH31mJqyU+vdypQ==} + peerDependencies: + storybook: ^10.3.5 + + '@storybook/csf-plugin@10.3.5': + resolution: {integrity: sha512-qlEzNKxOjq86pvrbuMwiGD/bylnsXk1dg7ve0j77YFjEEchqtl7qTlrXvFdNaLA89GhW6D/EV6eOCu/eobPDgw==} peerDependencies: esbuild: '*' rollup: '*' - storybook: ^10.3.4 + storybook: ^10.3.5 vite: '*' webpack: '*' peerDependenciesMeta: @@ -6899,12 +7124,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@storybook/react-dom-shim@10.3.4': - resolution: {integrity: sha512-VIm9YzreGubnOtQOZ6iqEfj6KncHvAkrCR/IilqnJq7DidPWuykrFszyajTASRMiY+p+TElOW+O1PGpv55qNGw==} + '@storybook/react-dom-shim@10.3.5': + resolution: {integrity: sha512-Gw8R7XZm0zSUH0XAuxlQJhmizsLzyD6x00KOlP6l7oW9eQHXGfxg3seNDG3WrSAcW07iP1/P422kuiriQlOv7g==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.3.4 + storybook: ^10.3.5 '@svgr/babel-plugin-add-jsx-attribute@8.0.0': resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} @@ -7093,6 +7318,88 @@ packages: '@swc/helpers@0.5.21': resolution: {integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==} + '@swc/html-darwin-arm64@1.15.24': + resolution: {integrity: sha512-2yH5kkeBM6mcSajWdIvh482HZDthvWM+SkH17CAzmgDgP2WGZ3IpdeIQxdV8Jj9kRdJaI0VqdXGT0qRRt6zw4A==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/html-darwin-x64@1.15.24': + resolution: {integrity: sha512-1k4Wl1eExT9yal3fX6MGcrpWOvYo+f7jnzw+ksg+8ifpYqpcrcy6Rv6cB78SgXzZJRpx8zBY1luk+zYyoDlrWA==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/html-linux-arm-gnueabihf@1.15.24': + resolution: {integrity: sha512-XbqWgyBE6tukUs+0zwzW+Xo3N/P6SoiJJ44QfB3RCb5Naz/1vwJbNgn9erFDgoq7CChmCooFuMfNnmh/E/Orsg==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/html-linux-arm64-gnu@1.15.24': + resolution: {integrity: sha512-GqJgkJHTlLM0tzJHX0tmU0ZAU4rIfMYZ2yJwCBwnFaLw4NacpimyWnWGJxH83SViVZ33DfLD2LG/dHN8xDAmRA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@swc/html-linux-arm64-musl@1.15.24': + resolution: {integrity: sha512-+7Xw69Y4p/LwhudMJZOQ++mKeXWTnh3vpNv5Ar+X1x8kfPBHKRXI3sRKf5JqE0oJqJXTgFP5xByzmO/KBee3sQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@swc/html-linux-ppc64-gnu@1.15.24': + resolution: {integrity: sha512-ZKxckgQkOY2a54jiCnIBs5TkMNx7zvuKbe1WsM/WV0BiTfMfw5iMmtCKAIuYCz/PJRXVK0dY4VH3DS7jabBvwg==} + engines: {node: '>=10'} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@swc/html-linux-s390x-gnu@1.15.24': + resolution: {integrity: sha512-y0WBjqDZALqOzasxrEOlgHq6SX34nAE4+0MATufmSoFEdiQIBYkm9m4C8XQNCNHv52ERCu/EPGK3Q8RfXaBLhQ==} + engines: {node: '>=10'} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@swc/html-linux-x64-gnu@1.15.24': + resolution: {integrity: sha512-U//u302yBSgh6vFfJmrw17Xm7k9a17m/E3AcHK4w12CZOFtsKHQnxE3i9uFWhNbW5F70w2A9QENml5b0Us8XMg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@swc/html-linux-x64-musl@1.15.24': + resolution: {integrity: sha512-U9gsAQCPiCROWKhLhSnW4JzkkOY6X4q0ZP/nA6UeKoahDdw4E8onPujtRSivt4ZxwdJKfAnsxeJY07V9YLZu9Q==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@swc/html-win32-arm64-msvc@1.15.24': + resolution: {integrity: sha512-AETh78z9ig4e1eAlx8a02BnIS5iNIJ7C43swQsxMraSDZvZuBxnvEXHqnt94jRlw7fzmJRRpJdVcInQ21u/xGA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/html-win32-ia32-msvc@1.15.24': + resolution: {integrity: sha512-ymJkEATvFF1+So41/SkulPBoRzRXP6HxUGfvdSJ29qeYejxWMrIWyjDE1+vAalo4IAR0cWFE2Ef2A2Qeg8QbGA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/html-win32-x64-msvc@1.15.24': + resolution: {integrity: sha512-l+Gv0+jcSaDILljpEMC8pQE+ubRoZcft+woUgKTTlJQEFS+MgxKKLQjNCXx3hzhuru5/Yo8x71Ng/aVT7PwprA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/html@1.15.24': + resolution: {integrity: sha512-2kWRCU09lBBg3bZLz8Kc37azQ6sBwiV1P7VDvqwKEJC2CtREe5y1XgLLd78kqSpFli52hZ6l3CNPDqkaX6ceAg==} + engines: {node: '>=14'} + '@swc/types@0.1.26': resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} @@ -7197,17 +7504,17 @@ packages: peerDependencies: vite: ^5.2.0 || ^6 || ^7 || ^8 - '@tanstack/angular-query-experimental@5.96.2': - resolution: {integrity: sha512-i57ouHWPonIQI0sU0rCf9hDRaGY8pBleemJa5XDiDdfuLp3Lul6JEC7+RuqE+WJlNk0n7//zuf72/7+1N1SpRA==} + '@tanstack/angular-query-experimental@5.99.0': + resolution: {integrity: sha512-P6PDX4PI4PO61N1zKPNaiu1GUZ8jwrjWOq4b6hTDUL1M9N6Uv/lEd+9xytXzjIBaCBwqzl8EnQMjSmTI1VjhGg==} peerDependencies: '@angular/common': '>=16.0.0' '@angular/core': '>=16.0.0' - '@tanstack/query-core@5.96.2': - resolution: {integrity: sha512-hzI6cTVh4KNRk8UtoIBS7Lv9g6BnJPXvBKsvYH1aGWvv0347jT3BnSvztOE+kD76XGvZnRC/t6qdW1CaIfwCeA==} + '@tanstack/query-core@5.99.0': + resolution: {integrity: sha512-3Jv3WQG0BCcH7G+7lf/bP8QyBfJOXeY+T08Rin3GZ1bshvwlbPt7NrDHMEzGdKIOmOzvIQmxjk28YEQX60k7pQ==} - '@tanstack/query-devtools@5.96.2': - resolution: {integrity: sha512-vBTB1Qhbm3nHSbEUtQwks/EdcAtFfEapr1WyBW4w2ExYKuXVi3jIxUIHf5MlSltiHuL7zNyUuanqT/7sI2sb6g==} + '@tanstack/query-devtools@5.99.0': + resolution: {integrity: sha512-m4ufXaJ8FjWXw7xDtyzE/6fkZAyQFg9WrbMrUpt8ZecRJx58jiFOZ2lxZMphZdIpAnIeto/S8stbwLKLusyckQ==} '@testing-library/dom@10.4.1': resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} @@ -7474,8 +7781,8 @@ packages: '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@types/node@25.5.2': - resolution: {integrity: sha512-tO4ZIRKNC+MDWV4qKVZe3Ql/woTnmHDr5JD8UI5hn2pwBrHEwOEMZK7WlNb5RKB6EoJ02gwmQS9OrjuFnZYdpg==} + '@types/node@25.6.0': + resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -7579,6 +7886,14 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/eslint-plugin@8.58.1': + resolution: {integrity: sha512-eSkwoemjo76bdXl2MYqtxg51HNwUSkWfODUOQ3PaTLZGh9uIWWFZIjyjaJnex7wXDu+TRx+ATsnSxdN9YWfRTQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.58.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/parser@8.58.0': resolution: {integrity: sha512-rLoGZIf9afaRBYsPUMtvkDWykwXwUPL60HebR4JgTI8mxfFe2cQTu3AGitANp4b9B2QlVru6WzjgB2IzJKiCSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -7586,11 +7901,12 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.57.2': - resolution: {integrity: sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==} + '@typescript-eslint/parser@8.58.1': + resolution: {integrity: sha512-gGkiNMPqerb2cJSVcruigx9eHBlLG14fSdPdqMoOcBfh+vvn4iCq2C8MzUB89PrxOXk0y3GZ1yIWb9aOzL93bw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <6.0.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/project-service@8.58.0': resolution: {integrity: sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==} @@ -7598,19 +7914,19 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.57.2': - resolution: {integrity: sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==} + '@typescript-eslint/project-service@8.58.1': + resolution: {integrity: sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/scope-manager@8.58.0': resolution: {integrity: sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.57.2': - resolution: {integrity: sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==} + '@typescript-eslint/scope-manager@8.58.1': + resolution: {integrity: sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/tsconfig-utils@8.58.0': resolution: {integrity: sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==} @@ -7618,12 +7934,11 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.57.2': - resolution: {integrity: sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==} + '@typescript-eslint/tsconfig-utils@8.58.1': + resolution: {integrity: sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/type-utils@8.58.0': resolution: {integrity: sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg==} @@ -7632,19 +7947,20 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.57.2': - resolution: {integrity: sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==} + '@typescript-eslint/type-utils@8.58.1': + resolution: {integrity: sha512-HUFxvTJVroT+0rXVJC7eD5zol6ID+Sn5npVPWoFuHGg9Ncq5Q4EYstqR+UOqaNRFXi5TYkpXXkLhoCHe3G0+7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/types@8.58.0': resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.57.2': - resolution: {integrity: sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==} + '@typescript-eslint/types@8.58.1': + resolution: {integrity: sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/typescript-estree@8.58.0': resolution: {integrity: sha512-7vv5UWbHqew/dvs+D3e1RvLv1v2eeZ9txRHPnEEBUgSNLx5ghdzjHa0sgLWYVKssH+lYmV0JaWdoubo0ncGYLA==} @@ -7652,12 +7968,11 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.57.2': - resolution: {integrity: sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==} + '@typescript-eslint/typescript-estree@8.58.1': + resolution: {integrity: sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/utils@8.58.0': resolution: {integrity: sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA==} @@ -7666,14 +7981,60 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.57.2': - resolution: {integrity: sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==} + '@typescript-eslint/utils@8.58.1': + resolution: {integrity: sha512-Ln8R0tmWC7pTtLOzgJzYTXSCjJ9rDNHAqTaVONF4FEi2qwce8mD9iSOxOpLFFvWp/wBFlew0mjM1L1ihYWfBdQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/visitor-keys@8.58.0': resolution: {integrity: sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.58.1': + resolution: {integrity: sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260411.1': + resolution: {integrity: sha512-qdSDz0o4l4cEZhAn92ayzf7cKiMLrzSp9Xdk5mfaXpiahvxT39fNj5jiwDnRO+kHkHMMIYYL1nQbslSadargyg==} + cpu: [arm64] + os: [darwin] + + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260411.1': + resolution: {integrity: sha512-2Nea85rMeBZe2UV6V8vBVJ3mSFHn4XZ+ceXGFpnfsU2nay0l1ncoYw91JA/yPwM5ui3+pxAYwl8PWLCxlZCB3Q==} + cpu: [x64] + os: [darwin] + + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260411.1': + resolution: {integrity: sha512-5QRz/eMIb1JtojvB0oeBbIc6ZNqZiiMUSRDsyp1qMJacdrs+1fbQ8MYFft5ceJe94mcolGHnbcozwPg8hf5fDg==} + cpu: [arm64] + os: [linux] + + '@typescript/native-preview-linux-arm@7.0.0-dev.20260411.1': + resolution: {integrity: sha512-8/LqqQDp73kvT7aWh3sAFglGaSxtjxHIhEgqZ7XWG7+1aHHJeL1bcmRnk7JyP3BE5SPzs3bQhFC6Cvj6WQwTqQ==} + cpu: [arm] + os: [linux] + + '@typescript/native-preview-linux-x64@7.0.0-dev.20260411.1': + resolution: {integrity: sha512-H5NWP+ot/L+Tn9ds4W/t4Xx/CuxZF4iHDdRx2hCr/O0l8pBBq8C/MBJ/eUgVZXO4lD+8J6eQ7nOlGtJ0SS8Sbg==} + cpu: [x64] + os: [linux] + + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260411.1': + resolution: {integrity: sha512-/Zc1rotE/NS72xNc4UjaEKCBanBsQ/0/fS2sYLcN9yd6p6AYFYzmTWfbGy5qvv1ckXOI0dkOolLzK8nYbrJzbA==} + cpu: [arm64] + os: [win32] + + '@typescript/native-preview-win32-x64@7.0.0-dev.20260411.1': + resolution: {integrity: sha512-PhFL0w2Uz9jKdTtm7uy2PPl3nJiacX24jxzDD0R0eBHOY/49L3V5iD7eyBACPSzyWp0/dD7pPdKSnRbS3nVRng==} + cpu: [x64] + os: [win32] + + '@typescript/native-preview@7.0.0-dev.20260411.1': + resolution: {integrity: sha512-cBk+dPa5x5r9wnh5lz3zSnj7YJM1s/tSCf5owex+OkjJLji3iJu7J9kTH1SvvxA5kmkY76qFYw3vFN9h8W3gBA==} + hasBin: true + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -7834,6 +8195,9 @@ packages: '@vitest/expect@4.1.2': resolution: {integrity: sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==} + '@vitest/expect@4.1.4': + resolution: {integrity: sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==} + '@vitest/mocker@4.1.2': resolution: {integrity: sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==} peerDependencies: @@ -7845,24 +8209,47 @@ packages: vite: optional: true + '@vitest/mocker@4.1.4': + resolution: {integrity: sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==} + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/pretty-format@3.2.4': resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} '@vitest/pretty-format@4.1.2': resolution: {integrity: sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==} + '@vitest/pretty-format@4.1.4': + resolution: {integrity: sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==} + '@vitest/runner@4.1.2': resolution: {integrity: sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==} + '@vitest/runner@4.1.4': + resolution: {integrity: sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==} + '@vitest/snapshot@4.1.2': resolution: {integrity: sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==} + '@vitest/snapshot@4.1.4': + resolution: {integrity: sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==} + '@vitest/spy@3.2.4': resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} '@vitest/spy@4.1.2': resolution: {integrity: sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==} + '@vitest/spy@4.1.4': + resolution: {integrity: sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==} + '@vitest/ui@4.1.2': resolution: {integrity: sha512-/irhyeAcKS2u6Zokagf9tqZJ0t8S6kMZq4ZG9BHZv7I+fkRrYfQX4w7geYeC2r6obThz39PDxvXQzZX+qXqGeg==} peerDependencies: @@ -7874,6 +8261,9 @@ packages: '@vitest/utils@4.1.2': resolution: {integrity: sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==} + '@vitest/utils@4.1.4': + resolution: {integrity: sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -7919,6 +8309,9 @@ packages: '@webassemblyjs/wast-printer@1.14.1': resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + '@webcontainer/env@1.1.1': + resolution: {integrity: sha512-6aN99yL695Hi9SuIk1oC88l9o0gmxL1nGWWQ/kNy81HigJ0FoaoTXpytCj6ItzgyCEwA9kF1wixsTuv5cjsgng==} + '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -8196,8 +8589,8 @@ packages: axios@1.13.5: resolution: {integrity: sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==} - axios@1.14.0: - resolution: {integrity: sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ==} + axios@1.15.0: + resolution: {integrity: sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -8289,6 +8682,10 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + 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} @@ -8300,8 +8697,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.14: - resolution: {integrity: sha512-fOVLPAsFTsQfuCkvahZkzq6nf8KvGWanlYoTh0SVA0A/PIUxQGU2AOZAoD95n2gFLVDW/jP6sbGLny95nmEuHA==} + baseline-browser-mapping@2.10.18: + resolution: {integrity: sha512-VSnGQAOLtP5mib/DPyg2/t+Tlv65NTBz83BJBJvmLVHHuKJVaDOBvJJykiT5TR++em5nfAySPccDZDa4oSrn8A==} engines: {node: '>=6.0.0'} hasBin: true @@ -8370,11 +8767,15 @@ packages: resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} engines: {node: '>=14.16'} - brace-expansion@1.1.13: - resolution: {integrity: sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==} + brace-expansion@1.1.14: + resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} - brace-expansion@2.0.3: - resolution: {integrity: sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==} + brace-expansion@2.1.0: + resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} + + brace-expansion@5.0.2: + resolution: {integrity: sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==} + engines: {node: 20 || >=22} brace-expansion@5.0.5: resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} @@ -8434,8 +8835,8 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} engines: {node: '>= 0.4'} call-bound@1.0.4: @@ -8470,8 +8871,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001785: - resolution: {integrity: sha512-blhOL/WNR+Km1RI/LCVAvA73xplXA7ZbjzI4YkMK9pa6T/P3F2GxjNpEkyw5repTw9IvkyrjyHpwjnhZ5FOvYQ==} + caniuse-lite@1.0.30001787: + resolution: {integrity: sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg==} case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} @@ -8545,13 +8946,14 @@ packages: resolution: {integrity: sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==} engines: {node: '>=20.18.1'} - chevrotain-allstar@0.3.1: - resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} + chevrotain-allstar@0.4.1: + resolution: {integrity: sha512-PvVJm3oGqrveUVW2Vt/eZGeiAIsJszYweUcYwcskg9e+IubNYKKD+rHHem7A6XVO22eDAL+inxNIGAzZ/VIWlA==} peerDependencies: - chevrotain: ^11.0.0 + chevrotain: ^12.0.0 - chevrotain@11.1.2: - resolution: {integrity: sha512-opLQzEVriiH1uUQ4Kctsd49bRoFDXGGSC4GUqj7pGyxM3RehRhvTlZJc1FL/Flew2p5uwxa1tUDWKzI4wNM8pg==} + chevrotain@12.0.0: + resolution: {integrity: sha512-csJvb+6kEiQaqo1woTdSAuOWdN0WTLIydkKrBnS+V5gZz0oqBrp4kQ35519QgK6TpBThiG3V1vNSHlIkv4AglQ==} + engines: {node: '>=22.0.0'} chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} @@ -8812,8 +9214,8 @@ packages: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} - content-disposition@1.0.1: - resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} + content-disposition@1.1.0: + resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} engines: {node: '>=18'} content-type@1.0.5: @@ -8928,8 +9330,8 @@ packages: cose-base@2.2.0: resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} - cosmiconfig-typescript-loader@6.2.0: - resolution: {integrity: sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ==} + cosmiconfig-typescript-loader@6.3.0: + resolution: {integrity: sha512-Akr82WH1Wfqatyiqpj8HDkO2o2KmJRu1FhKfSNJP3K4IdXwHfEyL7MOb62i1AGQVLtIQM+iCE9CGOtrfhR+mmA==} engines: {node: '>=v18'} peerDependencies: '@types/node': '*' @@ -8978,10 +9380,10 @@ packages: crossws@0.3.5: resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} - crossws@0.4.4: - resolution: {integrity: sha512-w6c4OdpRNnudVmcgr7brb/+/HmYjMQvYToO/oTrprTwxRUiom3LYWU1PMWuD006okbUWpII1Ea9/+kwpUfmyRg==} + crossws@0.4.5: + resolution: {integrity: sha512-wUR89x/Rw7/8t+vn0CmGDYM9TD6VtARGb0LD5jq2wjtMy1vCP4M+sm6N6TigWeTYvnA8MoW29NqqXD0ep0rfBA==} peerDependencies: - srvx: '>=0.7.1' + srvx: '>=0.11.5' peerDependenciesMeta: srvx: optional: true @@ -9006,8 +9408,8 @@ packages: resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} engines: {node: '>=4'} - css-declaration-sorter@7.3.1: - resolution: {integrity: sha512-gz6x+KkgNCjxq3Var03pRYLhyNfwhkKF1g/yoLgDNtFvVu0/fOLV9C8fFEZRjACp/XQLumjAYo7JVjzH3wLbxA==} + css-declaration-sorter@7.4.0: + resolution: {integrity: sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.0.9 @@ -9216,8 +9618,8 @@ packages: peerDependencies: cytoscape: ^3.2.0 - cytoscape@3.33.1: - resolution: {integrity: sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==} + cytoscape@3.33.2: + resolution: {integrity: sha512-sj4HXd3DokGhzZAdjDejGvTPLqlt84vNFN8m7bGsOzDY5DyVcxIb2ejIXat2Iy7HxWhdT/N1oKyheJ5YdpsGuw==} engines: {node: '>=0.10'} d3-array@2.12.1: @@ -9486,8 +9888,8 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - defu@6.1.6: - resolution: {integrity: sha512-f8mefEW4WIVg4LckePx3mALjQSPQgFlg9U8yaPdlsbdYcHQyj9n2zL2LJEA52smeYxOvmd/nB7TpMtHGMTHcug==} + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} delaunator@5.1.0: resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} @@ -9535,8 +9937,8 @@ packages: engines: {node: '>= 4.0.0'} hasBin: true - devalue@5.6.4: - resolution: {integrity: sha512-Gp6rDldRsFh/7XuouDbxMH3Mx8GMCcgzIb1pDTvNyn8pZGQ22u+Wa+lGV9dQCltFQ7uVw0MhRyb8XDskNFOReA==} + devalue@5.7.1: + resolution: {integrity: sha512-MUbZ586EgQqdRnC4yDrlod3BEdyvE4TapGYHMW2CiaW+KkkFmWEFqBUaLltEZCGi0iFXCEjRF0OjF0DV2QHjOA==} devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -9652,18 +10054,13 @@ packages: effect@4.0.0-beta.36: resolution: {integrity: sha512-It0ivpQrAi7cTAISEVPLbPjGGLSN90dZ1Y6iDhYbUdBj/QH8rf/AZVx1tGYLgA++Jfs+5ONrxA88gpNYWXxXKA==} - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true - ejs@5.0.1: resolution: {integrity: sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A==} engines: {node: '>=0.12.18'} hasBin: true - electron-to-chromium@1.5.331: - resolution: {integrity: sha512-IbxXrsTlD3hRodkLnbxAPP4OuJYdWCeM3IOdT+CpcMoIwIoDfCmRpEtSPfwBXxVkg9xmBeY7Lz2Eo2TDn/HC3Q==} + electron-to-chromium@1.5.335: + resolution: {integrity: sha512-q9n5T4BR4Xwa2cwbrwcsDJtHD/enpQ5S1xF1IAtdqf5AAgqDFmR/aakqH3ChFdqd/QXJhS3rnnXFtexU7rax6Q==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -9858,10 +10255,10 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-plugin-oxlint@1.58.0: - resolution: {integrity: sha512-L3aZSg0x2fL0dXyOgoK8A1QUbnfGzXt6bX4AFD7Scauw6zVUBOZrES5eRTzLLGgeVg0el5lvqHGl1WFAGo14DA==} + eslint-plugin-oxlint@1.59.0: + resolution: {integrity: sha512-g0DR+xSsnUdyaMc2KAXvBVGWz5V4GwlAE1PM+ocKxl2Eg7YgOjkRLLbxgJ3bhYOhRLhD8F0X4DjJu2FSDvrvAg==} peerDependencies: - oxlint: ~1.58.0 + oxlint: ~1.59.0 eslint-plugin-playwright@2.10.1: resolution: {integrity: sha512-qea3UxBOb8fTwJ77FMApZKvRye5DOluDHcev0LDJwID3RELeun0JlqzrNIXAB/SXCyB/AesCW/6sZfcT9q3Edg==} @@ -10158,9 +10555,6 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 - filelist@1.0.6: - resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -10620,8 +11014,8 @@ packages: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} - hono@4.12.10: - resolution: {integrity: sha512-mx/p18PLy5og9ufies2GOSUqep98Td9q4i/EF6X7yJgAiIopxqdfIO3jbqsi3jRgTgw88jMDEzVKi+V2EF+27w==} + hono@4.12.12: + resolution: {integrity: sha512-p1JfQMKaceuCbpJKAPKVqyqviZdS0eUxH9v82oWo1kb9xjQ5wA6iP3FNVAPDFlz5/p7d45lO+BpSk1tuSZMF4Q==} engines: {node: '>=16.9.0'} hook-std@4.0.0: @@ -11172,11 +11566,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 - java-properties@1.0.2: resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==} engines: {node: '>= 0.6.0'} @@ -11416,8 +11805,8 @@ packages: karma-source-map-support@1.4.0: resolution: {integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==} - katex@0.16.44: - resolution: {integrity: sha512-EkxoDTk8ufHqHlf9QxGwcxeLkWRR3iOuYfRpfORgYfqc8s13bgb+YtRY59NK5ZpRaCwq1kqA6a5lpX8C/eLphQ==} + katex@0.16.45: + resolution: {integrity: sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==} hasBin: true keycharm@0.4.0: @@ -11437,18 +11826,14 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} kubernetes-types@1.30.0: resolution: {integrity: sha512-Dew1okvhM/SQcIa2rcgujNndZwU8VnSapDgdxlYoB84ZlpAD43U6KLAFqYo17ykSFGHNPrg0qry0bP+GJd9v7Q==} - langium@4.2.1: - resolution: {integrity: sha512-zu9QWmjpzJcomzdJQAHgDVhLGq5bLosVak1KVa40NzQHXfqr4eAHupvnPOVXEoLkg6Ocefvf/93d//SB7du4YQ==} + langium@4.2.2: + resolution: {integrity: sha512-JUshTRAfHI4/MF9dH2WupvjSXyn8JBuUEWazB8ZVJUtXutT0doDlAv1XKbZ1Pb5sMexa8FF4CFBc0iiul7gbUQ==} engines: {node: '>=20.10.0', npm: '>=10.2.3'} latest-version@7.0.0: @@ -11662,9 +12047,6 @@ packages: resolution: {integrity: sha512-XT9ewWAC43tiAV7xDAPflMkG0qOPn2QjHqlgX8FOqmWa/rxnyYDulF9T0F7tRy1u+TVTmK/M//6VIOye+2zDXg==} engines: {node: '>=20'} - lodash-es@4.17.23: - resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==} - lodash-es@4.18.1: resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} @@ -11755,8 +12137,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.7: - resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} + lru-cache@11.3.3: + resolution: {integrity: sha512-JvNw9Y81y33E+BEYPr0U7omo+U9AySnsMsEiXgwT6yqd31VQWTLNQqmT4ou5eqPFUrTfIDFta2wKhB1hyohtAQ==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -11815,20 +12197,20 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - marked-gfm-heading-id@4.1.3: - resolution: {integrity: sha512-aR0i63LmFbuxU/gAgrgz1Ir+8HK6zAIFXMlckeKHpV+qKbYaOP95L4Ux5Gi+sKmCZU5qnN2rdKpvpb7PnUBIWg==} + marked-gfm-heading-id@4.1.4: + resolution: {integrity: sha512-CspnvVfHSkb/znqdPS4jUR8HtCjq3M/DnrsJCrfLBLvdrgbemmoINKpeWKQYkBiXAoBGejw0cV7xzqrPdup3WA==} peerDependencies: - marked: '>=13 <18' + marked: '>=13 <19' - marked-highlight@2.2.3: - resolution: {integrity: sha512-FCfZRxW/msZAiasCML4isYpxyQWKEEx44vOgdn5Kloae+Qc3q4XR7WjpKKf8oMLk7JP9ZCRd2vhtclJFdwxlWQ==} + marked-highlight@2.2.4: + resolution: {integrity: sha512-PZxisNMJDduSjc0q6uvjsnqqHCXc9s0eyzxDO9sB1eNGJnd/H1/Fu+z6g/liC1dfJdFW4SftMwMlLvsBhUPrqQ==} peerDependencies: - marked: '>=4 <18' + marked: '>=4 <19' - marked-mangle@1.1.12: - resolution: {integrity: sha512-bRrqNcfU9v3iRECb7YPvA+/xKZMjHojd9R92YwHbFjdPQ+Wc7vozkbGKAv4U8AUl798mNUuY3DTBQkedsV3TeQ==} + marked-mangle@1.1.13: + resolution: {integrity: sha512-phz1W/nYMr1T08Q7wqH2aj+PPiK85E69WQGfId+prvryfgjY/Idibx4YUvKaYMDV9rK1qo+/yC+Quu/3gdaBeA==} peerDependencies: - marked: '>=4 <18' + marked: '>=4 <19' marked-shiki@1.2.1: resolution: {integrity: sha512-yHxYQhPY5oYaIRnROn98foKhuClark7M373/VpLxiy5TrDu9Jd/LsMwo8w+U91Up4oDb9IXFrP0N1MFRz8W/DQ==} @@ -11852,8 +12234,8 @@ packages: engines: {node: '>= 20'} hasBin: true - marked@17.0.5: - resolution: {integrity: sha512-6hLvc0/JEbRjRgzI6wnT2P1XuM1/RrrDEX0kPt0N7jGm1133g6X7DlxFasUIx+72aKAr904GTxhSLDrd5DIlZg==} + marked@17.0.6: + resolution: {integrity: sha512-gB0gkNafnonOw0obSTEGZTT86IuhILt2Wfx0mWH/1Au83kybTayroZ/V6nS25mN7u8ASy+5fMhgB3XPNrOZdmA==} engines: {node: '>= 20'} hasBin: true @@ -12585,8 +12967,8 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 - nx@22.6.2: - resolution: {integrity: sha512-Swc/7VUNqXQ9aEU6OzHTqUh6PDQAtsIT6Zgc0pAb2LLDOBYtSr+PO3lMWcZX0SZcu4vEzUZxDYAhkls5b096kw==} + nx@22.6.5: + resolution: {integrity: sha512-VRKhDAt684dXNSz9MNjE7MekkCfQF41P2PSx5jEWQjDEP1Z4jFZbyeygWs5ZyOroG7/n0MoWAJTe6ftvIcBOAg==} hasBin: true peerDependencies: '@swc-node/register': ^1.11.1 @@ -12597,8 +12979,8 @@ packages: '@swc/core': optional: true - nx@22.7.0-beta.10: - resolution: {integrity: sha512-x1USEFNPQ+K7CC5RbDOVc2RIojE5OjvkxBFkGfwAeXxT33ji9xlga6qvC8PzvlIvLubyeDzgLD9troHJOGKfow==} + nx@22.7.0-beta.12: + resolution: {integrity: sha512-qgo2Vo4KxRRn0QenJT76p4MlL90lIdwle9X0zPLmrrCn49yK3nYPKaoQZBfBv8Kpt5M00lbmmsewPthvAOxNeg==} hasBin: true peerDependencies: '@swc-node/register': ^1.11.1 @@ -12742,8 +13124,8 @@ packages: resolution: {integrity: sha512-pSzUmDjMyjC8iUUZ7fCLo0D1iUaYIfodd/WIQ6Zra11YkjkUQk3BOFoW4I5ec6uZ/0s2FEmxtiZ7hiTXFRp1cg==} hasBin: true - oxlint@1.58.0: - resolution: {integrity: sha512-t4s9leczDMqlvOSjnbCQe7gtoLkWgBGZ7sBdCJ9EOj5IXFSG/X7OAzK4yuH4iW+4cAYe8kLFbC8tuYMwWZm+Cg==} + oxlint@1.59.0: + resolution: {integrity: sha512-0xBLeGGjP4vD9pygRo8iuOkOzEU1MqOnfiOl7KYezL/QvWL8NUg6n03zXc7ZVqltiOpUxBk2zgHI3PnRIEdAvw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -12824,8 +13206,8 @@ packages: resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} engines: {node: '>=8'} - p-queue@9.1.1: - resolution: {integrity: sha512-yQS1vV2V7Q14MQrgD8jMNY5owPuGgVHVdSK8NqmKpOVajnjbaeMa6uLOzTALPtvJ7Vo4bw0BGsw7qfUT8z24Ig==} + p-queue@9.1.2: + resolution: {integrity: sha512-ktsDOALzTYTWWF1PbkNVg2rOt+HaOaMWJMUnt7T3qf5tvZ1L8dBW3tObzprBcXNMKkwj+yFSLqHso0x+UFcJXw==} engines: {node: '>=20'} p-reduce@2.1.0: @@ -13046,10 +13428,6 @@ packages: resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} @@ -13323,13 +13701,6 @@ packages: peerDependencies: postcss: ^8.4 - postcss-loader@6.2.1: - resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} - engines: {node: '>= 12.13.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 - postcss-loader@7.3.4: resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} engines: {node: '>= 14.15.0'} @@ -13733,8 +14104,8 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.8: - resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + postcss@8.5.9: + resolution: {integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==} engines: {node: ^10 || ^12 || >=14} powershell-utils@0.1.0: @@ -13750,8 +14121,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.8.1: - resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + prettier@3.8.2: + resolution: {integrity: sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q==} engines: {node: '>=14'} hasBin: true @@ -13857,8 +14228,8 @@ packages: resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} engines: {node: '>=0.6'} - qs@6.15.0: - resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} + qs@6.15.1: + resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} engines: {node: '>=0.6'} quansync@1.0.0: @@ -13897,10 +14268,10 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-dom@19.2.4: - resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} + react-dom@19.2.5: + resolution: {integrity: sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==} peerDependencies: - react: ^19.2.4 + react: ^19.2.5 react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} @@ -13947,8 +14318,8 @@ packages: peerDependencies: react: '>=15' - react@19.2.4: - resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} + react@19.2.5: + resolution: {integrity: sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -14048,8 +14419,8 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.13.0: - resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} + regjsparser@0.13.1: + resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} hasBin: true rehype-parse@9.0.1: @@ -14158,8 +14529,8 @@ packages: resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} - resolve@1.22.11: - resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + resolve@1.22.12: + resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} engines: {node: '>= 0.4'} hasBin: true @@ -14233,8 +14604,8 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rolldown@1.0.0-rc.13: - resolution: {integrity: sha512-bvVj8YJmf0rq4pSFmH7laLa6pYrhghv3PRzrCdRAr23g66zOKVJ4wkvFtgohtPLWmthgg8/rkaqRHrpUEh0Zbw==} + rolldown@1.0.0-rc.15: + resolution: {integrity: sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -14633,8 +15004,8 @@ packages: resolution: {integrity: sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ==} engines: {node: '>=20'} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} side-channel-map@1.0.1: @@ -14823,8 +15194,8 @@ packages: stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - start-server-and-test@3.0.0: - resolution: {integrity: sha512-R//IdnWC+H+raB6zJIqw5QbIsMAjjYFwJC/OIJO6kgZljguYe4n4LlA7vkPTO7zoctFlVPfymsNShjcPOIH8nw==} + start-server-and-test@3.0.2: + resolution: {integrity: sha512-g6v4zPr1RRL5XxXJ+Wnk1GFLb+DGZLjFqse+5lNZ0X7m4SRMC6eOA+AXYboQDfNCEjpnTu0AGrvJb/JTUOg8dQ==} engines: {node: ^22 || >=24} hasBin: true @@ -14859,6 +15230,15 @@ packages: prettier: optional: true + storybook@10.3.5: + resolution: {integrity: sha512-uBSZu/GZa9aEIW3QMGvdQPMZWhGxSe4dyRWU8B3/Vd47Gy/XLC7tsBxRr13txmmPOEDHZR94uLuq0H50fvuqBw==} + hasBin: true + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + stream-combiner2@1.1.1: resolution: {integrity: sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==} @@ -15025,6 +15405,12 @@ packages: engines: {node: '>=16'} hasBin: true + swc-loader@0.2.7: + resolution: {integrity: sha512-nwYWw3Fh9ame3Rtm7StS9SBLpHRRnYcK7bnpF3UKZmesAK0gw2/ADvlURFAINmPvKtDLzp+GBiP9yLoEjg6S9w==} + peerDependencies: + '@swc/core': ^1.2.147 + webpack: '>=2' + symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -15150,14 +15536,18 @@ packages: resolution: {integrity: sha512-Ae3OVUqifDw0wBriIBS7yVaW44Dp6eSHQcyq4Igc7eN2TJH/2YsicswaW+J/OuMvhpDPOKEgpAZCjkb4hpoyeA==} engines: {node: ^16.14.0 || >= 17.3.0} - tinyexec@1.0.4: - resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} + tinyexec@1.1.1: + resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} engines: {node: '>=18'} tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} + tinypool@1.1.1: resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} @@ -15174,17 +15564,21 @@ packages: resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} engines: {node: '>=14.0.0'} - tldts-core@7.0.27: - resolution: {integrity: sha512-YQ7uPjgWUibIK6DW5lrKujGwUKhLevU4hcGbP5O6TcIUb+oTjJYJVWPS4nZsIHrEEEG6myk/oqAJUEQmpZrHsg==} + tldts-core@7.0.28: + resolution: {integrity: sha512-7W5Efjhsc3chVdFhqtaU0KtK32J37Zcr9RKtID54nG+tIpcY79CQK/veYPODxtD/LJ4Lue66jvrQzIX2Z2/pUQ==} - tldts@7.0.27: - resolution: {integrity: sha512-I4FZcVFcqCRuT0ph6dCDpPuO4Xgzvh+spkcTr1gK7peIvxWauoloVO0vuy1FQnijT63ss6AsHB6+OIM4aXHbPg==} + tldts@7.0.28: + resolution: {integrity: sha512-+Zg3vWhRUv8B1maGSTFdev9mjoo8Etn2Ayfs4cnjlD3CsGkxXX4QyW3j2WJ0wdjYcYmy7Lx2RDsZMhgCWafKIw==} hasBin: true tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} + tmp@0.2.4: + resolution: {integrity: sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==} + engines: {node: '>=14.14'} + tmp@0.2.5: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} @@ -15380,8 +15774,8 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - typescript-eslint@8.58.0: - resolution: {integrity: sha512-e2TQzKfaI85fO+F3QywtX+tCTsu/D3WW5LVU6nz8hTFKFZ8yBJ6mSYRpXqdR3mFjPWmO0eWsTa5f+UpAOe/FMA==} + typescript-eslint@8.58.1: + resolution: {integrity: sha512-gf6/oHChByg9HJvhMO1iBexJh12AqqTfnuxscMDOVqfJW3htsdRJI/GfPpHTTcyeB8cSTUY2JcZmVgoyPqcrDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -15414,8 +15808,8 @@ packages: uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - undici-types@7.18.2: - resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} undici@6.24.1: resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==} @@ -15870,14 +16264,54 @@ packages: yaml: optional: true - vite@8.0.3: - resolution: {integrity: sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==} + vite@7.3.2: + resolution: {integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vite@8.0.8: + resolution: {integrity: sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 '@vitejs/devtools': ^0.1.0 - esbuild: ^0.27.0 + esbuild: ^0.27.0 || ^0.28.0 jiti: '>=1.21.0' less: ^4.0.0 sass: ^1.70.0 @@ -15956,6 +16390,47 @@ packages: jsdom: optional: true + vitest@4.1.4: + resolution: {integrity: sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.1.4 + '@vitest/browser-preview': 4.1.4 + '@vitest/browser-webdriverio': 4.1.4 + '@vitest/coverage-istanbul': 4.1.4 + '@vitest/coverage-v8': 4.1.4 + '@vitest/ui': 4.1.4 + happy-dom: '*' + jsdom: '*' + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vscode-jsonrpc@8.2.0: resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} engines: {node: '>=14.0.0'} @@ -15980,8 +16455,8 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} - wait-on@9.0.4: - resolution: {integrity: sha512-k8qrgfwrPVJXTeFY8tl6BxVHiclK11u72DVKhpybHfUL/K6KM4bdyK9EhIVYGytB5MJe/3lq4Tf0hrjM+pvJZQ==} + wait-on@9.0.5: + resolution: {integrity: sha512-qgnbHDfDTRIp73ANEJNRW/7kn8CrDUcvZz18xotJQku/P4saTGkbIzvnMZebPmVvVNUiRq1qWAPyqCH+W4H8KA==} engines: {node: '>=20.0.0'} hasBin: true @@ -16096,8 +16571,8 @@ packages: webpack-cli: optional: true - webpack@5.105.4: - resolution: {integrity: sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==} + webpack@5.106.1: + resolution: {integrity: sha512-EW8af29ak8Oaf4T8k8YsajjrDBDYgnKZ5er6ljWFJsXABfTNowQfvHLftwcepVgdz+IoLSdEAbBiM9DFXoll9w==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -16314,6 +16789,11 @@ packages: resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} engines: {node: '>= 6'} + yaml@2.8.0: + resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} + engines: {node: '>= 14.6'} + hasBin: true + yaml@2.8.3: resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} engines: {node: '>= 14.6'} @@ -16608,13 +17088,13 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@analogjs/vite-plugin-angular@2.4.0(@angular-devkit/build-angular@21.2.4(add8bde166a9c825117621996a363ef3))(@angular/build@21.2.4(d177fe19ad80c073ee03544d343f9ed0))': + '@analogjs/vite-plugin-angular@2.4.5(@angular-devkit/build-angular@21.2.7(3964406a4d3b8b07c14eff877b373c9b))(@angular/build@21.2.7(8e65f8e48c9e332d0b9f72f53830b70c))': dependencies: - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 ts-morph: 21.0.1 optionalDependencies: - '@angular-devkit/build-angular': 21.2.4(add8bde166a9c825117621996a363ef3) - '@angular/build': 21.2.4(d177fe19ad80c073ee03544d343f9ed0) + '@angular-devkit/build-angular': 21.2.7(3964406a4d3b8b07c14eff877b373c9b) + '@angular/build': 21.2.7(8e65f8e48c9e332d0b9f72f53830b70c) '@angular-devkit/architect@0.2102.4(chokidar@5.0.0)': dependencies: @@ -16630,14 +17110,21 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@21.2.4(add8bde166a9c825117621996a363ef3)': + '@angular-devkit/architect@0.2102.7(chokidar@5.0.0)': + dependencies: + '@angular-devkit/core': 21.2.7(chokidar@5.0.0) + rxjs: 7.8.2 + transitivePeerDependencies: + - chokidar + + '@angular-devkit/build-angular@21.2.4(58973c4e634acdaeac68b624dc858cb9)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2102.4(chokidar@5.0.0) - '@angular-devkit/build-webpack': 0.2102.4(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@angular-devkit/build-webpack': 0.2102.4(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)) '@angular-devkit/core': 21.2.4(chokidar@5.0.0) - '@angular/build': 21.2.4(9289f41bd077dfa7b0ffee53c58b3ae6) - '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2) + '@angular/build': 21.2.4(6f268c517dc0eb50f51f0c8f7c4d5261) + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) '@babel/core': 7.29.0 '@babel/generator': 7.29.1 '@babel/helper-annotate-as-pure': 7.27.3 @@ -16648,7 +17135,7 @@ snapshots: '@babel/preset-env': 7.29.0(@babel/core@7.29.0) '@babel/runtime': 7.28.6 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 21.2.4(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(typescript@6.0.2)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@ngtools/webpack': 21.2.4(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(typescript@6.0.2)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)) ansi-colors: 4.1.3 autoprefixer: 10.4.27(postcss@8.5.6) babel-loader: 10.0.0(@babel/core@7.29.0)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) @@ -16685,16 +17172,107 @@ snapshots: typescript: 6.0.2 webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack-merge: 6.0.1 + webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)) + optionalDependencies: + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-server': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/ssr': 21.2.4(9c898ff27dabd87c2e39c7d23b6394cf) + esbuild: 0.27.3 + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + tailwindcss: 4.2.2 + transitivePeerDependencies: + - '@angular/compiler' + - '@emnapi/core' + - '@emnapi/runtime' + - '@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 + - vitest + - webpack-cli + - yaml + + '@angular-devkit/build-angular@21.2.7(3964406a4d3b8b07c14eff877b373c9b)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + '@angular-devkit/build-webpack': 0.2102.7(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)) + '@angular-devkit/core': 21.2.7(chokidar@5.0.0) + '@angular/build': 21.2.7(3c6372062760667afc9a02be67cba827) + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) + '@babel/core': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-runtime': 7.29.0(@babel/core@7.29.0) + '@babel/preset-env': 7.29.0(@babel/core@7.29.0) + '@babel/runtime': 7.28.6 + '@discoveryjs/json-ext': 0.6.3 + '@ngtools/webpack': 21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(typescript@6.0.2)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + ansi-colors: 4.1.3 + autoprefixer: 10.4.27(postcss@8.5.6) + babel-loader: 10.0.0(@babel/core@7.29.0)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + browserslist: 4.28.2 + copy-webpack-plugin: 14.0.0(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + css-loader: 7.1.3(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + esbuild-wasm: 0.27.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.4.2 + less-loader: 12.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.4.2)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + license-webpack-plugin: 4.0.2(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + loader-utils: 3.3.1 + mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + open: 11.0.0 + ora: 9.3.0 + picomatch: 4.0.4 + piscina: 5.1.4 + postcss: 8.5.6 + postcss-loader: 8.2.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(postcss@8.5.6)(typescript@6.0.2)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + resolve-url-loader: 5.0.0 + rxjs: 7.8.2 + sass: 1.97.3 + sass-loader: 16.0.7(@rspack/core@1.6.8(@swc/helpers@0.5.21))(sass-embedded@1.99.0)(sass@1.97.3)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + semver: 7.7.4 + source-map-loader: 5.0.0(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + source-map-support: 0.5.21 + terser: 5.46.0 + tinyglobby: 0.2.15 + tree-kill: 1.2.2 + tslib: 2.8.1 + typescript: 6.0.2 + webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)) + webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)) optionalDependencies: - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) - '@angular/platform-server': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) - '@angular/ssr': 21.2.4(7413267c1883f3ede58570ed37d43fb5) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-server': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/ssr': 21.2.4(9c898ff27dabd87c2e39c7d23b6394cf) esbuild: 0.27.3 - ng-packagr: 21.2.1(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) tailwindcss: 4.2.2 transitivePeerDependencies: - '@angular/compiler' @@ -16721,14 +17299,14 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-angular@21.2.4(b8427e3316f5f1e4538d50a5e8d618ff)': + '@angular-devkit/build-angular@21.2.7(fc79cc3d3a205494e4e38b22dbe7acdf)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.4(chokidar@5.0.0) - '@angular-devkit/build-webpack': 0.2102.4(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - '@angular-devkit/core': 21.2.4(chokidar@5.0.0) - '@angular/build': 21.2.4(9289f41bd077dfa7b0ffee53c58b3ae6) - '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2) + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + '@angular-devkit/build-webpack': 0.2102.7(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@angular-devkit/core': 21.2.7(chokidar@5.0.0) + '@angular/build': 21.2.7(d8bc8ba821c574250fec37dba526a1f9) + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) '@babel/core': 7.29.0 '@babel/generator': 7.29.1 '@babel/helper-annotate-as-pure': 7.27.3 @@ -16739,7 +17317,7 @@ snapshots: '@babel/preset-env': 7.29.0(@babel/core@7.29.0) '@babel/runtime': 7.28.6 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 21.2.4(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(typescript@6.0.2)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@ngtools/webpack': 21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(typescript@6.0.2)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) ansi-colors: 4.1.3 autoprefixer: 10.4.27(postcss@8.5.6) babel-loader: 10.0.0(@babel/core@7.29.0)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) @@ -16758,7 +17336,7 @@ snapshots: mini-css-extract-plugin: 2.10.0(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) open: 11.0.0 ora: 9.3.0 - picomatch: 4.0.3 + picomatch: 4.0.4 piscina: 5.1.4 postcss: 8.5.6 postcss-loader: 8.2.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(postcss@8.5.6)(typescript@6.0.2)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) @@ -16780,12 +17358,12 @@ snapshots: webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) optionalDependencies: - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) - '@angular/platform-server': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) - '@angular/ssr': 21.2.4(7413267c1883f3ede58570ed37d43fb5) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-server': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/ssr': 21.2.4(9c898ff27dabd87c2e39c7d23b6394cf) esbuild: 0.27.3 - ng-packagr: 21.2.1(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) tailwindcss: 4.2.2 transitivePeerDependencies: - '@angular/compiler' @@ -16812,11 +17390,29 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.2102.4(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + '@angular-devkit/build-webpack@0.2102.4(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3))': dependencies: '@angular-devkit/architect': 0.2102.4(chokidar@5.0.0) rxjs: 7.8.2 webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + transitivePeerDependencies: + - chokidar + + '@angular-devkit/build-webpack@0.2102.7(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3))': + dependencies: + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + rxjs: 7.8.2 + webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + transitivePeerDependencies: + - chokidar + + '@angular-devkit/build-webpack@0.2102.7(chokidar@5.0.0)(webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + dependencies: + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + rxjs: 7.8.2 + webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) transitivePeerDependencies: - chokidar @@ -16854,6 +17450,17 @@ snapshots: optionalDependencies: chokidar: 5.0.0 + '@angular-devkit/core@21.2.7(chokidar@5.0.0)': + dependencies: + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) + jsonc-parser: 3.3.1 + picomatch: 4.0.4 + rxjs: 7.8.2 + source-map: 0.7.6 + optionalDependencies: + chokidar: 5.0.0 + '@angular-devkit/schematics@21.1.0(chokidar@5.0.0)': dependencies: '@angular-devkit/core': 21.1.0(chokidar@5.0.0) @@ -16874,11 +17481,21 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-eslint/builder@21.3.1(@angular/cli@21.2.4(@types/node@25.5.2)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@angular-devkit/schematics@21.2.7(chokidar@5.0.0)': dependencies: - '@angular-devkit/architect': 0.2102.6(chokidar@5.0.0) - '@angular-devkit/core': 21.2.6(chokidar@5.0.0) - '@angular/cli': 21.2.4(@types/node@25.5.2)(chokidar@5.0.0) + '@angular-devkit/core': 21.2.7(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-eslint/builder@21.3.1(@angular/cli@21.2.4(@types/node@25.6.0)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + dependencies: + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + '@angular-devkit/core': 21.2.7(chokidar@5.0.0) + '@angular/cli': 21.2.4(@types/node@25.6.0)(chokidar@5.0.0) eslint: 10.2.0(jiti@2.6.1) typescript: 6.0.2 transitivePeerDependencies: @@ -16886,34 +17503,34 @@ snapshots: '@angular-eslint/bundled-angular-compiler@21.3.1': {} - '@angular-eslint/eslint-plugin-template@21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/types@8.58.0)(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@angular-eslint/eslint-plugin-template@21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/types@8.58.1)(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 21.3.1 '@angular-eslint/template-parser': 21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@angular-eslint/utils': 21.3.1(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/types': 8.58.0 - '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@angular-eslint/utils': 21.3.1(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) aria-query: 5.3.2 axobject-query: 4.1.0 eslint: 10.2.0(jiti@2.6.1) typescript: 6.0.2 - '@angular-eslint/eslint-plugin@21.3.1(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@angular-eslint/eslint-plugin@21.3.1(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 21.3.1 - '@angular-eslint/utils': 21.3.1(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@angular-eslint/utils': 21.3.1(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) eslint: 10.2.0(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@6.0.2) typescript: 6.0.2 - '@angular-eslint/schematics@21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@angular/cli@21.2.4(@types/node@25.5.2)(chokidar@5.0.0))(@typescript-eslint/types@8.58.0)(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@angular-eslint/schematics@21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@angular/cli@21.2.4(@types/node@25.6.0)(chokidar@5.0.0))(@typescript-eslint/types@8.58.1)(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: - '@angular-devkit/core': 21.2.6(chokidar@5.0.0) - '@angular-devkit/schematics': 21.2.4(chokidar@5.0.0) - '@angular-eslint/eslint-plugin': 21.3.1(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@angular-eslint/eslint-plugin-template': 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/types@8.58.0)(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@angular/cli': 21.2.4(@types/node@25.5.2)(chokidar@5.0.0) + '@angular-devkit/core': 21.2.7(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.7(chokidar@5.0.0) + '@angular-eslint/eslint-plugin': 21.3.1(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@angular-eslint/eslint-plugin-template': 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/types@8.58.1)(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@angular/cli': 21.2.4(@types/node@25.6.0)(chokidar@5.0.0) ignore: 7.0.5 semver: 7.7.4 strip-json-comments: 3.1.1 @@ -16932,29 +17549,29 @@ snapshots: eslint-scope: 9.1.2 typescript: 6.0.2 - '@angular-eslint/utils@21.3.1(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@angular-eslint/utils@21.3.1(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: '@angular-eslint/bundled-angular-compiler': 21.3.1 - '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) eslint: 10.2.0(jiti@2.6.1) typescript: 6.0.2 - '@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))': + '@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))': dependencies: - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) tslib: 2.8.1 - '@angular/build@21.2.4(33aa2f808a50cac312b6b6a28e7f9322)': + '@angular/build@21.2.4(6f268c517dc0eb50f51f0c8f7c4d5261)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2102.4(chokidar@5.0.0) - '@angular/compiler': 21.2.6 - '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2) + '@angular/compiler': 21.2.8 + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@25.5.2) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + '@inquirer/confirm': 5.1.21(@types/node@25.6.0) + '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) beasties: 0.4.1 browserslist: 4.28.2 esbuild: 0.27.3 @@ -16975,19 +17592,19 @@ snapshots: tslib: 2.8.1 typescript: 6.0.2 undici: 7.24.4 - vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) + vite: 7.3.1(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) - '@angular/platform-server': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) - '@angular/ssr': 21.2.4(7413267c1883f3ede58570ed37d43fb5) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-server': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/ssr': 21.2.4(9c898ff27dabd87c2e39c7d23b6394cf) less: 4.4.2 lmdb: 3.5.1 - ng-packagr: 21.2.1(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) postcss: 8.5.6 tailwindcss: 4.2.2 - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + vitest: 4.1.2(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -17003,17 +17620,17 @@ snapshots: - tsx - yaml - '@angular/build@21.2.4(9289f41bd077dfa7b0ffee53c58b3ae6)': + '@angular/build@21.2.4(d420cc8f9f399e85da6a2b440ffa8d8e)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2102.4(chokidar@5.0.0) - '@angular/compiler': 21.2.6 - '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2) + '@angular/compiler': 21.2.8 + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@25.5.2) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + '@inquirer/confirm': 5.1.21(@types/node@25.6.0) + '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) beasties: 0.4.1 browserslist: 4.28.2 esbuild: 0.27.3 @@ -17034,19 +17651,78 @@ snapshots: tslib: 2.8.1 typescript: 6.0.2 undici: 7.24.4 - vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + vite: 7.3.1(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) + watchpack: 2.5.1 + optionalDependencies: + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-server': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/ssr': 21.2.4(9c898ff27dabd87c2e39c7d23b6394cf) + less: 4.6.4 + lmdb: 3.5.1 + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + postcss: 8.5.9 + tailwindcss: 4.2.2 + vitest: 4.1.2(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@types/node' + - chokidar + - jiti + - lightningcss + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@angular/build@21.2.7(3c6372062760667afc9a02be67cba827)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + '@angular/compiler': 21.2.8 + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-split-export-declaration': 7.24.7 + '@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.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + beasties: 0.4.1 + browserslist: 4.28.2 + esbuild: 0.27.3 + https-proxy-agent: 7.0.6 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 + listr2: 9.0.5 + magic-string: 0.30.21 + mrmime: 2.0.1 + parse5-html-rewriting-stream: 8.0.0 + picomatch: 4.0.4 + piscina: 5.1.4 + rolldown: 1.0.0-rc.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + sass: 1.97.3 + semver: 7.7.4 + source-map-support: 0.5.21 + tinyglobby: 0.2.15 + tslib: 2.8.1 + typescript: 6.0.2 + undici: 7.24.4 + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) - '@angular/platform-server': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) - '@angular/ssr': 21.2.4(7413267c1883f3ede58570ed37d43fb5) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-server': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/ssr': 21.2.4(9c898ff27dabd87c2e39c7d23b6394cf) less: 4.4.2 lmdb: 3.5.1 - ng-packagr: 21.2.1(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) postcss: 8.5.6 tailwindcss: 4.2.2 - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + vitest: 4.1.4(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2))(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -17062,17 +17738,17 @@ snapshots: - tsx - yaml - '@angular/build@21.2.4(d177fe19ad80c073ee03544d343f9ed0)': + '@angular/build@21.2.7(8e65f8e48c9e332d0b9f72f53830b70c)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.4(chokidar@5.0.0) - '@angular/compiler': 21.2.6 - '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2) + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + '@angular/compiler': 21.2.8 + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@25.5.2) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + '@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.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) beasties: 0.4.1 browserslist: 4.28.2 esbuild: 0.27.3 @@ -17083,7 +17759,185 @@ snapshots: magic-string: 0.30.21 mrmime: 2.0.1 parse5-html-rewriting-stream: 8.0.0 - picomatch: 4.0.3 + picomatch: 4.0.4 + piscina: 5.1.4 + rolldown: 1.0.0-rc.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + sass: 1.97.3 + semver: 7.7.4 + source-map-support: 0.5.21 + tinyglobby: 0.2.15 + tslib: 2.8.1 + typescript: 6.0.2 + undici: 7.24.4 + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) + watchpack: 2.5.1 + optionalDependencies: + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-server': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/ssr': 21.2.4(9c898ff27dabd87c2e39c7d23b6394cf) + less: 4.6.4 + lmdb: 3.5.1 + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + postcss: 8.5.9 + tailwindcss: 4.2.2 + vitest: 4.1.4(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2))(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@types/node' + - chokidar + - jiti + - lightningcss + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + optional: true + + '@angular/build@21.2.7(96b25aee48d0098251f6172ee94d10d9)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + '@angular/compiler': 21.2.8 + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-split-export-declaration': 7.24.7 + '@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.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + beasties: 0.4.1 + browserslist: 4.28.2 + esbuild: 0.27.3 + https-proxy-agent: 7.0.6 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 + listr2: 9.0.5 + magic-string: 0.30.21 + mrmime: 2.0.1 + parse5-html-rewriting-stream: 8.0.0 + picomatch: 4.0.4 + piscina: 5.1.4 + rolldown: 1.0.0-rc.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + sass: 1.97.3 + semver: 7.7.4 + source-map-support: 0.5.21 + tinyglobby: 0.2.15 + tslib: 2.8.1 + typescript: 6.0.2 + undici: 7.24.4 + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) + watchpack: 2.5.1 + optionalDependencies: + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-server': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/ssr': 21.2.4(9c898ff27dabd87c2e39c7d23b6394cf) + less: 4.4.2 + lmdb: 3.5.1 + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + postcss: 8.5.6 + tailwindcss: 4.2.2 + vitest: 4.1.4(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2))(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@types/node' + - chokidar + - jiti + - lightningcss + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@angular/build@21.2.7(d8bc8ba821c574250fec37dba526a1f9)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + '@angular/compiler': 21.2.8 + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-split-export-declaration': 7.24.7 + '@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.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3)) + beasties: 0.4.1 + browserslist: 4.28.2 + esbuild: 0.27.3 + https-proxy-agent: 7.0.6 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 + listr2: 9.0.5 + magic-string: 0.30.21 + mrmime: 2.0.1 + parse5-html-rewriting-stream: 8.0.0 + picomatch: 4.0.4 + piscina: 5.1.4 + rolldown: 1.0.0-rc.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + sass: 1.97.3 + semver: 7.7.4 + source-map-support: 0.5.21 + tinyglobby: 0.2.15 + tslib: 2.8.1 + typescript: 6.0.2 + undici: 7.24.4 + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + watchpack: 2.5.1 + optionalDependencies: + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-server': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/ssr': 21.2.4(9c898ff27dabd87c2e39c7d23b6394cf) + less: 4.4.2 + lmdb: 3.5.1 + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + postcss: 8.5.6 + tailwindcss: 4.2.2 + vitest: 4.1.4(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2))(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + - '@types/node' + - chokidar + - jiti + - lightningcss + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@angular/build@21.2.7(d96f627e1308d93e6fd6257980a11d4d)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + '@angular/compiler': 21.2.8 + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-split-export-declaration': 7.24.7 + '@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.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + beasties: 0.4.1 + browserslist: 4.28.2 + esbuild: 0.27.3 + https-proxy-agent: 7.0.6 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 + listr2: 9.0.5 + magic-string: 0.30.21 + mrmime: 2.0.1 + parse5-html-rewriting-stream: 8.0.0 + picomatch: 4.0.4 piscina: 5.1.4 rolldown: 1.0.0-rc.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) sass: 1.97.3 @@ -17093,19 +17947,19 @@ snapshots: tslib: 2.8.1 typescript: 6.0.2 undici: 7.24.4 - vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) - '@angular/platform-server': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) - '@angular/ssr': 21.2.4(7413267c1883f3ede58570ed37d43fb5) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-server': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/ssr': 21.2.4(9c898ff27dabd87c2e39c7d23b6394cf) less: 4.6.4 lmdb: 3.5.1 - ng-packagr: 21.2.1(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) - postcss: 8.5.8 + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + postcss: 8.5.9 tailwindcss: 4.2.2 - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + vitest: 4.1.4(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2))(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -17121,22 +17975,22 @@ snapshots: - tsx - yaml - '@angular/cdk@21.2.4(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': + '@angular/cdk@21.2.4(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/common': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) parse5: 8.0.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/cli@21.2.4(@types/node@25.5.2)(chokidar@5.0.0)': + '@angular/cli@21.2.4(@types/node@25.6.0)(chokidar@5.0.0)': dependencies: '@angular-devkit/architect': 0.2102.4(chokidar@5.0.0) '@angular-devkit/core': 21.2.4(chokidar@5.0.0) '@angular-devkit/schematics': 21.2.4(chokidar@5.0.0) - '@inquirer/prompts': 7.10.1(@types/node@25.5.2) - '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@25.5.2))(@types/node@25.5.2)(listr2@9.0.5) + '@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.26.0(zod@4.3.6) '@schematics/angular': 21.2.4(chokidar@5.0.0) '@yarnpkg/lockfile': 1.1.0 @@ -17156,15 +18010,15 @@ snapshots: - chokidar - supports-color - '@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2)': + '@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2)': dependencies: - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2)': + '@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2)': dependencies: - '@angular/compiler': 21.2.6 + '@angular/compiler': 21.2.8 '@babel/core': 7.29.0 '@jridgewell/sourcemap-codec': 1.5.5 chokidar: 5.0.0 @@ -17178,104 +18032,102 @@ snapshots: transitivePeerDependencies: - supports-color - '@angular/compiler@21.2.6': + '@angular/compiler@21.2.8': dependencies: tslib: 2.8.1 - '@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)': + '@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 21.2.6 + '@angular/compiler': 21.2.8 zone.js: 0.16.1 - '@angular/forms@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': + '@angular/forms@21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/common': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) '@standard-schema/spec': 1.1.0 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/language-service@21.2.6': {} + '@angular/language-service@21.2.8': {} - '@angular/material@21.2.4(2045f7bd5f6e95e11cc97fff9a766245)': + '@angular/material@21.2.4(fbde9ce512ad4d9140426a0e0f8b7baf)': dependencies: - '@angular/cdk': 21.2.4(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) - '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/forms': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/cdk': 21.2.4(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/common': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/forms': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/platform-browser-dynamic@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))': + '@angular/platform-browser-dynamic@21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))': dependencies: - '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/compiler': 21.2.6 - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/common': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/compiler': 21.2.8 + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) tslib: 2.8.1 - '@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))': + '@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))': dependencies: - '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/common': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/animations': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) - '@angular/platform-server@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': + '@angular/platform-server@21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/compiler': 21.2.6 - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/common': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/compiler': 21.2.8 + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) rxjs: 7.8.2 tslib: 2.8.1 xhr2: 0.2.1 - '@angular/router@21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': + '@angular/router@21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2)': dependencies: - '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/common': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/ssr@21.2.4(7413267c1883f3ede58570ed37d43fb5)': + '@angular/ssr@21.2.4(9c898ff27dabd87c2e39c7d23b6394cf)': dependencies: - '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/router': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/common': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/router': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) tslib: 2.8.1 optionalDependencies: - '@angular/platform-server': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) + '@angular/platform-server': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(rxjs@7.8.2) '@antfu/install-pkg@1.1.0': dependencies: package-manager-detector: 1.6.0 - tinyexec: 1.0.4 + tinyexec: 1.1.1 '@arr/every@1.0.1': {} - '@asamuzakjp/css-color@5.1.5': + '@asamuzakjp/css-color@5.1.10': dependencies: '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - lru-cache: 11.2.7 - '@asamuzakjp/dom-selector@7.0.6': + '@asamuzakjp/dom-selector@7.0.9': dependencies: '@asamuzakjp/nwsapi': 2.3.9 bidi-js: 1.0.3 css-tree: 3.2.1 is-potential-custom-element-name: 1.0.1 - lru-cache: 11.2.7 '@asamuzakjp/nwsapi@2.3.9': {} @@ -17313,12 +18165,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@5.0.3(astro@6.1.1(@types/node@25.5.2)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))': + '@astrojs/mdx@5.0.3(astro@6.1.1(@types/node@25.6.0)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))': dependencies: '@astrojs/markdown-remark': 7.1.0 '@mdx-js/mdx': 3.1.1 acorn: 8.16.0 - astro: 6.1.1(@types/node@25.5.2)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + astro: 6.1.1(@types/node@25.6.0)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) es-module-lexer: 2.0.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -17332,12 +18184,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@5.0.3(astro@6.1.1(@types/node@25.5.2)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3))': + '@astrojs/mdx@5.0.3(astro@6.1.1(@types/node@25.6.0)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3))': dependencies: '@astrojs/markdown-remark': 7.1.0 '@mdx-js/mdx': 3.1.1 acorn: 8.16.0 - astro: 6.1.1(@types/node@25.5.2)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) + astro: 6.1.1(@types/node@25.6.0)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) es-module-lexer: 2.0.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -17355,17 +18207,17 @@ snapshots: dependencies: prismjs: 1.30.0 - '@astrojs/react@5.0.2(@types/node@25.5.2)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)': + '@astrojs/react@5.0.3(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)': dependencies: '@astrojs/internal-helpers': 0.8.0 '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@vitejs/plugin-react': 5.2.0(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) - devalue: 5.6.4 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@vitejs/plugin-react': 5.2.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + devalue: 5.7.1 + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) ultrahtml: 1.6.0 - vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - '@types/node' - jiti @@ -17516,7 +18368,7 @@ snapshots: '@babel/helper-plugin-utils': 7.28.6 debug: 4.4.3 lodash.debounce: 4.0.8 - resolve: 1.22.11 + resolve: 1.22.12 transitivePeerDependencies: - supports-color @@ -17527,7 +18379,7 @@ snapshots: '@babel/helper-plugin-utils': 7.28.6 debug: 4.4.3 lodash.debounce: 4.0.8 - resolve: 1.22.11 + resolve: 1.22.12 transitivePeerDependencies: - supports-color @@ -18910,22 +19762,20 @@ snapshots: dependencies: fontkitten: 1.0.3 - '@chevrotain/cst-dts-gen@11.1.2': + '@chevrotain/cst-dts-gen@12.0.0': dependencies: - '@chevrotain/gast': 11.1.2 - '@chevrotain/types': 11.1.2 - lodash-es: 4.17.23 + '@chevrotain/gast': 12.0.0 + '@chevrotain/types': 12.0.0 - '@chevrotain/gast@11.1.2': + '@chevrotain/gast@12.0.0': dependencies: - '@chevrotain/types': 11.1.2 - lodash-es: 4.17.23 + '@chevrotain/types': 12.0.0 - '@chevrotain/regexp-to-ast@11.1.2': {} + '@chevrotain/regexp-to-ast@12.0.0': {} - '@chevrotain/types@11.1.2': {} + '@chevrotain/types@12.0.0': {} - '@chevrotain/utils@11.1.2': {} + '@chevrotain/utils@12.0.0': {} '@clack/core@1.2.0': dependencies: @@ -18944,14 +19794,14 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@commitlint/cli@20.5.0(@types/node@25.5.2)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.2)': + '@commitlint/cli@20.5.0(@types/node@25.6.0)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.2)': dependencies: '@commitlint/format': 20.5.0 '@commitlint/lint': 20.5.0 - '@commitlint/load': 20.5.0(@types/node@25.5.2)(typescript@6.0.2) + '@commitlint/load': 20.5.0(@types/node@25.6.0)(typescript@6.0.2) '@commitlint/read': 20.5.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) '@commitlint/types': 20.5.0 - tinyexec: 1.0.4 + tinyexec: 1.1.1 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' @@ -18997,14 +19847,14 @@ snapshots: '@commitlint/rules': 20.5.0 '@commitlint/types': 20.5.0 - '@commitlint/load@20.5.0(@types/node@25.5.2)(typescript@6.0.2)': + '@commitlint/load@20.5.0(@types/node@25.6.0)(typescript@6.0.2)': dependencies: '@commitlint/config-validator': 20.5.0 '@commitlint/execute-rule': 20.0.0 '@commitlint/resolve-extends': 20.5.0 '@commitlint/types': 20.5.0 cosmiconfig: 9.0.1(typescript@6.0.2) - cosmiconfig-typescript-loader: 6.2.0(@types/node@25.5.2)(cosmiconfig@9.0.1(typescript@6.0.2))(typescript@6.0.2) + cosmiconfig-typescript-loader: 6.3.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@6.0.2))(typescript@6.0.2) is-plain-obj: 4.1.0 lodash.mergewith: 4.6.2 picocolors: 1.1.1 @@ -19026,7 +19876,7 @@ snapshots: '@commitlint/types': 20.5.0 git-raw-commits: 5.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) minimist: 1.2.8 - tinyexec: 1.0.4 + tinyexec: 1.1.1 transitivePeerDependencies: - conventional-commits-filter - conventional-commits-parser @@ -19144,7 +19994,7 @@ snapshots: dot: 2.0.0-beta.1 fs-extra: 11.3.4 - '@conventional-changelog/git-client@2.6.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)': + '@conventional-changelog/git-client@2.7.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)': dependencies: '@simple-libs/child-process-utils': 1.0.2 '@simple-libs/stream-utils': 1.2.0 @@ -19207,272 +20057,272 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-alpha-function@1.0.1(postcss@8.5.8)': + '@csstools/postcss-alpha-function@1.0.1(postcss@8.5.9)': dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-cascade-layers@5.0.2(postcss@8.5.8)': + '@csstools/postcss-cascade-layers@5.0.2(postcss@8.5.9)': dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - '@csstools/postcss-color-function-display-p3-linear@1.0.1(postcss@8.5.8)': + '@csstools/postcss-color-function-display-p3-linear@1.0.1(postcss@8.5.9)': dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-color-function@4.0.12(postcss@8.5.8)': + '@csstools/postcss-color-function@4.0.12(postcss@8.5.9)': dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-color-mix-function@3.0.12(postcss@8.5.8)': + '@csstools/postcss-color-mix-function@3.0.12(postcss@8.5.9)': dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-color-mix-variadic-function-arguments@1.0.2(postcss@8.5.8)': + '@csstools/postcss-color-mix-variadic-function-arguments@1.0.2(postcss@8.5.9)': dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-content-alt-text@2.0.8(postcss@8.5.8)': + '@csstools/postcss-content-alt-text@2.0.8(postcss@8.5.9)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-contrast-color-function@2.0.12(postcss@8.5.8)': + '@csstools/postcss-contrast-color-function@2.0.12(postcss@8.5.9)': dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-exponential-functions@2.0.9(postcss@8.5.8)': + '@csstools/postcss-exponential-functions@2.0.9(postcss@8.5.9)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.8)': + '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.9)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.11(postcss@8.5.8)': + '@csstools/postcss-gamut-mapping@2.0.11(postcss@8.5.9)': dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-gradients-interpolation-method@5.0.12(postcss@8.5.8)': + '@csstools/postcss-gradients-interpolation-method@5.0.12(postcss@8.5.9)': dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-hwb-function@4.0.12(postcss@8.5.8)': + '@csstools/postcss-hwb-function@4.0.12(postcss@8.5.9)': dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-ic-unit@4.0.4(postcss@8.5.8)': + '@csstools/postcss-ic-unit@4.0.4(postcss@8.5.9)': dependencies: - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - '@csstools/postcss-initial@2.0.1(postcss@8.5.8)': + '@csstools/postcss-initial@2.0.1(postcss@8.5.9)': dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.8)': + '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.9)': dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - '@csstools/postcss-light-dark-function@2.0.11(postcss@8.5.8)': + '@csstools/postcss-light-dark-function@2.0.11(postcss@8.5.9)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.8)': + '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.9)': dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.8)': + '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.9)': dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.8)': + '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.9)': dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.8)': + '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.9)': dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@3.0.4(postcss@8.5.8)': + '@csstools/postcss-logical-viewport-units@3.0.4(postcss@8.5.9)': dependencies: '@csstools/css-tokenizer': 3.0.4 - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-media-minmax@2.0.9(postcss@8.5.8)': + '@csstools/postcss-media-minmax@2.0.9(postcss@8.5.9)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5(postcss@8.5.8)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5(postcss@8.5.9)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.8)': + '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.9)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - '@csstools/postcss-normalize-display-values@4.0.1(postcss@8.5.8)': + '@csstools/postcss-normalize-display-values@4.0.1(postcss@8.5.9)': dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.12(postcss@8.5.8)': + '@csstools/postcss-oklab-function@4.0.12(postcss@8.5.9)': dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-position-area-property@1.0.0(postcss@8.5.8)': + '@csstools/postcss-position-area-property@1.0.0(postcss@8.5.9)': dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-progressive-custom-properties@4.2.1(postcss@8.5.8)': + '@csstools/postcss-progressive-custom-properties@4.2.1(postcss@8.5.9)': dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - '@csstools/postcss-property-rule-prelude-list@1.0.0(postcss@8.5.8)': + '@csstools/postcss-property-rule-prelude-list@1.0.0(postcss@8.5.9)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-random-function@2.0.1(postcss@8.5.8)': + '@csstools/postcss-random-function@2.0.1(postcss@8.5.9)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-relative-color-syntax@3.0.12(postcss@8.5.8)': + '@csstools/postcss-relative-color-syntax@3.0.12(postcss@8.5.9)': dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.8)': + '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.9)': dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.8)': + '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.9)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-stepped-value-functions@4.0.9(postcss@8.5.8)': + '@csstools/postcss-stepped-value-functions@4.0.9(postcss@8.5.9)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-syntax-descriptor-syntax-production@1.0.1(postcss@8.5.8)': + '@csstools/postcss-syntax-descriptor-syntax-production@1.0.1(postcss@8.5.9)': dependencies: '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-system-ui-font-family@1.0.0(postcss@8.5.8)': + '@csstools/postcss-system-ui-font-family@1.0.0(postcss@8.5.9)': dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-text-decoration-shorthand@4.0.3(postcss@8.5.8)': + '@csstools/postcss-text-decoration-shorthand@4.0.3(postcss@8.5.9)': dependencies: '@csstools/color-helpers': 5.1.0 - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.9(postcss@8.5.8)': + '@csstools/postcss-trigonometric-functions@4.0.9(postcss@8.5.9)': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.8 + postcss: 8.5.9 - '@csstools/postcss-unset-value@4.0.0(postcss@8.5.8)': + '@csstools/postcss-unset-value@4.0.0(postcss@8.5.9)': dependencies: - postcss: 8.5.8 + postcss: 8.5.9 '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.1)': dependencies: @@ -19482,37 +20332,37 @@ snapshots: dependencies: postcss-selector-parser: 7.1.1 - '@csstools/utilities@2.0.0(postcss@8.5.8)': + '@csstools/utilities@2.0.0(postcss@8.5.9)': dependencies: - postcss: 8.5.8 + postcss: 8.5.9 '@discoveryjs/json-ext@0.5.7': {} '@discoveryjs/json-ext@0.6.3': {} - '@docsearch/core@4.6.2(@types/react@18.3.28)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@docsearch/core@4.6.2(@types/react@18.3.28)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': optionalDependencies: '@types/react': 18.3.28 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) '@docsearch/css@4.6.2': {} - '@docsearch/react@4.6.2(@algolia/client-search@5.50.1)(@types/react@18.3.28)(algoliasearch@5.50.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)': + '@docsearch/react@4.6.2(@algolia/client-search@5.50.1)(@types/react@18.3.28)(algoliasearch@5.50.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(search-insights@2.17.3)': dependencies: '@algolia/autocomplete-core': 1.19.2(@algolia/client-search@5.50.1)(algoliasearch@5.50.1)(search-insights@2.17.3) - '@docsearch/core': 4.6.2(@types/react@18.3.28)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docsearch/core': 4.6.2(@types/react@18.3.28)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docsearch/css': 4.6.2 optionalDependencies: '@types/react': 18.3.28 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@docusaurus/babel@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@docusaurus/babel@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -19525,7 +20375,7 @@ snapshots: '@babel/runtime-corejs3': 7.29.2 '@babel/traverse': 7.29.0 '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.3.4 tslib: 2.8.1 @@ -19538,32 +20388,34 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.9.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/bundler@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: '@babel/core': 7.29.0 - '@docusaurus/babel': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/babel': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/cssnano-preset': 3.9.2 '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - css-loader: 6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - cssnano: 6.1.2(postcss@8.5.8) - file-loader: 6.2.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + copy-webpack-plugin: 11.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + css-loader: 6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + cssnano: 6.1.2(postcss@8.5.9) + file-loader: 6.2.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.10.2(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - null-loader: 4.0.1(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - postcss: 8.5.8 - postcss-loader: 7.3.4(postcss@8.5.8)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - postcss-preset-env: 10.6.1(postcss@8.5.8) - terser-webpack-plugin: 5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + mini-css-extract-plugin: 2.10.2(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + null-loader: 4.0.1(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + postcss: 8.5.9 + postcss-loader: 7.3.4(postcss@8.5.9)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + postcss-preset-env: 10.6.1(postcss@8.5.9) + terser-webpack-plugin: 5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) - webpackbar: 6.0.1(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpackbar: 6.0.1(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + optionalDependencies: + '@docusaurus/faster': 3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7) transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -19579,16 +20431,16 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/core@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/babel': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/bundler': 3.9.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) + '@docusaurus/babel': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/bundler': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@mdx-js/react': 3.1.1(@types/react@18.3.28)(react@19.2.4) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@mdx-js/react': 3.1.1(@types/react@18.3.28)(react@19.2.5) boxen: 6.2.1 chalk: 4.1.2 chokidar: 3.6.0 @@ -19603,28 +20455,28 @@ snapshots: execa: 5.1.1 fs-extra: 11.3.4 html-tags: 3.3.1 - html-webpack-plugin: 5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + html-webpack-plugin: 5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) leven: 3.1.0 lodash: 4.18.1 open: 8.4.2 p-map: 4.0.0 prompts: 2.4.2 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)' - react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.4)' - react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.4))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - react-router: 5.3.4(react@19.2.4) - react-router-config: 5.1.1(react-router@5.3.4(react@19.2.4))(react@19.2.4) - react-router-dom: 5.3.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)' + react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.5)' + react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.5))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + react-router: 5.3.4(react@19.2.5) + react-router-config: 5.1.1(react-router@5.3.4(react@19.2.5))(react@19.2.5) + react-router-dom: 5.3.4(react@19.2.5) semver: 7.7.4 serve-handler: 6.1.7 tinypool: 1.1.1 tslib: 2.8.1 update-notifier: 6.0.2 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) webpack-merge: 6.0.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -19645,32 +20497,49 @@ snapshots: '@docusaurus/cssnano-preset@3.9.2': dependencies: - cssnano-preset-advanced: 6.1.2(postcss@8.5.8) - postcss: 8.5.8 - postcss-sort-media-queries: 5.2.0(postcss@8.5.8) + cssnano-preset-advanced: 6.1.2(postcss@8.5.9) + postcss: 8.5.9 + postcss-sort-media-queries: 5.2.0(postcss@8.5.9) tslib: 2.8.1 + '@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7)': + dependencies: + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@rspack/core': 1.6.8(@swc/helpers@0.5.21) + '@swc/core': 1.15.24(@swc/helpers@0.5.21) + '@swc/html': 1.15.24 + browserslist: 4.28.2 + lightningcss: 1.32.0 + swc-loader: 0.2.7(@swc/core@1.15.24(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + tslib: 2.8.1 + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + '@docusaurus/logger@3.9.2': dependencies: chalk: 4.1.2 tslib: 2.8.1 - '@docusaurus/mdx-loader@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@docusaurus/mdx-loader@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@mdx-js/mdx': 3.1.1 '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.5.0 - file-loader: 6.2.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + file-loader: 6.2.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) fs-extra: 11.3.4 image-size: 2.0.2 mdast-util-mdx: 3.0.0 mdast-util-to-string: 4.0.0 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) rehype-raw: 7.0.0 remark-directive: 3.0.1 remark-emoji: 4.0.1 @@ -19680,9 +20549,9 @@ snapshots: tslib: 2.8.1 unified: 11.0.5 unist-util-visit: 5.1.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) vfile: 6.0.3 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - '@swc/core' - esbuild @@ -19690,17 +20559,17 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@docusaurus/module-type-aliases@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/history': 4.7.11 '@types/react': 18.3.28 '@types/react-router-config': 5.0.11 '@types/react-router-dom': 5.3.3 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)' - react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.4)' + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)' + react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.5)' transitivePeerDependencies: - '@swc/core' - esbuild @@ -19708,29 +20577,29 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-content-blog@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/plugin-content-blog@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) cheerio: 1.0.0-rc.12 feed: 4.2.2 fs-extra: 11.3.4 lodash: 4.18.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) schema-dts: 1.1.5 srcset: 4.0.0 tslib: 2.8.1 unist-util-visit: 5.1.0 utility-types: 3.11.0 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -19749,28 +20618,28 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.3.4 js-yaml: 4.1.1 lodash: 4.18.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) schema-dts: 1.1.5 tslib: 2.8.1 utility-types: 3.11.0 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -19789,18 +20658,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-pages@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/plugin-content-pages@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) fs-extra: 11.3.4 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) tslib: 2.8.1 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -19819,12 +20688,12 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-css-cascade-layers@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/plugin-css-cascade-layers@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -19846,15 +20715,15 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-debug@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/plugin-debug@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) fs-extra: 11.3.4 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-json-view-lite: 2.5.0(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + react-json-view-lite: 2.5.0(react@19.2.5) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -19874,13 +20743,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-analytics@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/plugin-google-analytics@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -19900,14 +20769,14 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-gtag@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/plugin-google-gtag@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/gtag.js': 0.0.12 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -19927,13 +20796,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/plugin-google-tag-manager@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -19953,17 +20822,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-sitemap@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/plugin-sitemap@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) fs-extra: 11.3.4 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) sitemap: 7.1.3 tslib: 2.8.1 transitivePeerDependencies: @@ -19984,18 +20853,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-svgr@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/plugin-svgr@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@svgr/core': 8.1.0(typescript@6.0.2) '@svgr/webpack': 8.1.0(typescript@6.0.2) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) tslib: 2.8.1 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -20014,25 +20883,25 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/preset-classic@3.9.2(@algolia/client-search@5.50.1)(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@6.0.2)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-css-cascade-layers': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-debug': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-google-analytics': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-google-gtag': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-google-tag-manager': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-sitemap': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-svgr': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/theme-classic': 3.9.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/theme-search-algolia': 3.9.2(@algolia/client-search@5.50.1)(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@6.0.2) - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@docusaurus/preset-classic@3.9.2(@algolia/client-search@5.50.1)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(search-insights@2.17.3)(typescript@6.0.2)': + dependencies: + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-content-pages': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-css-cascade-layers': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-debug': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-google-analytics': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-google-gtag': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-google-tag-manager': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-sitemap': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-svgr': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/theme-classic': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/theme-search-algolia': 3.9.2(@algolia/client-search@5.50.1)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(search-insights@2.17.3)(typescript@6.0.2) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) transitivePeerDependencies: - '@algolia/client-search' - '@docusaurus/faster' @@ -20054,37 +20923,37 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/react-loadable@6.0.0(react@19.2.4)': + '@docusaurus/react-loadable@6.0.0(react@19.2.5)': dependencies: '@types/react': 18.3.28 - react: 19.2.4 + react: 19.2.5 - '@docusaurus/theme-classic@3.9.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@docusaurus/theme-classic@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/plugin-content-pages': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/theme-translations': 3.9.2 - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@mdx-js/react': 3.1.1(@types/react@18.3.28)(react@19.2.4) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@mdx-js/react': 3.1.1(@types/react@18.3.28)(react@19.2.5) clsx: 2.1.1 infima: 0.2.0-alpha.45 lodash: 4.18.1 nprogress: 0.2.0 - postcss: 8.5.8 - prism-react-renderer: 2.4.1(react@19.2.4) + postcss: 8.5.9 + prism-react-renderer: 2.4.1(react@19.2.5) prismjs: 1.30.0 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-router-dom: 5.3.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + react-router-dom: 5.3.4(react@19.2.5) rtlcss: 4.3.0 tslib: 2.8.1 utility-types: 3.11.0 @@ -20106,21 +20975,21 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/mdx-loader': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/module-type-aliases': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@types/history': 4.7.11 '@types/react': 18.3.28 '@types/react-router-config': 5.0.11 clsx: 2.1.1 parse-numeric-range: 1.3.0 - prism-react-renderer: 2.4.1(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + prism-react-renderer: 2.4.1(react@19.2.5) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) tslib: 2.8.1 utility-types: 3.11.0 transitivePeerDependencies: @@ -20130,24 +20999,24 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-search-algolia@3.9.2(@algolia/client-search@5.50.1)(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)(typescript@6.0.2)': + '@docusaurus/theme-search-algolia@3.9.2(@algolia/client-search@5.50.1)(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/react@18.3.28)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(search-insights@2.17.3)(typescript@6.0.2)': dependencies: - '@docsearch/react': 4.6.2(@algolia/client-search@5.50.1)(@types/react@18.3.28)(algoliasearch@5.50.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3) - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) + '@docsearch/react': 4.6.2(@algolia/client-search@5.50.1)(@types/react@18.3.28)(algoliasearch@5.50.1)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(search-insights@2.17.3) + '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) '@docusaurus/logger': 3.9.2 - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/plugin-content-docs': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(@swc/helpers@0.5.21)(esbuild@0.27.7))(@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5))(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@docusaurus/theme-translations': 3.9.2 - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-validation': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) algoliasearch: 5.50.1 algoliasearch-helper: 3.28.1(algoliasearch@5.50.1) clsx: 2.1.1 eta: 2.2.0 fs-extra: 11.3.4 lodash: 4.18.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) tslib: 2.8.1 utility-types: 3.11.0 transitivePeerDependencies: @@ -20178,7 +21047,7 @@ snapshots: '@docusaurus/tsconfig@3.9.2': {} - '@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@docusaurus/types@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 @@ -20186,11 +21055,11 @@ snapshots: '@types/react': 18.3.28 commander: 5.1.0 joi: 17.13.3 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)' + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)' utility-types: 3.11.0 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) webpack-merge: 5.10.0 transitivePeerDependencies: - '@swc/core' @@ -20199,9 +21068,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@docusaurus/utils-common@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) tslib: 2.8.1 transitivePeerDependencies: - '@swc/core' @@ -20212,11 +21081,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-validation@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@docusaurus/utils-validation@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@docusaurus/logger': 3.9.2 - '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/utils': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) fs-extra: 11.3.4 joi: 17.13.3 js-yaml: 4.1.1 @@ -20231,14 +21100,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@docusaurus/utils@3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@docusaurus/logger': 3.9.2 - '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@docusaurus/types': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@docusaurus/utils-common': 3.9.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) escape-string-regexp: 4.0.0 execa: 5.1.1 - file-loader: 6.2.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + file-loader: 6.2.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) fs-extra: 11.3.4 github-slugger: 1.5.0 globby: 11.1.0 @@ -20251,9 +21120,9 @@ snapshots: prompts: 2.4.2 resolve-pathname: 3.0.0 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) utility-types: 3.11.0 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - '@swc/core' - esbuild @@ -20267,30 +21136,27 @@ snapshots: dependencies: '@types/hammerjs': 2.0.46 - '@emnapi/core@1.9.1': + '@emnapi/core@1.4.5': dependencies: - '@emnapi/wasi-threads': 1.2.0 + '@emnapi/wasi-threads': 1.0.4 tslib: 2.8.1 - optional: true '@emnapi/core@1.9.2': dependencies: '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 - '@emnapi/runtime@1.9.1': + '@emnapi/runtime@1.4.5': dependencies: tslib: 2.8.1 - optional: true '@emnapi/runtime@1.9.2': dependencies: tslib: 2.8.1 - '@emnapi/wasi-threads@1.2.0': + '@emnapi/wasi-threads@1.0.4': dependencies: tslib: 2.8.1 - optional: true '@emnapi/wasi-threads@1.2.1': dependencies: @@ -20459,19 +21325,19 @@ snapshots: '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.23.4': + '@eslint/config-array@0.23.5': dependencies: - '@eslint/object-schema': 3.0.4 + '@eslint/object-schema': 3.0.5 debug: 4.4.3 minimatch: 10.2.5 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.5.4': + '@eslint/config-helpers@0.5.5': dependencies: - '@eslint/core': 1.2.0 + '@eslint/core': 1.2.1 - '@eslint/core@1.2.0': + '@eslint/core@1.2.1': dependencies: '@types/json-schema': 7.0.15 @@ -20493,11 +21359,11 @@ snapshots: optionalDependencies: eslint: 10.2.0(jiti@2.6.1) - '@eslint/object-schema@3.0.4': {} + '@eslint/object-schema@3.0.5': {} - '@eslint/plugin-kit@0.7.0': + '@eslint/plugin-kit@0.7.1': dependencies: - '@eslint/core': 1.2.0 + '@eslint/core': 1.2.1 levn: 0.4.1 '@exodus/bytes@1.15.0': {} @@ -20529,9 +21395,9 @@ snapshots: '@harperfast/extended-iterable@1.0.3': optional: true - '@hono/node-server@1.19.12(hono@4.12.10)': + '@hono/node-server@1.19.13(hono@4.12.12)': dependencies: - hono: 4.12.10 + hono: 4.12.12 '@humanfs/core@0.19.1': {} @@ -20650,128 +21516,128 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.3.2(@types/node@25.5.2)': + '@inquirer/checkbox@4.3.2(@types/node@25.6.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.5.2) + '@inquirer/core': 10.3.2(@types/node@25.6.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@inquirer/type': 3.0.10(@types/node@25.6.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 - '@inquirer/confirm@5.1.21(@types/node@25.5.2)': + '@inquirer/confirm@5.1.21(@types/node@25.6.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.5.2) - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@inquirer/core': 10.3.2(@types/node@25.6.0) + '@inquirer/type': 3.0.10(@types/node@25.6.0) optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 - '@inquirer/core@10.3.2(@types/node@25.5.2)': + '@inquirer/core@10.3.2(@types/node@25.6.0)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@inquirer/type': 3.0.10(@types/node@25.6.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 - '@inquirer/editor@4.2.23(@types/node@25.5.2)': + '@inquirer/editor@4.2.23(@types/node@25.6.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.5.2) - '@inquirer/external-editor': 1.0.3(@types/node@25.5.2) - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@inquirer/core': 10.3.2(@types/node@25.6.0) + '@inquirer/external-editor': 1.0.3(@types/node@25.6.0) + '@inquirer/type': 3.0.10(@types/node@25.6.0) optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 - '@inquirer/expand@4.0.23(@types/node@25.5.2)': + '@inquirer/expand@4.0.23(@types/node@25.6.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.5.2) - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@inquirer/core': 10.3.2(@types/node@25.6.0) + '@inquirer/type': 3.0.10(@types/node@25.6.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 - '@inquirer/external-editor@1.0.3(@types/node@25.5.2)': + '@inquirer/external-editor@1.0.3(@types/node@25.6.0)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@inquirer/figures@1.0.15': {} - '@inquirer/input@4.3.1(@types/node@25.5.2)': + '@inquirer/input@4.3.1(@types/node@25.6.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.5.2) - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@inquirer/core': 10.3.2(@types/node@25.6.0) + '@inquirer/type': 3.0.10(@types/node@25.6.0) optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 - '@inquirer/number@3.0.23(@types/node@25.5.2)': + '@inquirer/number@3.0.23(@types/node@25.6.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.5.2) - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@inquirer/core': 10.3.2(@types/node@25.6.0) + '@inquirer/type': 3.0.10(@types/node@25.6.0) optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 - '@inquirer/password@4.0.23(@types/node@25.5.2)': + '@inquirer/password@4.0.23(@types/node@25.6.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.5.2) - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@inquirer/core': 10.3.2(@types/node@25.6.0) + '@inquirer/type': 3.0.10(@types/node@25.6.0) optionalDependencies: - '@types/node': 25.5.2 - - '@inquirer/prompts@7.10.1(@types/node@25.5.2)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@25.5.2) - '@inquirer/confirm': 5.1.21(@types/node@25.5.2) - '@inquirer/editor': 4.2.23(@types/node@25.5.2) - '@inquirer/expand': 4.0.23(@types/node@25.5.2) - '@inquirer/input': 4.3.1(@types/node@25.5.2) - '@inquirer/number': 3.0.23(@types/node@25.5.2) - '@inquirer/password': 4.0.23(@types/node@25.5.2) - '@inquirer/rawlist': 4.1.11(@types/node@25.5.2) - '@inquirer/search': 3.2.2(@types/node@25.5.2) - '@inquirer/select': 4.4.2(@types/node@25.5.2) + '@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.5.2 + '@types/node': 25.6.0 - '@inquirer/rawlist@4.1.11(@types/node@25.5.2)': + '@inquirer/rawlist@4.1.11(@types/node@25.6.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.5.2) - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@inquirer/core': 10.3.2(@types/node@25.6.0) + '@inquirer/type': 3.0.10(@types/node@25.6.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 - '@inquirer/search@3.2.2(@types/node@25.5.2)': + '@inquirer/search@3.2.2(@types/node@25.6.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.5.2) + '@inquirer/core': 10.3.2(@types/node@25.6.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@inquirer/type': 3.0.10(@types/node@25.6.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 - '@inquirer/select@4.4.2(@types/node@25.5.2)': + '@inquirer/select@4.4.2(@types/node@25.6.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.5.2) + '@inquirer/core': 10.3.2(@types/node@25.6.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@inquirer/type': 3.0.10(@types/node@25.6.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 - '@inquirer/type@3.0.10(@types/node@25.5.2)': + '@inquirer/type@3.0.10(@types/node@25.6.0)': optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@isaacs/cliui@8.0.2': dependencies: @@ -20799,19 +21665,21 @@ snapshots: '@jest/console@30.3.0': dependencies: '@jest/types': 30.3.0 - '@types/node': 25.5.2 + '@types/node': 25.6.0 chalk: 4.1.2 jest-message-util: 30.3.0 jest-util: 30.3.0 slash: 3.0.0 + '@jest/diff-sequences@30.0.1': {} + '@jest/diff-sequences@30.3.0': {} '@jest/environment@30.3.0': dependencies: '@jest/fake-timers': 30.3.0 '@jest/types': 30.3.0 - '@types/node': 25.5.2 + '@types/node': 25.6.0 jest-mock: 30.3.0 '@jest/expect-utils@30.3.0': @@ -20828,8 +21696,8 @@ snapshots: '@jest/fake-timers@30.3.0': dependencies: '@jest/types': 30.3.0 - '@sinonjs/fake-timers': 15.3.0 - '@types/node': 25.5.2 + '@sinonjs/fake-timers': 15.3.2 + '@types/node': 25.6.0 jest-message-util: 30.3.0 jest-mock: 30.3.0 jest-util: 30.3.0 @@ -20847,7 +21715,7 @@ snapshots: '@jest/pattern@30.0.1': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 jest-regex-util: 30.0.1 '@jest/reporters@30.3.0': @@ -20858,7 +21726,7 @@ snapshots: '@jest/transform': 30.3.0 '@jest/types': 30.3.0 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 25.5.2 + '@types/node': 25.6.0 chalk: 4.1.2 collect-v8-coverage: 1.0.3 exit-x: 0.2.2 @@ -20937,7 +21805,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -20947,7 +21815,7 @@ snapshots: '@jest/schemas': 30.0.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -21104,10 +21972,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@25.5.2))(@types/node@25.5.2)(listr2@9.0.5)': + '@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.10.1(@types/node@25.5.2) - '@inquirer/type': 3.0.10(@types/node@25.5.2) + '@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' @@ -21133,8 +22001,6 @@ snapshots: '@lmdb/lmdb-win32-x64@3.5.1': optional: true - '@ltd/j-toml@1.38.0': {} - '@mdx-js/mdx@3.1.1': dependencies: '@types/estree': 1.0.8 @@ -21165,25 +22031,25 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.4)': + '@mdx-js/react@3.1.1(@types/react@18.3.28)(react@19.2.5)': dependencies: '@types/mdx': 2.0.13 '@types/react': 18.3.28 - react: 19.2.4 + react: 19.2.5 - '@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.4)': + '@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.5)': dependencies: '@types/mdx': 2.0.13 '@types/react': 19.2.14 - react: 19.2.4 + react: 19.2.5 '@mermaid-js/parser@1.1.0': dependencies: - langium: 4.2.1 + langium: 4.2.2 '@modelcontextprotocol/sdk@1.26.0(zod@4.3.6)': dependencies: - '@hono/node-server': 1.19.12(hono@4.12.10) + '@hono/node-server': 1.19.13(hono@4.12.12) ajv: 8.18.0 ajv-formats: 3.0.1(ajv@8.18.0) content-type: 1.0.5 @@ -21193,7 +22059,7 @@ snapshots: eventsource-parser: 3.0.6 express: 5.2.1 express-rate-limit: 8.3.2(express@5.2.1) - hono: 4.12.10 + hono: 4.12.12 jose: 6.2.2 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 @@ -21226,14 +22092,14 @@ snapshots: - utf-8-validate - vue-tsc - '@module-federation/data-prefetch@2.3.1(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@module-federation/data-prefetch@2.3.1(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@module-federation/runtime': 2.3.1(node-fetch@2.7.0(encoding@0.1.13)) '@module-federation/sdk': 2.3.1(node-fetch@2.7.0(encoding@0.1.13)) fs-extra: 9.1.0 optionalDependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) transitivePeerDependencies: - node-fetch @@ -21257,11 +22123,11 @@ snapshots: - node-fetch - utf-8-validate - '@module-federation/enhanced@2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + '@module-federation/enhanced@2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': dependencies: '@module-federation/bridge-react-webpack-plugin': 2.3.1(node-fetch@2.7.0(encoding@0.1.13)) '@module-federation/cli': 2.3.1(node-fetch@2.7.0(encoding@0.1.13))(typescript@6.0.2) - '@module-federation/data-prefetch': 2.3.1(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@module-federation/data-prefetch': 2.3.1(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@module-federation/dts-plugin': 2.3.1(node-fetch@2.7.0(encoding@0.1.13))(typescript@6.0.2) '@module-federation/error-codes': 2.3.1 '@module-federation/inject-external-runtime-core-plugin': 2.3.1(@module-federation/runtime-tools@2.3.1) @@ -21276,7 +22142,7 @@ snapshots: upath: 2.0.1 optionalDependencies: typescript: 6.0.2 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - '@rspack/core' - bufferutil @@ -21317,16 +22183,16 @@ snapshots: - utf-8-validate - vue-tsc - '@module-federation/node@2.7.39(@rspack/core@1.6.8(@swc/helpers@0.5.21))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + '@module-federation/node@2.7.39(@rspack/core@1.6.8(@swc/helpers@0.5.21))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': dependencies: - '@module-federation/enhanced': 2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@module-federation/enhanced': 2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) '@module-federation/runtime': 2.3.1(node-fetch@2.7.0(encoding@0.1.13)) '@module-federation/sdk': 2.3.1(node-fetch@2.7.0(encoding@0.1.13)) encoding: 0.1.13 node-fetch: 2.7.0(encoding@0.1.13) tapable: 2.3.0 optionalDependencies: - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - '@rspack/core' - bufferutil @@ -21528,29 +22394,28 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': - dependencies: - '@emnapi/core': 1.9.1 - '@emnapi/runtime': 1.9.1 - '@tybys/wasm-util': 0.10.1 - optional: true - - '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: '@emnapi/core': 1.9.2 '@emnapi/runtime': 1.9.2 '@tybys/wasm-util': 0.10.1 optional: true - '@netlify/functions@5.1.5': + '@netlify/functions@5.2.0': dependencies: '@netlify/types': 2.6.0 '@netlify/types@2.6.0': {} - '@ngtools/webpack@21.2.4(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(typescript@6.0.2)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + '@ngtools/webpack@21.2.4(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(typescript@6.0.2)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3))': dependencies: - '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2) + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) + typescript: 6.0.2 + webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) + + '@ngtools/webpack@21.2.7(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(typescript@6.0.2)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + dependencies: + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) typescript: 6.0.2 webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) @@ -21573,7 +22438,7 @@ snapshots: agent-base: 7.1.4 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - lru-cache: 11.2.7 + lru-cache: 11.3.3 socks-proxy-agent: 8.0.5 transitivePeerDependencies: - supports-color @@ -21587,7 +22452,7 @@ snapshots: '@gar/promise-retry': 1.0.3 '@npmcli/promise-spawn': 9.0.1 ini: 6.0.0 - lru-cache: 11.2.7 + lru-cache: 11.3.3 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 semver: 7.7.4 @@ -21626,33 +22491,33 @@ snapshots: transitivePeerDependencies: - supports-color - '@nx/angular@22.6.2(471fad38a868a22111c123225b52bfe1)': - dependencies: - '@angular-devkit/core': 21.2.4(chokidar@5.0.0) - '@angular-devkit/schematics': 21.2.4(chokidar@5.0.0) - '@nx/devkit': 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/eslint': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/module-federation': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(node-fetch@2.7.0(encoding@0.1.13))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@nx/rspack': 22.6.2(883ac9613c299b0ba66c6c8a5b7c229d) - '@nx/web': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/webpack': 22.6.2(@babel/traverse@7.29.0)(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(lightningcss@1.32.0)(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) - '@nx/workspace': 22.6.2(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) + '@nx/angular@22.6.5(dfc411f39ba79e806b6c04d6ffa96d4a)': + dependencies: + '@angular-devkit/core': 21.2.7(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.7(chokidar@5.0.0) + '@nx/devkit': 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/eslint': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/module-federation': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(node-fetch@2.7.0(encoding@0.1.13))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@nx/rspack': 22.6.5(b0542b19ecfd530902fd29d3831a9781) + '@nx/web': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/webpack': 22.6.5(@babel/traverse@7.29.0)(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(lightningcss@1.32.0)(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) + '@nx/workspace': 22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) '@schematics/angular': 21.2.4(chokidar@5.0.0) - '@typescript-eslint/type-utils': 8.57.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/type-utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) enquirer: 2.3.6 magic-string: 0.30.21 picocolors: 1.1.1 - picomatch: 4.0.2 + picomatch: 4.0.4 rxjs: 7.8.2 semver: 7.7.4 tslib: 2.8.1 webpack-merge: 5.10.0 optionalDependencies: - '@angular-devkit/build-angular': 21.2.4(add8bde166a9c825117621996a363ef3) - '@angular/build': 21.2.4(d177fe19ad80c073ee03544d343f9ed0) - ng-packagr: 21.2.1(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + '@angular-devkit/build-angular': 21.2.7(3964406a4d3b8b07c14eff877b373c9b) + '@angular/build': 21.2.7(8e65f8e48c9e332d0b9f72f53830b70c) + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) transitivePeerDependencies: - '@babel/traverse' - '@module-federation/enhanced' @@ -21688,21 +22553,21 @@ snapshots: - webpack-cli - webpack-hot-middleware - '@nx/angular@22.7.0-beta.10(4e99d45cd480f6afd2d570979ef69272)': + '@nx/angular@22.7.0-beta.12(511707817f1ccc80b4289f18bce96908)': dependencies: '@angular-devkit/core': 21.2.4(chokidar@5.0.0) '@angular-devkit/schematics': 21.2.4(chokidar@5.0.0) - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/eslint': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/module-federation': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@nx/rspack': 22.7.0-beta.10(af94aeef390b8811b500278b0e4f7995) - '@nx/web': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/webpack': 22.7.0-beta.10(@babel/traverse@7.29.0)(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(lightningcss@1.32.0)(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) - '@nx/workspace': 22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/eslint': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/module-federation': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@nx/rspack': 22.7.0-beta.12(6da0787167c2126bb145645b8d02b4b9) + '@nx/web': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/webpack': 22.7.0-beta.12(@babel/traverse@7.29.0)(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(lightningcss@1.32.0)(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) + '@nx/workspace': 22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) '@schematics/angular': 21.2.4(chokidar@5.0.0) - '@typescript-eslint/type-utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/type-utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) enquirer: 2.3.6 magic-string: 0.30.21 picocolors: 1.1.1 @@ -21712,9 +22577,9 @@ snapshots: tslib: 2.8.1 webpack-merge: 5.10.0 optionalDependencies: - '@angular-devkit/build-angular': 21.2.4(add8bde166a9c825117621996a363ef3) - '@angular/build': 21.2.4(d177fe19ad80c073ee03544d343f9ed0) - ng-packagr: 21.2.1(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) + '@angular-devkit/build-angular': 21.2.4(58973c4e634acdaeac68b624dc858cb9) + '@angular/build': 21.2.4(d420cc8f9f399e85da6a2b440ffa8d8e) + ng-packagr: 21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2) transitivePeerDependencies: - '@babel/traverse' - '@module-federation/enhanced' @@ -21750,11 +22615,11 @@ snapshots: - webpack-cli - webpack-hot-middleware - '@nx/cypress@22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': + '@nx/cypress@22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': dependencies: - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/eslint': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/eslint': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) detect-port: 1.6.1 semver: 7.7.4 @@ -21772,47 +22637,47 @@ snapshots: - typescript - verdaccio - '@nx/devkit@22.6.2(nx@22.6.2(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': + '@nx/devkit@22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': dependencies: '@zkochan/js-yaml': 0.0.7 - ejs: 3.1.10 + ejs: 5.0.1 enquirer: 2.3.6 minimatch: 10.2.4 - nx: 22.6.2(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) + nx: 22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) semver: 7.7.4 tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/devkit@22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': + '@nx/devkit@22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': dependencies: '@zkochan/js-yaml': 0.0.7 - ejs: 3.1.10 + ejs: 5.0.1 enquirer: 2.3.6 minimatch: 10.2.4 - nx: 22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) + nx: 22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) semver: 7.7.4 tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/devkit@22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': + '@nx/devkit@22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': dependencies: '@zkochan/js-yaml': 0.0.7 ejs: 5.0.1 enquirer: 2.3.6 minimatch: 10.2.4 - nx: 22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) + nx: 22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) semver: 7.7.4 tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/eslint-plugin@22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint-config-prettier@10.1.8(eslint@10.2.0(jiti@2.6.1)))(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': + '@nx/eslint-plugin@22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint-config-prettier@10.1.8(eslint@10.2.0(jiti@2.6.1)))(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': dependencies: - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/type-utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/type-utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) chalk: 4.1.2 confusing-browser-globals: 1.0.11 globals: 15.15.0 @@ -21832,10 +22697,10 @@ snapshots: - typescript - verdaccio - '@nx/eslint@22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': + '@nx/eslint@22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': dependencies: - '@nx/devkit': 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) eslint: 10.2.0(jiti@2.6.1) semver: 7.7.4 tslib: 2.8.1 @@ -21851,10 +22716,10 @@ snapshots: - supports-color - verdaccio - '@nx/eslint@22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': + '@nx/eslint@22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': dependencies: - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) eslint: 10.2.0(jiti@2.6.1) semver: 7.7.4 tslib: 2.8.1 @@ -21870,15 +22735,15 @@ snapshots: - supports-color - verdaccio - '@nx/jest@22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/node@25.5.2)(babel-plugin-macros@3.1.0)(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': + '@nx/jest@22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': dependencies: '@jest/reporters': 30.3.0 '@jest/test-result': 30.3.0 - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) identity-obj-proxy: 3.0.0 - jest-config: 30.3.0(@types/node@25.5.2)(babel-plugin-macros@3.1.0) + jest-config: 30.3.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0) jest-resolve: 30.3.0 jest-util: 30.3.0 minimatch: 10.2.4 @@ -21902,7 +22767,7 @@ snapshots: - typescript - verdaccio - '@nx/js@22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': + '@nx/js@22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) @@ -21911,8 +22776,8 @@ snapshots: '@babel/preset-env': 7.29.2(@babel/core@7.29.0) '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) '@babel/runtime': 7.29.2 - '@nx/devkit': 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/workspace': 22.6.2(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) + '@nx/devkit': 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/workspace': 22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) '@zkochan/js-yaml': 0.0.7 babel-plugin-const-enum: 1.2.0(@babel/core@7.29.0) babel-plugin-macros: 3.1.0 @@ -21925,10 +22790,10 @@ snapshots: jsonc-parser: 3.2.0 npm-run-path: 4.0.1 picocolors: 1.1.1 - picomatch: 4.0.2 + picomatch: 4.0.4 semver: 7.7.4 source-map-support: 0.5.19 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tslib: 2.8.1 transitivePeerDependencies: - '@babel/traverse' @@ -21938,7 +22803,7 @@ snapshots: - nx - supports-color - '@nx/js@22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': + '@nx/js@22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) @@ -21947,8 +22812,8 @@ snapshots: '@babel/preset-env': 7.29.2(@babel/core@7.29.0) '@babel/preset-typescript': 7.28.5(@babel/core@7.29.0) '@babel/runtime': 7.29.2 - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/workspace': 22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/workspace': 22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) '@zkochan/js-yaml': 0.0.7 babel-plugin-const-enum: 1.2.0(@babel/core@7.29.0) babel-plugin-macros: 3.1.0 @@ -21964,7 +22829,7 @@ snapshots: picomatch: 4.0.4 semver: 7.7.4 source-map-support: 0.5.19 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tslib: 2.8.1 transitivePeerDependencies: - '@babel/traverse' @@ -21974,20 +22839,20 @@ snapshots: - nx - supports-color - '@nx/module-federation@22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(node-fetch@2.7.0(encoding@0.1.13))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@nx/module-federation@22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(node-fetch@2.7.0(encoding@0.1.13))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@module-federation/enhanced': 2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - '@module-federation/node': 2.7.39(@rspack/core@1.6.8(@swc/helpers@0.5.21))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@module-federation/enhanced': 2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@module-federation/node': 2.7.39(@rspack/core@1.6.8(@swc/helpers@0.5.21))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) '@module-federation/sdk': 2.3.1(node-fetch@2.7.0(encoding@0.1.13)) - '@nx/devkit': 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/web': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/web': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@rspack/core': 1.6.8(@swc/helpers@0.5.21) express: 4.22.1 http-proxy-middleware: 3.0.5 picocolors: 1.1.1 tslib: 2.8.1 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -22008,20 +22873,20 @@ snapshots: - vue-tsc - webpack-cli - '@nx/module-federation@22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)': + '@nx/module-federation@22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)': dependencies: - '@module-federation/enhanced': 2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - '@module-federation/node': 2.7.39(@rspack/core@1.6.8(@swc/helpers@0.5.21))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@module-federation/enhanced': 2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@module-federation/node': 2.7.39(@rspack/core@1.6.8(@swc/helpers@0.5.21))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) '@module-federation/sdk': 2.3.1(node-fetch@2.7.0(encoding@0.1.13)) - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/web': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/web': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@rspack/core': 1.6.8(@swc/helpers@0.5.21) express: 4.22.1 http-proxy-middleware: 3.0.5 picocolors: 1.1.1 tslib: 2.8.1 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -22042,71 +22907,71 @@ snapshots: - vue-tsc - webpack-cli - '@nx/nx-darwin-arm64@22.6.2': + '@nx/nx-darwin-arm64@22.6.5': optional: true - '@nx/nx-darwin-arm64@22.7.0-beta.10': + '@nx/nx-darwin-arm64@22.7.0-beta.12': optional: true - '@nx/nx-darwin-x64@22.6.2': + '@nx/nx-darwin-x64@22.6.5': optional: true - '@nx/nx-darwin-x64@22.7.0-beta.10': + '@nx/nx-darwin-x64@22.7.0-beta.12': optional: true - '@nx/nx-freebsd-x64@22.6.2': + '@nx/nx-freebsd-x64@22.6.5': optional: true - '@nx/nx-freebsd-x64@22.7.0-beta.10': + '@nx/nx-freebsd-x64@22.7.0-beta.12': optional: true - '@nx/nx-linux-arm-gnueabihf@22.6.2': + '@nx/nx-linux-arm-gnueabihf@22.6.5': optional: true - '@nx/nx-linux-arm-gnueabihf@22.7.0-beta.10': + '@nx/nx-linux-arm-gnueabihf@22.7.0-beta.12': optional: true - '@nx/nx-linux-arm64-gnu@22.6.2': + '@nx/nx-linux-arm64-gnu@22.6.5': optional: true - '@nx/nx-linux-arm64-gnu@22.7.0-beta.10': + '@nx/nx-linux-arm64-gnu@22.7.0-beta.12': optional: true - '@nx/nx-linux-arm64-musl@22.6.2': + '@nx/nx-linux-arm64-musl@22.6.5': optional: true - '@nx/nx-linux-arm64-musl@22.7.0-beta.10': + '@nx/nx-linux-arm64-musl@22.7.0-beta.12': optional: true - '@nx/nx-linux-x64-gnu@22.6.2': + '@nx/nx-linux-x64-gnu@22.6.5': optional: true - '@nx/nx-linux-x64-gnu@22.7.0-beta.10': + '@nx/nx-linux-x64-gnu@22.7.0-beta.12': optional: true - '@nx/nx-linux-x64-musl@22.6.2': + '@nx/nx-linux-x64-musl@22.6.5': optional: true - '@nx/nx-linux-x64-musl@22.7.0-beta.10': + '@nx/nx-linux-x64-musl@22.7.0-beta.12': optional: true - '@nx/nx-win32-arm64-msvc@22.6.2': + '@nx/nx-win32-arm64-msvc@22.6.5': optional: true - '@nx/nx-win32-arm64-msvc@22.7.0-beta.10': + '@nx/nx-win32-arm64-msvc@22.7.0-beta.12': optional: true - '@nx/nx-win32-x64-msvc@22.6.2': + '@nx/nx-win32-x64-msvc@22.6.5': optional: true - '@nx/nx-win32-x64-msvc@22.7.0-beta.10': + '@nx/nx-win32-x64-msvc@22.7.0-beta.12': optional: true - '@nx/playwright@22.7.0-beta.10(@babel/traverse@7.29.0)(@playwright/test@1.59.1)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': + '@nx/playwright@22.7.0-beta.12(@babel/traverse@7.29.0)(@playwright/test@1.59.1)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': dependencies: - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/eslint': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/eslint': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) minimatch: 10.2.4 tslib: 2.8.1 optionalDependencies: @@ -22122,12 +22987,12 @@ snapshots: - supports-color - verdaccio - '@nx/plugin@22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/node@25.5.2)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': + '@nx/plugin@22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/node@25.6.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': dependencies: - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/eslint': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/jest': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/node@25.5.2)(babel-plugin-macros@3.1.0)(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/eslint': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/jest': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@types/node@25.6.0)(babel-plugin-macros@3.1.0)(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) tslib: 2.8.1 transitivePeerDependencies: - '@babel/traverse' @@ -22146,40 +23011,40 @@ snapshots: - typescript - verdaccio - '@nx/rspack@22.6.2(883ac9613c299b0ba66c6c8a5b7c229d)': + '@nx/rspack@22.6.5(b0542b19ecfd530902fd29d3831a9781)': dependencies: - '@module-federation/enhanced': 2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - '@module-federation/node': 2.7.39(@rspack/core@1.6.8(@swc/helpers@0.5.21))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - '@nx/devkit': 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/module-federation': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(node-fetch@2.7.0(encoding@0.1.13))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@nx/web': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@module-federation/enhanced': 2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@module-federation/node': 2.7.39(@rspack/core@1.6.8(@swc/helpers@0.5.21))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@nx/devkit': 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/module-federation': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(node-fetch@2.7.0(encoding@0.1.13))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@nx/web': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) '@rspack/core': 1.6.8(@swc/helpers@0.5.21) - '@rspack/dev-server': 1.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(tslib@2.8.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - '@rspack/plugin-react-refresh': 1.6.1(react-refresh@0.18.0)(webpack-hot-middleware@2.26.1) - autoprefixer: 10.4.27(postcss@8.5.8) + '@rspack/dev-server': 1.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@rspack/plugin-react-refresh': 1.6.2(react-refresh@0.18.0)(webpack-hot-middleware@2.26.1) + autoprefixer: 10.4.27(postcss@8.5.9) browserslist: 4.28.2 - css-loader: 6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + css-loader: 6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) enquirer: 2.3.6 express: 4.22.1 http-proxy-middleware: 3.0.5 - less-loader: 12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.6.4)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - license-webpack-plugin: 4.0.2(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + less-loader: 12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.6.4)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + license-webpack-plugin: 4.0.2(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) loader-utils: 2.0.4 parse5: 4.0.0 picocolors: 1.1.1 - postcss: 8.5.8 - postcss-import: 14.1.0(postcss@8.5.8) - postcss-loader: 8.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(postcss@8.5.8)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + postcss: 8.5.9 + postcss-import: 14.1.0(postcss@8.5.9) + postcss-loader: 8.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(postcss@8.5.9)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) sass: 1.99.0 sass-embedded: 1.99.0 - sass-loader: 16.0.7(@rspack/core@1.6.8(@swc/helpers@0.5.21))(sass-embedded@1.99.0)(sass@1.99.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - source-map-loader: 5.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - style-loader: 3.3.4(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + sass-loader: 16.0.7(@rspack/core@1.6.8(@swc/helpers@0.5.21))(sass-embedded@1.99.0)(sass@1.99.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + source-map-loader: 5.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + style-loader: 3.3.4(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) ts-checker-rspack-plugin: 1.3.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@6.0.2) tslib: 2.8.1 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) webpack-node-externals: 3.0.0 transitivePeerDependencies: - '@babel/traverse' @@ -22205,40 +23070,40 @@ snapshots: - webpack-cli - webpack-hot-middleware - '@nx/rspack@22.7.0-beta.10(af94aeef390b8811b500278b0e4f7995)': + '@nx/rspack@22.7.0-beta.12(6da0787167c2126bb145645b8d02b4b9)': dependencies: - '@module-federation/enhanced': 2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - '@module-federation/node': 2.7.39(@rspack/core@1.6.8(@swc/helpers@0.5.21))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/module-federation': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2) - '@nx/web': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@module-federation/enhanced': 2.3.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(node-fetch@2.7.0(encoding@0.1.13))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@module-federation/node': 2.7.39(@rspack/core@1.6.8(@swc/helpers@0.5.21))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/module-federation': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/helpers@0.5.21)(esbuild@0.27.7)(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2) + '@nx/web': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) '@rspack/core': 1.6.8(@swc/helpers@0.5.21) - '@rspack/dev-server': 1.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(tslib@2.8.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - '@rspack/plugin-react-refresh': 1.6.1(react-refresh@0.18.0)(webpack-hot-middleware@2.26.1) - autoprefixer: 10.4.27(postcss@8.5.8) + '@rspack/dev-server': 1.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@rspack/plugin-react-refresh': 1.6.2(react-refresh@0.18.0)(webpack-hot-middleware@2.26.1) + autoprefixer: 10.4.27(postcss@8.5.9) browserslist: 4.28.2 - css-loader: 6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + css-loader: 6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) enquirer: 2.3.6 express: 4.22.1 http-proxy-middleware: 3.0.5 - less-loader: 12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.6.4)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - license-webpack-plugin: 4.0.2(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + less-loader: 12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.6.4)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + license-webpack-plugin: 4.0.2(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) loader-utils: 2.0.4 parse5: 4.0.0 picocolors: 1.1.1 - postcss: 8.5.8 - postcss-import: 14.1.0(postcss@8.5.8) - postcss-loader: 8.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(postcss@8.5.8)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + postcss: 8.5.9 + postcss-import: 14.1.0(postcss@8.5.9) + postcss-loader: 8.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(postcss@8.5.9)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) sass: 1.99.0 sass-embedded: 1.99.0 - sass-loader: 16.0.7(@rspack/core@1.6.8(@swc/helpers@0.5.21))(sass-embedded@1.99.0)(sass@1.99.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - source-map-loader: 5.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - style-loader: 3.3.4(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + sass-loader: 16.0.7(@rspack/core@1.6.8(@swc/helpers@0.5.21))(sass-embedded@1.99.0)(sass@1.99.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + source-map-loader: 5.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + style-loader: 3.3.4(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) ts-checker-rspack-plugin: 1.3.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(tslib@2.8.1)(typescript@6.0.2) tslib: 2.8.1 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) webpack-node-externals: 3.0.0 transitivePeerDependencies: - '@babel/traverse' @@ -22264,15 +23129,15 @@ snapshots: - webpack-cli - webpack-hot-middleware - '@nx/storybook@22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@6.0.2)': + '@nx/storybook@22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.2)': dependencies: - '@nx/cypress': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/eslint': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/cypress': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/eslint': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) semver: 7.7.4 - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) tslib: 2.8.1 transitivePeerDependencies: - '@babel/traverse' @@ -22287,20 +23152,20 @@ snapshots: - typescript - verdaccio - '@nx/vite@22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': + '@nx/vite@22.6.5(67fb89f18cba02cb97ab828d68b53680)': dependencies: - '@nx/devkit': 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/vitest': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@nx/devkit': 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/vitest': 22.6.5(67fb89f18cba02cb97ab828d68b53680) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) ajv: 8.18.0 enquirer: 2.3.6 - picomatch: 4.0.2 + picomatch: 4.0.4 semver: 7.7.4 tsconfig-paths: 4.2.0 tslib: 2.8.1 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vitest: 4.1.4(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2))(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -22311,11 +23176,11 @@ snapshots: - typescript - verdaccio - '@nx/vite@22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': + '@nx/vite@22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': dependencies: - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/vitest': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/vitest': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) ajv: 8.18.0 enquirer: 2.3.6 @@ -22323,8 +23188,8 @@ snapshots: semver: 7.7.4 tsconfig-paths: 4.2.0 tslib: 2.8.1 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vitest: 4.1.2(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -22335,16 +23200,16 @@ snapshots: - typescript - verdaccio - '@nx/vitest@22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': + '@nx/vitest@22.6.5(67fb89f18cba02cb97ab828d68b53680)': dependencies: - '@nx/devkit': 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) semver: 7.7.4 tslib: 2.8.1 optionalDependencies: - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vitest: 4.1.4(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2))(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -22355,16 +23220,16 @@ snapshots: - typescript - verdaccio - '@nx/vitest@22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': + '@nx/vitest@22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': dependencies: - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) semver: 7.7.4 tslib: 2.8.1 optionalDependencies: - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vitest: 4.1.2(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -22375,10 +23240,10 @@ snapshots: - typescript - verdaccio - '@nx/web@22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': + '@nx/web@22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': dependencies: - '@nx/devkit': 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) detect-port: 1.6.1 http-server: 14.1.1 picocolors: 1.1.1 @@ -22392,10 +23257,10 @@ snapshots: - supports-color - verdaccio - '@nx/web@22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': + '@nx/web@22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))': dependencies: - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) detect-port: 1.6.1 http-server: 14.1.1 picocolors: 1.1.1 @@ -22409,44 +23274,44 @@ snapshots: - supports-color - verdaccio - '@nx/webpack@22.6.2(@babel/traverse@7.29.0)(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(lightningcss@1.32.0)(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': + '@nx/webpack@22.6.5(@babel/traverse@7.29.0)(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(lightningcss@1.32.0)(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': dependencies: '@babel/core': 7.29.0 - '@nx/devkit': 22.6.2(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.6.2(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.6.5(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) ajv: 8.18.0 - autoprefixer: 10.4.27(postcss@8.5.8) - babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + autoprefixer: 10.4.27(postcss@8.5.9) + babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) browserslist: 4.28.2 - copy-webpack-plugin: 14.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - css-loader: 6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - css-minimizer-webpack-plugin: 8.0.0(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - fork-ts-checker-webpack-plugin: 9.1.0(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + copy-webpack-plugin: 14.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + css-loader: 6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + css-minimizer-webpack-plugin: 8.0.0(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + fork-ts-checker-webpack-plugin: 9.1.0(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) less: 4.5.1 - less-loader: 12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.5.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - license-webpack-plugin: 4.0.2(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + less-loader: 12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.5.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + license-webpack-plugin: 4.0.2(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) loader-utils: 2.0.4 - mini-css-extract-plugin: 2.4.7(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + mini-css-extract-plugin: 2.4.7(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) parse5: 4.0.0 picocolors: 1.1.1 - postcss: 8.5.8 - postcss-import: 14.1.0(postcss@8.5.8) - postcss-loader: 6.2.1(postcss@8.5.8)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + postcss: 8.5.9 + postcss-import: 14.1.0(postcss@8.5.9) + postcss-loader: 8.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(postcss@8.5.9)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) rxjs: 7.8.2 sass: 1.99.0 sass-embedded: 1.99.0 - sass-loader: 16.0.7(@rspack/core@1.6.8(@swc/helpers@0.5.21))(sass-embedded@1.99.0)(sass@1.99.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - source-map-loader: 5.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - style-loader: 3.3.4(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - terser-webpack-plugin: 5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - ts-loader: 9.5.7(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + sass-loader: 16.0.7(@rspack/core@1.6.8(@swc/helpers@0.5.21))(sass-embedded@1.99.0)(sass@1.99.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + source-map-loader: 5.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + style-loader: 3.3.4(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + terser-webpack-plugin: 5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + ts-loader: 9.5.7(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) tsconfig-paths-webpack-plugin: 4.2.0 tslib: 2.8.1 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) webpack-node-externals: 3.0.0 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) transitivePeerDependencies: - '@babel/traverse' - '@parcel/css' @@ -22470,44 +23335,44 @@ snapshots: - verdaccio - webpack-cli - '@nx/webpack@22.7.0-beta.10(@babel/traverse@7.29.0)(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(lightningcss@1.32.0)(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': + '@nx/webpack@22.7.0-beta.12(@babel/traverse@7.29.0)(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(lightningcss@1.32.0)(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@6.0.2)': dependencies: '@babel/core': 7.29.0 - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) - '@nx/js': 22.7.0-beta.10(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/js': 22.7.0-beta.12(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@phenomnomnominal/tsquery': 6.1.4(typescript@6.0.2) ajv: 8.18.0 - autoprefixer: 10.4.27(postcss@8.5.8) - babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + autoprefixer: 10.4.27(postcss@8.5.9) + babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) browserslist: 4.28.2 - copy-webpack-plugin: 14.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - css-loader: 6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - css-minimizer-webpack-plugin: 8.0.0(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - fork-ts-checker-webpack-plugin: 9.1.0(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + copy-webpack-plugin: 14.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + css-loader: 6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + css-minimizer-webpack-plugin: 8.0.0(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + fork-ts-checker-webpack-plugin: 9.1.0(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) less: 4.5.1 - less-loader: 12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.5.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - license-webpack-plugin: 4.0.2(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + less-loader: 12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.5.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + license-webpack-plugin: 4.0.2(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) loader-utils: 2.0.4 - mini-css-extract-plugin: 2.4.7(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + mini-css-extract-plugin: 2.4.7(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) parse5: 4.0.0 picocolors: 1.1.1 - postcss: 8.5.8 - postcss-import: 14.1.0(postcss@8.5.8) - postcss-loader: 8.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(postcss@8.5.8)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + postcss: 8.5.9 + postcss-import: 14.1.0(postcss@8.5.9) + postcss-loader: 8.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(postcss@8.5.9)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) rxjs: 7.8.2 sass: 1.99.0 sass-embedded: 1.99.0 - sass-loader: 16.0.7(@rspack/core@1.6.8(@swc/helpers@0.5.21))(sass-embedded@1.99.0)(sass@1.99.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - source-map-loader: 5.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - style-loader: 3.3.4(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - terser-webpack-plugin: 5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - ts-loader: 9.5.7(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + sass-loader: 16.0.7(@rspack/core@1.6.8(@swc/helpers@0.5.21))(sass-embedded@1.99.0)(sass@1.99.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + source-map-loader: 5.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + style-loader: 3.3.4(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + terser-webpack-plugin: 5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + ts-loader: 9.5.7(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) tsconfig-paths-webpack-plugin: 4.2.0 tslib: 2.8.1 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) webpack-node-externals: 3.0.0 - webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack-subresource-integrity: 5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) transitivePeerDependencies: - '@babel/traverse' - '@parcel/css' @@ -22531,14 +23396,14 @@ snapshots: - verdaccio - webpack-cli - '@nx/workspace@22.6.2(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))': + '@nx/workspace@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))': dependencies: - '@nx/devkit': 22.6.2(nx@22.6.2(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@zkochan/js-yaml': 0.0.7 chalk: 4.1.2 enquirer: 2.3.6 - nx: 22.6.2(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) - picomatch: 4.0.2 + nx: 22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) + picomatch: 4.0.4 semver: 7.7.4 tslib: 2.8.1 yargs-parser: 21.1.1 @@ -22547,13 +23412,13 @@ snapshots: - '@swc/core' - debug - '@nx/workspace@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))': + '@nx/workspace@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))': dependencies: - '@nx/devkit': 22.7.0-beta.10(nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) + '@nx/devkit': 22.7.0-beta.12(nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21))) '@zkochan/js-yaml': 0.0.7 chalk: 4.1.2 enquirer: 2.3.6 - nx: 22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) + nx: 22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)) picomatch: 4.0.4 semver: 7.7.4 tslib: 2.8.1 @@ -22666,10 +23531,10 @@ snapshots: '@oxc-angular/binding-win32-x64-msvc@0.0.22': optional: true - '@oxc-angular/vite@0.0.22(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))': + '@oxc-angular/vite@0.0.22(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: obug: 2.1.1 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) optionalDependencies: '@oxc-angular/binding-darwin-arm64': 0.0.22 '@oxc-angular/binding-darwin-x64': 0.0.22 @@ -22730,7 +23595,7 @@ snapshots: '@oxc-parser/binding-wasm32-wasi@0.123.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: - '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -22753,6 +23618,8 @@ snapshots: '@oxc-project/types@0.123.0': {} + '@oxc-project/types@0.124.0': {} + '@oxc-resolver/binding-android-arm-eabi@11.19.1': optional: true @@ -22803,7 +23670,7 @@ snapshots: '@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: - '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -22868,7 +23735,7 @@ snapshots: '@oxc-transform/binding-wasm32-wasi@0.123.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: - '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -22901,61 +23768,61 @@ snapshots: '@oxlint-tsgolint/win32-x64@0.19.0': optional: true - '@oxlint/binding-android-arm-eabi@1.58.0': + '@oxlint/binding-android-arm-eabi@1.59.0': optional: true - '@oxlint/binding-android-arm64@1.58.0': + '@oxlint/binding-android-arm64@1.59.0': optional: true - '@oxlint/binding-darwin-arm64@1.58.0': + '@oxlint/binding-darwin-arm64@1.59.0': optional: true - '@oxlint/binding-darwin-x64@1.58.0': + '@oxlint/binding-darwin-x64@1.59.0': optional: true - '@oxlint/binding-freebsd-x64@1.58.0': + '@oxlint/binding-freebsd-x64@1.59.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.58.0': + '@oxlint/binding-linux-arm-gnueabihf@1.59.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.58.0': + '@oxlint/binding-linux-arm-musleabihf@1.59.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.58.0': + '@oxlint/binding-linux-arm64-gnu@1.59.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.58.0': + '@oxlint/binding-linux-arm64-musl@1.59.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.58.0': + '@oxlint/binding-linux-ppc64-gnu@1.59.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.58.0': + '@oxlint/binding-linux-riscv64-gnu@1.59.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.58.0': + '@oxlint/binding-linux-riscv64-musl@1.59.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.58.0': + '@oxlint/binding-linux-s390x-gnu@1.59.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.58.0': + '@oxlint/binding-linux-x64-gnu@1.59.0': optional: true - '@oxlint/binding-linux-x64-musl@1.58.0': + '@oxlint/binding-linux-x64-musl@1.59.0': optional: true - '@oxlint/binding-openharmony-arm64@1.58.0': + '@oxlint/binding-openharmony-arm64@1.59.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.58.0': + '@oxlint/binding-win32-arm64-msvc@1.59.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.58.0': + '@oxlint/binding-win32-ia32-msvc@1.59.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.58.0': + '@oxlint/binding-win32-x64-msvc@1.59.0': optional: true '@parcel/watcher-android-arm64@2.5.6': @@ -23149,7 +24016,7 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0-rc.12': optional: true - '@rolldown/binding-android-arm64@1.0.0-rc.13': + '@rolldown/binding-android-arm64@1.0.0-rc.15': optional: true '@rolldown/binding-android-arm64@1.0.0-rc.4': @@ -23158,7 +24025,7 @@ snapshots: '@rolldown/binding-darwin-arm64@1.0.0-rc.12': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.13': + '@rolldown/binding-darwin-arm64@1.0.0-rc.15': optional: true '@rolldown/binding-darwin-arm64@1.0.0-rc.4': @@ -23167,7 +24034,7 @@ snapshots: '@rolldown/binding-darwin-x64@1.0.0-rc.12': optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.13': + '@rolldown/binding-darwin-x64@1.0.0-rc.15': optional: true '@rolldown/binding-darwin-x64@1.0.0-rc.4': @@ -23176,7 +24043,7 @@ snapshots: '@rolldown/binding-freebsd-x64@1.0.0-rc.12': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.13': + '@rolldown/binding-freebsd-x64@1.0.0-rc.15': optional: true '@rolldown/binding-freebsd-x64@1.0.0-rc.4': @@ -23185,7 +24052,7 @@ snapshots: '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.13': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.4': @@ -23194,7 +24061,7 @@ snapshots: '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.13': + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.4': @@ -23203,7 +24070,7 @@ snapshots: '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.13': + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': optional: true '@rolldown/binding-linux-arm64-musl@1.0.0-rc.4': @@ -23212,19 +24079,19 @@ snapshots: '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.13': + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': optional: true '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.13': + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.13': + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0-rc.4': @@ -23233,7 +24100,7 @@ snapshots: '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.13': + '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': optional: true '@rolldown/binding-linux-x64-musl@1.0.0-rc.4': @@ -23242,7 +24109,7 @@ snapshots: '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.13': + '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': optional: true '@rolldown/binding-openharmony-arm64@1.0.0-rc.4': @@ -23250,22 +24117,22 @@ snapshots: '@rolldown/binding-wasm32-wasi@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: - '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.13': + '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': dependencies: - '@emnapi/core': 1.9.1 - '@emnapi/runtime': 1.9.1 - '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) optional: true '@rolldown/binding-wasm32-wasi@1.0.0-rc.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: - '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -23274,7 +24141,7 @@ snapshots: '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.13': + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': optional: true '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.4': @@ -23283,7 +24150,7 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.13': + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': optional: true '@rolldown/binding-win32-x64-msvc@1.0.0-rc.4': @@ -23291,7 +24158,7 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.12': {} - '@rolldown/pluginutils@1.0.0-rc.13': {} + '@rolldown/pluginutils@1.0.0-rc.15': {} '@rolldown/pluginutils@1.0.0-rc.3': {} @@ -23450,7 +24317,7 @@ snapshots: optionalDependencies: '@swc/helpers': 0.5.21 - '@rspack/dev-server@1.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(tslib@2.8.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + '@rspack/dev-server@1.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': dependencies: '@rspack/core': 1.6.8(@swc/helpers@0.5.21) '@types/bonjour': 3.5.13 @@ -23479,7 +24346,7 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) ws: 8.20.0 transitivePeerDependencies: - bufferutil @@ -23491,10 +24358,9 @@ snapshots: '@rspack/lite-tapable@1.1.0': {} - '@rspack/plugin-react-refresh@1.6.1(react-refresh@0.18.0)(webpack-hot-middleware@2.26.1)': + '@rspack/plugin-react-refresh@1.6.2(react-refresh@0.18.0)(webpack-hot-middleware@2.26.1)': dependencies: error-stack-parser: 2.1.4 - html-entities: 2.6.0 react-refresh: 0.18.0 optionalDependencies: webpack-hot-middleware: 2.26.1 @@ -23578,7 +24444,7 @@ snapshots: mime: 4.1.0 p-filter: 4.1.0 semantic-release: 25.0.3(typescript@6.0.2) - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 undici: 7.24.7 url-join: 5.0.0 transitivePeerDependencies: @@ -23674,18 +24540,18 @@ snapshots: '@sigstore/bundle@4.0.0': dependencies: - '@sigstore/protobuf-specs': 0.5.0 + '@sigstore/protobuf-specs': 0.5.1 '@sigstore/core@3.2.0': {} - '@sigstore/protobuf-specs@0.5.0': {} + '@sigstore/protobuf-specs@0.5.1': {} '@sigstore/sign@4.1.1': dependencies: '@gar/promise-retry': 1.0.3 '@sigstore/bundle': 4.0.0 '@sigstore/core': 3.2.0 - '@sigstore/protobuf-specs': 0.5.0 + '@sigstore/protobuf-specs': 0.5.1 make-fetch-happen: 15.0.5 proc-log: 6.1.0 transitivePeerDependencies: @@ -23693,7 +24559,7 @@ snapshots: '@sigstore/tuf@4.0.2': dependencies: - '@sigstore/protobuf-specs': 0.5.0 + '@sigstore/protobuf-specs': 0.5.1 tuf-js: 4.1.0 transitivePeerDependencies: - supports-color @@ -23702,7 +24568,7 @@ snapshots: dependencies: '@sigstore/bundle': 4.0.0 '@sigstore/core': 3.2.0 - '@sigstore/protobuf-specs': 0.5.0 + '@sigstore/protobuf-specs': 0.5.1 '@simple-libs/child-process-utils@1.0.2': dependencies: @@ -23726,17 +24592,17 @@ snapshots: dependencies: type-detect: 4.0.8 - '@sinonjs/fake-timers@15.3.0': + '@sinonjs/fake-timers@15.3.2': dependencies: '@sinonjs/commons': 3.0.1 - '@slorber/react-helmet-async@1.3.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@slorber/react-helmet-async@1.3.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: '@babel/runtime': 7.29.2 invariant: 2.2.4 prop-types: 15.8.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) react-fast-compare: 3.2.2 shallowequal: 1.1.0 @@ -23748,15 +24614,15 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@storybook/addon-docs@10.3.4(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + '@storybook/addon-docs@10.3.5(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': dependencies: - '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.4) - '@storybook/csf-plugin': 10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - '@storybook/icons': 2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@storybook/react-dom-shim': 10.3.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.5) + '@storybook/csf-plugin': 10.3.5(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + '@storybook/icons': 2.0.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@storybook/react-dom-shim': 10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' @@ -23765,50 +24631,50 @@ snapshots: - vite - webpack - '@storybook/addon-links@10.3.4(react@19.2.4)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@storybook/addon-links@10.3.5(react@19.2.5)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: '@storybook/global': 5.0.0 - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) optionalDependencies: - react: 19.2.4 + react: 19.2.5 - '@storybook/addon-vitest@10.3.4(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vitest@4.1.2)': + '@storybook/addon-vitest@10.3.5(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.4)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vitest@4.1.2)': dependencies: '@storybook/global': 5.0.0 - '@storybook/icons': 2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@storybook/icons': 2.0.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) optionalDependencies: - '@vitest/browser': 4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) - '@vitest/browser-playwright': 4.1.2(playwright@1.59.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) - '@vitest/runner': 4.1.2 - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + '@vitest/browser': 4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/browser-playwright': 4.1.2(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/runner': 4.1.4 + vitest: 4.1.2(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - react - react-dom - '@storybook/angular@10.3.3(bc89a49b7ef7c3b0ebc444702278ad2d)': + '@storybook/angular@10.3.3(997df74c02245c6578b235f702d52bf0)': dependencies: '@angular-devkit/architect': 0.2102.6(chokidar@5.0.0) - '@angular-devkit/build-angular': 21.2.4(add8bde166a9c825117621996a363ef3) + '@angular-devkit/build-angular': 21.2.4(58973c4e634acdaeac68b624dc858cb9) '@angular-devkit/core': 21.2.4(chokidar@5.0.0) - '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/compiler': 21.2.6 - '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2) - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@angular/platform-browser': 21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) - '@angular/platform-browser-dynamic': 21.2.6(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.6)(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.6(@angular/animations@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))) - '@storybook/builder-webpack5': 10.3.3(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@6.0.2) + '@angular/common': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/compiler': 21.2.8 + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-browser-dynamic': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))) + '@storybook/builder-webpack5': 10.3.3(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.2) '@storybook/global': 5.0.0 rxjs: 7.8.2 - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) telejson: 8.0.0 ts-dedent: 2.2.0 tsconfig-paths-webpack-plugin: 4.2.0 typescript: 6.0.2 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) optionalDependencies: - '@angular/animations': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1)) - '@angular/cli': 21.2.4(@types/node@25.5.2)(chokidar@5.0.0) + '@angular/animations': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/cli': 21.2.4(@types/node@25.6.0)(chokidar@5.0.0) zone.js: 0.16.1 transitivePeerDependencies: - '@rspack/core' @@ -23817,33 +24683,102 @@ snapshots: - uglify-js - webpack-cli - '@storybook/builder-vite@10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + '@storybook/angular@10.3.5(4b5b4b200dc9e9443dd730f6f6132f07)': + dependencies: + '@angular-devkit/architect': 0.2102.7(chokidar@5.0.0) + '@angular-devkit/build-angular': 21.2.7(3964406a4d3b8b07c14eff877b373c9b) + '@angular-devkit/core': 21.2.7(chokidar@5.0.0) + '@angular/common': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/compiler': 21.2.8 + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@angular/platform-browser': 21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/platform-browser-dynamic': 21.2.8(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/compiler@21.2.8)(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(@angular/platform-browser@21.2.8(@angular/animations@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)))(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))) + '@storybook/builder-webpack5': 10.3.5(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.2) + '@storybook/global': 5.0.0 + rxjs: 7.8.2 + storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + telejson: 8.0.0 + ts-dedent: 2.2.0 + tsconfig-paths-webpack-plugin: 4.2.0 + typescript: 6.0.2 + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + optionalDependencies: + '@angular/animations': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1)) + '@angular/cli': 21.2.4(@types/node@25.6.0)(chokidar@5.0.0) + zone.js: 0.16.1 + transitivePeerDependencies: + - '@rspack/core' + - '@swc/core' + - esbuild + - uglify-js + - webpack-cli + + '@storybook/builder-vite@10.3.5(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': dependencies: - '@storybook/csf-plugin': 10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@storybook/csf-plugin': 10.3.5(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) ts-dedent: 2.2.0 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - esbuild - rollup - webpack - '@storybook/builder-webpack5@10.3.3(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@6.0.2)': + '@storybook/builder-vite@10.3.5(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + dependencies: + '@storybook/csf-plugin': 10.3.5(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + ts-dedent: 2.2.0 + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + transitivePeerDependencies: + - esbuild + - rollup + - webpack + + '@storybook/builder-webpack5@10.3.3(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.2)': + dependencies: + '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) + case-sensitive-paths-webpack-plugin: 2.4.0 + cjs-module-lexer: 1.4.3 + css-loader: 7.1.4(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + es-module-lexer: 1.7.0 + fork-ts-checker-webpack-plugin: 9.1.0(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + html-webpack-plugin: 5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + magic-string: 0.30.21 + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + style-loader: 4.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + terser-webpack-plugin: 5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + ts-dedent: 2.2.0 + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack-dev-middleware: 6.1.3(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack-hot-middleware: 2.26.1 + webpack-virtual-modules: 0.6.2 + optionalDependencies: + typescript: 6.0.2 + transitivePeerDependencies: + - '@rspack/core' + - '@swc/core' + - esbuild + - uglify-js + - webpack-cli + + '@storybook/builder-webpack5@10.3.5(@rspack/core@1.6.8(@swc/helpers@0.5.21))(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.2)': dependencies: - '@storybook/core-webpack': 10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + '@storybook/core-webpack': 10.3.5(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)) case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 - css-loader: 7.1.4(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + css-loader: 7.1.4(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) es-module-lexer: 1.7.0 - fork-ts-checker-webpack-plugin: 9.1.0(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - html-webpack-plugin: 5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + fork-ts-checker-webpack-plugin: 9.1.0(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + html-webpack-plugin: 5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) magic-string: 0.30.21 - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - style-loader: 4.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - terser-webpack-plugin: 5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + style-loader: 4.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + terser-webpack-plugin: 5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) ts-dedent: 2.2.0 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) - webpack-dev-middleware: 6.1.3(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack-dev-middleware: 6.1.3(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -23855,33 +24790,48 @@ snapshots: - uglify-js - webpack-cli - '@storybook/core-webpack@10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@storybook/core-webpack@10.3.3(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': + dependencies: + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + ts-dedent: 2.2.0 + + '@storybook/core-webpack@10.3.5(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) ts-dedent: 2.2.0 - '@storybook/csf-plugin@10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + '@storybook/csf-plugin@10.3.5(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': + dependencies: + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + unplugin: 2.3.11 + optionalDependencies: + esbuild: 0.27.7 + rollup: 4.60.1 + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + + '@storybook/csf-plugin@10.3.5(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7))': dependencies: - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) unplugin: 2.3.11 optionalDependencies: esbuild: 0.27.7 rollup: 4.60.1 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) '@storybook/global@5.0.0': {} - '@storybook/icons@2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@storybook/icons@2.0.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)': dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) - '@storybook/react-dom-shim@10.3.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@storybook/react-dom-shim@10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))': dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.5 + react-dom: 19.2.5(react@19.2.5) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.29.0)': dependencies: @@ -24064,6 +25014,59 @@ snapshots: dependencies: tslib: 2.8.1 + '@swc/html-darwin-arm64@1.15.24': + optional: true + + '@swc/html-darwin-x64@1.15.24': + optional: true + + '@swc/html-linux-arm-gnueabihf@1.15.24': + optional: true + + '@swc/html-linux-arm64-gnu@1.15.24': + optional: true + + '@swc/html-linux-arm64-musl@1.15.24': + optional: true + + '@swc/html-linux-ppc64-gnu@1.15.24': + optional: true + + '@swc/html-linux-s390x-gnu@1.15.24': + optional: true + + '@swc/html-linux-x64-gnu@1.15.24': + optional: true + + '@swc/html-linux-x64-musl@1.15.24': + optional: true + + '@swc/html-win32-arm64-msvc@1.15.24': + optional: true + + '@swc/html-win32-ia32-msvc@1.15.24': + optional: true + + '@swc/html-win32-x64-msvc@1.15.24': + optional: true + + '@swc/html@1.15.24': + dependencies: + '@swc/counter': 0.1.3 + optionalDependencies: + '@swc/html-darwin-arm64': 1.15.24 + '@swc/html-darwin-x64': 1.15.24 + '@swc/html-linux-arm-gnueabihf': 1.15.24 + '@swc/html-linux-arm64-gnu': 1.15.24 + '@swc/html-linux-arm64-musl': 1.15.24 + '@swc/html-linux-ppc64-gnu': 1.15.24 + '@swc/html-linux-s390x-gnu': 1.15.24 + '@swc/html-linux-x64-gnu': 1.15.24 + '@swc/html-linux-x64-musl': 1.15.24 + '@swc/html-win32-arm64-msvc': 1.15.24 + '@swc/html-win32-ia32-msvc': 1.15.24 + '@swc/html-win32-x64-msvc': 1.15.24 + '@swc/types@0.1.26': dependencies: '@swc/counter': 0.1.3 @@ -24138,27 +25141,27 @@ snapshots: '@alloc/quick-lru': 5.2.0 '@tailwindcss/node': 4.2.2 '@tailwindcss/oxide': 4.2.2 - postcss: 8.5.8 + postcss: 8.5.9 tailwindcss: 4.2.2 - '@tailwindcss/vite@4.2.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))': + '@tailwindcss/vite@4.2.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@tailwindcss/node': 4.2.2 '@tailwindcss/oxide': 4.2.2 tailwindcss: 4.2.2 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) - '@tanstack/angular-query-experimental@5.96.2(@angular/common@21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))': + '@tanstack/angular-query-experimental@5.99.0(@angular/common@21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2))(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))': dependencies: - '@angular/common': 21.2.6(@angular/core@21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) - '@angular/core': 21.2.6(@angular/compiler@21.2.6)(rxjs@7.8.2)(zone.js@0.16.1) - '@tanstack/query-core': 5.96.2 + '@angular/common': 21.2.8(@angular/core@21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1))(rxjs@7.8.2) + '@angular/core': 21.2.8(@angular/compiler@21.2.8)(rxjs@7.8.2)(zone.js@0.16.1) + '@tanstack/query-core': 5.99.0 optionalDependencies: - '@tanstack/query-devtools': 5.96.2 + '@tanstack/query-devtools': 5.99.0 - '@tanstack/query-core@5.96.2': {} + '@tanstack/query-core@5.99.0': {} - '@tanstack/query-devtools@5.96.2': + '@tanstack/query-devtools@5.99.0': optional: true '@testing-library/dom@10.4.1': @@ -24204,7 +25207,7 @@ snapshots: dependencies: minimatch: 10.2.5 path-browserify: 1.0.1 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 '@tufjs/canonical-json@2.0.0': {} @@ -24248,11 +25251,11 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/bonjour@3.5.13': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/chai@5.2.3': dependencies: @@ -24262,11 +25265,11 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.8 - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/connect@3.4.38': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/d3-array@3.2.2': {} @@ -24420,7 +25423,7 @@ snapshots: '@types/express-serve-static-core@4.19.8': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/qs': 6.15.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -24452,7 +25455,7 @@ snapshots: '@types/http-proxy@1.17.17': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/istanbul-lib-coverage@2.0.6': {} @@ -24484,13 +25487,13 @@ snapshots: '@types/node-forge@1.3.14': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/node@17.0.45': {} - '@types/node@25.5.2': + '@types/node@25.6.0': dependencies: - undici-types: 7.18.2 + undici-types: 7.19.2 '@types/normalize-package-data@2.4.4': {} @@ -24542,7 +25545,7 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/semver@7.5.8': {} @@ -24551,11 +25554,11 @@ snapshots: '@types/send@0.17.6': dependencies: '@types/mime': 1.3.5 - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/send@1.2.1': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/serve-index@1.9.4': dependencies: @@ -24564,12 +25567,12 @@ snapshots: '@types/serve-static@1.15.10': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/send': 0.17.6 '@types/sockjs@0.3.36': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/stack-utils@2.0.3': {} @@ -24584,7 +25587,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/yargs-parser@21.0.3': {} @@ -24608,6 +25611,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/type-utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/visitor-keys': 8.58.1 + eslint: 10.2.0(jiti@2.6.1) + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: '@typescript-eslint/scope-manager': 8.58.0 @@ -24620,53 +25639,53 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.57.2(typescript@6.0.2)': + '@typescript-eslint/parser@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@6.0.2) - '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.2) + '@typescript-eslint/visitor-keys': 8.58.1 debug: 4.4.3 + eslint: 10.2.0(jiti@2.6.1) typescript: 6.0.2 transitivePeerDependencies: - supports-color '@typescript-eslint/project-service@8.58.0(typescript@6.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@6.0.2) - '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@6.0.2) + '@typescript-eslint/types': 8.58.1 debug: 4.4.3 typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.57.2': + '@typescript-eslint/project-service@8.58.1(typescript@6.0.2)': dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@6.0.2) + '@typescript-eslint/types': 8.58.1 + debug: 4.4.3 + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color '@typescript-eslint/scope-manager@8.58.0': dependencies: '@typescript-eslint/types': 8.58.0 '@typescript-eslint/visitor-keys': 8.58.0 - '@typescript-eslint/tsconfig-utils@8.57.2(typescript@6.0.2)': + '@typescript-eslint/scope-manager@8.58.1': dependencies: - typescript: 6.0.2 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 '@typescript-eslint/tsconfig-utils@8.58.0(typescript@6.0.2)': dependencies: typescript: 6.0.2 - '@typescript-eslint/type-utils@8.57.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/tsconfig-utils@8.58.1(typescript@6.0.2)': dependencies: - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@6.0.2) - '@typescript-eslint/utils': 8.57.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - debug: 4.4.3 - eslint: 10.2.0(jiti@2.6.1) - ts-api-utils: 2.5.0(typescript@6.0.2) typescript: 6.0.2 - transitivePeerDependencies: - - supports-color '@typescript-eslint/type-utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: @@ -24680,25 +25699,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.57.2': {} - - '@typescript-eslint/types@8.58.0': {} - - '@typescript-eslint/typescript-estree@8.57.2(typescript@6.0.2)': + '@typescript-eslint/type-utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: - '@typescript-eslint/project-service': 8.57.2(typescript@6.0.2) - '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@6.0.2) - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) debug: 4.4.3 - minimatch: 10.2.5 - semver: 7.7.4 - tinyglobby: 0.2.15 + eslint: 10.2.0(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@6.0.2) typescript: 6.0.2 transitivePeerDependencies: - supports-color + '@typescript-eslint/types@8.58.0': {} + + '@typescript-eslint/types@8.58.1': {} + '@typescript-eslint/typescript-estree@8.58.0(typescript@6.0.2)': dependencies: '@typescript-eslint/project-service': 8.58.0(typescript@6.0.2) @@ -24708,19 +25724,23 @@ snapshots: debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 ts-api-utils: 2.5.0(typescript@6.0.2) typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.57.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/typescript-estree@8.58.1(typescript@6.0.2)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.57.2 - '@typescript-eslint/types': 8.57.2 - '@typescript-eslint/typescript-estree': 8.57.2(typescript@6.0.2) - eslint: 10.2.0(jiti@2.6.1) + '@typescript-eslint/project-service': 8.58.1(typescript@6.0.2) + '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@6.0.2) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/visitor-keys': 8.58.1 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.7.4 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@6.0.2) typescript: 6.0.2 transitivePeerDependencies: - supports-color @@ -24736,16 +25756,58 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.57.2': + '@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: - '@typescript-eslint/types': 8.57.2 - eslint-visitor-keys: 5.0.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.58.1 + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.2) + eslint: 10.2.0(jiti@2.6.1) + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color '@typescript-eslint/visitor-keys@8.58.0': dependencies: '@typescript-eslint/types': 8.58.0 eslint-visitor-keys: 5.0.1 + '@typescript-eslint/visitor-keys@8.58.1': + dependencies: + '@typescript-eslint/types': 8.58.1 + eslint-visitor-keys: 5.0.1 + + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260411.1': + optional: true + + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260411.1': + optional: true + + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260411.1': + optional: true + + '@typescript/native-preview-linux-arm@7.0.0-dev.20260411.1': + optional: true + + '@typescript/native-preview-linux-x64@7.0.0-dev.20260411.1': + optional: true + + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260411.1': + optional: true + + '@typescript/native-preview-win32-x64@7.0.0-dev.20260411.1': + optional: true + + '@typescript/native-preview@7.0.0-dev.20260411.1': + optionalDependencies: + '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260411.1 + '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260411.1 + '@typescript/native-preview-linux-arm': 7.0.0-dev.20260411.1 + '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260411.1 + '@typescript/native-preview-linux-x64': 7.0.0-dev.20260411.1 + '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260411.1 + '@typescript/native-preview-win32-x64': 7.0.0-dev.20260411.1 + '@ungap/structured-clone@1.3.0': {} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -24812,12 +25874,12 @@ snapshots: d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - '@vitejs/devtools-kit@0.1.13(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(ws@8.20.0)': + '@vitejs/devtools-kit@0.1.13(typescript@6.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(ws@8.20.0)': dependencies: '@vitejs/devtools-rpc': 0.1.13(typescript@6.0.2)(ws@8.20.0) birpc: 4.0.0 ohash: 2.0.11 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - typescript - ws @@ -24834,19 +25896,27 @@ snapshots: transitivePeerDependencies: - typescript - '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3))': + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3))': + dependencies: + vite: 7.3.1(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))': dependencies: - vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) + vite: 7.3.1(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) - '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))': + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3))': dependencies: - vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3) - '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))': + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))': dependencies: - vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) - '@vitejs/plugin-react@5.2.0(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))': + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))': + dependencies: + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) + + '@vitejs/plugin-react@5.2.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) @@ -24854,65 +25924,33 @@ snapshots: '@rolldown/pluginutils': 1.0.0-rc.3 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - supports-color - '@vitest/browser-playwright@4.1.2(playwright@1.59.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': + '@vitest/browser-playwright@4.1.2(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': dependencies: - '@vitest/browser': 4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + '@vitest/browser': 4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/mocker': 4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) playwright: 1.59.1 tinyrainbow: 3.1.0 - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + vitest: 4.1.2(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - optional: true - - '@vitest/browser-playwright@4.1.2(playwright@1.59.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': - dependencies: - '@vitest/browser': 4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) - playwright: 1.59.1 - tinyrainbow: 3.1.0 - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite - - '@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': - dependencies: - '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) - '@vitest/utils': 4.1.2 - magic-string: 0.30.21 - pngjs: 7.0.0 - sirv: 3.0.2 - tinyrainbow: 3.1.0 - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) - ws: 8.20.0 - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite - optional: true - '@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': + '@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2)': dependencies: '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + '@vitest/mocker': 4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) '@vitest/utils': 4.1.2 magic-string: 0.30.21 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.1.0 - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + vitest: 4.1.2(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) ws: 8.20.0 transitivePeerDependencies: - bufferutil @@ -24920,7 +25958,7 @@ snapshots: - utf-8-validate - vite - '@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2)': + '@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2)': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.1.2 @@ -24932,9 +25970,9 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.1.0 - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + vitest: 4.1.2(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) optionalDependencies: - '@vitest/browser': 4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/browser': 4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) '@vitest/expect@3.2.4': dependencies: @@ -24953,22 +25991,48 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))': + '@vitest/expect@4.1.4': + dependencies: + '@standard-schema/spec': 1.1.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.1.4 + '@vitest/utils': 4.1.4 + chai: 6.2.2 + tinyrainbow: 3.1.0 + + '@vitest/mocker@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.1.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + + '@vitest/mocker@4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))': + dependencies: + '@vitest/spy': 4.1.4 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) optional: true - '@vitest/mocker@4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))': + '@vitest/mocker@4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))': dependencies: - '@vitest/spy': 4.1.2 + '@vitest/spy': 4.1.4 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) + optional: true + + '@vitest/mocker@4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))': + dependencies: + '@vitest/spy': 4.1.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) '@vitest/pretty-format@3.2.4': dependencies: @@ -24978,11 +26042,20 @@ snapshots: dependencies: tinyrainbow: 3.1.0 + '@vitest/pretty-format@4.1.4': + dependencies: + tinyrainbow: 3.1.0 + '@vitest/runner@4.1.2': dependencies: '@vitest/utils': 4.1.2 pathe: 2.0.3 + '@vitest/runner@4.1.4': + dependencies: + '@vitest/utils': 4.1.4 + pathe: 2.0.3 + '@vitest/snapshot@4.1.2': dependencies: '@vitest/pretty-format': 4.1.2 @@ -24990,12 +26063,21 @@ snapshots: magic-string: 0.30.21 pathe: 2.0.3 + '@vitest/snapshot@4.1.4': + dependencies: + '@vitest/pretty-format': 4.1.4 + '@vitest/utils': 4.1.4 + magic-string: 0.30.21 + pathe: 2.0.3 + '@vitest/spy@3.2.4': dependencies: tinyspy: 4.0.4 '@vitest/spy@4.1.2': {} + '@vitest/spy@4.1.4': {} + '@vitest/ui@4.1.2(vitest@4.1.2)': dependencies: '@vitest/utils': 4.1.2 @@ -25003,9 +26085,9 @@ snapshots: flatted: 3.4.2 pathe: 2.0.3 sirv: 3.0.2 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vitest: 4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + vitest: 4.1.2(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) '@vitest/utils@3.2.4': dependencies: @@ -25019,6 +26101,12 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.0 + '@vitest/utils@4.1.4': + dependencies: + '@vitest/pretty-format': 4.1.4 + convert-source-map: 2.0.0 + tinyrainbow: 3.1.0 + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -25095,6 +26183,8 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 + '@webcontainer/env@1.1.1': {} + '@xtuc/ieee754@1.2.0': {} '@xtuc/long@4.2.2': {} @@ -25255,21 +26345,21 @@ snapshots: transitivePeerDependencies: - encoding - angular-eslint@21.3.1(@angular/cli@21.2.4(@types/node@25.5.2)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript-eslint@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(typescript@6.0.2): + angular-eslint@21.3.1(@angular/cli@21.2.4(@types/node@25.6.0)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript-eslint@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(typescript@6.0.2): dependencies: - '@angular-devkit/core': 21.2.6(chokidar@5.0.0) - '@angular-devkit/schematics': 21.2.4(chokidar@5.0.0) - '@angular-eslint/builder': 21.3.1(@angular/cli@21.2.4(@types/node@25.5.2)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@angular-eslint/eslint-plugin': 21.3.1(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@angular-eslint/eslint-plugin-template': 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/types@8.58.0)(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@angular-eslint/schematics': 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@angular/cli@21.2.4(@types/node@25.5.2)(chokidar@5.0.0))(@typescript-eslint/types@8.58.0)(@typescript-eslint/utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@angular-devkit/core': 21.2.7(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.7(chokidar@5.0.0) + '@angular-eslint/builder': 21.3.1(@angular/cli@21.2.4(@types/node@25.6.0)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@angular-eslint/eslint-plugin': 21.3.1(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@angular-eslint/eslint-plugin-template': 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/types@8.58.1)(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@angular-eslint/schematics': 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@angular/cli@21.2.4(@types/node@25.6.0)(chokidar@5.0.0))(@typescript-eslint/types@8.58.1)(@typescript-eslint/utils@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(chokidar@5.0.0)(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) '@angular-eslint/template-parser': 21.3.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@angular/cli': 21.2.4(@types/node@25.5.2)(chokidar@5.0.0) - '@typescript-eslint/types': 8.58.0 - '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@angular/cli': 21.2.4(@types/node@25.6.0)(chokidar@5.0.0) + '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) eslint: 10.2.0(jiti@2.6.1) typescript: 6.0.2 - typescript-eslint: 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + typescript-eslint: 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) transitivePeerDependencies: - chokidar - supports-color @@ -25371,7 +26461,7 @@ snapshots: astring@1.9.0: {} - astro@6.1.1(@types/node@25.5.2)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3): + astro@6.1.1(@types/node@25.6.0)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3): dependencies: '@astrojs/compiler': 3.0.1 '@astrojs/internal-helpers': 0.8.0 @@ -25387,7 +26477,7 @@ snapshots: clsx: 2.1.1 common-ancestor-path: 2.0.0 cookie: 1.1.1 - devalue: 5.6.4 + devalue: 5.7.1 diff: 8.0.4 dlv: 1.1.3 dset: 3.1.4 @@ -25405,7 +26495,7 @@ snapshots: neotraverse: 0.6.18 obug: 2.1.1 p-limit: 7.3.0 - p-queue: 9.1.1 + p-queue: 9.1.2 package-manager-detector: 1.6.0 piccolore: 0.1.3 picomatch: 4.0.4 @@ -25415,16 +26505,16 @@ snapshots: smol-toml: 1.6.1 svgo: 4.0.1 tinyclip: 0.1.12 - tinyexec: 1.0.4 - tinyglobby: 0.2.15 + tinyexec: 1.1.1 + tinyglobby: 0.2.16 tsconfck: 3.1.6(typescript@5.9.3) ultrahtml: 1.6.0 unifont: 0.7.4 unist-util-visit: 5.1.0 unstorage: 1.17.5(db0@0.3.4) vfile: 6.0.3 - vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) - vitefu: 1.1.3(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vitefu: 1.1.3(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) xxhash-wasm: 1.1.0 yargs-parser: 22.0.0 zod: 4.3.6 @@ -25465,7 +26555,7 @@ snapshots: - uploadthing - yaml - astro@6.1.1(@types/node@25.5.2)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3): + astro@6.1.1(@types/node@25.6.0)(db0@0.3.4)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(rollup@4.60.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3): dependencies: '@astrojs/compiler': 3.0.1 '@astrojs/internal-helpers': 0.8.0 @@ -25481,7 +26571,7 @@ snapshots: clsx: 2.1.1 common-ancestor-path: 2.0.0 cookie: 1.1.1 - devalue: 5.6.4 + devalue: 5.7.1 diff: 8.0.4 dlv: 1.1.3 dset: 3.1.4 @@ -25499,7 +26589,7 @@ snapshots: neotraverse: 0.6.18 obug: 2.1.1 p-limit: 7.3.0 - p-queue: 9.1.1 + p-queue: 9.1.2 package-manager-detector: 1.6.0 piccolore: 0.1.3 picomatch: 4.0.4 @@ -25509,16 +26599,16 @@ snapshots: smol-toml: 1.6.1 svgo: 4.0.1 tinyclip: 0.1.12 - tinyexec: 1.0.4 - tinyglobby: 0.2.15 + tinyexec: 1.1.1 + tinyglobby: 0.2.16 tsconfck: 3.1.6(typescript@6.0.2) ultrahtml: 1.6.0 unifont: 0.7.4 unist-util-visit: 5.1.0 unstorage: 1.17.5(db0@0.3.4) vfile: 6.0.3 - vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) - vitefu: 1.1.3(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vitefu: 1.1.3(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) xxhash-wasm: 1.1.0 yargs-parser: 22.0.0 zod: 4.3.6 @@ -25568,19 +26658,19 @@ snapshots: autoprefixer@10.4.27(postcss@8.5.6): dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001785 + caniuse-lite: 1.0.30001787 fraction.js: 5.3.4 picocolors: 1.1.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 - autoprefixer@10.4.27(postcss@8.5.8): + autoprefixer@10.4.27(postcss@8.5.9): dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001785 + caniuse-lite: 1.0.30001787 fraction.js: 5.3.4 picocolors: 1.1.1 - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 axios@1.13.5: @@ -25591,7 +26681,7 @@ snapshots: transitivePeerDependencies: - debug - axios@1.14.0(debug@4.4.3): + axios@1.15.0(debug@4.4.3): dependencies: follow-redirects: 1.15.11(debug@4.4.3) form-data: 4.0.5 @@ -25620,12 +26710,12 @@ snapshots: find-up: 5.0.0 webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) - babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: '@babel/core': 7.29.0 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) babel-plugin-const-enum@1.2.0(@babel/core@7.29.0): dependencies: @@ -25658,7 +26748,7 @@ snapshots: dependencies: '@babel/runtime': 7.29.2 cosmiconfig: 7.1.0 - resolve: 1.22.11 + resolve: 1.22.12 babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.28.6): dependencies: @@ -25752,13 +26842,15 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@4.0.3: {} + balanced-match@4.0.4: {} base64-js@0.0.8: {} base64-js@1.5.1: {} - baseline-browser-mapping@2.10.14: {} + baseline-browser-mapping@2.10.18: {} basic-auth@2.0.1: dependencies: @@ -25776,9 +26868,9 @@ snapshots: domhandler: 5.0.3 htmlparser2: 10.1.0 picocolors: 1.1.1 - postcss: 8.5.8 + postcss: 8.5.9 postcss-media-query-parser: 0.2.3 - postcss-safe-parser: 7.0.1(postcss@8.5.8) + postcss-safe-parser: 7.0.1(postcss@8.5.9) before-after-hook@4.0.0: {} @@ -25825,7 +26917,7 @@ snapshots: http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 - qs: 6.15.0 + qs: 6.15.1 raw-body: 3.0.2 type-is: 2.0.1 transitivePeerDependencies: @@ -25868,15 +26960,19 @@ snapshots: widest-line: 4.0.1 wrap-ansi: 8.1.0 - brace-expansion@1.1.13: + brace-expansion@1.1.14: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.3: + brace-expansion@2.1.0: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.2: + dependencies: + balanced-match: 4.0.4 + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 @@ -25887,9 +26983,9 @@ snapshots: browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.14 - caniuse-lite: 1.0.30001785 - electron-to-chromium: 1.5.331 + baseline-browser-mapping: 2.10.18 + caniuse-lite: 1.0.30001787 + electron-to-chromium: 1.5.335 node-releases: 2.0.37 update-browserslist-db: 1.2.3(browserslist@4.28.2) @@ -25921,7 +27017,7 @@ snapshots: '@npmcli/fs': 5.0.0 fs-minipass: 3.0.3 glob: 13.0.6 - lru-cache: 11.2.7 + lru-cache: 11.3.3 minipass: 7.1.3 minipass-collect: 2.0.1 minipass-flush: 1.0.7 @@ -25946,7 +27042,7 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.8: + call-bind@1.0.9: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -25978,11 +27074,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001785 + caniuse-lite: 1.0.30001787 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001785: {} + caniuse-lite@1.0.30001787: {} case-sensitive-paths-webpack-plugin@2.4.0: {} @@ -26067,19 +27163,18 @@ snapshots: undici: 7.24.7 whatwg-mimetype: 4.0.0 - chevrotain-allstar@0.3.1(chevrotain@11.1.2): + chevrotain-allstar@0.4.1(chevrotain@12.0.0): dependencies: - chevrotain: 11.1.2 + chevrotain: 12.0.0 lodash-es: 4.18.1 - chevrotain@11.1.2: + chevrotain@12.0.0: dependencies: - '@chevrotain/cst-dts-gen': 11.1.2 - '@chevrotain/gast': 11.1.2 - '@chevrotain/regexp-to-ast': 11.1.2 - '@chevrotain/types': 11.1.2 - '@chevrotain/utils': 11.1.2 - lodash-es: 4.17.23 + '@chevrotain/cst-dts-gen': 12.0.0 + '@chevrotain/gast': 12.0.0 + '@chevrotain/regexp-to-ast': 12.0.0 + '@chevrotain/types': 12.0.0 + '@chevrotain/utils': 12.0.0 chokidar@3.6.0: dependencies: @@ -26319,7 +27414,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - content-disposition@1.0.1: {} + content-disposition@1.1.0: {} content-type@1.0.5: {} @@ -26343,7 +27438,7 @@ snapshots: conventional-changelog@7.2.0(conventional-commits-filter@5.0.0): dependencies: - '@conventional-changelog/git-client': 2.6.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) + '@conventional-changelog/git-client': 2.7.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) '@simple-libs/hosted-git-info': 1.0.2 '@types/normalize-package-data': 2.4.4 conventional-changelog-preset-loader: 5.0.0 @@ -26391,7 +27486,7 @@ snapshots: graceful-fs: 4.2.11 p-event: 6.0.1 - copy-webpack-plugin@11.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + copy-webpack-plugin@11.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -26399,7 +27494,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) copy-webpack-plugin@14.0.0(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: @@ -26407,17 +27502,17 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 7.0.5 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) - copy-webpack-plugin@14.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + copy-webpack-plugin@14.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 7.0.5 - tinyglobby: 0.2.15 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + tinyglobby: 0.2.16 + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) core-js-compat@3.49.0: dependencies: @@ -26444,9 +27539,9 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig-typescript-loader@6.2.0(@types/node@25.5.2)(cosmiconfig@9.0.1(typescript@6.0.2))(typescript@6.0.2): + cosmiconfig-typescript-loader@6.3.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@6.0.2))(typescript@6.0.2): dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 cosmiconfig: 9.0.1(typescript@6.0.2) jiti: 2.6.1 typescript: 6.0.2 @@ -26506,9 +27601,9 @@ snapshots: dependencies: uncrypto: 0.1.3 - crossws@0.4.4(srvx@0.11.15): + crossws@0.4.5(srvx@0.11.15(patch_hash=12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591)): optionalDependencies: - srvx: 0.11.15 + srvx: 0.11.15(patch_hash=12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591) crypto-random-string@4.0.0: dependencies: @@ -26516,100 +27611,100 @@ snapshots: css-background-parser@0.1.0: {} - css-blank-pseudo@7.0.1(postcss@8.5.8): + css-blank-pseudo@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 css-box-shadow@1.0.0-3: {} css-color-keywords@1.0.0: {} - css-declaration-sorter@7.3.1(postcss@8.5.8): + css-declaration-sorter@7.4.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 css-gradient-parser@0.0.17: {} - css-has-pseudo@7.0.3(postcss@8.5.8): + css-has-pseudo@7.0.3(postcss@8.5.9): dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - css-loader@6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + css-loader@6.11.0(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: - icss-utils: 5.1.0(postcss@8.5.8) - postcss: 8.5.8 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.8) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.8) - postcss-modules-scope: 3.2.1(postcss@8.5.8) - postcss-modules-values: 4.0.0(postcss@8.5.8) + icss-utils: 5.1.0(postcss@8.5.9) + postcss: 8.5.9 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.9) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.9) + postcss-modules-scope: 3.2.1(postcss@8.5.9) + postcss-modules-values: 4.0.0(postcss@8.5.9) postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: '@rspack/core': 1.6.8(@swc/helpers@0.5.21) - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) css-loader@7.1.3(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: - icss-utils: 5.1.0(postcss@8.5.8) - postcss: 8.5.8 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.8) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.8) - postcss-modules-scope: 3.2.1(postcss@8.5.8) - postcss-modules-values: 4.0.0(postcss@8.5.8) + icss-utils: 5.1.0(postcss@8.5.9) + postcss: 8.5.9 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.9) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.9) + postcss-modules-scope: 3.2.1(postcss@8.5.9) + postcss-modules-values: 4.0.0(postcss@8.5.9) postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: '@rspack/core': 1.6.8(@swc/helpers@0.5.21) webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) - css-loader@7.1.4(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + css-loader@7.1.4(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: - icss-utils: 5.1.0(postcss@8.5.8) - postcss: 8.5.8 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.8) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.8) - postcss-modules-scope: 3.2.1(postcss@8.5.8) - postcss-modules-values: 4.0.0(postcss@8.5.8) + icss-utils: 5.1.0(postcss@8.5.9) + postcss: 8.5.9 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.9) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.9) + postcss-modules-scope: 3.2.1(postcss@8.5.9) + postcss-modules-values: 4.0.0(postcss@8.5.9) postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: '@rspack/core': 1.6.8(@swc/helpers@0.5.21) - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: '@jridgewell/trace-mapping': 0.3.31 - cssnano: 6.1.2(postcss@8.5.8) + cssnano: 6.1.2(postcss@8.5.9) jest-worker: 29.7.0 - postcss: 8.5.8 + postcss: 8.5.9 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) optionalDependencies: clean-css: 5.3.3 esbuild: 0.27.7 lightningcss: 1.32.0 - css-minimizer-webpack-plugin@8.0.0(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + css-minimizer-webpack-plugin@8.0.0(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: '@jridgewell/trace-mapping': 0.3.31 - cssnano: 7.1.4(postcss@8.5.8) + cssnano: 7.1.4(postcss@8.5.9) jest-worker: 30.3.0 - postcss: 8.5.8 + postcss: 8.5.9 schema-utils: 4.3.3 serialize-javascript: 7.0.5 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) optionalDependencies: esbuild: 0.27.7 lightningcss: 1.32.0 - css-prefers-color-scheme@10.0.0(postcss@8.5.8): + css-prefers-color-scheme@10.0.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 css-select@4.3.0: dependencies: @@ -26666,104 +27761,104 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-advanced@6.1.2(postcss@8.5.8): + cssnano-preset-advanced@6.1.2(postcss@8.5.9): dependencies: - autoprefixer: 10.4.27(postcss@8.5.8) + autoprefixer: 10.4.27(postcss@8.5.9) browserslist: 4.28.2 - cssnano-preset-default: 6.1.2(postcss@8.5.8) - postcss: 8.5.8 - postcss-discard-unused: 6.0.5(postcss@8.5.8) - postcss-merge-idents: 6.0.3(postcss@8.5.8) - postcss-reduce-idents: 6.0.3(postcss@8.5.8) - postcss-zindex: 6.0.2(postcss@8.5.8) + cssnano-preset-default: 6.1.2(postcss@8.5.9) + postcss: 8.5.9 + postcss-discard-unused: 6.0.5(postcss@8.5.9) + postcss-merge-idents: 6.0.3(postcss@8.5.9) + postcss-reduce-idents: 6.0.3(postcss@8.5.9) + postcss-zindex: 6.0.2(postcss@8.5.9) - cssnano-preset-default@6.1.2(postcss@8.5.8): + cssnano-preset-default@6.1.2(postcss@8.5.9): dependencies: browserslist: 4.28.2 - css-declaration-sorter: 7.3.1(postcss@8.5.8) - cssnano-utils: 4.0.2(postcss@8.5.8) - postcss: 8.5.8 - postcss-calc: 9.0.1(postcss@8.5.8) - postcss-colormin: 6.1.0(postcss@8.5.8) - postcss-convert-values: 6.1.0(postcss@8.5.8) - postcss-discard-comments: 6.0.2(postcss@8.5.8) - postcss-discard-duplicates: 6.0.3(postcss@8.5.8) - postcss-discard-empty: 6.0.3(postcss@8.5.8) - postcss-discard-overridden: 6.0.2(postcss@8.5.8) - postcss-merge-longhand: 6.0.5(postcss@8.5.8) - postcss-merge-rules: 6.1.1(postcss@8.5.8) - postcss-minify-font-values: 6.1.0(postcss@8.5.8) - postcss-minify-gradients: 6.0.3(postcss@8.5.8) - postcss-minify-params: 6.1.0(postcss@8.5.8) - postcss-minify-selectors: 6.0.4(postcss@8.5.8) - postcss-normalize-charset: 6.0.2(postcss@8.5.8) - postcss-normalize-display-values: 6.0.2(postcss@8.5.8) - postcss-normalize-positions: 6.0.2(postcss@8.5.8) - postcss-normalize-repeat-style: 6.0.2(postcss@8.5.8) - postcss-normalize-string: 6.0.2(postcss@8.5.8) - postcss-normalize-timing-functions: 6.0.2(postcss@8.5.8) - postcss-normalize-unicode: 6.1.0(postcss@8.5.8) - postcss-normalize-url: 6.0.2(postcss@8.5.8) - postcss-normalize-whitespace: 6.0.2(postcss@8.5.8) - postcss-ordered-values: 6.0.2(postcss@8.5.8) - postcss-reduce-initial: 6.1.0(postcss@8.5.8) - postcss-reduce-transforms: 6.0.2(postcss@8.5.8) - postcss-svgo: 6.0.3(postcss@8.5.8) - postcss-unique-selectors: 6.0.4(postcss@8.5.8) - - cssnano-preset-default@7.0.12(postcss@8.5.8): + css-declaration-sorter: 7.4.0(postcss@8.5.9) + cssnano-utils: 4.0.2(postcss@8.5.9) + postcss: 8.5.9 + postcss-calc: 9.0.1(postcss@8.5.9) + postcss-colormin: 6.1.0(postcss@8.5.9) + postcss-convert-values: 6.1.0(postcss@8.5.9) + postcss-discard-comments: 6.0.2(postcss@8.5.9) + postcss-discard-duplicates: 6.0.3(postcss@8.5.9) + postcss-discard-empty: 6.0.3(postcss@8.5.9) + postcss-discard-overridden: 6.0.2(postcss@8.5.9) + postcss-merge-longhand: 6.0.5(postcss@8.5.9) + postcss-merge-rules: 6.1.1(postcss@8.5.9) + postcss-minify-font-values: 6.1.0(postcss@8.5.9) + postcss-minify-gradients: 6.0.3(postcss@8.5.9) + postcss-minify-params: 6.1.0(postcss@8.5.9) + postcss-minify-selectors: 6.0.4(postcss@8.5.9) + postcss-normalize-charset: 6.0.2(postcss@8.5.9) + postcss-normalize-display-values: 6.0.2(postcss@8.5.9) + postcss-normalize-positions: 6.0.2(postcss@8.5.9) + postcss-normalize-repeat-style: 6.0.2(postcss@8.5.9) + postcss-normalize-string: 6.0.2(postcss@8.5.9) + postcss-normalize-timing-functions: 6.0.2(postcss@8.5.9) + postcss-normalize-unicode: 6.1.0(postcss@8.5.9) + postcss-normalize-url: 6.0.2(postcss@8.5.9) + postcss-normalize-whitespace: 6.0.2(postcss@8.5.9) + postcss-ordered-values: 6.0.2(postcss@8.5.9) + postcss-reduce-initial: 6.1.0(postcss@8.5.9) + postcss-reduce-transforms: 6.0.2(postcss@8.5.9) + postcss-svgo: 6.0.3(postcss@8.5.9) + postcss-unique-selectors: 6.0.4(postcss@8.5.9) + + cssnano-preset-default@7.0.12(postcss@8.5.9): dependencies: browserslist: 4.28.2 - css-declaration-sorter: 7.3.1(postcss@8.5.8) - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 - postcss-calc: 10.1.1(postcss@8.5.8) - postcss-colormin: 7.0.7(postcss@8.5.8) - postcss-convert-values: 7.0.9(postcss@8.5.8) - postcss-discard-comments: 7.0.6(postcss@8.5.8) - postcss-discard-duplicates: 7.0.2(postcss@8.5.8) - postcss-discard-empty: 7.0.1(postcss@8.5.8) - postcss-discard-overridden: 7.0.1(postcss@8.5.8) - postcss-merge-longhand: 7.0.5(postcss@8.5.8) - postcss-merge-rules: 7.0.8(postcss@8.5.8) - postcss-minify-font-values: 7.0.1(postcss@8.5.8) - postcss-minify-gradients: 7.0.2(postcss@8.5.8) - postcss-minify-params: 7.0.6(postcss@8.5.8) - postcss-minify-selectors: 7.0.6(postcss@8.5.8) - postcss-normalize-charset: 7.0.1(postcss@8.5.8) - postcss-normalize-display-values: 7.0.1(postcss@8.5.8) - postcss-normalize-positions: 7.0.1(postcss@8.5.8) - postcss-normalize-repeat-style: 7.0.1(postcss@8.5.8) - postcss-normalize-string: 7.0.1(postcss@8.5.8) - postcss-normalize-timing-functions: 7.0.1(postcss@8.5.8) - postcss-normalize-unicode: 7.0.6(postcss@8.5.8) - postcss-normalize-url: 7.0.1(postcss@8.5.8) - postcss-normalize-whitespace: 7.0.1(postcss@8.5.8) - postcss-ordered-values: 7.0.2(postcss@8.5.8) - postcss-reduce-initial: 7.0.6(postcss@8.5.8) - postcss-reduce-transforms: 7.0.1(postcss@8.5.8) - postcss-svgo: 7.1.1(postcss@8.5.8) - postcss-unique-selectors: 7.0.5(postcss@8.5.8) - - cssnano-utils@4.0.2(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - cssnano-utils@5.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 - - cssnano@6.1.2(postcss@8.5.8): - dependencies: - cssnano-preset-default: 6.1.2(postcss@8.5.8) + css-declaration-sorter: 7.4.0(postcss@8.5.9) + cssnano-utils: 5.0.1(postcss@8.5.9) + postcss: 8.5.9 + postcss-calc: 10.1.1(postcss@8.5.9) + postcss-colormin: 7.0.7(postcss@8.5.9) + postcss-convert-values: 7.0.9(postcss@8.5.9) + postcss-discard-comments: 7.0.6(postcss@8.5.9) + postcss-discard-duplicates: 7.0.2(postcss@8.5.9) + postcss-discard-empty: 7.0.1(postcss@8.5.9) + postcss-discard-overridden: 7.0.1(postcss@8.5.9) + postcss-merge-longhand: 7.0.5(postcss@8.5.9) + postcss-merge-rules: 7.0.8(postcss@8.5.9) + postcss-minify-font-values: 7.0.1(postcss@8.5.9) + postcss-minify-gradients: 7.0.2(postcss@8.5.9) + postcss-minify-params: 7.0.6(postcss@8.5.9) + postcss-minify-selectors: 7.0.6(postcss@8.5.9) + postcss-normalize-charset: 7.0.1(postcss@8.5.9) + postcss-normalize-display-values: 7.0.1(postcss@8.5.9) + postcss-normalize-positions: 7.0.1(postcss@8.5.9) + postcss-normalize-repeat-style: 7.0.1(postcss@8.5.9) + postcss-normalize-string: 7.0.1(postcss@8.5.9) + postcss-normalize-timing-functions: 7.0.1(postcss@8.5.9) + postcss-normalize-unicode: 7.0.6(postcss@8.5.9) + postcss-normalize-url: 7.0.1(postcss@8.5.9) + postcss-normalize-whitespace: 7.0.1(postcss@8.5.9) + postcss-ordered-values: 7.0.2(postcss@8.5.9) + postcss-reduce-initial: 7.0.6(postcss@8.5.9) + postcss-reduce-transforms: 7.0.1(postcss@8.5.9) + postcss-svgo: 7.1.1(postcss@8.5.9) + postcss-unique-selectors: 7.0.5(postcss@8.5.9) + + cssnano-utils@4.0.2(postcss@8.5.9): + dependencies: + postcss: 8.5.9 + + cssnano-utils@5.0.1(postcss@8.5.9): + dependencies: + postcss: 8.5.9 + + cssnano@6.1.2(postcss@8.5.9): + dependencies: + cssnano-preset-default: 6.1.2(postcss@8.5.9) lilconfig: 3.1.3 - postcss: 8.5.8 + postcss: 8.5.9 - cssnano@7.1.4(postcss@8.5.8): + cssnano@7.1.4(postcss@8.5.9): dependencies: - cssnano-preset-default: 7.0.12(postcss@8.5.8) + cssnano-preset-default: 7.0.12(postcss@8.5.9) lilconfig: 3.1.3 - postcss: 8.5.8 + postcss: 8.5.9 csso@5.0.5: dependencies: @@ -26771,17 +27866,17 @@ snapshots: csstype@3.2.3: {} - cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.1): + cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.2): dependencies: cose-base: 1.0.3 - cytoscape: 3.33.1 + cytoscape: 3.33.2 - cytoscape-fcose@2.2.0(cytoscape@3.33.1): + cytoscape-fcose@2.2.0(cytoscape@3.33.2): dependencies: cose-base: 2.2.0 - cytoscape: 3.33.1 + cytoscape: 3.33.2 - cytoscape@3.33.1: {} + cytoscape@3.33.2: {} d3-array@2.12.1: dependencies: @@ -27035,7 +28130,7 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - defu@6.1.6: {} + defu@6.1.7: {} delaunator@5.1.0: dependencies: @@ -27068,7 +28163,7 @@ snapshots: transitivePeerDependencies: - supports-color - devalue@5.6.4: {} + devalue@5.7.1: {} devlop@1.1.0: dependencies: @@ -27192,13 +28287,9 @@ snapshots: uuid: 13.0.0 yaml: 2.8.3 - ejs@3.1.10: - dependencies: - jake: 10.9.4 - ejs@5.0.1: {} - electron-to-chromium@1.5.331: {} + electron-to-chromium@1.5.335: {} emittery@0.13.1: {} @@ -27261,10 +28352,10 @@ snapshots: env-runner@0.1.7: dependencies: - crossws: 0.4.4(srvx@0.11.15) + crossws: 0.4.5(srvx@0.11.15(patch_hash=12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591)) exsolve: 1.0.8 httpxy: 0.5.0 - srvx: 0.11.15 + srvx: 0.11.15(patch_hash=12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591) environment@1.1.0: {} @@ -27400,21 +28491,21 @@ snapshots: dependencies: eslint: 10.2.0(jiti@2.6.1) - eslint-plugin-oxlint@1.58.0(oxlint@1.58.0(oxlint-tsgolint@0.19.0)): + eslint-plugin-oxlint@1.59.0(oxlint@1.59.0(oxlint-tsgolint@0.19.0)): dependencies: jsonc-parser: 3.3.1 - oxlint: 1.58.0(oxlint-tsgolint@0.19.0) + oxlint: 1.59.0(oxlint-tsgolint@0.19.0) eslint-plugin-playwright@2.10.1(eslint@10.2.0(jiti@2.6.1)): dependencies: eslint: 10.2.0(jiti@2.6.1) globals: 17.4.0 - eslint-plugin-storybook@10.3.3(eslint@10.2.0(jiti@2.6.1))(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(typescript@6.0.2): + eslint-plugin-storybook@10.3.3(eslint@10.2.0(jiti@2.6.1))(storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@6.0.2): dependencies: - '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) eslint: 10.2.0(jiti@2.6.1) - storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) transitivePeerDependencies: - supports-color - typescript @@ -27441,10 +28532,10 @@ snapshots: dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.4 - '@eslint/config-helpers': 0.5.4 - '@eslint/core': 1.2.0 - '@eslint/plugin-kit': 0.7.0 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.5.5 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.1 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -27553,7 +28644,7 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 require-like: 0.1.2 event-stream@4.0.1: @@ -27693,7 +28784,7 @@ snapshots: dependencies: accepts: 2.0.0 body-parser: 2.2.2 - content-disposition: 1.0.1 + content-disposition: 1.1.0 content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 @@ -27711,7 +28802,7 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.15.0 + qs: 6.15.1 range-parser: 1.2.1 router: 2.2.0 send: 1.2.1 @@ -27820,15 +28911,11 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-loader@6.2.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + file-loader@6.2.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) - - filelist@1.0.6: - dependencies: - minimatch: 5.1.9 + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) fill-range@7.1.1: dependencies: @@ -27948,7 +29035,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@9.1.0(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + fork-ts-checker-webpack-plugin@9.1.0(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: '@babel/code-frame': 7.29.0 chalk: 4.1.2 @@ -27963,7 +29050,7 @@ snapshots: semver: 7.7.4 tapable: 2.3.2 typescript: 6.0.2 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) form-data-encoder@2.1.4: {} @@ -28093,7 +29180,7 @@ snapshots: git-raw-commits@5.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0): dependencies: - '@conventional-changelog/git-client': 2.6.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) + '@conventional-changelog/git-client': 2.7.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) meow: 13.2.0 transitivePeerDependencies: - conventional-commits-filter @@ -28238,7 +29325,7 @@ snapshots: dependencies: cookie-es: 1.2.3 crossws: 0.3.5 - defu: 6.1.6 + defu: 6.1.7 destr: 2.0.5 iron-webcrypto: 1.2.1 node-mock-http: 1.0.4 @@ -28246,12 +29333,12 @@ snapshots: ufo: 1.6.3 uncrypto: 0.1.3 - h3@2.0.1-rc.20(crossws@0.4.4(srvx@0.11.15)): + h3@2.0.1-rc.20(crossws@0.4.5(srvx@0.11.15(patch_hash=12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591))): dependencies: rou3: 0.8.1 - srvx: 0.11.15 + srvx: 0.11.15(patch_hash=12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591) optionalDependencies: - crossws: 0.4.4(srvx@0.11.15) + crossws: 0.4.5(srvx@0.11.15(patch_hash=12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591)) hachure-fill@0.5.2: {} @@ -28268,7 +29355,7 @@ snapshots: happy-dom@20.8.9: dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@types/whatwg-mimetype': 3.0.2 '@types/ws': 8.18.1 entities: 7.0.1 @@ -28451,7 +29538,7 @@ snapshots: dependencies: parse-passwd: 1.0.0 - hono@4.12.10: {} + hono@4.12.12: {} hook-std@4.0.0: {} @@ -28467,7 +29554,7 @@ snapshots: hosted-git-info@9.0.2: dependencies: - lru-cache: 11.2.7 + lru-cache: 11.3.3 hpack.js@2.1.6: dependencies: @@ -28528,7 +29615,7 @@ snapshots: webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) optional: true - html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -28537,7 +29624,7 @@ snapshots: tapable: 2.3.2 optionalDependencies: '@rspack/core': 1.6.8(@swc/helpers@0.5.21) - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) htmlparser2@10.1.0: dependencies: @@ -28690,9 +29777,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.8): + icss-utils@5.1.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 identity-obj-proxy@3.0.0: dependencies: @@ -28978,12 +30065,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jake@10.9.4: - dependencies: - async: 3.2.6 - filelist: 1.0.6 - picocolors: 1.1.1 - java-properties@1.0.2: {} jest-circus@30.3.0(babel-plugin-macros@3.1.0): @@ -28992,7 +30073,7 @@ snapshots: '@jest/expect': 30.3.0 '@jest/test-result': 30.3.0 '@jest/types': 30.3.0 - '@types/node': 25.5.2 + '@types/node': 25.6.0 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.2(babel-plugin-macros@3.1.0) @@ -29012,7 +30093,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@30.3.0(@types/node@25.5.2)(babel-plugin-macros@3.1.0): + jest-config@30.3.0(@types/node@25.6.0)(babel-plugin-macros@3.1.0): dependencies: '@babel/core': 7.29.0 '@jest/get-type': 30.1.0 @@ -29038,7 +30119,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -29074,7 +30155,7 @@ snapshots: '@jest/environment': 30.3.0 '@jest/fake-timers': 30.3.0 '@jest/types': 30.3.0 - '@types/node': 25.5.2 + '@types/node': 25.6.0 jest-mock: 30.3.0 jest-util: 30.3.0 jest-validate: 30.3.0 @@ -29084,7 +30165,7 @@ snapshots: jest-haste-map@30.3.0: dependencies: '@jest/types': 30.3.0 - '@types/node': 25.5.2 + '@types/node': 25.6.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -29123,7 +30204,7 @@ snapshots: jest-mock@30.3.0: dependencies: '@jest/types': 30.3.0 - '@types/node': 25.5.2 + '@types/node': 25.6.0 jest-util: 30.3.0 jest-pnp-resolver@1.2.3(jest-resolve@30.3.0): @@ -29150,7 +30231,7 @@ snapshots: '@jest/test-result': 30.3.0 '@jest/transform': 30.3.0 '@jest/types': 30.3.0 - '@types/node': 25.5.2 + '@types/node': 25.6.0 chalk: 4.1.2 emittery: 0.13.1 exit-x: 0.2.2 @@ -29179,7 +30260,7 @@ snapshots: '@jest/test-result': 30.3.0 '@jest/transform': 30.3.0 '@jest/types': 30.3.0 - '@types/node': 25.5.2 + '@types/node': 25.6.0 chalk: 4.1.2 cjs-module-lexer: 2.2.0 collect-v8-coverage: 1.0.3 @@ -29226,7 +30307,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 25.5.2 + '@types/node': 25.6.0 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -29235,7 +30316,7 @@ snapshots: jest-util@30.3.0: dependencies: '@jest/types': 30.3.0 - '@types/node': 25.5.2 + '@types/node': 25.6.0 chalk: 4.1.2 ci-info: 4.4.0 graceful-fs: 4.2.11 @@ -29254,7 +30335,7 @@ snapshots: dependencies: '@jest/test-result': 30.3.0 '@jest/types': 30.3.0 - '@types/node': 25.5.2 + '@types/node': 25.6.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -29263,20 +30344,20 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@30.3.0: dependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 '@ungap/structured-clone': 1.3.0 jest-util: 30.3.0 merge-stream: 2.0.0 @@ -29323,8 +30404,8 @@ snapshots: jsdom@29.0.1: dependencies: - '@asamuzakjp/css-color': 5.1.5 - '@asamuzakjp/dom-selector': 7.0.6 + '@asamuzakjp/css-color': 5.1.10 + '@asamuzakjp/dom-selector': 7.0.9 '@bramus/specificity': 2.4.2 '@csstools/css-syntax-patches-for-csstree': 1.1.2(css-tree@3.2.1) '@exodus/bytes': 1.15.0 @@ -29333,7 +30414,7 @@ snapshots: decimal.js: 10.6.0 html-encoding-sniffer: 6.0.0 is-potential-custom-element-name: 1.0.1 - lru-cache: 11.2.7 + lru-cache: 11.3.3 parse5: 8.0.0 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -29406,7 +30487,7 @@ snapshots: dependencies: source-map-support: 0.5.21 - katex@0.16.44: + katex@0.16.45: dependencies: commander: 8.3.0 @@ -29422,16 +30503,15 @@ snapshots: kleur@3.0.3: {} - klona@2.0.6: {} - kolorist@1.8.0: {} kubernetes-types@1.30.0: {} - langium@4.2.1: + langium@4.2.2: dependencies: - chevrotain: 11.1.2 - chevrotain-allstar: 0.3.1(chevrotain@11.1.2) + '@chevrotain/regexp-to-ast': 12.0.0 + chevrotain: 12.0.0 + chevrotain-allstar: 0.4.1(chevrotain@12.0.0) vscode-languageserver: 9.0.1 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 @@ -29458,19 +30538,19 @@ snapshots: '@rspack/core': 1.6.8(@swc/helpers@0.5.21) webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) - less-loader@12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.5.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + less-loader@12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.5.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: less: 4.5.1 optionalDependencies: '@rspack/core': 1.6.8(@swc/helpers@0.5.21) - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) - less-loader@12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.6.4)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + less-loader@12.3.2(@rspack/core@1.6.8(@swc/helpers@0.5.21))(less@4.6.4)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: less: 4.6.4 optionalDependencies: '@rspack/core': 1.6.8(@swc/helpers@0.5.21) - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) less@4.4.2: dependencies: @@ -29526,11 +30606,11 @@ snapshots: optionalDependencies: webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) - license-webpack-plugin@4.0.2(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + license-webpack-plugin@4.0.2(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: webpack-sources: 3.3.4 optionalDependencies: - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) lightningcss-android-arm64@1.32.0: optional: true @@ -29598,7 +30678,7 @@ snapshots: listr2: 9.0.5 picomatch: 4.0.4 string-argv: 0.3.2 - tinyexec: 1.0.4 + tinyexec: 1.1.1 yaml: 2.8.3 listr2@9.0.5: @@ -29666,8 +30746,6 @@ snapshots: dependencies: p-locate: 6.0.0 - lodash-es@4.17.23: {} - lodash-es@4.18.1: {} lodash.camelcase@4.3.0: {} @@ -29740,7 +30818,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.7: {} + lru-cache@11.3.3: {} lru-cache@5.1.1: dependencies: @@ -29811,22 +30889,22 @@ snapshots: markdown-table@3.0.4: {} - marked-gfm-heading-id@4.1.3(marked@17.0.5): + marked-gfm-heading-id@4.1.4(marked@17.0.6): dependencies: github-slugger: 2.0.0 - marked: 17.0.5 + marked: 17.0.6 - marked-highlight@2.2.3(marked@17.0.5): + marked-highlight@2.2.4(marked@17.0.6): dependencies: - marked: 17.0.5 + marked: 17.0.6 - marked-mangle@1.1.12(marked@17.0.5): + marked-mangle@1.1.13(marked@17.0.6): dependencies: - marked: 17.0.5 + marked: 17.0.6 - marked-shiki@1.2.1(marked@17.0.5)(shiki@4.0.2): + marked-shiki@1.2.1(marked@17.0.6)(shiki@4.0.2): dependencies: - marked: 17.0.5 + marked: 17.0.6 shiki: 4.0.2 marked-terminal@7.3.0(marked@15.0.12): @@ -29844,7 +30922,7 @@ snapshots: marked@16.4.2: {} - marked@17.0.5: {} + marked@17.0.6: {} marked@7.0.3: {} @@ -30100,15 +31178,15 @@ snapshots: '@mermaid-js/parser': 1.1.0 '@types/d3': 7.4.3 '@upsetjs/venn.js': 2.0.0 - cytoscape: 3.33.1 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.1) - cytoscape-fcose: 2.2.0(cytoscape@3.33.1) + cytoscape: 3.33.2 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.2) + cytoscape-fcose: 2.2.0(cytoscape@3.33.2) d3: 7.9.0 d3-sankey: 0.12.3 dagre-d3-es: 7.0.14 dayjs: 1.11.20 dompurify: 3.3.3 - katex: 0.16.44 + katex: 0.16.45 khroma: 2.1.0 lodash-es: 4.18.1 marked: 16.4.2 @@ -30459,16 +31537,16 @@ snapshots: tapable: 2.3.2 webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) - mini-css-extract-plugin@2.10.2(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + mini-css-extract-plugin@2.10.2(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: schema-utils: 4.3.3 tapable: 2.3.2 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) - mini-css-extract-plugin@2.4.7(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + mini-css-extract-plugin@2.4.7(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: schema-utils: 4.3.3 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) minimalistic-assert@1.0.1: {} @@ -30482,15 +31560,15 @@ snapshots: minimatch@3.1.5: dependencies: - brace-expansion: 1.1.13 + brace-expansion: 1.1.14 minimatch@5.1.9: dependencies: - brace-expansion: 2.0.3 + brace-expansion: 2.1.0 minimatch@9.0.9: dependencies: - brace-expansion: 2.0.3 + brace-expansion: 2.1.0 minimist@1.2.8: {} @@ -30612,10 +31690,10 @@ snapshots: nf3@0.3.16: {} - ng-packagr@21.2.1(@angular/compiler-cli@21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2): + ng-packagr@21.2.1(@angular/compiler-cli@21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2))(tailwindcss@4.2.2)(tslib@2.8.1)(typescript@6.0.2): dependencies: '@ampproject/remapping': 2.3.0 - '@angular/compiler-cli': 21.2.6(@angular/compiler@21.2.6)(typescript@6.0.2) + '@angular/compiler-cli': 21.2.8(@angular/compiler@21.2.8)(typescript@6.0.2) '@rollup/plugin-json': 6.1.0(rollup@4.60.1) '@rollup/wasm-node': 4.60.1 ajv: 8.18.0 @@ -30631,38 +31709,38 @@ snapshots: less: 4.6.4 ora: 9.3.0 piscina: 5.1.4 - postcss: 8.5.8 + postcss: 8.5.9 rollup-plugin-dts: 6.4.1(rollup@4.60.1)(typescript@6.0.2) rxjs: 7.8.2 sass: 1.99.0 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 tslib: 2.8.1 typescript: 6.0.2 optionalDependencies: rollup: 4.60.1 tailwindcss: 4.2.2 - nitro@3.0.260311-beta(chokidar@5.0.0)(dotenv@16.4.7)(jiti@2.6.1)(lru-cache@11.2.7)(rollup@4.60.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): + nitro@3.0.260311-beta(chokidar@5.0.0)(dotenv@16.4.7)(jiti@2.6.1)(lru-cache@11.3.3)(rollup@4.60.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: consola: 3.4.2 - crossws: 0.4.4(srvx@0.11.15) + crossws: 0.4.5(srvx@0.11.15(patch_hash=12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591)) db0: 0.3.4 env-runner: 0.1.7 - h3: 2.0.1-rc.20(crossws@0.4.4(srvx@0.11.15)) + h3: 2.0.1-rc.20(crossws@0.4.5(srvx@0.11.15(patch_hash=12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591))) hookable: 6.1.0 nf3: 0.3.16 ocache: 0.1.4 ofetch: 2.0.0-alpha.3 ohash: 2.0.11 - rolldown: 1.0.0-rc.13 - srvx: 0.11.15 + rolldown: 1.0.0-rc.15 + srvx: 0.11.15(patch_hash=12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591) unenv: 2.0.0-rc.24 - unstorage: 2.0.0-alpha.7(chokidar@5.0.0)(db0@0.3.4)(lru-cache@11.2.7)(ofetch@2.0.0-alpha.3) + unstorage: 2.0.0-alpha.7(chokidar@5.0.0)(db0@0.3.4)(lru-cache@11.3.3)(ofetch@2.0.0-alpha.3) optionalDependencies: dotenv: 16.4.7 jiti: 2.6.1 rollup: 4.60.1 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -30743,7 +31821,7 @@ snapshots: proc-log: 6.1.0 semver: 7.7.4 tar: 7.5.13 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 which: 6.0.1 transitivePeerDependencies: - supports-color @@ -30851,26 +31929,25 @@ snapshots: dependencies: boolbase: 1.0.0 - null-loader@4.0.1(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + null-loader@4.0.1(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) - nx@22.6.2(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)): + nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)): dependencies: - '@ltd/j-toml': 1.38.0 '@napi-rs/wasm-runtime': 0.2.4 '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 - axios: 1.14.0(debug@4.4.3) + axios: 1.15.0(debug@4.4.3) cli-cursor: 3.1.0 cli-spinners: 2.6.1 cliui: 8.0.1 dotenv: 16.4.7 dotenv-expand: 11.0.7 - ejs: 3.1.10 + ejs: 5.0.1 enquirer: 2.3.6 figures: 3.2.0 flat: 5.0.2 @@ -30886,6 +31963,7 @@ snapshots: picocolors: 1.1.1 resolve.exports: 2.0.3 semver: 7.7.4 + smol-toml: 1.6.1 string-width: 4.2.3 tar-stream: 2.2.0 tmp: 0.2.5 @@ -30896,70 +31974,144 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 22.6.2 - '@nx/nx-darwin-x64': 22.6.2 - '@nx/nx-freebsd-x64': 22.6.2 - '@nx/nx-linux-arm-gnueabihf': 22.6.2 - '@nx/nx-linux-arm64-gnu': 22.6.2 - '@nx/nx-linux-arm64-musl': 22.6.2 - '@nx/nx-linux-x64-gnu': 22.6.2 - '@nx/nx-linux-x64-musl': 22.6.2 - '@nx/nx-win32-arm64-msvc': 22.6.2 - '@nx/nx-win32-x64-msvc': 22.6.2 + '@nx/nx-darwin-arm64': 22.6.5 + '@nx/nx-darwin-x64': 22.6.5 + '@nx/nx-freebsd-x64': 22.6.5 + '@nx/nx-linux-arm-gnueabihf': 22.6.5 + '@nx/nx-linux-arm64-gnu': 22.6.5 + '@nx/nx-linux-arm64-musl': 22.6.5 + '@nx/nx-linux-x64-gnu': 22.6.5 + '@nx/nx-linux-x64-musl': 22.6.5 + '@nx/nx-win32-arm64-msvc': 22.6.5 + '@nx/nx-win32-x64-msvc': 22.6.5 '@swc-node/register': 1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2) '@swc/core': 1.15.24(@swc/helpers@0.5.21) transitivePeerDependencies: - debug - nx@22.7.0-beta.10(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)): + nx@22.7.0-beta.12(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2))(@swc/core@1.15.24(@swc/helpers@0.5.21)): dependencies: - '@ltd/j-toml': 1.38.0 + '@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 - axios: 1.13.5 + 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.0(debug@4.4.3) + balanced-match: 4.0.3 + base64-js: 1.5.1 + bl: 4.1.0 + brace-expansion: 5.0.2 + 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 + 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.15.11(debug@4.4.3) + 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.3.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 + 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 + 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.4 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.8.0 yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 22.7.0-beta.10 - '@nx/nx-darwin-x64': 22.7.0-beta.10 - '@nx/nx-freebsd-x64': 22.7.0-beta.10 - '@nx/nx-linux-arm-gnueabihf': 22.7.0-beta.10 - '@nx/nx-linux-arm64-gnu': 22.7.0-beta.10 - '@nx/nx-linux-arm64-musl': 22.7.0-beta.10 - '@nx/nx-linux-x64-gnu': 22.7.0-beta.10 - '@nx/nx-linux-x64-musl': 22.7.0-beta.10 - '@nx/nx-win32-arm64-msvc': 22.7.0-beta.10 - '@nx/nx-win32-x64-msvc': 22.7.0-beta.10 + '@nx/nx-darwin-arm64': 22.7.0-beta.12 + '@nx/nx-darwin-x64': 22.7.0-beta.12 + '@nx/nx-freebsd-x64': 22.7.0-beta.12 + '@nx/nx-linux-arm-gnueabihf': 22.7.0-beta.12 + '@nx/nx-linux-arm64-gnu': 22.7.0-beta.12 + '@nx/nx-linux-arm64-musl': 22.7.0-beta.12 + '@nx/nx-linux-x64-gnu': 22.7.0-beta.12 + '@nx/nx-linux-x64-musl': 22.7.0-beta.12 + '@nx/nx-win32-arm64-msvc': 22.7.0-beta.12 + '@nx/nx-win32-x64-msvc': 22.7.0-beta.12 '@swc-node/register': 1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@6.0.2) '@swc/core': 1.15.24(@swc/helpers@0.5.21) transitivePeerDependencies: @@ -30973,7 +32125,7 @@ snapshots: object.assign@4.1.7: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -31206,27 +32358,27 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 0.19.0 '@oxlint-tsgolint/win32-x64': 0.19.0 - oxlint@1.58.0(oxlint-tsgolint@0.19.0): + oxlint@1.59.0(oxlint-tsgolint@0.19.0): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.58.0 - '@oxlint/binding-android-arm64': 1.58.0 - '@oxlint/binding-darwin-arm64': 1.58.0 - '@oxlint/binding-darwin-x64': 1.58.0 - '@oxlint/binding-freebsd-x64': 1.58.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.58.0 - '@oxlint/binding-linux-arm-musleabihf': 1.58.0 - '@oxlint/binding-linux-arm64-gnu': 1.58.0 - '@oxlint/binding-linux-arm64-musl': 1.58.0 - '@oxlint/binding-linux-ppc64-gnu': 1.58.0 - '@oxlint/binding-linux-riscv64-gnu': 1.58.0 - '@oxlint/binding-linux-riscv64-musl': 1.58.0 - '@oxlint/binding-linux-s390x-gnu': 1.58.0 - '@oxlint/binding-linux-x64-gnu': 1.58.0 - '@oxlint/binding-linux-x64-musl': 1.58.0 - '@oxlint/binding-openharmony-arm64': 1.58.0 - '@oxlint/binding-win32-arm64-msvc': 1.58.0 - '@oxlint/binding-win32-ia32-msvc': 1.58.0 - '@oxlint/binding-win32-x64-msvc': 1.58.0 + '@oxlint/binding-android-arm-eabi': 1.59.0 + '@oxlint/binding-android-arm64': 1.59.0 + '@oxlint/binding-darwin-arm64': 1.59.0 + '@oxlint/binding-darwin-x64': 1.59.0 + '@oxlint/binding-freebsd-x64': 1.59.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.59.0 + '@oxlint/binding-linux-arm-musleabihf': 1.59.0 + '@oxlint/binding-linux-arm64-gnu': 1.59.0 + '@oxlint/binding-linux-arm64-musl': 1.59.0 + '@oxlint/binding-linux-ppc64-gnu': 1.59.0 + '@oxlint/binding-linux-riscv64-gnu': 1.59.0 + '@oxlint/binding-linux-riscv64-musl': 1.59.0 + '@oxlint/binding-linux-s390x-gnu': 1.59.0 + '@oxlint/binding-linux-x64-gnu': 1.59.0 + '@oxlint/binding-linux-x64-musl': 1.59.0 + '@oxlint/binding-openharmony-arm64': 1.59.0 + '@oxlint/binding-win32-arm64-msvc': 1.59.0 + '@oxlint/binding-win32-ia32-msvc': 1.59.0 + '@oxlint/binding-win32-x64-msvc': 1.59.0 oxlint-tsgolint: 0.19.0 p-cancelable@3.0.0: {} @@ -31292,7 +32444,7 @@ snapshots: eventemitter3: 4.0.7 p-timeout: 3.2.0 - p-queue@9.1.1: + p-queue@9.1.2: dependencies: eventemitter3: 5.0.4 p-timeout: 7.0.1 @@ -31484,7 +32636,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.2.7 + lru-cache: 11.3.3 minipass: 7.1.3 path-to-regexp@0.1.13: {} @@ -31517,8 +32669,6 @@ snapshots: picomatch@2.3.2: {} - picomatch@4.0.2: {} - picomatch@4.0.3: {} picomatch@4.0.4: {} @@ -31597,207 +32747,199 @@ snapshots: transitivePeerDependencies: - supports-color - postcss-attribute-case-insensitive@7.0.1(postcss@8.5.8): + postcss-attribute-case-insensitive@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - postcss-calc@10.1.1(postcss@8.5.8): + postcss-calc@10.1.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - postcss-calc@9.0.1(postcss@8.5.8): + postcss-calc@9.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-clamp@4.1.0(postcss@8.5.8): + postcss-clamp@4.1.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.12(postcss@8.5.8): + postcss-color-functional-notation@7.0.12(postcss@8.5.9): dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - postcss-color-hex-alpha@10.0.0(postcss@8.5.8): + postcss-color-hex-alpha@10.0.0(postcss@8.5.9): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-color-rebeccapurple@10.0.0(postcss@8.5.8): + postcss-color-rebeccapurple@10.0.0(postcss@8.5.9): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-colormin@6.1.0(postcss@8.5.8): + postcss-colormin@6.1.0(postcss@8.5.9): dependencies: browserslist: 4.28.2 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.7(postcss@8.5.8): + postcss-colormin@7.0.7(postcss@8.5.9): dependencies: '@colordx/core': 5.0.3 browserslist: 4.28.2 caniuse-api: 3.0.0 - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-convert-values@6.1.0(postcss@8.5.8): + postcss-convert-values@6.1.0(postcss@8.5.9): dependencies: browserslist: 4.28.2 - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.9(postcss@8.5.8): + postcss-convert-values@7.0.9(postcss@8.5.9): dependencies: browserslist: 4.28.2 - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.6(postcss@8.5.8): + postcss-custom-media@11.0.6(postcss@8.5.9): dependencies: '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - postcss: 8.5.8 + postcss: 8.5.9 - postcss-custom-properties@14.0.6(postcss@8.5.8): + postcss-custom-properties@14.0.6(postcss@8.5.9): dependencies: '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.5(postcss@8.5.8): + postcss-custom-selectors@8.0.5(postcss@8.5.9): dependencies: '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - postcss-dir-pseudo-class@9.0.1(postcss@8.5.8): + postcss-dir-pseudo-class@9.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - postcss-discard-comments@6.0.2(postcss@8.5.8): + postcss-discard-comments@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-discard-comments@7.0.6(postcss@8.5.8): + postcss-discard-comments@7.0.6(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - postcss-discard-duplicates@6.0.3(postcss@8.5.8): + postcss-discard-duplicates@6.0.3(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-discard-duplicates@7.0.2(postcss@8.5.8): + postcss-discard-duplicates@7.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-discard-empty@6.0.3(postcss@8.5.8): + postcss-discard-empty@6.0.3(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-discard-empty@7.0.1(postcss@8.5.8): + postcss-discard-empty@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-discard-overridden@6.0.2(postcss@8.5.8): + postcss-discard-overridden@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-discard-overridden@7.0.1(postcss@8.5.8): + postcss-discard-overridden@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-discard-unused@6.0.5(postcss@8.5.8): + postcss-discard-unused@6.0.5(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 6.1.2 - postcss-double-position-gradients@6.0.4(postcss@8.5.8): + postcss-double-position-gradients@6.0.4(postcss@8.5.9): dependencies: - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-focus-visible@10.0.1(postcss@8.5.8): + postcss-focus-visible@10.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - postcss-focus-within@9.0.1(postcss@8.5.8): + postcss-focus-within@9.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - postcss-font-variant@5.0.0(postcss@8.5.8): + postcss-font-variant@5.0.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-gap-properties@6.0.0(postcss@8.5.8): + postcss-gap-properties@6.0.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-image-set-function@7.0.0(postcss@8.5.8): + postcss-image-set-function@7.0.0(postcss@8.5.9): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-import@14.1.0(postcss@8.5.8): + postcss-import@14.1.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.11 + resolve: 1.22.12 - postcss-lab-function@7.0.12(postcss@8.5.8): + postcss-lab-function@7.0.12(postcss@8.5.9): dependencies: '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/utilities': 2.0.0(postcss@8.5.8) - postcss: 8.5.8 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/utilities': 2.0.0(postcss@8.5.9) + postcss: 8.5.9 - postcss-loader@6.2.1(postcss@8.5.8)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): - dependencies: - cosmiconfig: 7.1.0 - klona: 2.0.6 - postcss: 8.5.8 - semver: 7.7.4 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) - - postcss-loader@7.3.4(postcss@8.5.8)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + postcss-loader@7.3.4(postcss@8.5.9)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: cosmiconfig: 8.3.6(typescript@6.0.2) jiti: 1.21.7 - postcss: 8.5.8 + postcss: 8.5.9 semver: 7.7.4 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - typescript @@ -31813,374 +32955,374 @@ snapshots: transitivePeerDependencies: - typescript - postcss-loader@8.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(postcss@8.5.8)(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + postcss-loader@8.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.21))(postcss@8.5.9)(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: cosmiconfig: 9.0.1(typescript@6.0.2) jiti: 2.6.1 - postcss: 8.5.8 + postcss: 8.5.9 semver: 7.7.4 optionalDependencies: '@rspack/core': 1.6.8(@swc/helpers@0.5.21) - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - typescript - postcss-logical@8.1.0(postcss@8.5.8): + postcss-logical@8.1.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 postcss-media-query-parser@0.2.3: {} - postcss-merge-idents@6.0.3(postcss@8.5.8): + postcss-merge-idents@6.0.3(postcss@8.5.9): dependencies: - cssnano-utils: 4.0.2(postcss@8.5.8) - postcss: 8.5.8 + cssnano-utils: 4.0.2(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-merge-longhand@6.0.5(postcss@8.5.8): + postcss-merge-longhand@6.0.5(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - stylehacks: 6.1.1(postcss@8.5.8) + stylehacks: 6.1.1(postcss@8.5.9) - postcss-merge-longhand@7.0.5(postcss@8.5.8): + postcss-merge-longhand@7.0.5(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - stylehacks: 7.0.8(postcss@8.5.8) + stylehacks: 7.0.8(postcss@8.5.9) - postcss-merge-rules@6.1.1(postcss@8.5.8): + postcss-merge-rules@6.1.1(postcss@8.5.9): dependencies: browserslist: 4.28.2 caniuse-api: 3.0.0 - cssnano-utils: 4.0.2(postcss@8.5.8) - postcss: 8.5.8 + cssnano-utils: 4.0.2(postcss@8.5.9) + postcss: 8.5.9 postcss-selector-parser: 6.1.2 - postcss-merge-rules@7.0.8(postcss@8.5.8): + postcss-merge-rules@7.0.8(postcss@8.5.9): dependencies: browserslist: 4.28.2 caniuse-api: 3.0.0 - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 + cssnano-utils: 5.0.1(postcss@8.5.9) + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - postcss-minify-font-values@6.1.0(postcss@8.5.8): + postcss-minify-font-values@6.1.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-minify-font-values@7.0.1(postcss@8.5.8): + postcss-minify-font-values@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-minify-gradients@6.0.3(postcss@8.5.8): + postcss-minify-gradients@6.0.3(postcss@8.5.9): dependencies: colord: 2.9.3 - cssnano-utils: 4.0.2(postcss@8.5.8) - postcss: 8.5.8 + cssnano-utils: 4.0.2(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.2(postcss@8.5.8): + postcss-minify-gradients@7.0.2(postcss@8.5.9): dependencies: '@colordx/core': 5.0.3 - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 + cssnano-utils: 5.0.1(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-minify-params@6.1.0(postcss@8.5.8): + postcss-minify-params@6.1.0(postcss@8.5.9): dependencies: browserslist: 4.28.2 - cssnano-utils: 4.0.2(postcss@8.5.8) - postcss: 8.5.8 + cssnano-utils: 4.0.2(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.6(postcss@8.5.8): + postcss-minify-params@7.0.6(postcss@8.5.9): dependencies: browserslist: 4.28.2 - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 + cssnano-utils: 5.0.1(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-minify-selectors@6.0.4(postcss@8.5.8): + postcss-minify-selectors@6.0.4(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 6.1.2 - postcss-minify-selectors@7.0.6(postcss@8.5.8): + postcss-minify-selectors@7.0.6(postcss@8.5.9): dependencies: cssesc: 3.0.0 - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - postcss-modules-extract-imports@3.1.0(postcss@8.5.8): + postcss-modules-extract-imports@3.1.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-modules-local-by-default@4.2.0(postcss@8.5.8): + postcss-modules-local-by-default@4.2.0(postcss@8.5.9): dependencies: - icss-utils: 5.1.0(postcss@8.5.8) - postcss: 8.5.8 + icss-utils: 5.1.0(postcss@8.5.9) + postcss: 8.5.9 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.8): + postcss-modules-scope@3.2.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - postcss-modules-values@4.0.0(postcss@8.5.8): + postcss-modules-values@4.0.0(postcss@8.5.9): dependencies: - icss-utils: 5.1.0(postcss@8.5.8) - postcss: 8.5.8 + icss-utils: 5.1.0(postcss@8.5.9) + postcss: 8.5.9 - postcss-nesting@13.0.2(postcss@8.5.8): + postcss-nesting@13.0.2(postcss@8.5.9): dependencies: '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.1) '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - postcss-normalize-charset@6.0.2(postcss@8.5.8): + postcss-normalize-charset@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-normalize-charset@7.0.1(postcss@8.5.8): + postcss-normalize-charset@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-normalize-display-values@6.0.2(postcss@8.5.8): + postcss-normalize-display-values@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-display-values@7.0.1(postcss@8.5.8): + postcss-normalize-display-values@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-positions@6.0.2(postcss@8.5.8): + postcss-normalize-positions@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.1(postcss@8.5.8): + postcss-normalize-positions@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@6.0.2(postcss@8.5.8): + postcss-normalize-repeat-style@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.1(postcss@8.5.8): + postcss-normalize-repeat-style@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-string@6.0.2(postcss@8.5.8): + postcss-normalize-string@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.1(postcss@8.5.8): + postcss-normalize-string@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@6.0.2(postcss@8.5.8): + postcss-normalize-timing-functions@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.1(postcss@8.5.8): + postcss-normalize-timing-functions@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@6.1.0(postcss@8.5.8): + postcss-normalize-unicode@6.1.0(postcss@8.5.9): dependencies: browserslist: 4.28.2 - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.6(postcss@8.5.8): + postcss-normalize-unicode@7.0.6(postcss@8.5.9): dependencies: browserslist: 4.28.2 - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-url@6.0.2(postcss@8.5.8): + postcss-normalize-url@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.1(postcss@8.5.8): + postcss-normalize-url@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@6.0.2(postcss@8.5.8): + postcss-normalize-whitespace@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.1(postcss@8.5.8): + postcss-normalize-whitespace@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-opacity-percentage@3.0.0(postcss@8.5.8): + postcss-opacity-percentage@3.0.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-ordered-values@6.0.2(postcss@8.5.8): + postcss-ordered-values@6.0.2(postcss@8.5.9): dependencies: - cssnano-utils: 4.0.2(postcss@8.5.8) - postcss: 8.5.8 + cssnano-utils: 4.0.2(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-ordered-values@7.0.2(postcss@8.5.8): + postcss-ordered-values@7.0.2(postcss@8.5.9): dependencies: - cssnano-utils: 5.0.1(postcss@8.5.8) - postcss: 8.5.8 + cssnano-utils: 5.0.1(postcss@8.5.9) + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-overflow-shorthand@6.0.0(postcss@8.5.8): + postcss-overflow-shorthand@6.0.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-page-break@3.0.4(postcss@8.5.8): + postcss-page-break@3.0.4(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-place@10.0.0(postcss@8.5.8): + postcss-place@10.0.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-preset-env@10.6.1(postcss@8.5.8): - dependencies: - '@csstools/postcss-alpha-function': 1.0.1(postcss@8.5.8) - '@csstools/postcss-cascade-layers': 5.0.2(postcss@8.5.8) - '@csstools/postcss-color-function': 4.0.12(postcss@8.5.8) - '@csstools/postcss-color-function-display-p3-linear': 1.0.1(postcss@8.5.8) - '@csstools/postcss-color-mix-function': 3.0.12(postcss@8.5.8) - '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.2(postcss@8.5.8) - '@csstools/postcss-content-alt-text': 2.0.8(postcss@8.5.8) - '@csstools/postcss-contrast-color-function': 2.0.12(postcss@8.5.8) - '@csstools/postcss-exponential-functions': 2.0.9(postcss@8.5.8) - '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.8) - '@csstools/postcss-gamut-mapping': 2.0.11(postcss@8.5.8) - '@csstools/postcss-gradients-interpolation-method': 5.0.12(postcss@8.5.8) - '@csstools/postcss-hwb-function': 4.0.12(postcss@8.5.8) - '@csstools/postcss-ic-unit': 4.0.4(postcss@8.5.8) - '@csstools/postcss-initial': 2.0.1(postcss@8.5.8) - '@csstools/postcss-is-pseudo-class': 5.0.3(postcss@8.5.8) - '@csstools/postcss-light-dark-function': 2.0.11(postcss@8.5.8) - '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.8) - '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.8) - '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.8) - '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.8) - '@csstools/postcss-logical-viewport-units': 3.0.4(postcss@8.5.8) - '@csstools/postcss-media-minmax': 2.0.9(postcss@8.5.8) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.5(postcss@8.5.8) - '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.8) - '@csstools/postcss-normalize-display-values': 4.0.1(postcss@8.5.8) - '@csstools/postcss-oklab-function': 4.0.12(postcss@8.5.8) - '@csstools/postcss-position-area-property': 1.0.0(postcss@8.5.8) - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.8) - '@csstools/postcss-property-rule-prelude-list': 1.0.0(postcss@8.5.8) - '@csstools/postcss-random-function': 2.0.1(postcss@8.5.8) - '@csstools/postcss-relative-color-syntax': 3.0.12(postcss@8.5.8) - '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.8) - '@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.8) - '@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.8) - '@csstools/postcss-syntax-descriptor-syntax-production': 1.0.1(postcss@8.5.8) - '@csstools/postcss-system-ui-font-family': 1.0.0(postcss@8.5.8) - '@csstools/postcss-text-decoration-shorthand': 4.0.3(postcss@8.5.8) - '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.8) - '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.8) - autoprefixer: 10.4.27(postcss@8.5.8) + postcss-preset-env@10.6.1(postcss@8.5.9): + dependencies: + '@csstools/postcss-alpha-function': 1.0.1(postcss@8.5.9) + '@csstools/postcss-cascade-layers': 5.0.2(postcss@8.5.9) + '@csstools/postcss-color-function': 4.0.12(postcss@8.5.9) + '@csstools/postcss-color-function-display-p3-linear': 1.0.1(postcss@8.5.9) + '@csstools/postcss-color-mix-function': 3.0.12(postcss@8.5.9) + '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.2(postcss@8.5.9) + '@csstools/postcss-content-alt-text': 2.0.8(postcss@8.5.9) + '@csstools/postcss-contrast-color-function': 2.0.12(postcss@8.5.9) + '@csstools/postcss-exponential-functions': 2.0.9(postcss@8.5.9) + '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.9) + '@csstools/postcss-gamut-mapping': 2.0.11(postcss@8.5.9) + '@csstools/postcss-gradients-interpolation-method': 5.0.12(postcss@8.5.9) + '@csstools/postcss-hwb-function': 4.0.12(postcss@8.5.9) + '@csstools/postcss-ic-unit': 4.0.4(postcss@8.5.9) + '@csstools/postcss-initial': 2.0.1(postcss@8.5.9) + '@csstools/postcss-is-pseudo-class': 5.0.3(postcss@8.5.9) + '@csstools/postcss-light-dark-function': 2.0.11(postcss@8.5.9) + '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.9) + '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.9) + '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.9) + '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.9) + '@csstools/postcss-logical-viewport-units': 3.0.4(postcss@8.5.9) + '@csstools/postcss-media-minmax': 2.0.9(postcss@8.5.9) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.5(postcss@8.5.9) + '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.9) + '@csstools/postcss-normalize-display-values': 4.0.1(postcss@8.5.9) + '@csstools/postcss-oklab-function': 4.0.12(postcss@8.5.9) + '@csstools/postcss-position-area-property': 1.0.0(postcss@8.5.9) + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.9) + '@csstools/postcss-property-rule-prelude-list': 1.0.0(postcss@8.5.9) + '@csstools/postcss-random-function': 2.0.1(postcss@8.5.9) + '@csstools/postcss-relative-color-syntax': 3.0.12(postcss@8.5.9) + '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.9) + '@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.9) + '@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.9) + '@csstools/postcss-syntax-descriptor-syntax-production': 1.0.1(postcss@8.5.9) + '@csstools/postcss-system-ui-font-family': 1.0.0(postcss@8.5.9) + '@csstools/postcss-text-decoration-shorthand': 4.0.3(postcss@8.5.9) + '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.9) + '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.9) + autoprefixer: 10.4.27(postcss@8.5.9) browserslist: 4.28.2 - css-blank-pseudo: 7.0.1(postcss@8.5.8) - css-has-pseudo: 7.0.3(postcss@8.5.8) - css-prefers-color-scheme: 10.0.0(postcss@8.5.8) + css-blank-pseudo: 7.0.1(postcss@8.5.9) + css-has-pseudo: 7.0.3(postcss@8.5.9) + css-prefers-color-scheme: 10.0.0(postcss@8.5.9) cssdb: 8.8.0 - postcss: 8.5.8 - postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.8) - postcss-clamp: 4.1.0(postcss@8.5.8) - postcss-color-functional-notation: 7.0.12(postcss@8.5.8) - postcss-color-hex-alpha: 10.0.0(postcss@8.5.8) - postcss-color-rebeccapurple: 10.0.0(postcss@8.5.8) - postcss-custom-media: 11.0.6(postcss@8.5.8) - postcss-custom-properties: 14.0.6(postcss@8.5.8) - postcss-custom-selectors: 8.0.5(postcss@8.5.8) - postcss-dir-pseudo-class: 9.0.1(postcss@8.5.8) - postcss-double-position-gradients: 6.0.4(postcss@8.5.8) - postcss-focus-visible: 10.0.1(postcss@8.5.8) - postcss-focus-within: 9.0.1(postcss@8.5.8) - postcss-font-variant: 5.0.0(postcss@8.5.8) - postcss-gap-properties: 6.0.0(postcss@8.5.8) - postcss-image-set-function: 7.0.0(postcss@8.5.8) - postcss-lab-function: 7.0.12(postcss@8.5.8) - postcss-logical: 8.1.0(postcss@8.5.8) - postcss-nesting: 13.0.2(postcss@8.5.8) - postcss-opacity-percentage: 3.0.0(postcss@8.5.8) - postcss-overflow-shorthand: 6.0.0(postcss@8.5.8) - postcss-page-break: 3.0.4(postcss@8.5.8) - postcss-place: 10.0.0(postcss@8.5.8) - postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.8) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.8) - postcss-selector-not: 8.0.1(postcss@8.5.8) - - postcss-pseudo-class-any-link@10.0.1(postcss@8.5.8): - dependencies: - postcss: 8.5.8 + postcss: 8.5.9 + postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.9) + postcss-clamp: 4.1.0(postcss@8.5.9) + postcss-color-functional-notation: 7.0.12(postcss@8.5.9) + postcss-color-hex-alpha: 10.0.0(postcss@8.5.9) + postcss-color-rebeccapurple: 10.0.0(postcss@8.5.9) + postcss-custom-media: 11.0.6(postcss@8.5.9) + postcss-custom-properties: 14.0.6(postcss@8.5.9) + postcss-custom-selectors: 8.0.5(postcss@8.5.9) + postcss-dir-pseudo-class: 9.0.1(postcss@8.5.9) + postcss-double-position-gradients: 6.0.4(postcss@8.5.9) + postcss-focus-visible: 10.0.1(postcss@8.5.9) + postcss-focus-within: 9.0.1(postcss@8.5.9) + postcss-font-variant: 5.0.0(postcss@8.5.9) + postcss-gap-properties: 6.0.0(postcss@8.5.9) + postcss-image-set-function: 7.0.0(postcss@8.5.9) + postcss-lab-function: 7.0.12(postcss@8.5.9) + postcss-logical: 8.1.0(postcss@8.5.9) + postcss-nesting: 13.0.2(postcss@8.5.9) + postcss-opacity-percentage: 3.0.0(postcss@8.5.9) + postcss-overflow-shorthand: 6.0.0(postcss@8.5.9) + postcss-page-break: 3.0.4(postcss@8.5.9) + postcss-place: 10.0.0(postcss@8.5.9) + postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.9) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.9) + postcss-selector-not: 8.0.1(postcss@8.5.9) + + postcss-pseudo-class-any-link@10.0.1(postcss@8.5.9): + dependencies: + postcss: 8.5.9 postcss-selector-parser: 7.1.1 - postcss-reduce-idents@6.0.3(postcss@8.5.8): + postcss-reduce-idents@6.0.3(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-reduce-initial@6.1.0(postcss@8.5.8): + postcss-reduce-initial@6.1.0(postcss@8.5.9): dependencies: browserslist: 4.28.2 caniuse-api: 3.0.0 - postcss: 8.5.8 + postcss: 8.5.9 - postcss-reduce-initial@7.0.6(postcss@8.5.8): + postcss-reduce-initial@7.0.6(postcss@8.5.9): dependencies: browserslist: 4.28.2 caniuse-api: 3.0.0 - postcss: 8.5.8 + postcss: 8.5.9 - postcss-reduce-transforms@6.0.2(postcss@8.5.8): + postcss-reduce-transforms@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-reduce-transforms@7.0.1(postcss@8.5.8): + postcss-reduce-transforms@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 - postcss-replace-overflow-wrap@4.0.0(postcss@8.5.8): + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-safe-parser@7.0.1(postcss@8.5.8): + postcss-safe-parser@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-selector-not@8.0.1(postcss@8.5.8): + postcss-selector-not@8.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 postcss-selector-parser@6.1.2: @@ -32193,38 +33335,38 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sort-media-queries@5.2.0(postcss@8.5.8): + postcss-sort-media-queries@5.2.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 sort-css-media-queries: 2.2.0 - postcss-svgo@6.0.3(postcss@8.5.8): + postcss-svgo@6.0.3(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 svgo: 3.3.3 - postcss-svgo@7.1.1(postcss@8.5.8): + postcss-svgo@7.1.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser: 4.2.0 svgo: 4.0.1 - postcss-unique-selectors@6.0.4(postcss@8.5.8): + postcss-unique-selectors@6.0.4(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 6.1.2 - postcss-unique-selectors@7.0.5(postcss@8.5.8): + postcss-unique-selectors@7.0.5(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 postcss-value-parser@4.2.0: {} - postcss-zindex@6.0.2(postcss@8.5.8): + postcss-zindex@6.0.2(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss@8.5.6: dependencies: @@ -32232,7 +33374,7 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.8: + postcss@8.5.9: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 @@ -32245,7 +33387,7 @@ snapshots: prettier@2.8.8: optional: true - prettier@3.8.1: {} + prettier@3.8.2: {} pretty-error@4.0.0: dependencies: @@ -32276,11 +33418,11 @@ snapshots: pretty-time@1.1.0: {} - prism-react-renderer@2.4.1(react@19.2.4): + prism-react-renderer@2.4.1(react@19.2.5): dependencies: '@types/prismjs': 1.26.6 clsx: 2.1.1 - react: 19.2.4 + react: 19.2.5 prismjs@1.30.0: {} @@ -32347,7 +33489,7 @@ snapshots: dependencies: side-channel: 1.1.0 - qs@6.15.0: + qs@6.15.1: dependencies: side-channel: 1.1.0 @@ -32388,9 +33530,9 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dom@19.2.4(react@19.2.4): + react-dom@19.2.5(react@19.2.5): dependencies: - react: 19.2.4 + react: 19.2.5 scheduler: 0.27.0 react-fast-compare@3.2.2: {} @@ -32401,36 +33543,36 @@ snapshots: react-is@18.3.1: {} - react-json-view-lite@2.5.0(react@19.2.4): + react-json-view-lite@2.5.0(react@19.2.5): dependencies: - react: 19.2.4 + react: 19.2.5 - react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.4))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.5))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: '@babel/runtime': 7.29.2 - react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.4)' - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.5)' + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) react-refresh@0.18.0: {} - react-router-config@5.1.1(react-router@5.3.4(react@19.2.4))(react@19.2.4): + react-router-config@5.1.1(react-router@5.3.4(react@19.2.5))(react@19.2.5): dependencies: '@babel/runtime': 7.29.2 - react: 19.2.4 - react-router: 5.3.4(react@19.2.4) + react: 19.2.5 + react-router: 5.3.4(react@19.2.5) - react-router-dom@5.3.4(react@19.2.4): + react-router-dom@5.3.4(react@19.2.5): dependencies: '@babel/runtime': 7.29.2 history: 4.10.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.2.4 - react-router: 5.3.4(react@19.2.4) + react: 19.2.5 + react-router: 5.3.4(react@19.2.5) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react-router@5.3.4(react@19.2.4): + react-router@5.3.4(react@19.2.5): dependencies: '@babel/runtime': 7.29.2 history: 4.10.1 @@ -32438,12 +33580,12 @@ snapshots: loose-envify: 1.4.0 path-to-regexp: 1.9.0 prop-types: 15.8.1 - react: 19.2.4 + react: 19.2.5 react-is: 16.13.1 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react@19.2.4: {} + react@19.2.5: {} read-cache@1.0.0: dependencies: @@ -32568,7 +33710,7 @@ snapshots: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.13.0 + regjsparser: 0.13.1 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 @@ -32582,7 +33724,7 @@ snapshots: regjsgen@0.8.0: {} - regjsparser@0.13.0: + regjsparser@0.13.1: dependencies: jsesc: 3.1.0 @@ -32741,13 +33883,14 @@ snapshots: adjust-sourcemap-loader: 4.0.0 convert-source-map: 1.9.0 loader-utils: 2.0.4 - postcss: 8.5.8 + postcss: 8.5.9 source-map: 0.6.1 resolve.exports@2.0.3: {} - resolve@1.22.11: + resolve@1.22.12: dependencies: + es-errors: 1.3.0 is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -32807,7 +33950,7 @@ snapshots: robust-predicates@3.0.3: {} - rolldown-plugin-dts@0.23.2(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(typescript@6.0.2): + rolldown-plugin-dts@0.23.2(@typescript/native-preview@7.0.0-dev.20260411.1)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(typescript@6.0.2): dependencies: '@babel/generator': 8.0.0-rc.3 '@babel/helper-validator-identifier': 8.0.0-rc.3 @@ -32821,11 +33964,12 @@ snapshots: picomatch: 4.0.4 rolldown: 1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) optionalDependencies: + '@typescript/native-preview': 7.0.0-dev.20260411.1 typescript: 6.0.2 transitivePeerDependencies: - oxc-resolver - rolldown-plugin-dts@0.23.2(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rolldown@1.0.0-rc.13)(typescript@6.0.2): + rolldown-plugin-dts@0.23.2(@typescript/native-preview@7.0.0-dev.20260411.1)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rolldown@1.0.0-rc.15)(typescript@6.0.2): dependencies: '@babel/generator': 8.0.0-rc.3 '@babel/helper-validator-identifier': 8.0.0-rc.3 @@ -32837,8 +33981,9 @@ snapshots: get-tsconfig: 4.13.7 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.13 + rolldown: 1.0.0-rc.15 optionalDependencies: + '@typescript/native-preview': 7.0.0-dev.20260411.1 typescript: 6.0.2 transitivePeerDependencies: - oxc-resolver @@ -32867,26 +34012,26 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - rolldown@1.0.0-rc.13: + rolldown@1.0.0-rc.15: dependencies: - '@oxc-project/types': 0.123.0 - '@rolldown/pluginutils': 1.0.0-rc.13 + '@oxc-project/types': 0.124.0 + '@rolldown/pluginutils': 1.0.0-rc.15 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.13 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.13 - '@rolldown/binding-darwin-x64': 1.0.0-rc.13 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.13 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.13 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.13 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.13 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.13 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.13 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.13 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.13 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.13 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.13 - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.13 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.13 + '@rolldown/binding-android-arm64': 1.0.0-rc.15 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.15 + '@rolldown/binding-darwin-x64': 1.0.0-rc.15 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.15 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.15 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.15 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.15 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.15 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.15 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.15 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.15 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.15 rolldown@1.0.0-rc.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2): dependencies: @@ -32921,14 +34066,14 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.29.0 - rollup-plugin-visualizer@7.0.1(rolldown@1.0.0-rc.13)(rollup@4.60.1): + rollup-plugin-visualizer@7.0.1(rolldown@1.0.0-rc.15)(rollup@4.60.1): dependencies: open: 11.0.0 picomatch: 4.0.4 source-map: 0.7.6 yargs: 18.0.0 optionalDependencies: - rolldown: 1.0.0-rc.13 + rolldown: 1.0.0-rc.15 rollup: 4.60.1 rollup@2.80.0: @@ -32989,7 +34134,7 @@ snapshots: dependencies: escalade: 3.2.0 picocolors: 1.1.1 - postcss: 8.5.8 + postcss: 8.5.9 strip-json-comments: 3.1.1 run-applescript@7.1.0: {} @@ -33112,14 +34257,14 @@ snapshots: sass-embedded: 1.99.0 webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) - sass-loader@16.0.7(@rspack/core@1.6.8(@swc/helpers@0.5.21))(sass-embedded@1.99.0)(sass@1.99.0)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + sass-loader@16.0.7(@rspack/core@1.6.8(@swc/helpers@0.5.21))(sass-embedded@1.99.0)(sass@1.99.0)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: neo-async: 2.6.2 optionalDependencies: '@rspack/core': 1.6.8(@swc/helpers@0.5.21) sass: 1.99.0 sass-embedded: 1.99.0 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) sass@1.97.3: dependencies: @@ -33427,7 +34572,7 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - side-channel-list@1.0.0: + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 @@ -33451,7 +34596,7 @@ snapshots: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 - side-channel-list: 1.0.0 + side-channel-list: 1.0.1 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -33471,7 +34616,7 @@ snapshots: dependencies: '@sigstore/bundle': 4.0.0 '@sigstore/core': 3.2.0 - '@sigstore/protobuf-specs': 0.5.0 + '@sigstore/protobuf-specs': 0.5.1 '@sigstore/sign': 4.1.1 '@sigstore/tuf': 4.0.2 '@sigstore/verify': 3.1.0 @@ -33559,11 +34704,11 @@ snapshots: source-map-js: 1.2.1 webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) - source-map-loader@5.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + source-map-loader@5.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) source-map-support@0.5.13: dependencies: @@ -33640,7 +34785,7 @@ snapshots: srcset@4.0.0: {} - srvx@0.11.15: {} + srvx@0.11.15(patch_hash=12566e1018bec67b6844444c1857232a989b8470cc6b12872dc3ce2900863591): {} ssri@13.0.1: dependencies: @@ -33654,7 +34799,7 @@ snapshots: stackframe@1.3.4: {} - start-server-and-test@3.0.0: + start-server-and-test@3.0.2: dependencies: arg: 5.0.2 bluebird: 3.7.2 @@ -33663,7 +34808,7 @@ snapshots: execa: 5.1.1 lazy-ass: 1.6.0 tree-kill: 1.2.2 - wait-on: 9.0.4(debug@4.4.3) + wait-on: 9.0.5(debug@4.4.3) transitivePeerDependencies: - supports-color @@ -33679,22 +34824,46 @@ snapshots: stdin-discarder@0.3.1: {} - storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + storybook@10.3.3(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): + dependencies: + '@storybook/global': 5.0.0 + '@storybook/icons': 2.0.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) + '@testing-library/jest-dom': 6.9.1 + '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) + '@vitest/expect': 3.2.4 + '@vitest/spy': 3.2.4 + esbuild: 0.27.7 + open: 10.2.0 + recast: 0.23.11 + semver: 7.7.4 + use-sync-external-store: 1.6.0(react@19.2.5) + ws: 8.20.0 + optionalDependencies: + prettier: 3.8.2 + transitivePeerDependencies: + - '@testing-library/dom' + - bufferutil + - react + - react-dom + - utf-8-validate + + storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5): dependencies: '@storybook/global': 5.0.0 - '@storybook/icons': 2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@storybook/icons': 2.0.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5) '@testing-library/jest-dom': 6.9.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 '@vitest/spy': 3.2.4 + '@webcontainer/env': 1.1.1 esbuild: 0.27.7 open: 10.2.0 recast: 0.23.11 semver: 7.7.4 - use-sync-external-store: 1.6.0(react@19.2.4) + use-sync-external-store: 1.6.0(react@19.2.5) ws: 8.20.0 optionalDependencies: - prettier: 3.8.1 + prettier: 3.8.2 transitivePeerDependencies: - '@testing-library/dom' - bufferutil @@ -33793,13 +34962,13 @@ snapshots: structured-clone-es@2.0.0: {} - style-loader@3.3.4(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + style-loader@3.3.4(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) - style-loader@4.0.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + style-loader@4.0.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) style-to-js@1.1.21: dependencies: @@ -33809,16 +34978,16 @@ snapshots: dependencies: inline-style-parser: 0.2.7 - stylehacks@6.1.1(postcss@8.5.8): + stylehacks@6.1.1(postcss@8.5.9): dependencies: browserslist: 4.28.2 - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 6.1.2 - stylehacks@7.0.8(postcss@8.5.8): + stylehacks@7.0.8(postcss@8.5.9): dependencies: browserslist: 4.28.2 - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 stylis@4.3.6: {} @@ -33872,6 +35041,12 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 + swc-loader@0.2.7(@swc/core@1.15.24(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + dependencies: + '@swc/core': 1.15.24(@swc/helpers@0.5.21) + '@swc/counter': 0.1.3 + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + symbol-tree@3.2.4: {} sync-child-process@1.0.2: @@ -33932,13 +35107,13 @@ snapshots: '@swc/core': 1.15.24(@swc/helpers@0.5.21) esbuild: 0.27.3 - terser-webpack-plugin@5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + terser-webpack-plugin@5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.46.0 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) optionalDependencies: '@swc/core': 1.15.24(@swc/helpers@0.5.21) esbuild: 0.27.7 @@ -33998,13 +35173,18 @@ snapshots: tinyclip@0.1.12: {} - tinyexec@1.0.4: {} + tinyexec@1.1.1: {} tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 + tinyglobby@0.2.16: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + tinypool@1.1.1: {} tinyrainbow@2.0.0: {} @@ -34013,16 +35193,18 @@ snapshots: tinyspy@4.0.4: {} - tldts-core@7.0.27: {} + tldts-core@7.0.28: {} - tldts@7.0.27: + tldts@7.0.28: dependencies: - tldts-core: 7.0.27 + tldts-core: 7.0.28 tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 + tmp@0.2.4: {} + tmp@0.2.5: {} tmpl@1.0.5: {} @@ -34039,7 +35221,7 @@ snapshots: tough-cookie@6.0.1: dependencies: - tldts: 7.0.27 + tldts: 7.0.28 tr46@0.0.3: {} @@ -34081,7 +35263,7 @@ snapshots: ts-dedent@2.2.0: {} - ts-loader@9.5.7(typescript@6.0.2)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + ts-loader@9.5.7(typescript@6.0.2)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: chalk: 4.1.2 enhanced-resolve: 5.20.1 @@ -34089,7 +35271,7 @@ snapshots: semver: 7.7.4 source-map: 0.7.6 typescript: 6.0.2 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) ts-morph@21.0.1: dependencies: @@ -34122,21 +35304,21 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tsdown@0.21.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(synckit@0.11.12)(typescript@6.0.2): + tsdown@0.21.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@typescript/native-preview@7.0.0-dev.20260411.1)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(synckit@0.11.12)(typescript@6.0.2): dependencies: ansis: 4.2.0 cac: 7.0.0 - defu: 6.1.6 + defu: 6.1.7 empathic: 2.0.0 hookable: 6.1.0 import-without-cache: 0.2.5 obug: 2.1.1 picomatch: 4.0.4 rolldown: 1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - rolldown-plugin-dts: 0.23.2(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(typescript@6.0.2) + rolldown-plugin-dts: 0.23.2(@typescript/native-preview@7.0.0-dev.20260411.1)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(typescript@6.0.2) semver: 7.7.4 - tinyexec: 1.0.4 - tinyglobby: 0.2.15 + tinyexec: 1.1.1 + tinyglobby: 0.2.16 tree-kill: 1.2.2 unconfig-core: 7.5.0 unrun: 0.2.34(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(synckit@0.11.12) @@ -34204,12 +35386,12 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typescript-eslint@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2): + typescript-eslint@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/eslint-plugin': 8.58.1(@typescript-eslint/parser@8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/parser': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.58.1(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.1(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) eslint: 10.2.0(jiti@2.6.1) typescript: 6.0.2 transitivePeerDependencies: @@ -34233,7 +35415,7 @@ snapshots: uncrypto@0.1.3: {} - undici-types@7.18.2: {} + undici-types@7.19.2: {} undici@6.24.1: {} @@ -34287,7 +35469,7 @@ snapshots: union@0.5.0: dependencies: - qs: 6.15.0 + qs: 6.15.1 unique-string@3.0.0: dependencies: @@ -34398,18 +35580,18 @@ snapshots: chokidar: 5.0.0 destr: 2.0.5 h3: 1.15.11 - lru-cache: 11.2.7 + lru-cache: 11.3.3 node-fetch-native: 1.6.7 ofetch: 1.5.1 ufo: 1.6.3 optionalDependencies: db0: 0.3.4 - unstorage@2.0.0-alpha.7(chokidar@5.0.0)(db0@0.3.4)(lru-cache@11.2.7)(ofetch@2.0.0-alpha.3): + unstorage@2.0.0-alpha.7(chokidar@5.0.0)(db0@0.3.4)(lru-cache@11.3.3)(ofetch@2.0.0-alpha.3): optionalDependencies: chokidar: 5.0.0 db0: 0.3.4 - lru-cache: 11.2.7 + lru-cache: 11.3.3 ofetch: 2.0.0-alpha.3 upath@2.0.1: {} @@ -34445,18 +35627,18 @@ snapshots: url-join@5.0.0: {} - url-loader@4.1.1(file-loader@6.2.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) optionalDependencies: - file-loader: 6.2.0(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + file-loader: 6.2.0(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - use-sync-external-store@1.6.0(react@19.2.4): + use-sync-external-store@1.6.0(react@19.2.5): dependencies: - react: 19.2.4 + react: 19.2.5 util-deprecate@1.0.2: {} @@ -34529,17 +35711,17 @@ snapshots: '@egjs/hammerjs': 2.0.17 component-emitter: 2.0.0 - vite-plugin-eslint@1.8.1(eslint@10.2.0(jiti@2.6.1))(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): + vite-plugin-eslint@1.8.1(eslint@10.2.0(jiti@2.6.1))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.12 eslint: 10.2.0(jiti@2.6.1) rollup: 2.80.0 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-inspect@12.0.0-beta.1(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(ws@8.20.0): + vite-plugin-inspect@12.0.0-beta.1(typescript@6.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(ws@8.20.0): dependencies: - '@vitejs/devtools-kit': 0.1.13(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(ws@8.20.0) + '@vitejs/devtools-kit': 0.1.13(typescript@6.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(ws@8.20.0) ansis: 4.2.0 error-stack-parser-es: 1.0.5 obug: 2.1.1 @@ -34548,33 +35730,33 @@ snapshots: perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - typescript - ws - vite-tsconfig-paths@7.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): + vite-tsconfig-paths@7.0.0-alpha.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(typescript@6.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: debug: 4.4.3 oxc-resolver: 11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) tsconfck: 3.1.6(typescript@6.0.2) - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' - supports-color - typescript - vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3): + vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.8 + postcss: 8.5.9 rollup: 4.60.1 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 fsevents: 2.3.3 jiti: 2.6.1 less: 4.4.2 @@ -34584,16 +35766,54 @@ snapshots: terser: 5.46.0 yaml: 2.8.3 - vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3): + vite@7.3.1(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.8 + postcss: 8.5.9 rollup: 4.60.1 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 + fsevents: 2.3.3 + jiti: 2.6.1 + less: 4.6.4 + lightningcss: 1.32.0 + sass: 1.97.3 + sass-embedded: 1.99.0 + terser: 5.46.1 + yaml: 2.8.3 + + vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.0)(yaml@2.8.3): + dependencies: + esbuild: 0.27.7 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.9 + rollup: 4.60.1 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 25.6.0 + fsevents: 2.3.3 + jiti: 2.6.1 + less: 4.4.2 + lightningcss: 1.32.0 + sass: 1.97.3 + sass-embedded: 1.99.0 + terser: 5.46.0 + yaml: 2.8.3 + + vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3): + dependencies: + esbuild: 0.27.7 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.9 + rollup: 4.60.1 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 25.6.0 fsevents: 2.3.3 jiti: 2.6.1 less: 4.4.2 @@ -34603,16 +35823,16 @@ snapshots: terser: 5.46.1 yaml: 2.8.3 - vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3): + vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.8 + postcss: 8.5.9 rollup: 4.60.1 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 fsevents: 2.3.3 jiti: 2.6.1 less: 4.6.4 @@ -34622,16 +35842,16 @@ snapshots: terser: 5.46.1 yaml: 2.8.3 - vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3): + vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3): dependencies: esbuild: 0.27.7 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.8 + postcss: 8.5.9 rollup: 4.60.1 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 fsevents: 2.3.3 jiti: 2.6.1 less: 4.6.4 @@ -34641,15 +35861,15 @@ snapshots: terser: 5.46.1 yaml: 2.8.3 - vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3): + vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.8 - rolldown: 1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - tinyglobby: 0.2.15 + postcss: 8.5.9 + rolldown: 1.0.0-rc.15 + tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 esbuild: 0.27.7 fsevents: 2.3.3 jiti: 2.6.1 @@ -34658,20 +35878,35 @@ snapshots: sass-embedded: 1.99.0 terser: 5.46.1 yaml: 2.8.3 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' optional: true - vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3): + vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.8 - rolldown: 1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - tinyglobby: 0.2.15 + postcss: 8.5.9 + rolldown: 1.0.0-rc.15 + tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.5.2 + '@types/node': 25.6.0 + esbuild: 0.27.7 + fsevents: 2.3.3 + jiti: 2.6.1 + less: 4.6.4 + sass: 1.97.3 + sass-embedded: 1.99.0 + terser: 5.46.1 + yaml: 2.8.3 + + vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.9 + rolldown: 1.0.0-rc.15 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 25.6.0 esbuild: 0.27.7 fsevents: 2.3.3 jiti: 2.6.1 @@ -34680,22 +35915,19 @@ snapshots: sass-embedded: 1.99.0 terser: 5.46.1 yaml: 2.8.3 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - vitefu@1.1.3(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): + vitefu@1.1.3(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): optionalDependencies: - vite: 7.3.1(@types/node@25.5.2)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(less@4.6.4)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) - vitefu@1.1.3(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): + vitefu@1.1.3(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): optionalDependencies: - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) - vitest@4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)): + vitest@4.1.2(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: '@vitest/expect': 4.1.2 - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + '@vitest/mocker': 4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) '@vitest/pretty-format': 4.1.2 '@vitest/runner': 4.1.2 '@vitest/snapshot': 4.1.2 @@ -34709,14 +35941,46 @@ snapshots: picomatch: 4.0.4 std-env: 4.0.0 tinybench: 2.9.0 - tinyexec: 1.0.4 - tinyglobby: 0.2.15 + tinyexec: 1.1.1 + tinyglobby: 0.2.16 + tinyrainbow: 3.1.0 + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 25.6.0 + '@vitest/browser-playwright': 4.1.2(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/ui': 4.1.2(vitest@4.1.2) + happy-dom: 20.8.9 + jsdom: 29.0.1 + transitivePeerDependencies: + - msw + + vitest@4.1.4(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2))(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)): + dependencies: + '@vitest/expect': 4.1.4 + '@vitest/mocker': 4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.4 + '@vitest/runner': 4.1.4 + '@vitest/snapshot': 4.1.4 + '@vitest/spy': 4.1.4 + '@vitest/utils': 4.1.4 + 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.1.1 + tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.5.2 - '@vitest/browser-playwright': 4.1.2(playwright@1.59.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.4.2)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@types/node': 25.6.0 + '@vitest/browser-playwright': 4.1.2(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/coverage-v8': 4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2) '@vitest/ui': 4.1.2(vitest@4.1.2) happy-dom: 20.8.9 jsdom: 29.0.1 @@ -34724,15 +35988,15 @@ snapshots: - msw optional: true - vitest@4.1.2(@types/node@25.5.2)(@vitest/browser-playwright@4.1.2)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): + vitest@4.1.4(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2))(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)): dependencies: - '@vitest/expect': 4.1.2 - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) - '@vitest/pretty-format': 4.1.2 - '@vitest/runner': 4.1.2 - '@vitest/snapshot': 4.1.2 - '@vitest/spy': 4.1.2 - '@vitest/utils': 4.1.2 + '@vitest/expect': 4.1.4 + '@vitest/mocker': 4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.4 + '@vitest/runner': 4.1.4 + '@vitest/snapshot': 4.1.4 + '@vitest/spy': 4.1.4 + '@vitest/utils': 4.1.4 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -34741,14 +36005,48 @@ snapshots: picomatch: 4.0.4 std-env: 4.0.0 tinybench: 2.9.0 - tinyexec: 1.0.4 - tinyglobby: 0.2.15 + tinyexec: 1.1.1 + tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.1)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.5.2 - '@vitest/browser-playwright': 4.1.2(playwright@1.59.1)(vite@8.0.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@25.5.2)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@types/node': 25.6.0 + '@vitest/browser-playwright': 4.1.2(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/coverage-v8': 4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2) + '@vitest/ui': 4.1.2(vitest@4.1.2) + happy-dom: 20.8.9 + jsdom: 29.0.1 + transitivePeerDependencies: + - msw + optional: true + + vitest@4.1.4(@types/node@25.6.0)(@vitest/browser-playwright@4.1.2)(@vitest/coverage-v8@4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2))(@vitest/ui@4.1.2)(happy-dom@20.8.9)(jsdom@29.0.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)): + dependencies: + '@vitest/expect': 4.1.4 + '@vitest/mocker': 4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.4 + '@vitest/runner': 4.1.4 + '@vitest/snapshot': 4.1.4 + '@vitest/spy': 4.1.4 + '@vitest/utils': 4.1.4 + 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.1.1 + tinyglobby: 0.2.16 + tinyrainbow: 3.1.0 + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 25.6.0 + '@vitest/browser-playwright': 4.1.2(playwright@1.59.1)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/coverage-v8': 4.1.2(@vitest/browser@4.1.2(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.1)(yaml@2.8.3))(vitest@4.1.2))(vitest@4.1.2) '@vitest/ui': 4.1.2(vitest@4.1.2) happy-dom: 20.8.9 jsdom: 29.0.1 @@ -34776,9 +36074,9 @@ snapshots: dependencies: xml-name-validator: 5.0.0 - wait-on@9.0.4(debug@4.4.3): + wait-on@9.0.5(debug@4.4.3): dependencies: - axios: 1.14.0(debug@4.4.3) + axios: 1.15.0(debug@4.4.3) joi: 18.1.2 lodash: 4.18.1 minimist: 1.2.8 @@ -34834,7 +36132,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@6.1.3(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + webpack-dev-middleware@6.1.3(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -34842,7 +36140,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: @@ -34857,7 +36155,7 @@ snapshots: transitivePeerDependencies: - tslib - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: colorette: 2.0.20 memfs: 4.57.1(tslib@2.8.1) @@ -34866,7 +36164,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - tslib @@ -34909,7 +36207,7 @@ snapshots: - tslib - utf-8-validate - webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -34937,10 +36235,10 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) ws: 8.20.0 optionalDependencies: - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) transitivePeerDependencies: - bufferutil - debug @@ -34977,19 +36275,19 @@ snapshots: optionalDependencies: html-webpack-plugin: 5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)): + webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3)): dependencies: typed-assert: 1.0.9 webpack: 5.105.2(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.3) optionalDependencies: - html-webpack-plugin: 5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + html-webpack-plugin: 5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) - webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + webpack-subresource-integrity@5.1.0(html-webpack-plugin@5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: typed-assert: 1.0.9 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) optionalDependencies: - html-webpack-plugin: 5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + html-webpack-plugin: 5.6.6(@rspack/core@1.6.8(@swc/helpers@0.5.21))(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) webpack-virtual-modules@0.6.2: {} @@ -35025,7 +36323,7 @@ snapshots: - esbuild - uglify-js - webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7): + webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -35049,7 +36347,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.2 - terser-webpack-plugin: 5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) + terser-webpack-plugin: 5.4.0(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)) watchpack: 2.5.1 webpack-sources: 3.3.4 transitivePeerDependencies: @@ -35057,7 +36355,7 @@ snapshots: - esbuild - uglify-js - webpackbar@6.0.1(webpack@5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): + webpackbar@6.0.1(webpack@5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7)): dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -35066,7 +36364,7 @@ snapshots: markdown-table: 2.0.0 pretty-time: 1.1.0 std-env: 3.10.0 - webpack: 5.105.4(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) + webpack: 5.106.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(esbuild@0.27.7) wrap-ansi: 7.0.0 websocket-driver@0.7.4: @@ -35227,6 +36525,8 @@ snapshots: yaml@1.10.3: {} + yaml@2.8.0: {} + yaml@2.8.3: {} yargs-parser@18.1.3: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 05ba3d35c..fac3e217d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -19,33 +19,33 @@ packages: - 'tests/*' catalog: - '@angular/animations': 21.2.6 + '@angular/animations': 21.2.8 '@angular/cdk': 21.2.4 - '@angular/common': 21.2.6 - '@angular/compiler': 21.2.6 - '@angular/core': 21.2.6 - '@angular/forms': 21.2.6 + '@angular/common': 21.2.8 + '@angular/compiler': 21.2.8 + '@angular/core': 21.2.8 + '@angular/forms': 21.2.8 '@angular/material': 21.2.4 - '@angular/platform-browser': 21.2.6 - '@angular/platform-browser-dynamic': 21.2.6 - '@angular/platform-server': 21.2.6 - '@angular/router': 21.2.6 + '@angular/platform-browser': 21.2.8 + '@angular/platform-browser-dynamic': 21.2.8 + '@angular/platform-server': 21.2.8 + '@angular/router': 21.2.8 '@angular/ssr': 21.2.4 '@astrojs/mdx': ^5.0.3 '@astrojs/markdown-component': ^1.0.5 '@astrojs/react': ^5.0.2 '@mdx-js/react': 3.1.1 - '@nx/angular': 22.7.0-beta.10 - '@nx/devkit': 22.7.0-beta.10 - '@nx/eslint': 22.7.0-beta.10 - '@nx/eslint-plugin': 22.7.0-beta.10 - '@nx/js': 22.7.0-beta.10 - '@nx/playwright': 22.7.0-beta.10 - '@nx/plugin': 22.7.0-beta.10 - '@nx/storybook': 22.7.0-beta.10 - '@nx/vite': 22.7.0-beta.10 - '@nx/vitest': 22.7.0-beta.10 - '@nx/web': 22.7.0-beta.10 + '@nx/angular': 22.7.0-beta.12 + '@nx/devkit': 22.7.0-beta.12 + '@nx/eslint': 22.7.0-beta.12 + '@nx/eslint-plugin': 22.7.0-beta.12 + '@nx/js': 22.7.0-beta.12 + '@nx/playwright': 22.7.0-beta.12 + '@nx/plugin': 22.7.0-beta.12 + '@nx/storybook': 22.7.0-beta.12 + '@nx/vite': 22.7.0-beta.12 + '@nx/vitest': 22.7.0-beta.12 + '@nx/web': 22.7.0-beta.12 '@oxc-angular/vite': ^0.0.22 '@oxc-project/runtime': ^0.123.0 '@playwright/test': ^1.58.2 @@ -75,8 +75,8 @@ catalog: '@angular-eslint/template-parser': 21.3.1 '@angular/build': 21.2.4 '@angular/cli': 21.2.4 - '@angular/compiler-cli': 21.2.6 - '@angular/language-service': 21.2.6 + '@angular/compiler-cli': 21.2.8 + '@angular/language-service': 21.2.8 '@commitlint/cli': ^20.5.0 '@commitlint/config-conventional': ^20.5.0 '@compodoc/compodoc': ^1.2.1 @@ -135,7 +135,7 @@ catalog: minimist: ^1.2.8 ng-packagr: 21.2.1 nitro: 3.0.260311-beta - nx: 22.7.0-beta.10 + nx: 22.7.0-beta.12 obug: ^2.1.1 ofetch: 2.0.0-alpha.3 oxc-parser: ^0.123.0 diff --git a/server.mjs b/server.mjs deleted file mode 100644 index f77d49803..000000000 --- a/server.mjs +++ /dev/null @@ -1,57 +0,0 @@ -import fs from 'node:fs'; -import path from 'node:path'; -import { fileURLToPath } from 'node:url'; -import express from 'express'; - -const __dirname = path.dirname(fileURLToPath(import.meta.url)); - -async function createServer() { - const app = express(); - const resolve = (p) => path.resolve(__dirname, p); - - // @ts-ignore - app.use((await import('compression')).default()); - - app.use( - // @ts-ignore - (await import('serve-static')).default( - resolve('dist/apps/analog-app/client'), - { - index: false, - }, - ), - ); - - app.use( - '/api', - (await import(resolve('dist/apps/analog-app/server/server/index.mjs'))) - .listener, - ); - - app.use('*', async (req, res, next) => { - const url = req.originalUrl; - - try { - const template = fs.readFileSync( - path.resolve(__dirname, 'dist/apps/analog-app/client/index.html'), - 'utf-8', - ); - - const render = ( - await import(`${__dirname}/dist/apps/analog-app/ssr/main.server.mjs`) - )['default']; - - const html = await render(url, template); - - res.status(200).set({ 'Content-Type': 'text/html' }).end(html); - } catch (e) { - res.end('Error'); - } - }); - - app.listen(43000, () => { - console.log('http://localhost:43000'); - }); -} - -createServer(); diff --git a/tests/vitest-angular/tsconfig.json b/tests/vitest-angular/tsconfig.json index 40354b698..0eda602c6 100644 --- a/tests/vitest-angular/tsconfig.json +++ b/tests/vitest-angular/tsconfig.json @@ -20,6 +20,12 @@ "files": [], "include": [], "references": [ + { + "path": "../../packages/vitest-angular" + }, + { + "path": "../../packages/vite-plugin-angular" + }, { "path": "./tsconfig.lib.json" }, diff --git a/tests/vitest-angular/tsconfig.lib.json b/tests/vitest-angular/tsconfig.lib.json index f9fc87cdd..f9f7b7b39 100644 --- a/tests/vitest-angular/tsconfig.lib.json +++ b/tests/vitest-angular/tsconfig.lib.json @@ -5,7 +5,8 @@ "declaration": true, "declarationMap": true, "inlineSources": true, - "types": [] + "types": [], + "composite": false }, "include": ["src/**/*.ts"], "exclude": [ diff --git a/tests/vitest-angular/tsconfig.spec.json b/tests/vitest-angular/tsconfig.spec.json index 871558064..ec985c940 100644 --- a/tests/vitest-angular/tsconfig.spec.json +++ b/tests/vitest-angular/tsconfig.spec.json @@ -8,7 +8,8 @@ "vite/client", "node", "vitest" - ] + ], + "composite": false }, "include": [ "vite.config.ts", diff --git a/tests/vitest-angular/vitest.config.ts b/tests/vitest-angular/vitest.config.ts index 99fb6de98..5b4df68b9 100644 --- a/tests/vitest-angular/vitest.config.ts +++ b/tests/vitest-angular/vitest.config.ts @@ -1,5 +1,4 @@ import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; import { playwright } from '@vitest/browser-playwright'; import { defineConfig, Plugin } from 'vitest/config'; import aotProject from './src/aot/vitest.project'; @@ -10,7 +9,7 @@ import resetTestBedBetweenTestsProject from './src/reset-test-bed-between-tests/ export default defineConfig({ root: __dirname, cacheDir: '../../node_modules/.vite/tests/vitest-angular', - plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])] as Plugin[], + plugins: [nxCopyAssetsPlugin(['*.md'])] as Plugin[], test: { watch: false, globals: true, diff --git a/tools/scripts/build-lib.mts b/tools/scripts/build-lib.mts index b9e742989..9e4d135a9 100644 --- a/tools/scripts/build-lib.mts +++ b/tools/scripts/build-lib.mts @@ -19,7 +19,7 @@ * Example: node tools/scripts/build-lib.mts router */ -import { execFileSync } from 'node:child_process'; +import { spawn } from 'node:child_process'; import { cpSync, existsSync, @@ -55,6 +55,11 @@ interface BuildContext { prefix: string; } +interface CommandOptions { + env?: NodeJS.ProcessEnv; + label?: string; +} + const BuildLibArgsSchema = Schema.Struct({ packageName: Schema.String, }); @@ -226,21 +231,68 @@ function runCommand( context: BuildContext, file: string, args: ReadonlyArray, - env?: NodeJS.ProcessEnv, + options?: CommandOptions, ): Effect.Effect { - return Effect.try({ - try: () => { - execFileSync(file, [...args], { - cwd: context.root, - env, - shell: process.platform === 'win32', - stdio: 'inherit', - }); - }, + return Effect.tryPromise({ + try: () => + new Promise((resolvePromise, rejectPromise) => { + const command = `${file} ${args.join(' ')}`; + const label = options?.label ?? command; + const child = spawn(file, [...args], { + cwd: context.root, + env: options?.env, + shell: process.platform === 'win32', + stdio: 'inherit', + }); + + const startedAt = Date.now(); + const heartbeatMs = process.env['CI'] ? 30_000 : 0; + const heartbeat = + heartbeatMs > 0 + ? setInterval(() => { + const elapsedSeconds = Math.floor( + (Date.now() - startedAt) / 1000, + ); + console.log( + ` [@analogjs/${context.packageName}] still running ${label} (${elapsedSeconds}s elapsed)`, + ); + }, heartbeatMs) + : undefined; + + const finish = (callback: () => void) => { + if (heartbeat) { + clearInterval(heartbeat); + } + callback(); + }; + + child.on('error', (cause) => { + finish(() => + rejectPromise( + new Error(`Command failed: ${command}\n${formatError(cause)}`), + ), + ); + }); + + child.on('exit', (code, signal) => { + if (code === 0) { + finish(resolvePromise); + return; + } + + const exitDetail = + signal !== null + ? `signal ${signal}` + : `exit code ${code ?? 'unknown'}`; + finish(() => + rejectPromise( + new Error(`Command failed: ${command}\n${exitDetail}`), + ), + ); + }); + }), catch: (cause) => - new Error( - `Command failed: ${file} ${args.join(' ')}\n${formatError(cause)}`, - ), + cause instanceof Error ? cause : new Error(formatError(cause)), }); } @@ -258,8 +310,11 @@ function buildBundles(context: BuildContext): Effect.Effect { 'runner', ], { - ...process.env, - ANALOG_BUILD_LIB_TSCONFIG: context.tsconfig, + env: { + ...process.env, + ANALOG_BUILD_LIB_TSCONFIG: context.tsconfig, + }, + label: 'Vite FESM bundle build', }, ); } @@ -287,14 +342,12 @@ function generateDeclarations( context: BuildContext, ): Effect.Effect { return Effect.gen(function* () { - yield* runCommand(context, 'pnpm', [ - 'exec', - 'ngc', - '-p', - context.tsconfig, - '--outDir', - context.typesOutDir, - ]); + yield* runCommand( + context, + 'pnpm', + ['exec', 'ngc', '-p', context.tsconfig, '--outDir', context.typesOutDir], + { label: 'Angular declaration generation (ngc)' }, + ); yield* pruneNonDeclarationFiles(context.typesOutDir); yield* cleanupDuplicatePackages(context); }); diff --git a/tools/scripts/with-heartbeat.mts b/tools/scripts/with-heartbeat.mts new file mode 100644 index 000000000..a3e0a7dbd --- /dev/null +++ b/tools/scripts/with-heartbeat.mts @@ -0,0 +1,116 @@ +#!/usr/bin/env node + +import { spawn } from 'node:child_process'; + +interface ParsedArgs { + label?: string; + command: string; + commandArgs: string[]; +} + +function formatElapsedMs(elapsedMs: number): string { + const totalSeconds = Math.floor(elapsedMs / 1000); + const minutes = Math.floor(totalSeconds / 60); + const seconds = totalSeconds % 60; + + return minutes > 0 ? `${minutes}m ${seconds}s` : `${seconds}s`; +} + +function parseArgs(argv: string[]): ParsedArgs { + const separatorIndex = argv.indexOf('--'); + + if (separatorIndex === -1 || separatorIndex === argv.length - 1) { + throw new Error( + 'Usage: node tools/scripts/with-heartbeat.mts [--label