diff --git a/.snyk b/.snyk index 8037ac1d3..175b159c0 100644 --- a/.snyk +++ b/.snyk @@ -1,57 +1,52 @@ version: v1.5.0 ignore: - 'SNYK-JS-SIRV-12558119': - - '* > sirv@2.0.4': - reason: 'Transitive dependency in Docusaurus; not exploitable in static site serving context (dev-only asset handler)' - expires: '2026-07-28T00:00:00.000Z' - created: '2025-11-06T15:57:00.000Z' 'SNYK-JS-JSYAML-13961110': - '* > js-yaml': reason: 'Transitive dependency in Docusaurus; upgrade path blocked until https://github.com/jonschlinkert/gray-matter/pull/137#issuecomment-3533768351 is merged and transitive deps are updated. Not exploitable in current usage.' - expires: '2026-07-28T00:00:00.000Z' + expires: '2026-09-30T00:00:00.000Z' created: '2025-11-17T09:06:00.000Z' 'SNYK-JS-NODEFORGE-14114940': - '* > node-forge': reason: 'Transitive dependency in Docusaurus; not exploitable in current usage.' - expires: '2026-07-28T00:00:00.000Z' + expires: '2026-09-30T00:00:00.000Z' created: '2025-11-26T10:12:00.000Z' 'SNYK-JS-EXPRESS-14157151': - '@docusaurus/core@3.9.2 > * > express': reason: 'Transitive dependency in Docusaurus; not exploitable in current usage.' - expires: '2026-07-28T00:00:00.000Z' + expires: '2026-09-30T00:00:00.000Z' created: '2025-12-02T09:39:00.000Z' - '@docusaurus/plugin-content-docs@3.9.2 > * > express': reason: 'Transitive dependency in Docusaurus; not exploitable in current usage.' - expires: '2026-07-28T00:00:00.000Z' + expires: '2026-09-30T00:00:00.000Z' created: '2025-12-02T09:39:00.000Z' - '@docusaurus/preset-classic@3.9.2 > * > express': reason: 'Transitive dependency in Docusaurus; not exploitable in current usage.' - expires: '2026-07-28T00:00:00.000Z' + expires: '2026-09-30T00:00:00.000Z' created: '2025-12-02T09:39:00.000Z' 'SNYK-JS-QS-14724253': - '* > qs@6.14.0': reason: 'Transitive dependency in @apollo/server, body-parser; not exploitable in current usage.' - expires: '2026-07-28T00:00:00.000Z' + expires: '2026-09-30T00:00:00.000Z' created: '2026-01-28T00:00:00.000Z' - '* > qs@6.13.0': reason: 'Transitive dependency in express, @docusaurus/core; not exploitable in current usage.' - expires: '2026-07-28T00:00:00.000Z' + expires: '2026-09-30T00:00:00.000Z' created: '2026-01-28T00:00:00.000Z' - 'SNYK-JS-PNPMNPMCONF-14897556': - - '* > @pnpm/npm-conf@2.3.1': - reason: 'Transitive dependency in @docusaurus/core; not exploitable in current usage.' - expires: '2026-07-28T00:00:00.000Z' - created: '2026-01-08T11:04:00.000Z' 'SNYK-JS-UNDICI-14943963': - '* > undici': reason: 'Transitive dependency in @azure/functions; upgrade path has type errors' - expires: '2026-07-28T00:00:00.000Z' + expires: '2026-09-30T00:00:00.000Z' created: '2026-01-15T11:04:00.000Z' - 'SNYK-JS-YAUZL-15467445': - - '* > yauzl@<3.2.1': - reason: 'Transitive dependency in @mongodb-memory-server; not exploitable in current usage.' - expires: '2026-03-26T00:00:00.000Z' - created: '2026-03-12T12:35:00.000Z' + 'SNYK-JS-ELLIPTIC-14908844': + - '* > elliptic@6.6.1': + reason: 'Transitive dependency of vite-plugin-node-polyfills in the dev-only browser build toolchain. This package is not used for application cryptographic signing, and Snyk reports no fixed npm release.' + expires: '2026-09-30T00:00:00.000Z' + created: '2026-07-30T00:00:00.000Z' + 'SNYK-JS-MORGAN-17135841': + - '* > morgan@1.10.1': + reason: 'Transitive dependency of Azurite in the API development emulator only. It is not included in production application dependencies, and no patched morgan release is available in the configured registry.' + expires: '2026-09-30T00:00:00.000Z' + created: '2026-07-30T00:00:00.000Z' 'SNYK-JS-UUID-16133035': - '* > uuid@8.3.2': reason: 'Transitive dependency in Docusaurus and Azurite dev-only stacks; no compatible fix path available yet from upstream.' @@ -66,16 +61,6 @@ ignore: reason: 'Apollo usage-reporting-protobuf depends on @apollo/protobufjs and Snyk reports no fixed version. We are accepting this temporarily until Apollo provides a non-vulnerable upgrade path.' expires: '2026-07-31T00:00:00.000Z' created: '2026-04-30T00:00:00.000Z' - 'SNYK-JS-MONGOOSE-16425765': - - '* > mongoose@8.17.0': - reason: 'Mongoose 8.22.1 has TypeScript constraint errors in type definitions (types/inferrawdoctype.d.ts, types/inferschematype.d.ts) that break compilation. Patch attempts failed due to external library type incompatibilities. Risk is Low: requires control of query field names and values.' - expires: '2026-11-07T00:00:00.000Z' - created: '2026-05-07T09:00:00.000Z' - 'SNYK-JS-BABELPLUGINTRANSFORMMODULESSYSTEMJS-16624576': - - '* > @babel/plugin-transform-modules-systemjs@7.28.5': - reason: 'Transitive dependency in Docusaurus; not exploitable in current usage.' - expires: '2026-06-28T00:00:00.000Z' - created: '2026-05-11T10:00:00.000Z' 'SNYK-JS-AI-16734889': - '@docusaurus/preset-classic@3.10.1 > * > ai@5.0.105': reason: 'Transitive dependency in Docusaurus docsearch; Snyk reports no fixed upgrade or patch available.' @@ -91,39 +76,21 @@ ignore: reason: 'Transitive dependency in Docusaurus docsearch; Snyk reports no fixed upgrade or patch available.' expires: '2026-09-18T00:00:00.000Z' created: '2026-06-08T00:00:00.000Z' - 'SNYK-JS-OPENTELEMETRYEXPORTERPROMETHEUS-16758050': - - '* > @opentelemetry/exporter-prometheus@0.57.2': - reason: 'Requires upgrade of @opentelemetry/sdk-node to 0.217.0, which has type errors that break compilation. Created task to upgrade OTEL service to 2.x and resolve vulnerability that way.' - expires: '2026-07-28T00:00:00.000Z' - created: '2026-06-01T10:00:00.000Z' 'SNYK-JS-POSTCSSSELECTORPARSER-16873882': - '* > postcss-selector-parser': reason: 'Transitive dependency in Docusaurus CSS optimization/build tooling; Snyk reports no fixed upgrade or patch available. Not exploitable at runtime because docs CSS is repository-controlled and processed at build time.' expires: '2026-09-18T00:00:00.000Z' created: '2026-06-08T00:00:00.000Z' - 'SNYK-JS-SHELLQUOTE-17457810': - - '* > shell-quote@1.8.4': - reason: 'Transitive dependency in @docusaurus/core via webpack-dev-server > launch-editor; fixed in shell-quote@1.9.0 but no direct upgrade path available. Dev-time only; not exploitable in current usage.' - expires: '2026-12-31T00:00:00.000Z' - created: '2026-06-25T00:00:00.000Z' 'SNYK-JS-IMAGESIZE-17295814': - '* > image-size': reason: 'Transitive dependency in @docusaurus/mdx-loader and dev build tooling; no upgrade or patch available from upstream. Not exploitable in current usage (build-time image dimension parsing only).' expires: '2026-09-11T00:00:00.000Z' created: '2026-06-11T00:00:00.000Z' - - '* > image-size@<=2.0.2': - reason: 'Transitive dependency in vitest@4.1.6; not exploitable in current usage.' - expires: '2026-07-11T00:00:00.000Z' - created: '2026-06-11T10:00:00.000Z' 'SNYK-JS-IMAGESIZE-17295816': - '* > image-size': reason: 'Transitive dependency in @docusaurus/mdx-loader and dev build tooling; no upgrade or patch available from upstream. Not exploitable in current usage (build-time image dimension parsing only).' expires: '2026-09-11T00:00:00.000Z' created: '2026-06-11T00:00:00.000Z' - - '* > image-size@<=2.0.2': - reason: 'Transitive dependency in vitest@4.1.6; not exploitable in current usage.' - expires: '2026-07-11T00:00:00.000Z' - created: '2026-06-11T10:00:00.000Z' 'SNYK-JS-AZUREIDENTITY-7964589': - '* > @azure/identity@3.4.2': reason: 'Transitive dependency via azurite>tedious; upgrade to 4.x is a breaking major-version change incompatible with azurite. Not exploitable in dev-only local storage emulation context.' @@ -162,7 +129,7 @@ ignore: 'SNYK-JS-OPENTELEMETRYCORE-17373280': - '* > @opentelemetry/core': reason: 'The fix requires migrating the Azure Functions telemetry stack from OpenTelemetry 1.x to 2.8.0 or newer. The current Azure exporter and 0.57.x SDK packages require the 1.x API family; a forced major override is type-compatible at build time but leaves mixed SDK internals. Accepted temporarily while the existing OTEL 2.x migration is completed.' - expires: '2026-07-18T00:00:00.000Z' + expires: '2026-09-30T00:00:00.000Z' created: '2026-06-18T00:00:00.000Z' 'SNYK-JS-BRACEEXPANSION-17706650': - '* > brace-expansion@1.1.13': @@ -171,6 +138,11 @@ ignore: created: '2026-06-30T00:00:00.000Z' 'SNYK-JS-OPENTELEMETRYPROPAGATORJAEGER-17901201': - '* > @opentelemetry/propagator-jaeger@<=1.30.1': - reason: 'The transitive dependency of @opentelemetry does not have a fixed upgrade path. Accepted temporarily until upgrade paths are made available.' - expires: '2026-07-18T00:00:00.000Z' + reason: 'The remaining 1.x OpenTelemetry SDK consumers cannot be upgraded independently without mixing incompatible SDK generations. The service-otel package requires a coordinated OTEL 2.x migration; the 2.9.0 override removes the vulnerable Jaeger package where compatible. Revisit when the migration is completed.' + expires: '2026-09-30T00:00:00.000Z' created: '2026-06-18T00:00:00.000Z' + 'SNYK-JS-REACTROUTER-18313151': + - '* > react-router@7.18.1': + reason: 'The advisory applies to React Router RSC/data-router action handling. This repository uses BrowserRouter, MemoryRouter, Routes, and Route only; it does not enable RSC mode or server actions. React Router 8.3.0, the first patched release, is not available in the configured registry. Revisit when the patched release is published and supported.' + expires: '2026-09-30T00:00:00.000Z' + created: '2026-07-30T00:00:00.000Z' diff --git a/apps/server-oauth2-mock/src/index.ts b/apps/server-oauth2-mock/src/index.ts index e594c99c5..db41c0bc0 100644 --- a/apps/server-oauth2-mock/src/index.ts +++ b/apps/server-oauth2-mock/src/index.ts @@ -5,7 +5,7 @@ import { setupEnvironment } from './setup-environment.ts'; setupEnvironment(); -const { PORT, BASE_URL } = process.env; +const { PORT, BASE_URL, PORTLESS_URL } = process.env; const repoRoot = fileURLToPath(new URL('../../..', import.meta.url)); const appsDir = path.join(repoRoot, 'apps'); @@ -15,7 +15,7 @@ const port = Number.isFinite(rawPort) && rawPort > 0 ? rawPort : 1355; // BASE_URL must be the externally-visible origin used as the OIDC issuer. // In local dev the portless proxy handles TLS termination and host mapping. -let baseUrl = BASE_URL ?? `https://mock-auth.ownercommunity.localhost${port === 443 ? '' : `:${port}`}`; +let baseUrl = BASE_URL ?? PORTLESS_URL ?? `https://mock-auth.ownercommunity.localhost${port === 443 ? '' : `:${port}`}`; // If BASE_URL was supplied but omits a port, ensure non-standard ports (like 1355) are preserved baseUrl = ensurePortInUrl(baseUrl, port); diff --git a/apps/ui-community/package.json b/apps/ui-community/package.json index 1055de59f..541cc0ca0 100644 --- a/apps/ui-community/package.json +++ b/apps/ui-community/package.json @@ -50,6 +50,7 @@ "@storybook/react-vite": "catalog:", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", + "autoprefixer": "^10.4.22", "@vitejs/plugin-react": "^6.0.1", "@vitest/coverage-istanbul": "catalog:", "esbuild": "catalog:", diff --git a/build-pipeline/scripts/verify.ts b/build-pipeline/scripts/verify.ts new file mode 100644 index 000000000..5e4775f6e --- /dev/null +++ b/build-pipeline/scripts/verify.ts @@ -0,0 +1,38 @@ +#!/usr/bin/env node +/// + +import { architectureTests, coverageMerge, e2eTests, knipCheck, pnpmAudit, pnpmScript, snykCodeScan, snykDependencyScan, sonarPullRequestAnalysis, sonarQualityGate, verificationSequence } from '@cellix/local-dev/silent-runners'; + +const snykOrgArgs = ['--org=cellixjs', '--remote-repo-url=https://github.com/CellixJs/cellixjs']; +const snykDependencyArgs = [...snykOrgArgs, '--all-projects', '--policy-path=.snyk', '--exclude=dist,build,.turbo,coverage,.agents-work,.agents,.claude,.github,requirements.txt']; + +const cellixVerify = verificationSequence + .addStep(pnpmScript('format:check')) + .addStep(architectureTests()) + .addStep(coverageMerge()) + .addStep(e2eTests()) + .addStep(knipCheck()) + .addStep(pnpmAudit({ auditLevel: 'high', dependencyType: 'prod', name: 'audit:prod' })) + .addStep(pnpmAudit({ auditLevel: 'critical', dependencyType: 'dev', name: 'audit:dev' })) + .addStep( + snykDependencyScan({ + args: snykDependencyArgs, + }), + ) + .addStep( + snykCodeScan({ + args: snykOrgArgs, + }), + ) + .addStep(sonarPullRequestAnalysis()) + .addStep(sonarQualityGate()); + +function runVerifyCommand(): void { + const result = cellixVerify.run(); + if (result.status === 0) { + process.stdout.write('verify passed\n'); + } + process.exitCode = result.status; +} + +runVerifyCommand(); diff --git a/knip.json b/knip.json index 04aeba72b..c354aaa94 100644 --- a/knip.json +++ b/knip.json @@ -1,6 +1,10 @@ { "$schema": "https://unpkg.com/knip@5/schema.json", "workspaces": { + ".": { + "entry": ["build-pipeline/scripts/verify.ts"], + "project": ["build-pipeline/scripts/**/*.ts"] + }, "apps/api": { "entry": ["src/index.ts", "start-*.ts", "sync-local-settings.ts", "rolldown.config.ts"], "project": ["src/**/*.ts", "*.ts"], @@ -9,7 +13,8 @@ "apps/ui-community": { "entry": ["src/main.tsx", "start-dev.ts"], "project": ["src/**/*.{ts,tsx}"], - "ignore": ["**/apollo-client-links.tsx"] + "ignore": ["**/apollo-client-links.tsx"], + "ignoreDependencies": ["autoprefixer"] }, "apps/ui-staff": { "entry": ["src/main.tsx", "start-dev.ts"], diff --git a/package.json b/package.json index c4fb15a67..50a02aa1f 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "sonar:pr": "export PR_NUMBER=$(node build-pipeline/scripts/get-pr-number.cjs) && sonar-scanner -Dsonar.pullrequest.key=$PR_NUMBER -Dsonar.pullrequest.branch=$(git branch --show-current) -Dsonar.pullrequest.base=main", "sonar:pr-windows": "for /f %i in ('node build-pipeline/scripts/get-pr-number.cjs') do set PR_NUMBER=%i && sonar-scanner -Dsonar.pullrequest.key=%PR_NUMBER% -Dsonar.pullrequest.branch=%BRANCH_NAME% -Dsonar.pullrequest.base=main", "check-sonar": "node build-pipeline/scripts/check-sonar-quality-gate.cjs", - "verify": "pnpm run format:check && pnpm run test:arch && pnpm run test:coverage:merge && pnpm run test:e2e:worktree && pnpm run knip && pnpm run audit && pnpm run snyk", + "verify": "node --conditions=source build-pipeline/scripts/verify.ts", "knip": "knip", "snyk": "pnpm run snyk:test && pnpm run snyk:code", "snyk:report": "pnpm run snyk:monitor && pnpm run snyk:code:report", @@ -73,6 +73,7 @@ "@ant-design/cli": "^6.3.5", "@biomejs/biome": "2.4.10", "@cellix/graphql-codegen": "workspace:*", + "@cellix/local-dev": "workspace:*", "@graphql-codegen/cli": "^5.0.7", "@graphql-codegen/introspection": "^4.0.3", "@graphql-codegen/typed-document-node": "^5.1.2", diff --git a/packages/cellix/local-dev/README.md b/packages/cellix/local-dev/README.md index 06d0d6ebe..dc38f2054 100644 --- a/packages/cellix/local-dev/README.md +++ b/packages/cellix/local-dev/README.md @@ -1,8 +1,8 @@ # @cellix/local-dev -Generic local-development helpers for Cellix app wrappers. +Generic local-development and verification helpers for Cellix app wrappers. -This package is intentionally policy-free. It owns reusable mechanics such as worktree port math, URL helpers, JSON and dotenv utilities, process exit forwarding, and generic dev runners. App-specific env keys, hostnames, auth routes, and `local.settings.json` mutations belong in app-owned wrapper scripts or internal repo helpers, not here. +This package is intentionally policy-free. It owns reusable mechanics such as worktree port math, URL helpers, JSON and dotenv utilities, process exit forwarding, generic dev runners, and silent verification-command runners. App-specific env keys, hostnames, auth routes, scanner orgs, and `local.settings.json` mutations belong in app-owned wrapper scripts or internal repo helpers, not here. ## Install @@ -30,6 +30,7 @@ In this monorepo, app packages consume the workspace package directly: - Azure Functions - Node-backed processes - Azurite +- Silent verification command runners and portable tool-wrapper builders ## Recommended consumption pattern @@ -109,6 +110,74 @@ values, including complete URL values nested in objects or arrays. It leaves URL embedded in descriptive text unchanged. Use `convertSettingsForWorktree` when the application needs explicit key-level conversion policy. +## Silent runners + +`runSilentCommand` captures stdout and stderr while a command is running. If the +command succeeds, nothing is printed. If it fails, whatever the command wrote to +stdout and stderr is replayed before the failing status is returned. + +```js +import { runSilentCommand } from '@cellix/local-dev/silent-runners'; + +const result = runSilentCommand({ + command: 'snyk', + args: ['test', '--all-projects'], +}); + +process.exitCode = result.status; +``` + +`result.status` is always a number, so it can be assigned straight to +`process.exitCode`. A command terminated by a signal has no exit status of its +own and is mapped to the shell convention of `128 + signalNumber` (SIGINT +becomes 130, SIGKILL becomes 137); its replayed header names the signal rather +than an exit code, and `result.signal` carries the signal itself. + +Use `runSilentCommandSequence` when a wrapper needs to run several commands in +order. Steps are silent by default; mark a step with `output: 'inherit'` only +when its live output is part of the intended consumer experience. + +```js +import { runSilentCommandSequence } from '@cellix/local-dev/silent-runners'; + +const result = runSilentCommandSequence({ + steps: [ + { name: 'format:check', command: 'pnpm', args: ['run', 'format:check'] }, + { name: 'test:e2e', command: 'pnpm', args: ['run', 'test:e2e'] }, + ], +}); + +process.exitCode = result.status; +``` + +For reusable verification workflows, use the fluent sequence builder: + +```js +import { pnpmScript, verificationSequence } from '@cellix/local-dev/silent-runners'; + +const verify = verificationSequence + .addStep(pnpmScript('format:check')) + .addStep(pnpmScript('test')); + +const result = verify.run(); +process.exitCode = result.status; +``` + +Prefer the named tool wrappers when a command has a known CLI shape: + +```js +import { knipCheck, pnpmAudit, runSilentCommandSequence, snykCodeScan, snykDependencyScan } from '@cellix/local-dev/silent-runners'; + +const result = runSilentCommandSequence({ + steps: [ + knipCheck(), + pnpmAudit({ auditLevel: 'high', dependencyType: 'prod' }), + snykDependencyScan({ args: ['--all-projects', '--org=my-org'] }), + snykCodeScan({ args: ['--org=my-org'] }), + ], +}); +``` + ## Public API All exports are available from `@cellix/local-dev`. Folder-level subpaths are @@ -117,6 +186,7 @@ also published for consumers that want narrower imports: - `@cellix/local-dev/files` - `@cellix/local-dev/process` - `@cellix/local-dev/runners` +- `@cellix/local-dev/silent-runners` - `@cellix/local-dev/urls` - `@cellix/local-dev/vite` - `@cellix/local-dev/workspace` @@ -152,15 +222,27 @@ also published for consumers that want narrower imports: - `getMongoPort` - `getAzuritePorts` - `buildAzuriteConnectionString` -- `runViteDev` -- `runDocusaurusDev` -- `runAzureFunctionsDev` -- `runNodeDev` -- `runAzuriteDev` -- `runTsxDev` deprecated compatibility alias +- `runSilentCommand` +- `runSilentCommandSequence` +- `architectureTests` +- `coverageMerge` +- `e2eTests` +- `knipCheck` +- `livePnpmScript` +- `pnpmAudit` +- `pnpmScript` +- `snykCodeScan` +- `snykDependencyScan` +- `snykIacScan` +- `sonarPullRequestAnalysis` +- `sonarQualityGate` +- `VerificationSequence` +- `verificationSequence` ## Notes - The package derives workspace roots from the caller's current working directory, but it does not infer app layouts or env-variable names. - Worktree names are sanitized before they are inserted into `.localhost` hostnames so branch-style names such as `jason/my-feature` become DNS-safe labels such as `jason-my-feature`. Suffixing is idempotent for hostnames that already contain the sanitized worktree label. +- Silent tool wrappers encode reusable CLI shape; scripts still own project-specific arguments such as org names, paths, and CI policy. +- Captured verification output defaults to 64 MiB and can be adjusted with `maxBuffer` for a command, sequence, or individual sequence step. - If a helper only exists to support one app's local policy, it should usually live with that app instead of being exported here. diff --git a/packages/cellix/local-dev/manifest.md b/packages/cellix/local-dev/manifest.md index 5e75d69ea..62e307a11 100644 --- a/packages/cellix/local-dev/manifest.md +++ b/packages/cellix/local-dev/manifest.md @@ -2,16 +2,17 @@ ## Purpose -Provide generic local-development primitives for Cellix app packages so app-owned wrapper scripts can supply project-specific env keys, hostnames, and local-settings policy without hardcoding those details into the shared package. +Provide generic local-development and verification primitives for Cellix app packages so app-owned wrapper scripts can supply project-specific env keys, hostnames, local-settings policy, and scanner policy without hardcoding those details into the shared package. ## Scope -This package owns generic worktree-aware port math, URL helpers, dotenv and JSON file utilities, child-process lifecycle handling, worktree settings transforms, and generic dev-runner orchestration for Vite, Docusaurus, Azure Functions, Node-backed processes, and Azurite. +This package owns generic worktree-aware port math, URL helpers, dotenv and JSON file utilities, child-process lifecycle handling, worktree settings transforms, generic dev-runner orchestration for Vite, Docusaurus, Azure Functions, Node-backed processes, and Azurite, plus silent verification runners and portable tool-wrapper builders. ## Non-goals - Production runtime behavior - App-specific env-variable names, hostnames, auth-provider paths, or local-settings keys +- Project-specific scanner policy such as Snyk org names, repository URLs, token handling, report publishing, or CI thresholds - Discovering repo-specific app folders from inside the package - Replacing app-owned wrapper scripts that express local project policy @@ -23,6 +24,7 @@ Published entrypoints: - `@cellix/local-dev/files` - `@cellix/local-dev/process` - `@cellix/local-dev/runners` +- `@cellix/local-dev/silent-runners` - `@cellix/local-dev/urls` - `@cellix/local-dev/vite` - `@cellix/local-dev/workspace` @@ -39,8 +41,8 @@ Root entrypoint exports: - `getWorktreePortOffset(worktreeName?)`, `getMongoPort(worktreeName?)`, `getAzuritePorts(worktreeName?)`, `buildAzuriteConnectionString(options)` - `ViteDevRunner`, `DocusaurusDevRunner`, `AzureFunctionsDevRunner`, `NodeDevRunner`, `AzuriteDevRunner` - `WorktreeSettings`, `AzureFunctionsLocalSettings`, `resolveAzureFunctionsLocalSettingsValues`, `convertSettingsForWorktree`, `WorktreeConversionPlan`, `WorktreeMode` -- `runViteDev(options?)`, `runDocusaurusDev(options?)`, `runAzureFunctionsDev(options?)`, `runNodeDev(options?)`, `runAzuriteDev(options)` -- `runTsxDev(options?)` remains as a deprecated compatibility alias for `runNodeDev(options?)` +- `runSilentCommand(options)`, `runSilentCommandSequence(options)`, `VerificationSequence`, `verificationSequence` +- Tool-wrapper builders such as `knipCheck()`, `pnpmAudit(options)`, `snykDependencyScan(options)`, `snykCodeScan(options)`, and `sonarPullRequestAnalysis(options)` ## Core concepts @@ -51,26 +53,33 @@ Root entrypoint exports: - Azure Functions dev runners may prepare `local.settings.json` before startup because the Functions host reads settings from its script root rather than the process environment alone. - Consumers that need the same Azure Functions values outside `func start` can resolve them without writing a file; regular mode remains unscoped unless a worktree name is explicitly available. - Hostname suffixing must sanitize raw worktree names before inserting them into `.localhost` domains, and repeated suffixing with the same worktree label must leave hostnames unchanged. +- Silent verification runners capture external command output, emit nothing on success, and replay whatever the command wrote to stdout/stderr on failure. +- Silent command sequences run ordered verification steps, defaulting each step to silent output while allowing explicit passthrough where live output is intentionally part of the command contract. +- Tool wrappers encode portable CLI shapes; root or app scripts own project-specific arguments. +- Commands are spawned without shell interpolation. ## Package boundaries - Do not encode OCOM app names, auth paths, env-variable names, or `local.settings.json` schemas in this package. +- Do not encode project-specific Snyk, Edgescan, or scanner policy here. - Keep repo-specific hostname and env mapping logic in app-owned scripts or internal repo helpers outside this package. - Avoid widening the public surface with one-off helpers that only exist to support a single app branch. ## Dependencies / relationships -- Downstream consumers in this monorepo: `@apps/api`, `@apps/docs`, `@apps/ui-community`, `@apps/ui-staff`, `@apps/server-oauth2-mock`, `@apps/server-mongodb-memory-mock` +- Downstream consumers in this monorepo: `@apps/api`, `@apps/docs`, `@apps/ui-community`, `@apps/ui-staff`, `@apps/server-oauth2-mock`, `@apps/server-mongodb-memory-mock`, and the root `verify` script - Consumed from app-owned wrapper scripts and from tests through the TypeScript API ## Testing strategy - Prefer public-entrypoint tests for dotenv parsing, URL helpers, worktree port derivation, runner object spawning, Vite arg building, Azurite connection-string building, worktree settings transforms, and generic JSON syncing. +- Public-entrypoint tests should prove silent-runner success output is suppressed, failure output is replayed, ordered sequences stop on failure, and the reusable verification sequence stays immutable. - Avoid tests that prove repo-specific wrapper policy through this package's public contract. ## Documentation obligations - Keep `README.md` focused on the generic helper surface and how app-owned wrappers compose it. +- Document silent verification runners as generic command wrappers, not as project-specific CI policy. - Keep TSDoc aligned on public exports that define package behavior. - Update this manifest when public exports or scope boundaries change. diff --git a/packages/cellix/local-dev/package.json b/packages/cellix/local-dev/package.json index b16991873..7ea383825 100644 --- a/packages/cellix/local-dev/package.json +++ b/packages/cellix/local-dev/package.json @@ -1,7 +1,7 @@ { "name": "@cellix/local-dev", "version": "1.0.0", - "description": "Generic local-development helpers for Cellix app wrappers", + "description": "Generic local-development and verification helpers for Cellix app wrappers", "type": "module", "files": [ "dist", @@ -26,10 +26,18 @@ "types": "./dist/runners/index.d.ts", "default": "./dist/runners/index.js" }, + "./silent-runners": { + "types": "./dist/silent-runners/index.d.ts", + "default": "./dist/silent-runners/index.js" + }, "./urls": { "types": "./dist/urls/index.d.ts", "default": "./dist/urls/index.js" }, + "./vite": { + "types": "./dist/vite/index.d.ts", + "default": "./dist/vite/index.js" + }, "./workspace": { "types": "./dist/workspace/index.d.ts", "default": "./dist/workspace/index.js" diff --git a/packages/cellix/local-dev/src/files/index.ts b/packages/cellix/local-dev/src/files/index.ts index 0eca37078..6a3484aee 100644 --- a/packages/cellix/local-dev/src/files/index.ts +++ b/packages/cellix/local-dev/src/files/index.ts @@ -1,2 +1,2 @@ export { type DotEnvValues, readDotEnv } from './dotenv.ts'; -export { readJsonFile, type SyncJsonFileOptions, syncJsonFile } from './json.ts'; +export { readJsonFile, type SyncJsonFileOptions, syncJsonFile, writeJsonFile } from './json.ts'; diff --git a/packages/cellix/local-dev/src/index.test.ts b/packages/cellix/local-dev/src/index.test.ts index 48d60d4b9..7b83969a2 100644 --- a/packages/cellix/local-dev/src/index.test.ts +++ b/packages/cellix/local-dev/src/index.test.ts @@ -1,3 +1,4 @@ +import type { SpawnSyncOptionsWithStringEncoding, SpawnSyncReturns } from 'node:child_process'; import { EventEmitter } from 'node:events'; import { mkdirSync, mkdtempSync, readFileSync, writeFileSync } from 'node:fs'; import { tmpdir } from 'node:os'; @@ -25,6 +26,22 @@ import { ViteDevRunner, WorktreeSettings, } from '@cellix/local-dev'; +import { + architectureTests, + coverageMerge, + e2eTests, + knipCheck, + pnpmAudit, + pnpmScript, + runSilentCommand, + runSilentCommandSequence, + type SilentRunnerSpawnSync, + snykCodeScan, + snykDependencyScan, + sonarPullRequestAnalysis, + sonarQualityGate, + verificationSequence, +} from '@cellix/local-dev/silent-runners'; import { afterEach, describe, expect, it, vi } from 'vitest'; import { buildViteArgs } from './vite/index.ts'; @@ -53,6 +70,53 @@ function expectNoDirectProcessExit(): ReturnType { }) as never); } +function createVerifySpawn(options: { failStep?: string } = {}) { + const calls: Array<{ args: string[]; command: string; stdio: SpawnSyncOptionsWithStringEncoding['stdio'] }> = []; + const spawn = (command: string, args: string[], spawnOptions: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns => { + const stepName = getStepName(command, args); + calls.push({ + args, + command, + stdio: spawnOptions.stdio, + }); + + return { + output: [`${stepName} stdout`, '', ''], + pid: 123, + signal: null, + status: options.failStep === stepName ? 9 : 0, + stderr: `${stepName} stderr\n`, + stdout: `${stepName} stdout\n`, + }; + }; + + return { calls, spawn }; +} + +function getStepName(command: string, args: string[]): string { + if (command === 'pnpm' && args[0] === 'run' && args[1]) { + return args[1]; + } + + if (command === 'pnpm' && args[0] === 'audit') { + return args.includes('--prod') ? 'audit:prod' : 'audit:dev'; + } + + if (command === 'pnpm' && args[0] === 'exec' && args[1] === 'knip') { + return 'knip'; + } + + if (command === 'pnpm' && args[0] === 'exec' && args[1] === 'snyk' && args[2] === 'test') { + return 'snyk:test'; + } + + if (command === 'pnpm' && args[0] === 'exec' && args[1] === 'snyk' && args[2] === 'code' && args[3] === 'test') { + return 'snyk:code'; + } + + return command; +} + describe('@cellix/local-dev', () => { afterEach(() => { vi.restoreAllMocks(); @@ -518,3 +582,332 @@ describe('@cellix/local-dev', () => { }); }); }); + +describe('@cellix/local-dev/silent-runners', () => { + it('keeps successful local verification commands silent', () => { + const output = { + stderr: '', + stdout: '', + }; + const spawn: SilentRunnerSpawnSync = (command, args, options) => { + expect(command).toBe('snyk'); + expect(args).toEqual(['test']); + expect(options.maxBuffer).toBe(64 * 1024 * 1024); + expect(options.stdio).toBe('pipe'); + return { + output: ['tool output', '', ''], + pid: 123, + signal: null, + status: 0, + stderr: 'hidden success stderr', + stdout: 'hidden success stdout', + }; + }; + + const result = runSilentCommand({ + args: ['test'], + command: 'snyk', + spawn, + streams: { + stderr: { + write: (chunk: string) => { + output.stderr += chunk; + return true; + }, + }, + stdout: { + write: (chunk: string) => { + output.stdout += chunk; + return true; + }, + }, + }, + }); + + expect(result).toMatchObject({ + status: 0, + stderr: 'hidden success stderr', + stdout: 'hidden success stdout', + }); + expect(output).toEqual({ + stderr: '', + stdout: '', + }); + }); + + it('replays local verification command output when a command fails', () => { + const output = { + stderr: '', + stdout: '', + }; + const spawn: SilentRunnerSpawnSync = () => ({ + output: ['tool output', '', ''], + pid: 123, + signal: null, + status: 2, + stderr: 'failure stderr', + stdout: 'failure stdout', + }); + + const result = runSilentCommand({ + args: ['code', 'test'], + command: 'snyk', + spawn, + streams: { + stderr: { + write: (chunk: string) => { + output.stderr += chunk; + return true; + }, + }, + stdout: { + write: (chunk: string) => { + output.stdout += chunk; + return true; + }, + }, + }, + }); + + expect(result.status).toBe(2); + expect(output).toEqual({ + stderr: '\nCommand failed (exit 2): snyk code test\n\nfailure stderr', + stdout: 'failure stdout', + }); + }); + + it('reports the signal instead of an exit code when a command is terminated by a signal', () => { + const output = { + stderr: '', + stdout: '', + }; + const spawn: SilentRunnerSpawnSync = () => ({ + output: ['tool output', '', ''], + pid: 123, + signal: 'SIGINT', + status: null, + stderr: 'partial stderr', + stdout: 'partial stdout', + }); + + const result = runSilentCommand({ + args: ['install'], + command: 'pnpm', + spawn, + streams: { + stderr: { + write: (chunk: string) => { + output.stderr += chunk; + return true; + }, + }, + stdout: { + write: (chunk: string) => { + output.stdout += chunk; + return true; + }, + }, + }, + }); + + expect(result).toMatchObject({ + signal: 'SIGINT', + status: 130, + }); + expect(output.stderr).toContain('Command failed (signal SIGINT): pnpm install'); + expect(output.stderr).not.toContain('exit'); + }); + + it('keeps a signalled command failing when its status is assigned to process.exitCode', () => { + const spawn: SilentRunnerSpawnSync = () => ({ + output: ['', '', ''], + pid: 123, + signal: 'SIGKILL', + status: null, + stderr: '', + stdout: '', + }); + + const result = runSilentCommand({ + command: 'pnpm', + spawn, + streams: { stderr: { write: () => true }, stdout: { write: () => true } }, + }); + process.exitCode = result.status; + + expect(result.status).toBe(137); + expect(process.exitCode).toBe(137); + }); + + it('falls back to a failing status when a command cannot be spawned at all', () => { + const spawn: SilentRunnerSpawnSync = () => ({ + error: new Error('spawn missing-tool ENOENT'), + output: ['', '', ''], + pid: 123, + signal: null, + status: null, + stderr: '', + stdout: '', + }); + + const output = { stderr: '', stdout: '' }; + const result = runSilentCommand({ + command: 'missing-tool', + spawn, + streams: { + stderr: { + write: (chunk: string) => { + output.stderr += chunk; + return true; + }, + }, + stdout: { write: () => true }, + }, + }); + + expect(result.status).toBe(1); + expect(output.stderr).toContain('Command failed (exit 1): missing-tool'); + expect(output.stderr).toContain('spawn missing-tool ENOENT'); + }); + + it('allows callers to configure the captured output buffer', () => { + const observedMaxBuffers: Array = []; + const spawn: SilentRunnerSpawnSync = (_command, _args, options) => { + observedMaxBuffers.push(options.maxBuffer); + return { + output: ['', '', ''], + pid: 123, + signal: null, + status: 0, + stderr: '', + stdout: '', + }; + }; + + runSilentCommand({ + command: 'large-output-tool', + maxBuffer: 128 * 1024 * 1024, + spawn, + }); + runSilentCommandSequence({ + maxBuffer: 96 * 1024 * 1024, + spawn, + steps: [ + { command: 'first-tool', name: 'first-tool' }, + { command: 'second-tool', maxBuffer: 160 * 1024 * 1024, name: 'second-tool' }, + ], + }); + + expect(observedMaxBuffers).toEqual([128 * 1024 * 1024, 96 * 1024 * 1024, 160 * 1024 * 1024]); + }); + + it('keeps the successful verify sequence fully silent', () => { + const { calls, spawn } = createVerifySpawn(); + const output = { stderr: '', stdout: '' }; + const steps = [ + pnpmScript('format:check'), + architectureTests(), + coverageMerge(), + e2eTests(), + knipCheck(), + pnpmAudit({ auditLevel: 'high', dependencyType: 'prod', name: 'audit:prod' }), + pnpmAudit({ auditLevel: 'critical', dependencyType: 'dev', name: 'audit:dev' }), + snykDependencyScan({ args: ['--all-projects'] }), + snykCodeScan(), + sonarPullRequestAnalysis(), + sonarQualityGate(), + ]; + + const result = runSilentCommandSequence({ + spawn, + steps, + streams: { + stderr: { + write: (chunk: string) => { + output.stderr += chunk; + return true; + }, + }, + stdout: { + write: (chunk: string) => { + output.stdout += chunk; + return true; + }, + }, + }, + }); + + expect(result.status).toBe(0); + expect(output).toEqual({ stderr: '', stdout: '' }); + expect(calls.map((call) => getStepName(call.command, call.args))).toEqual(steps.map((step) => step.name)); + expect(calls).toEqual( + steps.map((step) => ({ + args: step.args ?? [], + command: step.command, + stdio: 'pipe', + })), + ); + }); + + it('replays output from the failing silent verify step and stops before later work', () => { + const { calls, spawn } = createVerifySpawn({ failStep: 'snyk:code' }); + const output = { stderr: '', stdout: '' }; + const steps = [ + pnpmScript('format:check'), + architectureTests(), + coverageMerge(), + e2eTests(), + knipCheck(), + pnpmAudit({ auditLevel: 'high', dependencyType: 'prod', name: 'audit:prod' }), + pnpmAudit({ auditLevel: 'critical', dependencyType: 'dev', name: 'audit:dev' }), + snykDependencyScan({ args: ['--all-projects'] }), + snykCodeScan(), + sonarPullRequestAnalysis(), + sonarQualityGate(), + ]; + + const result = runSilentCommandSequence({ + spawn, + steps, + streams: { + stderr: { + write: (chunk: string) => { + output.stderr += chunk; + return true; + }, + }, + stdout: { + write: (chunk: string) => { + output.stdout += chunk; + return true; + }, + }, + }, + }); + + expect(result.status).toBe(9); + expect(result.step.name).toBe('snyk:code'); + expect(output).toEqual({ + stderr: '\nCommand failed (exit 9): pnpm exec snyk code test\n\nsnyk:code stderr\n', + stdout: 'snyk:code stdout\n', + }); + expect(calls.map((call) => getStepName(call.command, call.args))).toEqual(['format:check', 'test:arch', 'test:coverage:merge', 'test:e2e', 'knip', 'audit:prod', 'audit:dev', 'snyk:test', 'snyk:code']); + }); + + it('builds and runs reusable verification sequences with a fluent addStep API', () => { + const { calls, spawn } = createVerifySpawn(); + const sequence = verificationSequence.addStep(pnpmScript('format:check')).addStep(architectureTests()); + + const result = sequence.run({ spawn }); + + expect(result.status).toBe(0); + expect(calls.map((call) => getStepName(call.command, call.args))).toEqual(['format:check', 'test:arch']); + }); + + it('keeps the shared verification sequence immutable', () => { + const configuredSequence = verificationSequence.addStep(pnpmScript('format:check')); + + expect(() => verificationSequence.run()).toThrow('runSilentCommandSequence requires at least one step'); + expect(configuredSequence).not.toBe(verificationSequence); + }); +}); diff --git a/packages/cellix/local-dev/src/index.ts b/packages/cellix/local-dev/src/index.ts index 7dbfeb397..32c1a96f0 100644 --- a/packages/cellix/local-dev/src/index.ts +++ b/packages/cellix/local-dev/src/index.ts @@ -1,6 +1,6 @@ export { isE2E } from './env/index.ts'; export { type DotEnvValues, readDotEnv } from './files/dotenv.ts'; -export { readJsonFile, type SyncJsonFileOptions, syncJsonFile } from './files/json.ts'; +export { readJsonFile, type SyncJsonFileOptions, syncJsonFile, writeJsonFile } from './files/json.ts'; export { forwardChildExit, isGracefulInterruptExit, setProcessExitCode } from './process/index.ts'; export { type AzureFunctionsDevOptions, @@ -20,6 +20,37 @@ export { type ViteDevOptions, ViteDevRunner, } from './runners/index.ts'; +export { + architectureTests, + type CommandOutputMode, + type CommandSequenceStep, + coverageMerge, + e2eTests, + knipCheck, + livePnpmScript, + type PnpmAuditOptions, + type PnpmScriptOptions, + pnpmAudit, + pnpmScript, + runSilentCommand, + runSilentCommandSequence, + type SilentCommandOptions, + type SilentCommandResult, + type SilentCommandSequenceOptions, + type SilentCommandSequenceResult, + type SilentRunnerSpawnSync, + type SilentRunnerStreams, + type SnykScanOptions, + type SonarScriptOptions, + snykCodeScan, + snykDependencyScan, + snykIacScan, + sonarPullRequestAnalysis, + sonarQualityGate, + VerificationSequence, + type VerificationSequenceOptions, + verificationSequence, +} from './silent-runners/index.ts'; export { applyWorktreeSuffix, buildPortlessUrl, diff --git a/packages/cellix/local-dev/src/silent-runners/index.ts b/packages/cellix/local-dev/src/silent-runners/index.ts new file mode 100644 index 000000000..ed6d4bdbc --- /dev/null +++ b/packages/cellix/local-dev/src/silent-runners/index.ts @@ -0,0 +1,342 @@ +import { type SpawnSyncOptionsWithStringEncoding, type SpawnSyncReturns, spawnSync } from 'node:child_process'; +import { constants } from 'node:os'; + +const DEFAULT_MAX_BUFFER_BYTES = 64 * 1024 * 1024; + +export { knipCheck } from './knip.ts'; +export { livePnpmScript, type PnpmScriptOptions, pnpmScript } from './pnpm.ts'; +export { type PnpmAuditOptions, pnpmAudit } from './pnpm-audit.ts'; +export { type SnykScanOptions, snykCodeScan, snykDependencyScan, snykIacScan } from './snyk.ts'; +export { type SonarScriptOptions, sonarPullRequestAnalysis, sonarQualityGate } from './sonar.ts'; +export { architectureTests, coverageMerge, e2eTests } from './test-runners.ts'; + +/** + * Spawn function used by silent command runners. + * + * Consumers usually rely on the default `child_process.spawnSync`; tests and + * advanced wrappers can inject this to observe command execution without + * running the external tool. + */ +export type SilentRunnerSpawnSync = (command: string, args: string[], options: SpawnSyncOptionsWithStringEncoding) => SpawnSyncReturns; + +/** + * Writable stream surface used when replaying captured output after a command + * fails. + */ +export interface SilentRunnerStreams { + /** Stream that receives captured stdout when the command fails. */ + stdout?: Pick; + /** Stream that receives captured stderr when the command fails. */ + stderr?: Pick; +} + +/** + * Options for running an external command silently until failure. + */ +export interface SilentCommandOptions { + /** Executable name. */ + command: string; + /** Command-line arguments passed without shell interpolation. */ + args?: string[]; + /** Working directory for the command. Defaults to the current process cwd. */ + cwd?: string; + /** Environment to pass to the command. Defaults to the current process env. */ + env?: NodeJS.ProcessEnv; + /** Maximum captured output in bytes. Defaults to 64 MiB. */ + maxBuffer?: number; + /** Process spawner used by tests and advanced consumers. Defaults to `child_process.spawnSync`. */ + spawn?: SilentRunnerSpawnSync; + /** Streams used when replaying captured failure output. Defaults to `process.stdout` and `process.stderr`. */ + streams?: SilentRunnerStreams; +} + +/** + * How a command in a verification sequence should handle output. + */ +export type CommandOutputMode = 'silent' | 'inherit'; + +/** + * One command in a verification sequence. + */ +export interface CommandSequenceStep { + /** Human-readable step name for tests and orchestration logs. */ + name: string; + /** Executable name. */ + command: string; + /** Command-line arguments passed without shell interpolation. */ + args?: string[]; + /** Output policy for this step. Defaults to `silent`. */ + output?: CommandOutputMode; + /** Maximum captured output in bytes for this step. */ + maxBuffer?: number; +} + +/** + * Options for running a verification sequence. + */ +export interface SilentCommandSequenceOptions { + /** Steps to run in order until one fails. */ + steps: CommandSequenceStep[]; + /** Working directory for each command. Defaults to the current process cwd. */ + cwd?: string; + /** Environment to pass to each command. Defaults to the current process env. */ + env?: NodeJS.ProcessEnv; + /** Default maximum captured output in bytes for silent steps. Defaults to 64 MiB. */ + maxBuffer?: number; + /** Process spawner used by tests and advanced consumers. Defaults to `child_process.spawnSync`. */ + spawn?: SilentRunnerSpawnSync; + /** Streams used when replaying captured failure output. Defaults to `process.stdout` and `process.stderr`. */ + streams?: SilentRunnerStreams; +} + +interface CommandSequenceContext { + cwd: string | undefined; + env: NodeJS.ProcessEnv | undefined; + maxBuffer: number | undefined; + spawn: SilentRunnerSpawnSync | undefined; + streams: SilentRunnerStreams | undefined; +} + +/** + * Result returned by a silent command runner. + */ +export interface SilentCommandResult { + /** + * Exit status reported by the child process, always a number so it can be + * assigned straight to `process.exitCode`. + * + * A child terminated by a signal reports no status of its own, so it is + * mapped to the shell convention of `128 + signalNumber` (SIGINT becomes 130, + * SIGKILL becomes 137). A spawn that failed outright reports `1`. Read + * `signal` to tell a signalled command apart from one that exited normally. + */ + status: number; + /** Signal reported by the child process, when it was terminated by a signal. */ + signal: NodeJS.Signals | null; + /** Captured stdout. This is replayed only when the command fails. */ + stdout: string; + /** Captured stderr. This is replayed only when the command fails. */ + stderr: string; + /** Spawn error, such as an executable that could not be found. */ + error?: Error; +} + +/** + * Result returned by a command sequence. + */ +export interface SilentCommandSequenceResult extends SilentCommandResult { + /** Step that produced the returned status. */ + step: CommandSequenceStep; +} + +export type VerificationSequenceOptions = Omit; + +/** + * Runs a command with stdout and stderr captured instead of inherited. + * + * Successful commands produce no terminal output. Failed commands replay their + * captured stdout and stderr so local verification stays quiet when healthy and + * still shows whatever the command wrote when something breaks. + * + * @param options - Command, arguments, process context, and optional test seams. + * @returns The child-process result with captured output and normalized status. + * + * @example + * ```ts + * import { runSilentCommand } from '@cellix/local-dev/silent-runners'; + * + * const result = runSilentCommand({ + * command: 'snyk', + * args: ['test', '--all-projects'], + * }); + * + * process.exitCode = result.status; + * ``` + */ +export function runSilentCommand(options: SilentCommandOptions): SilentCommandResult { + const { + args = [], + command, + cwd, + env, + maxBuffer = DEFAULT_MAX_BUFFER_BYTES, + spawn = spawnCommandSync, + streams = { + stderr: process.stderr, + stdout: process.stdout, + }, + } = options; + const result = spawn(command, args, { + cwd, + encoding: 'utf8', + env, + maxBuffer, + stdio: 'pipe', + }); + const normalizedResult = toSilentCommandResult(result); + + if (normalizedResult.status !== 0) { + replayFailureOutput(normalizedResult, streams, command, args); + } + + return normalizedResult; +} + +/** + * Runs commands in order, stopping at the first failure. + * + * Steps default to silent output. Use `output: 'inherit'` only when live output + * is part of the command's intended consumer experience. + * + * @param options - Sequence steps and optional process context. + * @returns The final successful step result or the first failing step result. + */ +export function runSilentCommandSequence(options: SilentCommandSequenceOptions): SilentCommandSequenceResult { + const { cwd, env, maxBuffer, spawn, steps, streams } = options; + + let lastResult: SilentCommandSequenceResult | undefined; + + for (const step of steps) { + const context: CommandSequenceContext = { cwd, env, maxBuffer, spawn, streams }; + const result = step.output === 'inherit' ? runInheritedCommand(buildCommandOptions(step, context)) : runSilentCommand(buildCommandOptions(step, context)); + lastResult = { + ...result, + step, + }; + + if (result.status !== 0) { + return lastResult; + } + } + + if (!lastResult) { + throw new Error('runSilentCommandSequence requires at least one step'); + } + + return lastResult; +} + +/** + * Fluent builder for an ordered sequence of verification commands. + * + * Steps execute in insertion order and stop at the first failure. The sequence + * can be configured once with shared process options and run repeatedly. + * + * @example + * ```ts + * const verify = verificationSequence + * .addStep(pnpmScript('format:check')) + * .addStep(pnpmScript('test')); + * + * const result = verify.run(); + * process.exitCode = result.status; + * ``` + */ +export class VerificationSequence { + readonly #options: VerificationSequenceOptions; + readonly #steps: CommandSequenceStep[]; + + constructor(options: VerificationSequenceOptions = {}, steps: CommandSequenceStep[] = []) { + this.#options = options; + this.#steps = steps; + } + + /** + * Appends a command to the sequence. + * + * @param step - Command descriptor to execute after previously added steps. + * @returns A new sequence containing the appended step. + */ + addStep(step: CommandSequenceStep): VerificationSequence { + return new VerificationSequence(this.#options, [...this.#steps, step]); + } + + /** + * Runs the configured steps in insertion order. + * + * Per-run options override options supplied when the sequence was created. + * + * @param options - Optional process context and test seams for this run. + * @returns The final successful result or the first failing step result. + * @throws When the sequence has no steps. + */ + run(options: VerificationSequenceOptions = {}): SilentCommandSequenceResult { + return runSilentCommandSequence({ + ...this.#options, + ...options, + steps: [...this.#steps], + }); + } +} + +/** + * Empty reusable verification sequence for fluent workflow definitions. + * + * Adding a step returns a new sequence, so this shared object remains empty and + * can safely be reused by multiple consumers. + */ +export const verificationSequence = new VerificationSequence(); + +function runInheritedCommand(options: SilentCommandOptions): SilentCommandResult { + const { args = [], command, cwd, env, spawn = spawnCommandSync } = options; + return toSilentCommandResult( + spawn(command, args, { + cwd, + encoding: 'utf8', + env, + stdio: 'inherit', + }), + ); +} + +function buildCommandOptions(step: CommandSequenceStep, options: CommandSequenceContext): SilentCommandOptions { + const maxBuffer = step.maxBuffer ?? options.maxBuffer; + + return { + ...(step.args ? { args: step.args } : {}), + ...(options.cwd ? { cwd: options.cwd } : {}), + ...(options.env ? { env: options.env } : {}), + ...(maxBuffer !== undefined ? { maxBuffer } : {}), + ...(options.spawn ? { spawn: options.spawn } : {}), + ...(options.streams ? { streams: options.streams } : {}), + command: step.command, + }; +} + +function toSilentCommandResult(result: SpawnSyncReturns): SilentCommandResult { + return { + ...(result.error ? { error: result.error } : {}), + signal: result.signal, + status: result.status ?? signalExitStatus(result.signal), + stderr: result.stderr ?? '', + stdout: result.stdout ?? '', + }; +} + +function signalExitStatus(signal: NodeJS.Signals | null): number { + const signalNumber = signal ? (constants.signals as Partial>)[signal] : undefined; + + return signalNumber === undefined ? 1 : 128 + signalNumber; +} + +function spawnCommandSync(command: string, args: string[], options: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns { + return spawnSync(command, args, { + ...options, + encoding: 'utf8', + }); +} + +function replayFailureOutput(result: SilentCommandResult, streams: SilentRunnerStreams, command: string, args: string[]): void { + const commandLine = [command, ...args].join(' '); + const reason = result.signal ? `signal ${result.signal}` : `exit ${result.status}`; + streams.stderr?.write(`\nCommand failed (${reason}): ${commandLine}\n\n`); + if (result.stdout) { + streams.stdout?.write(result.stdout); + } + if (result.stderr) { + streams.stderr?.write(result.stderr); + } + if (result.error) { + streams.stderr?.write(`${result.error.message}\n`); + } +} diff --git a/packages/cellix/local-dev/src/silent-runners/knip.ts b/packages/cellix/local-dev/src/silent-runners/knip.ts new file mode 100644 index 000000000..32e96651f --- /dev/null +++ b/packages/cellix/local-dev/src/silent-runners/knip.ts @@ -0,0 +1,12 @@ +import type { CommandSequenceStep } from './index.ts'; + +/** + * Runs Knip unused-code/dependency analysis. + */ +export function knipCheck(): CommandSequenceStep { + return { + args: ['exec', 'knip'], + command: 'pnpm', + name: 'knip', + }; +} diff --git a/packages/cellix/local-dev/src/silent-runners/pnpm-audit.ts b/packages/cellix/local-dev/src/silent-runners/pnpm-audit.ts new file mode 100644 index 000000000..68ed5e50e --- /dev/null +++ b/packages/cellix/local-dev/src/silent-runners/pnpm-audit.ts @@ -0,0 +1,18 @@ +import type { CommandSequenceStep } from './index.ts'; + +export interface PnpmAuditOptions { + auditLevel: 'low' | 'moderate' | 'high' | 'critical'; + dependencyType: 'prod' | 'dev'; + name?: string; +} + +/** + * Runs `pnpm audit` for one dependency class and audit threshold. + */ +export function pnpmAudit(options: PnpmAuditOptions): CommandSequenceStep { + return { + args: ['audit', `--audit-level=${options.auditLevel}`, `--${options.dependencyType}`], + command: 'pnpm', + name: options.name ?? `audit:${options.dependencyType}`, + }; +} diff --git a/packages/cellix/local-dev/src/silent-runners/pnpm.ts b/packages/cellix/local-dev/src/silent-runners/pnpm.ts new file mode 100644 index 000000000..d73c8881f --- /dev/null +++ b/packages/cellix/local-dev/src/silent-runners/pnpm.ts @@ -0,0 +1,31 @@ +import type { CommandOutputMode, CommandSequenceStep } from './index.ts'; + +export interface PnpmScriptOptions { + name?: string; + output?: CommandOutputMode; +} + +/** + * Runs a package-manager script. + * + * Use this for project-owned scripts whose internals should remain delegated to + * the consuming repository. + */ +export function pnpmScript(script: string, options: PnpmScriptOptions = {}): CommandSequenceStep { + return { + args: ['run', script], + command: 'pnpm', + name: options.name ?? script, + ...(options.output ? { output: options.output } : {}), + }; +} + +/** + * Runs a package-manager script with live output. + */ +export function livePnpmScript(script: string, options: Omit = {}): CommandSequenceStep { + return pnpmScript(script, { + ...options, + output: 'inherit', + }); +} diff --git a/packages/cellix/local-dev/src/silent-runners/snyk.ts b/packages/cellix/local-dev/src/silent-runners/snyk.ts new file mode 100644 index 000000000..e19c00805 --- /dev/null +++ b/packages/cellix/local-dev/src/silent-runners/snyk.ts @@ -0,0 +1,39 @@ +import type { CommandSequenceStep } from './index.ts'; + +export interface SnykScanOptions { + args?: string[]; + name?: string; +} + +/** + * Runs Snyk dependency scanning (`snyk test`). + */ +export function snykDependencyScan(options: SnykScanOptions = {}): CommandSequenceStep { + return { + args: ['exec', 'snyk', 'test', ...(options.args ?? [])], + command: 'pnpm', + name: options.name ?? 'snyk:test', + }; +} + +/** + * Runs Snyk code scanning (`snyk code test`). + */ +export function snykCodeScan(options: SnykScanOptions = {}): CommandSequenceStep { + return { + args: ['exec', 'snyk', 'code', 'test', ...(options.args ?? [])], + command: 'pnpm', + name: options.name ?? 'snyk:code', + }; +} + +/** + * Runs Snyk IaC scanning (`snyk iac test`). + */ +export function snykIacScan(targets: string[] = [], options: SnykScanOptions = {}): CommandSequenceStep { + return { + args: ['exec', 'snyk', 'iac', 'test', ...targets, ...(options.args ?? [])], + command: 'pnpm', + name: options.name ?? 'snyk:iac', + }; +} diff --git a/packages/cellix/local-dev/src/silent-runners/sonar.ts b/packages/cellix/local-dev/src/silent-runners/sonar.ts new file mode 100644 index 000000000..ac6cdc64d --- /dev/null +++ b/packages/cellix/local-dev/src/silent-runners/sonar.ts @@ -0,0 +1,27 @@ +import type { CommandSequenceStep } from './index.ts'; +import { pnpmScript } from './pnpm.ts'; + +export interface SonarScriptOptions { + script?: string; +} + +/** + * Runs a repository-owned Sonar pull-request analysis script. + * + * The PR-number and branch-resolution policy is intentionally delegated to the + * consuming repository because those details vary by CI provider. + */ +export function sonarPullRequestAnalysis(options: SonarScriptOptions = {}): CommandSequenceStep { + return pnpmScript(options.script ?? 'sonar:pr', { + name: 'sonar:pr', + }); +} + +/** + * Runs a repository-owned Sonar quality-gate script. + */ +export function sonarQualityGate(options: SonarScriptOptions = {}): CommandSequenceStep { + return pnpmScript(options.script ?? 'check-sonar', { + name: 'check-sonar', + }); +} diff --git a/packages/cellix/local-dev/src/silent-runners/test-runners.ts b/packages/cellix/local-dev/src/silent-runners/test-runners.ts new file mode 100644 index 000000000..0699f2c95 --- /dev/null +++ b/packages/cellix/local-dev/src/silent-runners/test-runners.ts @@ -0,0 +1,23 @@ +import type { CommandSequenceStep } from './index.ts'; +import { pnpmScript } from './pnpm.ts'; + +/** + * Runs the repository's architecture test script silently. + */ +export function architectureTests(script = 'test:arch'): CommandSequenceStep { + return pnpmScript(script); +} + +/** + * Runs the repository's coverage-and-merge script silently. + */ +export function coverageMerge(script = 'test:coverage:merge'): CommandSequenceStep { + return pnpmScript(script); +} + +/** + * Runs the repository's e2e test script silently until failure. + */ +export function e2eTests(script = 'test:e2e'): CommandSequenceStep { + return pnpmScript(script); +} diff --git a/packages/cellix/local-dev/tsconfig.vitest.json b/packages/cellix/local-dev/tsconfig.vitest.json index 0d3bc7fca..b71187e8f 100644 --- a/packages/cellix/local-dev/tsconfig.vitest.json +++ b/packages/cellix/local-dev/tsconfig.vitest.json @@ -2,7 +2,8 @@ "extends": ["./tsconfig.json", "@cellix/config-typescript/vitest"], "compilerOptions": { "paths": { - "@cellix/local-dev": ["./src/index.ts"] + "@cellix/local-dev": ["./src/index.ts"], + "@cellix/local-dev/silent-runners": ["./src/silent-runners/index.ts"] } }, "include": ["src/**/*.ts"] diff --git a/packages/cellix/local-dev/vitest.config.ts b/packages/cellix/local-dev/vitest.config.ts index 2c2d02b84..629142ed9 100644 --- a/packages/cellix/local-dev/vitest.config.ts +++ b/packages/cellix/local-dev/vitest.config.ts @@ -12,6 +12,7 @@ export default mergeConfig(nodeConfig, { }, resolve: { alias: { + '@cellix/local-dev/silent-runners': join(dirname, 'src/silent-runners/index.ts'), '@cellix/local-dev': join(dirname, 'src/index.ts'), }, }, diff --git a/packages/cellix/serenity-framework/src/formatters/agent-formatter.ts b/packages/cellix/serenity-framework/src/formatters/agent-formatter.ts index c06a3b36c..f41105253 100644 --- a/packages/cellix/serenity-framework/src/formatters/agent-formatter.ts +++ b/packages/cellix/serenity-framework/src/formatters/agent-formatter.ts @@ -104,6 +104,10 @@ export default class AgentFormatter extends Formatter { } private onTestRunFinished(testRunFinished: TestRunFinished): void { + if (this.issueCount === 0) { + return; + } + this.log('\n--- (Agent) Results ---\n'); const parts = Object.entries(this.statusCounts).map(([status, count]) => `${status}: ${count}`); @@ -114,6 +118,6 @@ export default class AgentFormatter extends Formatter { this.log(`Duration: ${ms}ms\n`); } - this.log(this.issueCount === 0 ? 'All scenarios passed.\n' : `Issues: ${this.issueCount}\n`); + this.log(`Issues: ${this.issueCount}\n`); } } diff --git a/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/staff-roles-list.ts b/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/staff-roles-list.ts index 9ed4ac26d..93646e774 100644 --- a/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/staff-roles-list.ts +++ b/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/staff-roles-list.ts @@ -16,7 +16,7 @@ export class StaffRolesList extends Question> { override async answeredBy(actor: AnswersQuestions & UsesAbilities): Promise { const response = await GraphQLClient.as(actor as unknown as Actor).execute(STAFF_ROLES_QUERY); - return response.data['staffRoles'] as StaffRoleResult[]; + return response.data.staffRoles as StaffRoleResult[]; } override toString = () => 'the staff roles list'; diff --git a/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/staff-user-named.ts b/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/staff-user-named.ts index e10d2755d..48e64da77 100644 --- a/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/staff-user-named.ts +++ b/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/staff-user-named.ts @@ -17,7 +17,7 @@ export class StaffUserNamed extends Question> { override async answeredBy(actor: AnswersQuestions & UsesAbilities): Promise { const response = await GraphQLClient.as(actor as unknown as Actor).execute(STAFF_USERS_QUERY); - const staffUsers = response.data['staffUsers'] as StaffUserResult[]; + const staffUsers = response.data.staffUsers as StaffUserResult[]; const staffUser = staffUsers.find((user) => user.displayName === this.displayName); if (!staffUser) { throw new Error(`Staff user "${this.displayName}" was not found`); diff --git a/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/viewed-staff-role.ts b/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/viewed-staff-role.ts index 0b83f73f0..778e4cd1b 100644 --- a/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/viewed-staff-role.ts +++ b/packages/ocom-verification/acceptance-api/src/contexts/staff-role/questions/viewed-staff-role.ts @@ -49,7 +49,7 @@ export class ViewedStaffRole extends Question> { } try { const response = await GraphQLClient.as(actor as unknown as Actor).execute(STAFF_ROLE_BY_ID_QUERY, { id: staffRoleId }); - const staffRole = response.data['staffRoleById'] as StaffRoleResult | null; + const staffRole = response.data.staffRoleById as StaffRoleResult | null; return staffRole?.[this.field] ? String(staffRole[this.field]) : undefined; } catch { return undefined; diff --git a/packages/ocom-verification/acceptance-api/src/contexts/staff-role/tasks/view-staff-role-details.ts b/packages/ocom-verification/acceptance-api/src/contexts/staff-role/tasks/view-staff-role-details.ts index ff1110273..6c2e3637a 100644 --- a/packages/ocom-verification/acceptance-api/src/contexts/staff-role/tasks/view-staff-role-details.ts +++ b/packages/ocom-verification/acceptance-api/src/contexts/staff-role/tasks/view-staff-role-details.ts @@ -24,7 +24,7 @@ export class ViewStaffRoleDetails extends Task { } const response = await GraphQLClient.as(actor).execute(STAFF_ROLE_BY_ID_QUERY, { id: role.id }); - const details = response.data['staffRoleById'] as StaffRoleResult | null; + const details = response.data.staffRoleById as StaffRoleResult | null; if (!details) { throw new Error(`Staff role "${this.roleName}" (${role.id}) could not be retrieved by id`); } diff --git a/packages/ocom-verification/acceptance-api/src/shared/abilities/assign-staff-role.ts b/packages/ocom-verification/acceptance-api/src/shared/abilities/assign-staff-role.ts index 470be20ed..63c4202b5 100644 --- a/packages/ocom-verification/acceptance-api/src/shared/abilities/assign-staff-role.ts +++ b/packages/ocom-verification/acceptance-api/src/shared/abilities/assign-staff-role.ts @@ -36,7 +36,7 @@ export function assignStaffRoleAbility(): AssignStaffRole { input: { staffUserId: details.staffUserId, roleId: details.roleId }, }); - const mutationResult = response.data['staffUserAssignRole'] as { status: MutationStatus; staffUser: StaffUserResult | null } | undefined; + const mutationResult = response.data.staffUserAssignRole as { status: MutationStatus; staffUser: StaffUserResult | null } | undefined; if (mutationResult?.status?.success !== true) { throw new Error(String(mutationResult?.status?.errorMessage ?? 'Failed to assign staff role')); } diff --git a/packages/ocom-verification/acceptance-api/src/shared/abilities/create-staff-role.ts b/packages/ocom-verification/acceptance-api/src/shared/abilities/create-staff-role.ts index 92fd52bd1..be6a85de3 100644 --- a/packages/ocom-verification/acceptance-api/src/shared/abilities/create-staff-role.ts +++ b/packages/ocom-verification/acceptance-api/src/shared/abilities/create-staff-role.ts @@ -41,7 +41,7 @@ export function createStaffRoleAbility(): CreateStaffRole { }, }); - const mutationResult = response.data['staffRoleCreate'] as { status: MutationStatus; staffRole: StaffRoleResult | null } | undefined; + const mutationResult = response.data.staffRoleCreate as { status: MutationStatus; staffRole: StaffRoleResult | null } | undefined; if (mutationResult?.status?.success !== true) { throw new Error(String(mutationResult?.status?.errorMessage ?? 'Failed to create staff role')); } @@ -52,7 +52,7 @@ export function createStaffRoleAbility(): CreateStaffRole { } const persistedResponse = await graphql.execute(STAFF_ROLE_BY_ID_QUERY, { id: staffRoleId }); - const persistedRole = persistedResponse.data['staffRoleById'] as StaffRoleResult | null; + const persistedRole = persistedResponse.data.staffRoleById as StaffRoleResult | null; if (!persistedRole) { throw new Error(`Staff role ${staffRoleId} was not found on re-query; API backend did not persist the staff role`); } diff --git a/packages/ocom-verification/acceptance-api/src/shared/abilities/update-staff-role.ts b/packages/ocom-verification/acceptance-api/src/shared/abilities/update-staff-role.ts index 3e7c9ab89..f0f033fae 100644 --- a/packages/ocom-verification/acceptance-api/src/shared/abilities/update-staff-role.ts +++ b/packages/ocom-verification/acceptance-api/src/shared/abilities/update-staff-role.ts @@ -43,7 +43,7 @@ export function updateStaffRoleAbility(): UpdateStaffRole { }, }); - const mutationResult = response.data['staffRoleUpdate'] as { status: MutationStatus; staffRole: StaffRoleResult | null } | undefined; + const mutationResult = response.data.staffRoleUpdate as { status: MutationStatus; staffRole: StaffRoleResult | null } | undefined; if (mutationResult?.status?.success !== true) { throw new Error(String(mutationResult?.status?.errorMessage ?? 'Failed to update staff role')); } diff --git a/packages/ocom-verification/e2e-tests/src/contexts/staff-role/interactions/fill-staff-role-form.ts b/packages/ocom-verification/e2e-tests/src/contexts/staff-role/interactions/fill-staff-role-form.ts index 8e92518a4..f90bbd1d1 100644 --- a/packages/ocom-verification/e2e-tests/src/contexts/staff-role/interactions/fill-staff-role-form.ts +++ b/packages/ocom-verification/e2e-tests/src/contexts/staff-role/interactions/fill-staff-role-form.ts @@ -10,10 +10,10 @@ export const FillStaffRoleForm = (fields: Record) => Interaction.where(the`#actor fills the staff role form`, async (actor) => { const page = await staffPortalPageOf(actor); const formPage = formPageOn(page); - if (fields['roleName'] !== undefined) { - await formPage.fillRoleName(fields['roleName']); + if (fields.roleName !== undefined) { + await formPage.fillRoleName(fields.roleName); } - const enterpriseAppRole = fields['enterpriseAppRole']; + const enterpriseAppRole = fields.enterpriseAppRole; if (enterpriseAppRole) { await formPage.selectEnterpriseAppRole(enterpriseAppRole); } diff --git a/packages/ocom-verification/e2e-tests/src/contexts/staff-role/tasks/create-staff-role.ts b/packages/ocom-verification/e2e-tests/src/contexts/staff-role/tasks/create-staff-role.ts index 1b38a84e4..bc11c2073 100644 --- a/packages/ocom-verification/e2e-tests/src/contexts/staff-role/tasks/create-staff-role.ts +++ b/packages/ocom-verification/e2e-tests/src/contexts/staff-role/tasks/create-staff-role.ts @@ -13,7 +13,7 @@ export const DEFAULT_ENTERPRISE_APP_ROLE = 'Staff.CaseManager'; */ export const CreateStaffRoleViaForm = (fields: Record) => Task.where( - the`#actor creates a staff role named "${fields['roleName'] ?? ''}" via the staff portal`, + the`#actor creates a staff role named "${fields.roleName ?? ''}" via the staff portal`, OpenStaffRolesList(), RecordBaselineStaffRoleCount(), OpenCreateStaffRoleForm(), diff --git a/packages/ocom/persistence/src/datasources/domain/user/staff-role/staff-role.repository.test.ts b/packages/ocom/persistence/src/datasources/domain/user/staff-role/staff-role.repository.test.ts index 0c6515a5d..3c8dbf8a3 100644 --- a/packages/ocom/persistence/src/datasources/domain/user/staff-role/staff-role.repository.test.ts +++ b/packages/ocom/persistence/src/datasources/domain/user/staff-role/staff-role.repository.test.ts @@ -85,7 +85,7 @@ test.for(feature, ({ Scenario, Background, BeforeEachScenario }) => { }; Object.assign(ModelMock, { findById: vi.fn((id: string) => ({ - exec: vi.fn(() => (id === staffRoleDoc._id ? staffRoleDoc : null)), + exec: vi.fn(() => (String(id) === String(staffRoleDoc._id) ? staffRoleDoc : null)), })), findOne: vi.fn((query: { roleName?: string; enterpriseAppRole?: string; isDefault?: boolean }) => ({ exec: vi.fn(() => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c1b08443..92c3bf643 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -70,8 +70,8 @@ catalogs: specifier: 7.0.0-dev.20260428.1 version: 7.0.0-dev.20260428.1 '@vitest/coverage-istanbul': - specifier: 4.1.8 - version: 4.1.8 + specifier: 4.1.10 + version: 4.1.10 antd: specifier: 6.3.5 version: 6.3.5 @@ -91,8 +91,8 @@ catalogs: specifier: ^10.1.4 version: 10.3.0 mongoose: - specifier: 8.17.0 - version: 8.17.0 + specifier: 8.24.1 + version: 8.24.1 react: specifier: ^19.1.1 version: 19.2.0 @@ -100,8 +100,8 @@ catalogs: specifier: ^19.1.1 version: 19.2.0 react-router-dom: - specifier: 7.15.1 - version: 7.15.1 + specifier: 7.18.1 + version: 7.18.1 rimraf: specifier: 6.0.1 version: 6.0.1 @@ -118,14 +118,14 @@ catalogs: specifier: ^0.28.0 version: 0.28.0 vitest: - specifier: 4.1.8 - version: 4.1.8 + specifier: 4.1.10 + version: 4.1.10 overrides: - '@vitest/browser': 4.1.8 - '@vitest/browser-playwright': 4.1.8 + '@vitest/browser': 4.1.10 + '@vitest/browser-playwright': 4.1.10 happy-dom: 20.10.1 - axios: 1.16.0 + axios: 1.18.1 body-parser: 2.3.0 esbuild: 0.28.1 follow-redirects: ^1.16.0 @@ -133,14 +133,22 @@ overrides: jiti: 2.6.1 rollup: ^4.59.0 '@ant-design/pro-layout>path-to-regexp': ^8.4.0 - brace-expansion: 5.0.7 + brace-expansion: 5.0.8 diff@4.0.2: 4.0.4 '@protobufjs/codegen': 2.0.5 '@protobufjs/utf8': 1.1.1 + protobufjs@7.5.4: 7.6.5 + protobufjs@7.6.3: 7.6.5 serve-handler>minimatch: 3.1.5 + sirv: 3.0.2 + websocket-driver: 0.7.5 + '@pnpm/npm-conf': 3.0.2 + adm-zip: 0.6.0 + brace-expansion@2: 2.1.2 + immutable: 4.3.9 serialize-javascript@6.0.2: 7.0.5 serialize-javascript@7.0.4: 7.0.5 - svgo: ^3.3.3 + svgo: ^3.3.4 yaml@2.8.2: 2.8.3 yauzl@3.2.0: 3.2.1 qs: 6.15.2 @@ -160,15 +168,16 @@ overrides: ws@8.20.0: 8.21.0 playwright-core: 1.59.0 playwright: 1.59.0 - postcss: 8.5.10 + postcss: 8.5.23 protobufjs: 7.6.5 - ip-address: ^10.1.1 - fast-uri: ^4.0.1 + ip-address: ^10.2.1 + fast-uri: ^4.1.1 '@babel/plugin-transform-modules-systemjs': 7.29.4 '@babel/core': ^7.29.6 js-yaml: 4.3.0 js-yaml@3.14.2: 3.15.0 shell-quote@<1.8.4: 1.8.4 + '@opentelemetry/propagator-jaeger@1.30.1': 2.9.0 '@opentelemetry/exporter-prometheus@0.57.2': 0.217.0 '@opentelemetry/core@2.7.1': 2.8.0 ws: 8.21.0 @@ -177,10 +186,8 @@ overrides: form-data: ^4.0.6 webpack-dev-server>http-proxy-middleware: 3.0.7 joi: ^17.13.4 - brace-expansion@2: 2.0.3 dottie: 2.0.7 http-proxy-middleware: 3.0.7 - immutable: 3.8.3 launch-editor: ^2.14.1 react-router-dom@7.15.0>react-router: 7.15.1 sequelize: 6.37.8 @@ -200,7 +207,7 @@ importers: devDependencies: '@amiceli/vitest-cucumber': specifier: ^6.3.0 - version: 6.3.0(vitest@4.1.8) + version: 6.3.0(vitest@4.1.10) '@ant-design/cli': specifier: ^6.3.5 version: 6.3.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) @@ -210,6 +217,9 @@ importers: '@cellix/graphql-codegen': specifier: workspace:* version: link:packages/cellix/graphql-codegen + '@cellix/local-dev': + specifier: workspace:* + version: link:packages/cellix/local-dev '@graphql-codegen/cli': specifier: ^5.0.7 version: 5.0.7(@parcel/watcher@2.5.1)(@types/node@22.19.15)(graphql@16.12.0)(supports-color@8.1.1)(typescript@6.0.3) @@ -236,7 +246,7 @@ importers: version: 1.59.0 '@sonar/scan': specifier: ^4.3.0 - version: 4.3.2 + version: 4.3.2(supports-color@8.1.1) '@types/node': specifier: 'catalog:' version: 22.19.15 @@ -245,7 +255,7 @@ importers: version: 7.0.0-dev.20260428.1 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(supports-color@8.1.1)(vitest@4.1.8) + version: 4.1.10(supports-color@8.1.1)(vitest@4.1.10) chrome-devtools-mcp: specifier: ^1.3.0 version: 1.3.0 @@ -278,7 +288,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) apps/api: dependencies: @@ -351,7 +361,7 @@ importers: version: link:../../packages/ocom/local-dev-config '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) archunit: specifier: 'catalog:' version: 2.1.63 @@ -369,7 +379,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) apps/docs: dependencies: @@ -433,7 +443,7 @@ importers: version: 6.0.1(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) jsdom: specifier: ^26.1.0 version: 26.1.0 @@ -442,7 +452,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) apps/server-mongodb-memory-mock: dependencies: @@ -460,7 +470,7 @@ importers: version: 6.18.0 mongoose: specifier: 'catalog:' - version: 8.17.0(supports-color@8.1.1) + version: 8.24.1(supports-color@8.1.1) devDependencies: '@cellix/config-typescript': specifier: workspace:* @@ -498,7 +508,7 @@ importers: version: link:../../packages/cellix/local-dev '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -507,7 +517,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) apps/ui-community: dependencies: @@ -558,7 +568,7 @@ importers: version: 3.3.0(oidc-client-ts@3.4.1)(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@cellix/config-typescript': specifier: workspace:* @@ -583,7 +593,7 @@ importers: version: 10.4.2(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) '@storybook/addon-vitest': specifier: 'catalog:' - version: 10.4.2(@vitest/browser-playwright@4.1.8)(@vitest/browser@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8))(@vitest/runner@4.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.8) + version: 10.4.2(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10))(@vitest/runner@4.1.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.10) '@storybook/react': specifier: 10.4.2 version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@6.0.3) @@ -601,7 +611,10 @@ importers: version: 6.0.1(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) + autoprefixer: + specifier: ^10.4.22 + version: 10.4.22(postcss@8.5.23) esbuild: specifier: 0.28.1 version: 0.28.1 @@ -631,7 +644,7 @@ importers: version: 0.28.0(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) apps/ui-staff: dependencies: @@ -691,7 +704,7 @@ importers: version: 3.3.0(oidc-client-ts@3.4.1)(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@cellix/config-typescript': specifier: workspace:* @@ -713,7 +726,7 @@ importers: version: 6.0.1(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) esbuild: specifier: 0.28.1 version: 0.28.1 @@ -737,7 +750,7 @@ importers: version: 0.28.0(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/api-services-spec: devDependencies: @@ -773,7 +786,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/config-rolldown: devDependencies: @@ -785,7 +798,7 @@ importers: version: link:../config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -797,7 +810,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/config-typescript: {} @@ -808,16 +821,16 @@ importers: version: link:../config-typescript '@storybook/addon-vitest': specifier: 'catalog:' - version: 10.4.2(@vitest/browser-playwright@4.1.8)(@vitest/browser@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8))(@vitest/runner@4.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.8) + version: 10.4.2(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10))(@vitest/runner@4.1.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.10) '@vitest/browser-playwright': - specifier: 4.1.8 - version: 4.1.8(playwright@1.59.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8) + specifier: 4.1.10 + version: 4.1.10(playwright@1.59.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10) typescript: specifier: 'catalog:' version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/domain-seedwork: devDependencies: @@ -829,7 +842,7 @@ importers: version: link:../config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -838,7 +851,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/event-bus-seedwork-node: dependencies: @@ -857,7 +870,7 @@ importers: version: link:../config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -888,7 +901,7 @@ importers: devDependencies: '@amiceli/vitest-cucumber': specifier: ^6.3.0 - version: 6.3.0(vitest@4.1.8) + version: 6.3.0(vitest@4.1.10) '@cellix/config-typescript': specifier: workspace:* version: link:../config-typescript @@ -897,7 +910,7 @@ importers: version: link:../config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -906,7 +919,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/graphql-core: dependencies: @@ -925,7 +938,7 @@ importers: version: link:../config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -934,7 +947,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/local-dev: devDependencies: @@ -949,7 +962,7 @@ importers: version: 22.19.15 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -958,7 +971,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/mongoose-seedwork: dependencies: @@ -977,7 +990,7 @@ importers: version: link:../config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) mongodb: specifier: 'catalog:' version: 6.18.0 @@ -986,7 +999,7 @@ importers: version: 10.3.0(supports-color@8.1.1) mongoose: specifier: 'catalog:' - version: 8.17.0(supports-color@8.1.1) + version: 8.24.1(supports-color@8.1.1) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -995,7 +1008,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/serenity-framework: dependencies: @@ -1050,7 +1063,7 @@ importers: version: 19.2.7 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) playwright: specifier: 1.59.0 version: 1.59.0 @@ -1065,7 +1078,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/server-mongodb-memory-mock-seedwork: dependencies: @@ -1074,7 +1087,7 @@ importers: version: 10.3.0 mongoose: specifier: 'catalog:' - version: 8.17.0(supports-color@8.1.1) + version: 8.24.1(supports-color@8.1.1) devDependencies: '@cellix/config-typescript': specifier: workspace:* @@ -1115,7 +1128,7 @@ importers: version: 5.0.5 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -1124,7 +1137,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/service-blob-storage: dependencies: @@ -1146,7 +1159,7 @@ importers: version: link:../config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -1155,7 +1168,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/service-queue-storage: dependencies: @@ -1180,7 +1193,7 @@ importers: devDependencies: '@amiceli/vitest-cucumber': specifier: ^6.3.0 - version: 6.3.0(vitest@4.1.8) + version: 6.3.0(vitest@4.1.10) '@cellix/config-typescript': specifier: workspace:* version: link:../config-typescript @@ -1189,7 +1202,7 @@ importers: version: link:../config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) execa: specifier: ^9.6.0 version: 9.6.1 @@ -1201,7 +1214,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/ui-core: dependencies: @@ -1235,7 +1248,7 @@ importers: version: 10.4.2(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)) '@storybook/addon-vitest': specifier: 'catalog:' - version: 10.4.2(@vitest/browser-playwright@4.1.8)(@vitest/browser@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8))(@vitest/runner@4.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.8) + version: 10.4.2(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10))(@vitest/runner@4.1.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.10) '@storybook/react': specifier: 10.4.2 version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@6.0.3) @@ -1252,14 +1265,14 @@ importers: specifier: ^19.1.6 version: 19.2.3(@types/react@19.2.7) '@vitest/browser': - specifier: 4.1.8 - version: 4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8) + specifier: 4.1.10 + version: 4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10) '@vitest/browser-playwright': - specifier: 4.1.8 - version: 4.1.8(playwright@1.59.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8) + specifier: 4.1.10 + version: 4.1.10(playwright@1.59.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10) '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) jsdom: specifier: 'catalog:' version: 26.1.0 @@ -1268,7 +1281,7 @@ importers: version: 3.3.0(oidc-client-ts@3.4.1)(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -1280,7 +1293,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom-verification/acceptance-api: dependencies: @@ -1419,7 +1432,7 @@ importers: version: 3.3.0(oidc-client-ts@3.4.1)(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) std-env: specifier: ^4.0.0 version: 4.0.0 @@ -1471,7 +1484,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom-verification/e2e-tests: dependencies: @@ -1585,7 +1598,7 @@ importers: version: link:../../ocom-verification/archunit-tests '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -1594,7 +1607,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/context-spec: dependencies: @@ -1631,7 +1644,7 @@ importers: version: link:../../cellix/mongoose-seedwork mongoose: specifier: 'catalog:' - version: 8.17.0(supports-color@8.1.1) + version: 8.24.1(supports-color@8.1.1) devDependencies: '@cellix/archunit-tests': specifier: workspace:* @@ -1653,7 +1666,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/domain: dependencies: @@ -1705,7 +1718,7 @@ importers: version: 3.43.0 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -1714,7 +1727,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/event-handler: dependencies: @@ -1767,7 +1780,7 @@ importers: version: link:../../ocom-verification/archunit-tests '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -1776,7 +1789,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/graphql-handler: dependencies: @@ -1810,7 +1823,7 @@ importers: version: link:../../cellix/config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -1819,7 +1832,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/local-dev-config: dependencies: @@ -1838,7 +1851,7 @@ importers: version: 22.19.15 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -1847,7 +1860,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/persistence: dependencies: @@ -1871,7 +1884,7 @@ importers: version: 6.18.0 mongoose: specifier: 'catalog:' - version: 8.17.0(supports-color@8.1.1) + version: 8.24.1(supports-color@8.1.1) devDependencies: '@cellix/archunit-tests': specifier: workspace:* @@ -1887,7 +1900,7 @@ importers: version: link:../../ocom-verification/archunit-tests '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -1896,7 +1909,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/rest: dependencies: @@ -1949,7 +1962,7 @@ importers: version: 1.1.6 '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -1958,7 +1971,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/service-blob-storage: dependencies: @@ -1974,7 +1987,7 @@ importers: version: link:../../cellix/config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -1983,7 +1996,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/service-mongoose: dependencies: @@ -1995,7 +2008,7 @@ importers: version: link:../../cellix/mongoose-seedwork mongoose: specifier: 'catalog:' - version: 8.17.0(supports-color@8.1.1) + version: 8.24.1(supports-color@8.1.1) devDependencies: '@cellix/config-typescript': specifier: workspace:* @@ -2005,7 +2018,7 @@ importers: version: link:../../cellix/config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -2063,7 +2076,7 @@ importers: version: link:../../cellix/config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -2072,7 +2085,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/service-queue-storage: dependencies: @@ -2088,7 +2101,7 @@ importers: version: link:../../cellix/config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -2097,7 +2110,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/service-token-validation: dependencies: @@ -2116,7 +2129,7 @@ importers: version: link:../../cellix/config-vitest '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) rimraf: specifier: 'catalog:' version: 6.0.1 @@ -2125,7 +2138,7 @@ importers: version: 6.0.3 vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-community-route-accounts: dependencies: @@ -2167,7 +2180,7 @@ importers: version: 3.3.0(oidc-client-ts@3.4.1)(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@cellix/archunit-tests': specifier: workspace:* @@ -2192,7 +2205,7 @@ importers: version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(esbuild@0.28.1)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.28.1)) '@storybook/addon-vitest': specifier: 'catalog:' - version: 10.4.2(@vitest/browser-playwright@4.1.8)(@vitest/browser@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8))(@vitest/runner@4.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.8) + version: 10.4.2(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10))(@vitest/runner@4.1.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.10) '@storybook/react': specifier: 10.4.2 version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@6.0.3) @@ -2219,7 +2232,7 @@ importers: version: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-community-route-admin: dependencies: @@ -2261,7 +2274,7 @@ importers: version: 19.2.0(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@cellix/archunit-tests': specifier: workspace:* @@ -2286,7 +2299,7 @@ importers: version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(esbuild@0.28.1)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.28.1)) '@storybook/addon-vitest': specifier: 'catalog:' - version: 10.4.2(@vitest/browser-playwright@4.1.8)(@vitest/browser@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8))(@vitest/runner@4.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.8) + version: 10.4.2(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10))(@vitest/runner@4.1.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.10) '@storybook/react': specifier: ^10.4.2 version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@6.0.3) @@ -2313,7 +2326,7 @@ importers: version: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-community-route-root: dependencies: @@ -2356,7 +2369,7 @@ importers: version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(esbuild@0.28.1)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.28.1)) '@storybook/addon-vitest': specifier: 'catalog:' - version: 10.4.2(@vitest/browser-playwright@4.1.8)(@vitest/browser@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8))(@vitest/runner@4.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.8) + version: 10.4.2(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10))(@vitest/runner@4.1.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.10) '@storybook/react': specifier: 'catalog:' version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@6.0.3) @@ -2383,7 +2396,7 @@ importers: version: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-community-shared: dependencies: @@ -2413,7 +2426,7 @@ importers: version: 19.2.0(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@ant-design/icons': specifier: 'catalog:' @@ -2435,7 +2448,7 @@ importers: version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(esbuild@0.28.1)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.28.1)) '@storybook/addon-vitest': specifier: 'catalog:' - version: 10.4.2(@vitest/browser-playwright@4.1.8)(@vitest/browser@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8))(@vitest/runner@4.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.8) + version: 10.4.2(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10))(@vitest/runner@4.1.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.10) '@storybook/react': specifier: 'catalog:' version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@6.0.3) @@ -2462,7 +2475,7 @@ importers: version: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-shared: dependencies: @@ -2495,7 +2508,7 @@ importers: version: 3.3.0(oidc-client-ts@3.4.1)(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@cellix/archunit-tests': specifier: workspace:* @@ -2520,7 +2533,7 @@ importers: version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(esbuild@0.28.1)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.28.1)) '@storybook/addon-vitest': specifier: 'catalog:' - version: 10.4.2(@vitest/browser-playwright@4.1.8)(@vitest/browser@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8))(@vitest/runner@4.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.8) + version: 10.4.2(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10))(@vitest/runner@4.1.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.10) '@storybook/react': specifier: 'catalog:' version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@6.0.3) @@ -2534,11 +2547,11 @@ importers: specifier: ^19.1.6 version: 19.2.3(@types/react@19.2.7) '@vitest/browser': - specifier: 4.1.8 - version: 4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8) + specifier: 4.1.10 + version: 4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10) '@vitest/coverage-istanbul': specifier: 'catalog:' - version: 4.1.8(vitest@4.1.8) + version: 4.1.10(vitest@4.1.10) jsdom: specifier: 'catalog:' version: 26.1.0 @@ -2559,7 +2572,7 @@ importers: version: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-staff-route-community-management: dependencies: @@ -2577,7 +2590,7 @@ importers: version: 19.2.0(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@cellix/config-typescript': specifier: workspace:* @@ -2602,7 +2615,7 @@ importers: version: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-staff-route-finance: dependencies: @@ -2620,7 +2633,7 @@ importers: version: 19.2.0(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@cellix/config-typescript': specifier: workspace:* @@ -2645,7 +2658,7 @@ importers: version: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-staff-route-root: dependencies: @@ -2688,7 +2701,7 @@ importers: version: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-staff-route-tech-admin: dependencies: @@ -2706,7 +2719,7 @@ importers: version: 19.2.0(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@cellix/config-typescript': specifier: workspace:* @@ -2731,7 +2744,7 @@ importers: version: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-staff-route-user-management: dependencies: @@ -2758,7 +2771,7 @@ importers: version: 19.2.0(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@cellix/config-typescript': specifier: workspace:* @@ -2777,7 +2790,7 @@ importers: version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(esbuild@0.28.1)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.28.1)) '@storybook/addon-vitest': specifier: 'catalog:' - version: 10.4.2(@vitest/browser-playwright@4.1.8)(@vitest/browser@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8))(@vitest/runner@4.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.8) + version: 10.4.2(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10))(@vitest/runner@4.1.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.10) '@storybook/react': specifier: 'catalog:' version: 10.4.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(typescript@6.0.3) @@ -2804,7 +2817,7 @@ importers: version: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-staff-shared: dependencies: @@ -2834,7 +2847,7 @@ importers: version: 19.2.0(react@19.2.0) react-router-dom: specifier: 'catalog:' - version: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) devDependencies: '@cellix/config-typescript': specifier: workspace:* @@ -2865,7 +2878,7 @@ importers: version: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) vitest: specifier: 'catalog:' - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages: @@ -4065,217 +4078,217 @@ packages: resolution: {integrity: sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-cascade-layers@5.0.2': resolution: {integrity: sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-color-function-display-p3-linear@1.0.1': resolution: {integrity: sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-color-function@4.0.12': resolution: {integrity: sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-color-mix-function@3.0.12': resolution: {integrity: sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-color-mix-variadic-function-arguments@1.0.2': resolution: {integrity: sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-content-alt-text@2.0.8': resolution: {integrity: sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-contrast-color-function@2.0.12': resolution: {integrity: sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-exponential-functions@2.0.9': resolution: {integrity: sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-font-format-keywords@4.0.0': resolution: {integrity: sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-gamut-mapping@2.0.11': resolution: {integrity: sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-gradients-interpolation-method@5.0.12': resolution: {integrity: sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-hwb-function@4.0.12': resolution: {integrity: sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-ic-unit@4.0.4': resolution: {integrity: sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-initial@2.0.1': resolution: {integrity: sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-is-pseudo-class@5.0.3': resolution: {integrity: sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-light-dark-function@2.0.11': resolution: {integrity: sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-logical-float-and-clear@3.0.0': resolution: {integrity: sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-logical-overflow@2.0.0': resolution: {integrity: sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-logical-overscroll-behavior@2.0.0': resolution: {integrity: sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-logical-resize@3.0.0': resolution: {integrity: sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-logical-viewport-units@3.0.4': resolution: {integrity: sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-media-minmax@2.0.9': resolution: {integrity: sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5': resolution: {integrity: sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-nested-calc@4.0.0': resolution: {integrity: sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-normalize-display-values@4.0.0': resolution: {integrity: sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-oklab-function@4.0.12': resolution: {integrity: sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-progressive-custom-properties@4.2.1': resolution: {integrity: sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-random-function@2.0.1': resolution: {integrity: sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-relative-color-syntax@3.0.12': resolution: {integrity: sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-scope-pseudo-class@4.0.1': resolution: {integrity: sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-sign-functions@1.1.4': resolution: {integrity: sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-stepped-value-functions@4.0.9': resolution: {integrity: sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-text-decoration-shorthand@4.0.3': resolution: {integrity: sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-trigonometric-functions@4.0.9': resolution: {integrity: sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/postcss-unset-value@4.0.0': resolution: {integrity: sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/selector-resolve-nested@3.1.0': resolution: {integrity: sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==} @@ -4293,7 +4306,7 @@ packages: resolution: {integrity: sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@ctrl/tinycolor@3.6.1': resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} @@ -5312,6 +5325,12 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/core@2.9.0': + resolution: {integrity: sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/exporter-logs-otlp-grpc@0.57.2': resolution: {integrity: sha512-eovEy10n3umjKJl2Ey6TLzikPE+W4cUQ4gCwgGP1RqzTGtgDra0WjIqdy29ohiUKfvmbiL3MndZww58xfIvyFw==} engines: {node: '>=14'} @@ -5444,9 +5463,9 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/propagator-jaeger@1.30.1': - resolution: {integrity: sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg==} - engines: {node: '>=14'} + '@opentelemetry/propagator-jaeger@2.9.0': + resolution: {integrity: sha512-4mYGty27rYvSM0jtp1ZUOqd3LfVRCYg9H5G9OFzSx5HViYToU21MFhWfco7x1HwXr7ER8yGOiCIHZUwjPksc0Q==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -6145,8 +6164,8 @@ packages: resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} engines: {node: '>=12.22.0'} - '@pnpm/npm-conf@2.3.1': - resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + '@pnpm/npm-conf@3.0.2': + resolution: {integrity: sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==} engines: {node: '>=12'} '@polka/url@1.0.0-next.29': @@ -6807,8 +6826,8 @@ packages: '@storybook/addon-vitest@10.4.2': resolution: {integrity: sha512-gq1ZVr0IOLgiS2PzaJqHxKLczwrXvA5g3W2k/FVJA19fJNFNUut1IyQCQRSJTXLLXbnNaa8I0wjGGc2BoLarJg==} peerDependencies: - '@vitest/browser': 4.1.8 - '@vitest/browser-playwright': 4.1.8 + '@vitest/browser': 4.1.10 + '@vitest/browser-playwright': 4.1.10 '@vitest/runner': ^3.0.0 || ^4.0.0 storybook: ^10.4.2 vitest: ^3.0.0 || ^4.0.0 @@ -7352,30 +7371,30 @@ packages: babel-plugin-react-compiler: optional: true - '@vitest/browser-playwright@4.1.8': - resolution: {integrity: sha512-SR7FqgegaexEg73xvf3ArtygXegagMdXnL0EZMpxrWvvhQxvicD/E8p0ib0J91riPRtQUViyh67Xjw3NqvyhVg==} + '@vitest/browser-playwright@4.1.10': + resolution: {integrity: sha512-nMoXGEiRpT7m3W7NsbvrM2aKNwiNHZf+zEpUCvMteGjZFvfT96Q9fh7QyB98dvDWXiKvrLxA7bJ1mCOOv+JQPw==} peerDependencies: playwright: 1.59.0 - vitest: 4.1.8 + vitest: 4.1.10 - '@vitest/browser@4.1.8': - resolution: {integrity: sha512-u21VzX07HzlJYpFgkxmjEXar/tG2UqWGgyGG/46SrrPc7rSdCTPw5vuowopO9CIqF8UCUQzDFdbVnNpw6N0BfQ==} + '@vitest/browser@4.1.10': + resolution: {integrity: sha512-UDwuWGwXj646CBx/bQHOaJSX7np0I8JL/UKQYa1e4QrVHH8VdWtx8eaOuf8sy0ShwDgR6NjJAsp5eF6vjF6qng==} peerDependencies: - vitest: 4.1.8 + vitest: 4.1.10 - '@vitest/coverage-istanbul@4.1.8': - resolution: {integrity: sha512-/h514nMZMKI6foh21mVgO1zlCH6pdDamwKMbla1uLU2GMxTlfp0PQMxovWozmzQdCIQYZ2XXEzg2zNZom2zAOg==} + '@vitest/coverage-istanbul@4.1.10': + resolution: {integrity: sha512-AyNJ5pQRFqCX7pwB9PSTmoVKPaZ4H5IEVJfJsT+q1DYkXvZMEFYgJlyk5sfStmt9rVYRyYYRRsuBeImCOc39ww==} peerDependencies: - vitest: 4.1.8 + vitest: 4.1.10 '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - '@vitest/expect@4.1.8': - resolution: {integrity: sha512-h3nDO677RDLEGlBxyQ5CW8RlMThSKSRLUePLOx09gNIWRL40edgA1GCZSZgf1W55MFAG6/Sw14KeaAnqv0NKdQ==} + '@vitest/expect@4.1.10': + resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==} - '@vitest/mocker@4.1.8': - resolution: {integrity: sha512-LEiN/xe4OSIbKe9HQIp5OC24agGD9J5CnmMgsLohVVoOPWL9a2sBoR6VBx43jQZb7Kr1l4RCuyCJzcAa0+dojw==} + '@vitest/mocker@4.1.10': + resolution: {integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==} peerDependencies: msw: ^2.4.9 vite: 8.0.16 @@ -7388,26 +7407,26 @@ packages: '@vitest/pretty-format@3.2.4': resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/pretty-format@4.1.8': - resolution: {integrity: sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==} + '@vitest/pretty-format@4.1.10': + resolution: {integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==} - '@vitest/runner@4.1.8': - resolution: {integrity: sha512-EmVxeBAfMJvycdjd6Hm+RbFBbA9fKvo0Kx37hNpBYoYeavH3RNsBXWDooR1mgD52dCrxIIuP7UotpfiwOikvcg==} + '@vitest/runner@4.1.10': + resolution: {integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==} - '@vitest/snapshot@4.1.8': - resolution: {integrity: sha512-acfZboRmAIf05DEKcBQy33VXojFJjtUdLyo7oOmV9kebb2xdU01UknNiPuPZoJZQyO7DF0gZdTGTpeAzET9QPQ==} + '@vitest/snapshot@4.1.10': + resolution: {integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==} '@vitest/spy@3.2.4': resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} - '@vitest/spy@4.1.8': - resolution: {integrity: sha512-6EevtBp6OZOPF7bmz36HrGMeP3txgVSrgebWxHOafDXGkhIzfXK14f8KF6MuFfgXXUeHxmpD3BQxkV00/3s5mA==} + '@vitest/spy@4.1.10': + resolution: {integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==} '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@vitest/utils@4.1.8': - resolution: {integrity: sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==} + '@vitest/utils@4.1.10': + resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -7537,9 +7556,13 @@ packages: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} - adm-zip@0.5.16: - resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} - engines: {node: '>=12.0'} + adm-zip@0.6.0: + resolution: {integrity: sha512-XleryMhbuksdKtofnWZ9Sk+4CUTbms4Mb/EU32SZwToAyZ5RgVos/ki8n+yr0LWHOGKuakbXTuuYNHLQjhddgg==} + engines: {node: '>=14.0'} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} @@ -7769,7 +7792,7 @@ packages: engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} @@ -7783,8 +7806,8 @@ packages: resolution: {integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==} engines: {node: '>=4'} - axios@1.16.0: - resolution: {integrity: sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==} + axios@1.18.1: + resolution: {integrity: sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==} azurite@3.35.0: resolution: {integrity: sha512-GzKmi+/5U0baNRjEEVtBMLpLuIKEJ0uSh0VWBzOI4qe4f5ziJyoZQmcTO7QhxZTF6+rphj7TZS3PtJY7uiiacA==} @@ -7898,12 +7921,12 @@ packages: resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} engines: {node: '>=14.16'} - brace-expansion@2.0.3: - resolution: {integrity: sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==} + brace-expansion@2.1.2: + resolution: {integrity: sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==} - brace-expansion@5.0.7: - resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} - engines: {node: 18 || 20 || >=22} + brace-expansion@5.0.8: + resolution: {integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==} + engines: {node: 20 || >=22} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} @@ -8467,19 +8490,19 @@ packages: resolution: {integrity: sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 css-declaration-sorter@7.3.0: resolution: {integrity: sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 css-has-pseudo@7.0.3: resolution: {integrity: sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 css-loader@6.11.0: resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} @@ -8522,7 +8545,7 @@ packages: resolution: {integrity: sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} @@ -8557,25 +8580,25 @@ packages: resolution: {integrity: sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 cssnano-preset-default@6.1.2: resolution: {integrity: sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 cssnano-utils@4.0.2: resolution: {integrity: sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 cssnano@6.1.2: resolution: {integrity: sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} @@ -9124,8 +9147,8 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-uri@4.0.1: - resolution: {integrity: sha512-j0VntHrljgRKiWdbjL1xECG44OQu5sb7en4b8z2CcRvtDUEG5DAvkXlllrRhvbABR+m2mUiSgYBPvDj/PzB0dg==} + fast-uri@4.1.1: + resolution: {integrity: sha512-YPOs1zD5TG2+EZt+r88LwF6mclA7TPkpwMP7ZN3TO2HiHS8TXvq7QA/17iJsV9dubcLo/f8eEYqMBruyQV21hQ==} fast-xml-builder@1.2.0: resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} @@ -9714,6 +9737,10 @@ packages: https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -9751,7 +9778,7 @@ packages: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -9777,9 +9804,8 @@ packages: immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - immutable@3.8.3: - resolution: {integrity: sha512-AUY/VyX0E5XlibOmWt10uabJzam1zlYjwiEgQSDc5+UIkFNaF9WM0JxXKaNMGf+F/ffUF+7kRKXM9A7C0xXqMg==} - engines: {node: '>=0.10.0'} + immutable@4.3.9: + resolution: {integrity: sha512-ObHy4YN7ycwZOUCLI1/6svfyAFu7vL8RhAvVu/bh/RZW9EPlOyDaQ9jDQWCtdqzaXUjgXZCW1migtHE7YI7UGQ==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} @@ -9847,8 +9873,8 @@ packages: invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - ip-address@10.2.0: - resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} + ip-address@10.3.1: + resolution: {integrity: sha512-1e9d3kb97NHJTIJDZW9rKqW2h6+dFa50Dy0fpPSMQp2ADje5gvKsXmdiK6dwY5t76TaTt5+P5N1Y/LoToIxP6g==} engines: {node: '>= 12'} ipaddr.js@1.9.1: @@ -10987,6 +11013,33 @@ packages: socks: optional: true + mongodb@6.20.0: + resolution: {integrity: sha512-Tl6MEIU3K4Rq3TSHd+sZQqRBoGlFsOgNrH5ltAcFBV62Re3Fd+FcaVf8uSEQFOJ51SDowDVttBTONMfoYWrWlQ==} + engines: {node: '>=16.20.1'} + peerDependencies: + '@aws-sdk/credential-providers': ^3.188.0 + '@mongodb-js/zstd': ^1.1.0 || ^2.0.0 + gcp-metadata: ^5.2.0 + kerberos: ^2.0.1 + mongodb-client-encryption: '>=6.0.0 <7' + snappy: ^7.3.2 + socks: ^2.7.1 + peerDependenciesMeta: + '@aws-sdk/credential-providers': + optional: true + '@mongodb-js/zstd': + optional: true + gcp-metadata: + optional: true + kerberos: + optional: true + mongodb-client-encryption: + optional: true + snappy: + optional: true + socks: + optional: true + mongodb@6.21.0: resolution: {integrity: sha512-URyb/VXMjJ4da46OeSXg+puO39XH9DeQpWCslifrRn9JWugy0D+DvvBvkm2WxmHe61O/H19JM66p1z7RHVkZ6A==} engines: {node: '>=16.20.1'} @@ -11014,8 +11067,8 @@ packages: socks: optional: true - mongoose@8.17.0: - resolution: {integrity: sha512-mxW6TBPHViORfNYOFXCVOnT4d5aRr+CgDxTs1ViYXfuHzNpkelgJQrQa+Lz6hofoEQISnKlXv1L3ZnHyJRkhfA==} + mongoose@8.24.1: + resolution: {integrity: sha512-UpHBA0l5kHyKJQFjmBaFYQFo5sgz1DK0TRqDkOyBLYbqiIbKKhIvBpHWBXqeo0rgW4kGI1UhhAw+kTQZoj1BdA==} engines: {node: '>=16.20.1'} morgan@1.10.1: @@ -11065,8 +11118,8 @@ packages: resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==} engines: {node: '>=12.0.0'} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + nanoid@3.3.16: + resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -11566,163 +11619,163 @@ packages: resolution: {integrity: sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-calc@9.0.1: resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-clamp@4.1.0: resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} engines: {node: '>=7.6.0'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-color-functional-notation@7.0.12: resolution: {integrity: sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-color-hex-alpha@10.0.0: resolution: {integrity: sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-color-rebeccapurple@10.0.0: resolution: {integrity: sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-colormin@6.1.0: resolution: {integrity: sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-convert-values@6.1.0: resolution: {integrity: sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-custom-media@11.0.6: resolution: {integrity: sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-custom-properties@14.0.6: resolution: {integrity: sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-custom-selectors@8.0.5: resolution: {integrity: sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-dir-pseudo-class@9.0.1: resolution: {integrity: sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-discard-comments@6.0.2: resolution: {integrity: sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-discard-duplicates@6.0.3: resolution: {integrity: sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-discard-empty@6.0.3: resolution: {integrity: sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-discard-overridden@6.0.2: resolution: {integrity: sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-discard-unused@6.0.5: resolution: {integrity: sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-double-position-gradients@6.0.4: resolution: {integrity: sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-focus-visible@10.0.1: resolution: {integrity: sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-focus-within@9.0.1: resolution: {integrity: sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-font-variant@5.0.0: resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-gap-properties@6.0.0: resolution: {integrity: sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-image-set-function@7.0.0: resolution: {integrity: sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-js@4.1.0: resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-lab-function@7.0.12: resolution: {integrity: sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-load-config@6.0.1: resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} engines: {node: '>= 18'} peerDependencies: jiti: 2.6.1 - postcss: 8.5.10 + postcss: 8.5.23 tsx: ^4.8.1 yaml: 2.8.3 peerDependenciesMeta: @@ -11739,216 +11792,216 @@ packages: resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} engines: {node: '>= 14.15.0'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 webpack: ^5.105.4 postcss-logical@8.1.0: resolution: {integrity: sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-merge-idents@6.0.3: resolution: {integrity: sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-merge-longhand@6.0.5: resolution: {integrity: sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-merge-rules@6.1.1: resolution: {integrity: sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-minify-font-values@6.1.0: resolution: {integrity: sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-minify-gradients@6.0.3: resolution: {integrity: sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-minify-params@6.1.0: resolution: {integrity: sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-minify-selectors@6.0.4: resolution: {integrity: sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-modules-extract-imports@3.1.0: resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-modules-local-by-default@4.2.0: resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-modules-scope@3.2.1: resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-modules-values@4.0.0: resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-nested@6.2.0: resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-nesting@13.0.2: resolution: {integrity: sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-normalize-charset@6.0.2: resolution: {integrity: sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-normalize-display-values@6.0.2: resolution: {integrity: sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-normalize-positions@6.0.2: resolution: {integrity: sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-normalize-repeat-style@6.0.2: resolution: {integrity: sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-normalize-string@6.0.2: resolution: {integrity: sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-normalize-timing-functions@6.0.2: resolution: {integrity: sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-normalize-unicode@6.1.0: resolution: {integrity: sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-normalize-url@6.0.2: resolution: {integrity: sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-normalize-whitespace@6.0.2: resolution: {integrity: sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-opacity-percentage@3.0.0: resolution: {integrity: sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-ordered-values@6.0.2: resolution: {integrity: sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-overflow-shorthand@6.0.0: resolution: {integrity: sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-page-break@3.0.4: resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-place@10.0.0: resolution: {integrity: sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-preset-env@10.4.0: resolution: {integrity: sha512-2kqpOthQ6JhxqQq1FSAAZGe9COQv75Aw8WbsOvQVNJ2nSevc9Yx/IKZGuZ7XJ+iOTtVon7LfO7ELRzg8AZ+sdw==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-pseudo-class-any-link@10.0.1: resolution: {integrity: sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-reduce-idents@6.0.3: resolution: {integrity: sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-reduce-initial@6.1.0: resolution: {integrity: sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-reduce-transforms@6.0.2: resolution: {integrity: sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-replace-overflow-wrap@4.0.0: resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-not@8.0.1: resolution: {integrity: sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==} engines: {node: '>=18'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser@6.1.2: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} @@ -11962,19 +12015,19 @@ packages: resolution: {integrity: sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==} engines: {node: '>=14.0.0'} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-svgo@6.0.3: resolution: {integrity: sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-unique-selectors@6.0.4: resolution: {integrity: sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -11983,10 +12036,10 @@ packages: resolution: {integrity: sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss@8.5.10: - resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} engines: {node: ^10 || ^12 || >=14} pretty-error@4.0.0: @@ -12200,8 +12253,8 @@ packages: peerDependencies: react: '>=15' - react-router-dom@7.15.1: - resolution: {integrity: sha512-AzF62gjY6U9rkMq4RfP/r2EVtQ7DMfNMjyOp/flLTCrtRylLiK4wT4pSq6O8rOXZ2eXdZYJPEYe+ifomiv+Igg==} + react-router-dom@7.18.1: + resolution: {integrity: sha512-KaZh+X/6UtEp28x51AUYZDMg9NGoz2ja3dNHa+ta/tk40vCzKhQ/RypCWBMLbmDr6//E24Vv5uPsrqXFozdkAg==} engines: {node: '>=20.0.0'} peerDependencies: react: '>=18' @@ -12212,8 +12265,8 @@ packages: peerDependencies: react: '>=15' - react-router@7.15.1: - resolution: {integrity: sha512-R8rl9HhgikFYoPJymnUtPXWbnDb3oget6lQnfIoupbt61aT9aOhRkDsY2XRhZRyX1Z/8a5sL74fXmFNm3NRK5A==} + react-router@7.18.1: + resolution: {integrity: sha512-GDLgg3i3uM0aeJO3Fm+TCS+sDQ7gu12T6x0qdTEzcwqEfleci7JwugVNIF3U//0FWKnJT7ptG+20B2jfDqnZAg==} engines: {node: '>=20.0.0'} peerDependencies: react: '>=18' @@ -12776,10 +12829,6 @@ packages: signedsource@1.0.0: resolution: {integrity: sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==} - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - sirv@3.0.2: resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} engines: {node: '>=18'} @@ -13079,7 +13128,7 @@ packages: resolution: {integrity: sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: 8.5.10 + postcss: 8.5.23 stylis@4.3.6: resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} @@ -13108,8 +13157,8 @@ packages: svg-parser@2.0.4: resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - svgo@3.3.3: - resolution: {integrity: sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==} + svgo@3.3.4: + resolution: {integrity: sha512-GsNRis4e8jxn2Y9ENz/8lbJ93CstG8svtMnuRaHbiF2LTJ5tK0/q3t/URPq9Zc7zVWBJnNnJMIp6bevK7bSmNg==} engines: {node: '>=14.0.0'} hasBin: true @@ -13245,10 +13294,6 @@ packages: resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} engines: {node: '>=18'} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.17: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} @@ -13734,20 +13779,20 @@ packages: yaml: optional: true - vitest@4.1.8: - resolution: {integrity: sha512-flY6ScbCIt9HThs+C5HS7jvGOB560DJtk/Z15IQROTA6zEy49Nh8T/dofWTQL+n3vswqn87sbJNiuqw1SDp5Ig==} + vitest@4.1.10: + resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==} 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.8 - '@vitest/browser-preview': 4.1.8 - '@vitest/browser-webdriverio': 4.1.8 - '@vitest/coverage-istanbul': 4.1.8 - '@vitest/coverage-v8': 4.1.8 - '@vitest/ui': 4.1.8 + '@vitest/browser-playwright': 4.1.10 + '@vitest/browser-preview': 4.1.10 + '@vitest/browser-webdriverio': 4.1.10 + '@vitest/coverage-istanbul': 4.1.10 + '@vitest/coverage-v8': 4.1.10 + '@vitest/ui': 4.1.10 happy-dom: 20.10.1 jsdom: '*' vite: 8.0.16 @@ -13877,8 +13922,8 @@ packages: webpack: optional: true - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + websocket-driver@0.7.5: + resolution: {integrity: sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==} engines: {node: '>=0.8.0'} websocket-extensions@0.1.4: @@ -14238,13 +14283,13 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@amiceli/vitest-cucumber@6.3.0(vitest@4.1.8)': + '@amiceli/vitest-cucumber@6.3.0(vitest@4.1.10)': dependencies: callsites: 4.2.0 minimist: 1.2.8 parsecurrency: 1.1.1 ts-morph: 27.0.2 - vitest: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@ant-design/cli@6.3.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: @@ -14516,7 +14561,7 @@ snapshots: chalk: 4.1.2 fb-watchman: 2.0.2 graphql: 16.12.0 - immutable: 3.8.3 + immutable: 4.3.9 invariant: 2.2.4 nullthrows: 1.1.1 relay-runtime: 12.0.0 @@ -14750,7 +14795,7 @@ snapshots: '@azure/ms-rest-js@1.11.2': dependencies: '@azure/core-auth': 1.10.1 - axios: 1.16.0 + axios: 1.18.1(supports-color@8.1.1) form-data: 4.0.6 tough-cookie: 4.1.3 tslib: 1.14.1 @@ -15625,9 +15670,9 @@ snapshots: '@babel/template@7.28.6': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@babel/template@7.29.7': dependencies: @@ -15760,251 +15805,251 @@ 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.10)': + '@csstools/postcss-alpha-function@1.0.1(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-cascade-layers@5.0.2(postcss@8.5.10)': + '@csstools/postcss-cascade-layers@5.0.2(postcss@8.5.23)': dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - '@csstools/postcss-color-function-display-p3-linear@1.0.1(postcss@8.5.10)': + '@csstools/postcss-color-function-display-p3-linear@1.0.1(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-color-function@4.0.12(postcss@8.5.10)': + '@csstools/postcss-color-function@4.0.12(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-color-mix-function@3.0.12(postcss@8.5.10)': + '@csstools/postcss-color-mix-function@3.0.12(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-color-mix-variadic-function-arguments@1.0.2(postcss@8.5.10)': + '@csstools/postcss-color-mix-variadic-function-arguments@1.0.2(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-content-alt-text@2.0.8(postcss@8.5.10)': + '@csstools/postcss-content-alt-text@2.0.8(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-contrast-color-function@2.0.12(postcss@8.5.10)': + '@csstools/postcss-contrast-color-function@2.0.12(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-exponential-functions@2.0.9(postcss@8.5.10)': + '@csstools/postcss-exponential-functions@2.0.9(postcss@8.5.23)': 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.10 + postcss: 8.5.23 - '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.10)': + '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.23)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.11(postcss@8.5.10)': + '@csstools/postcss-gamut-mapping@2.0.11(postcss@8.5.23)': 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.10 + postcss: 8.5.23 - '@csstools/postcss-gradients-interpolation-method@5.0.12(postcss@8.5.10)': + '@csstools/postcss-gradients-interpolation-method@5.0.12(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-hwb-function@4.0.12(postcss@8.5.10)': + '@csstools/postcss-hwb-function@4.0.12(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-ic-unit@4.0.4(postcss@8.5.10)': + '@csstools/postcss-ic-unit@4.0.4(postcss@8.5.23)': dependencies: - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - '@csstools/postcss-initial@2.0.1(postcss@8.5.10)': + '@csstools/postcss-initial@2.0.1(postcss@8.5.23)': dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.10)': + '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.23)': dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - '@csstools/postcss-light-dark-function@2.0.11(postcss@8.5.10)': + '@csstools/postcss-light-dark-function@2.0.11(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.10)': + '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.23)': dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.10)': + '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.23)': dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.10)': + '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.23)': dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.10)': + '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.23)': dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@3.0.4(postcss@8.5.10)': + '@csstools/postcss-logical-viewport-units@3.0.4(postcss@8.5.23)': dependencies: '@csstools/css-tokenizer': 3.0.4 - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-media-minmax@2.0.9(postcss@8.5.10)': + '@csstools/postcss-media-minmax@2.0.9(postcss@8.5.23)': 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.10 + postcss: 8.5.23 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5(postcss@8.5.10)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5(postcss@8.5.23)': 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.10 + postcss: 8.5.23 - '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.10)': + '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.23)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.10)': + '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.23)': dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.12(postcss@8.5.10)': + '@csstools/postcss-oklab-function@4.0.12(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-progressive-custom-properties@4.2.1(postcss@8.5.10)': + '@csstools/postcss-progressive-custom-properties@4.2.1(postcss@8.5.23)': dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - '@csstools/postcss-random-function@2.0.1(postcss@8.5.10)': + '@csstools/postcss-random-function@2.0.1(postcss@8.5.23)': 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.10 + postcss: 8.5.23 - '@csstools/postcss-relative-color-syntax@3.0.12(postcss@8.5.10)': + '@csstools/postcss-relative-color-syntax@3.0.12(postcss@8.5.23)': 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.10)': + '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.23)': dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.10)': + '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.23)': 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.10 + postcss: 8.5.23 - '@csstools/postcss-stepped-value-functions@4.0.9(postcss@8.5.10)': + '@csstools/postcss-stepped-value-functions@4.0.9(postcss@8.5.23)': 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.10 + postcss: 8.5.23 - '@csstools/postcss-text-decoration-shorthand@4.0.3(postcss@8.5.10)': + '@csstools/postcss-text-decoration-shorthand@4.0.3(postcss@8.5.23)': dependencies: '@csstools/color-helpers': 5.1.0 - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.9(postcss@8.5.10)': + '@csstools/postcss-trigonometric-functions@4.0.9(postcss@8.5.23)': 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.10 + postcss: 8.5.23 - '@csstools/postcss-unset-value@4.0.0(postcss@8.5.10)': + '@csstools/postcss-unset-value@4.0.0(postcss@8.5.23)': dependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.1)': dependencies: @@ -16014,9 +16059,9 @@ snapshots: dependencies: postcss-selector-parser: 7.1.1 - '@csstools/utilities@2.0.0(postcss@8.5.10)': + '@csstools/utilities@2.0.0(postcss@8.5.23)': dependencies: - postcss: 8.5.10 + postcss: 8.5.23 '@ctrl/tinycolor@3.6.1': {} @@ -16274,14 +16319,14 @@ snapshots: copy-webpack-plugin: 11.0.0(webpack@5.105.4(esbuild@0.28.1)) css-loader: 6.11.0(webpack@5.105.4(esbuild@0.28.1)) css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(esbuild@0.28.1)(webpack@5.105.4(esbuild@0.28.1)) - cssnano: 6.1.2(postcss@8.5.10) + cssnano: 6.1.2(postcss@8.5.23) file-loader: 6.2.0(webpack@5.105.4(esbuild@0.28.1)) html-minifier-terser: 7.2.0 mini-css-extract-plugin: 2.9.4(webpack@5.105.4(esbuild@0.28.1)) null-loader: 4.0.1(webpack@5.105.4(esbuild@0.28.1)) - postcss: 8.5.10 - postcss-loader: 7.3.4(postcss@8.5.10)(typescript@6.0.3)(webpack@5.105.4(esbuild@0.28.1)) - postcss-preset-env: 10.4.0(postcss@8.5.10) + postcss: 8.5.23 + postcss-loader: 7.3.4(postcss@8.5.23)(typescript@6.0.3)(webpack@5.105.4(esbuild@0.28.1)) + postcss-preset-env: 10.4.0(postcss@8.5.23) terser-webpack-plugin: 5.4.0(esbuild@0.28.1)(webpack@5.105.4(esbuild@0.28.1)) tslib: 2.8.1 url-loader: 4.1.1(file-loader@6.2.0(webpack@5.105.4(esbuild@0.28.1)))(webpack@5.105.4(esbuild@0.28.1)) @@ -16366,9 +16411,9 @@ snapshots: '@docusaurus/cssnano-preset@3.10.1': dependencies: - cssnano-preset-advanced: 6.1.2(postcss@8.5.10) - postcss: 8.5.10 - postcss-sort-media-queries: 5.2.0(postcss@8.5.10) + cssnano-preset-advanced: 6.1.2(postcss@8.5.23) + postcss: 8.5.23 + postcss-sort-media-queries: 5.2.0(postcss@8.5.23) tslib: 2.8.1 '@docusaurus/logger@3.10.1': @@ -16791,7 +16836,7 @@ snapshots: infima: 0.2.0-alpha.45 lodash: 4.18.1 nprogress: 0.2.0 - postcss: 8.5.10 + postcss: 8.5.23 prism-react-renderer: 2.4.1(react@19.2.0) prismjs: 1.30.0 react: 19.2.0 @@ -17464,10 +17509,10 @@ snapshots: '@graphql-tools/graphql-tag-pluck@8.3.26(graphql@16.12.0)': dependencies: '@babel/core': 7.29.6(supports-color@8.1.1) - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.7 '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.29.6) - '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/traverse': 7.29.7(supports-color@8.1.1) + '@babel/types': 7.29.7 '@graphql-tools/utils': 10.11.0(graphql@16.12.0) graphql: 16.12.0 tslib: 2.8.1 @@ -17873,6 +17918,11 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/exporter-logs-otlp-grpc@0.57.2(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.14.4 @@ -18077,10 +18127,10 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger@1.30.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/propagator-jaeger@2.9.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': dependencies: @@ -18165,7 +18215,7 @@ snapshots: '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/propagator-b3': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-jaeger': 2.9.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) semver: 7.7.4 @@ -18612,7 +18662,7 @@ snapshots: dependencies: graceful-fs: 4.2.10 - '@pnpm/npm-conf@2.3.1': + '@pnpm/npm-conf@3.0.2': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 @@ -19183,7 +19233,7 @@ snapshots: dependencies: '@serenity-js/core': 3.43.0 agent-base: 7.1.4 - axios: 1.16.0 + axios: 1.18.1(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 11.3.6 @@ -19198,7 +19248,7 @@ snapshots: '@serenity-js/core': 3.43.0 '@serenity-js/rest': 3.43.0 ansi-regex: 5.0.1 - axios: 1.16.0 + axios: 1.18.1(supports-color@8.1.1) chalk: 4.1.2 find-java-home: 2.0.0 progress: 2.0.3 @@ -19248,10 +19298,10 @@ snapshots: color: 5.0.3 text-hex: 1.0.0 - '@sonar/scan@4.3.2': + '@sonar/scan@4.3.2(supports-color@8.1.1)': dependencies: - adm-zip: 0.5.16 - axios: 1.16.0 + adm-zip: 0.6.0 + axios: 1.18.1(supports-color@8.1.1) commander: 13.1.0 fs-extra: 11.3.2 hpagent: 1.2.0 @@ -19265,6 +19315,7 @@ snapshots: - bare-abort-controller - debug - react-native-b4a + - supports-color '@standard-schema/spec@1.1.0': {} @@ -19297,16 +19348,16 @@ snapshots: dependencies: storybook: 10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@storybook/addon-vitest@10.4.2(@vitest/browser-playwright@4.1.8)(@vitest/browser@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8))(@vitest/runner@4.1.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.8)': + '@storybook/addon-vitest@10.4.2(@vitest/browser-playwright@4.1.10)(@vitest/browser@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10))(@vitest/runner@4.1.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vitest@4.1.10)': dependencies: '@storybook/global': 5.0.0 '@storybook/icons': 2.0.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0) storybook: 10.4.2(@testing-library/dom@10.4.1)(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) optionalDependencies: - '@vitest/browser': 4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8) - '@vitest/browser-playwright': 4.1.8(playwright@1.59.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8) - '@vitest/runner': 4.1.8 - vitest: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/browser': 4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10) + '@vitest/browser-playwright': 4.1.10(playwright@1.59.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10) + '@vitest/runner': 4.1.10 + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - react - react-dom @@ -19462,7 +19513,7 @@ snapshots: '@svgr/core': 8.1.0(typescript@6.0.3) cosmiconfig: 8.3.6(typescript@6.0.3) deepmerge: 4.3.1 - svgo: 3.3.3 + svgo: 3.3.4 transitivePeerDependencies: - typescript @@ -19868,13 +19919,13 @@ snapshots: '@rolldown/pluginutils': 1.0.0-rc.7 vite: 8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/browser-playwright@4.1.8(playwright@1.59.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8)': + '@vitest/browser-playwright@4.1.10(playwright@1.59.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10)': dependencies: - '@vitest/browser': 4.1.8(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8) - '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/browser': 4.1.10(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10) + '@vitest/mocker': 4.1.10(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) playwright: 1.59.0 tinyrainbow: 3.1.0 - vitest: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - bufferutil - msw @@ -19882,29 +19933,29 @@ snapshots: - vite optional: true - '@vitest/browser-playwright@4.1.8(playwright@1.59.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8)': + '@vitest/browser-playwright@4.1.10(playwright@1.59.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10)': dependencies: - '@vitest/browser': 4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8) - '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/browser': 4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10) + '@vitest/mocker': 4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) playwright: 1.59.0 tinyrainbow: 3.1.0 - vitest: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser@4.1.8(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8)': + '@vitest/browser@4.1.10(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10)': dependencies: '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/utils': 4.1.8 + '@vitest/mocker': 4.1.10(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/utils': 4.1.10 magic-string: 0.30.21 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.1.0 - vitest: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) ws: 8.21.0 transitivePeerDependencies: - bufferutil @@ -19913,16 +19964,16 @@ snapshots: - vite optional: true - '@vitest/browser@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8)': + '@vitest/browser@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10)': dependencies: '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/utils': 4.1.8 + '@vitest/mocker': 4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/utils': 4.1.10 magic-string: 0.30.21 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.1.0 - vitest: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) ws: 8.21.0 transitivePeerDependencies: - bufferutil @@ -19930,7 +19981,7 @@ snapshots: - utf-8-validate - vite - '@vitest/coverage-istanbul@4.1.8(supports-color@8.1.1)(vitest@4.1.8)': + '@vitest/coverage-istanbul@4.1.10(supports-color@8.1.1)(vitest@4.1.10)': dependencies: '@babel/core': 7.29.6(supports-color@8.1.1) '@istanbuljs/schema': 0.1.3 @@ -19942,11 +19993,11 @@ snapshots: magicast: 0.5.2 obug: 2.1.1 tinyrainbow: 3.1.0 - vitest: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - supports-color - '@vitest/coverage-istanbul@4.1.8(vitest@4.1.8)': + '@vitest/coverage-istanbul@4.1.10(vitest@4.1.10)': dependencies: '@babel/core': 7.29.6(supports-color@8.1.1) '@istanbuljs/schema': 0.1.3 @@ -19958,7 +20009,7 @@ snapshots: magicast: 0.5.2 obug: 2.1.1 tinyrainbow: 3.1.0 - vitest: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - supports-color @@ -19970,26 +20021,26 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/expect@4.1.8': + '@vitest/expect@4.1.10': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.8 - '@vitest/utils': 4.1.8 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.8(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.10(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@vitest/spy': 4.1.8 + '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: vite: 8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/mocker@4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@vitest/spy': 4.1.8 + '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: @@ -19999,19 +20050,19 @@ snapshots: dependencies: tinyrainbow: 2.0.0 - '@vitest/pretty-format@4.1.8': + '@vitest/pretty-format@4.1.10': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.8': + '@vitest/runner@4.1.10': dependencies: - '@vitest/utils': 4.1.8 + '@vitest/utils': 4.1.10 pathe: 2.0.3 - '@vitest/snapshot@4.1.8': + '@vitest/snapshot@4.1.10': dependencies: - '@vitest/pretty-format': 4.1.8 - '@vitest/utils': 4.1.8 + '@vitest/pretty-format': 4.1.10 + '@vitest/utils': 4.1.10 magic-string: 0.30.21 pathe: 2.0.3 @@ -20019,7 +20070,7 @@ snapshots: dependencies: tinyspy: 4.0.4 - '@vitest/spy@4.1.8': {} + '@vitest/spy@4.1.10': {} '@vitest/utils@3.2.4': dependencies: @@ -20027,9 +20078,9 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 - '@vitest/utils@4.1.8': + '@vitest/utils@4.1.10': dependencies: - '@vitest/pretty-format': 4.1.8 + '@vitest/pretty-format': 4.1.10 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -20186,7 +20237,13 @@ snapshots: address@1.2.2: {} - adm-zip@0.5.16: {} + adm-zip@0.6.0: {} + + agent-base@6.0.2(supports-color@8.1.1): + dependencies: + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color agent-base@7.1.4: {} @@ -20226,7 +20283,7 @@ snapshots: ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 4.0.1 + fast-uri: 4.1.1 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -20481,14 +20538,14 @@ snapshots: auto-bind@4.0.0: {} - autoprefixer@10.4.22(postcss@8.5.10): + autoprefixer@10.4.22(postcss@8.5.23): dependencies: browserslist: 4.28.1 caniuse-lite: 1.0.30001777 fraction.js: 5.3.4 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -20499,20 +20556,22 @@ snapshots: axe-core@4.11.0: {} - axios@1.16.0: + axios@1.18.1(supports-color@8.1.1): dependencies: follow-redirects: 1.16.0(debug@4.4.3) form-data: 4.0.6 + https-proxy-agent: 5.0.1(supports-color@8.1.1) proxy-from-env: 2.1.0 transitivePeerDependencies: - debug + - supports-color azurite@3.35.0(supports-color@8.1.1): dependencies: '@azure/ms-rest-js': 1.11.2 applicationinsights: 2.9.8 args: 5.0.3 - axios: 1.16.0 + axios: 1.18.1(supports-color@8.1.1) etag: 1.8.1 express: 4.22.2 fs-extra: 11.3.2 @@ -20559,7 +20618,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.29.6): dependencies: - '@babel/compat-data': 7.29.0 + '@babel/compat-data': 7.29.7 '@babel/core': 7.29.6(supports-color@8.1.1) '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.29.6) semver: 6.3.1 @@ -20665,11 +20724,11 @@ snapshots: widest-line: 4.0.1 wrap-ansi: 8.1.0 - brace-expansion@2.0.3: + brace-expansion@2.1.2: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.7: + brace-expansion@5.0.8: dependencies: balanced-match: 4.0.4 @@ -21282,30 +21341,30 @@ snapshots: dependencies: type-fest: 1.4.0 - css-blank-pseudo@7.0.1(postcss@8.5.10): + css-blank-pseudo@7.0.1(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - css-declaration-sorter@7.3.0(postcss@8.5.10): + css-declaration-sorter@7.3.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - css-has-pseudo@7.0.3(postcss@8.5.10): + css-has-pseudo@7.0.3(postcss@8.5.23): dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 css-loader@6.11.0(webpack@5.105.4(esbuild@0.28.1)): dependencies: - icss-utils: 5.1.0(postcss@8.5.10) - postcss: 8.5.10 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.10) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.10) - postcss-modules-scope: 3.2.1(postcss@8.5.10) - postcss-modules-values: 4.0.0(postcss@8.5.10) + icss-utils: 5.1.0(postcss@8.5.23) + postcss: 8.5.23 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.23) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.23) + postcss-modules-scope: 3.2.1(postcss@8.5.23) + postcss-modules-values: 4.0.0(postcss@8.5.23) postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: @@ -21314,9 +21373,9 @@ snapshots: css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(esbuild@0.28.1)(webpack@5.105.4(esbuild@0.28.1)): dependencies: '@jridgewell/trace-mapping': 0.3.31 - cssnano: 6.1.2(postcss@8.5.10) + cssnano: 6.1.2(postcss@8.5.23) jest-worker: 29.7.0 - postcss: 8.5.10 + postcss: 8.5.23 schema-utils: 4.3.3 serialize-javascript: 7.0.5 webpack: 5.105.4(esbuild@0.28.1) @@ -21324,9 +21383,9 @@ snapshots: clean-css: 5.3.3 esbuild: 0.28.1 - css-prefers-color-scheme@10.0.0(postcss@8.5.10): + css-prefers-color-scheme@10.0.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 css-select@4.3.0: dependencies: @@ -21362,60 +21421,60 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-advanced@6.1.2(postcss@8.5.10): + cssnano-preset-advanced@6.1.2(postcss@8.5.23): dependencies: - autoprefixer: 10.4.22(postcss@8.5.10) + autoprefixer: 10.4.22(postcss@8.5.23) browserslist: 4.28.1 - cssnano-preset-default: 6.1.2(postcss@8.5.10) - postcss: 8.5.10 - postcss-discard-unused: 6.0.5(postcss@8.5.10) - postcss-merge-idents: 6.0.3(postcss@8.5.10) - postcss-reduce-idents: 6.0.3(postcss@8.5.10) - postcss-zindex: 6.0.2(postcss@8.5.10) + cssnano-preset-default: 6.1.2(postcss@8.5.23) + postcss: 8.5.23 + postcss-discard-unused: 6.0.5(postcss@8.5.23) + postcss-merge-idents: 6.0.3(postcss@8.5.23) + postcss-reduce-idents: 6.0.3(postcss@8.5.23) + postcss-zindex: 6.0.2(postcss@8.5.23) - cssnano-preset-default@6.1.2(postcss@8.5.10): + cssnano-preset-default@6.1.2(postcss@8.5.23): dependencies: browserslist: 4.28.1 - css-declaration-sorter: 7.3.0(postcss@8.5.10) - cssnano-utils: 4.0.2(postcss@8.5.10) - postcss: 8.5.10 - postcss-calc: 9.0.1(postcss@8.5.10) - postcss-colormin: 6.1.0(postcss@8.5.10) - postcss-convert-values: 6.1.0(postcss@8.5.10) - postcss-discard-comments: 6.0.2(postcss@8.5.10) - postcss-discard-duplicates: 6.0.3(postcss@8.5.10) - postcss-discard-empty: 6.0.3(postcss@8.5.10) - postcss-discard-overridden: 6.0.2(postcss@8.5.10) - postcss-merge-longhand: 6.0.5(postcss@8.5.10) - postcss-merge-rules: 6.1.1(postcss@8.5.10) - postcss-minify-font-values: 6.1.0(postcss@8.5.10) - postcss-minify-gradients: 6.0.3(postcss@8.5.10) - postcss-minify-params: 6.1.0(postcss@8.5.10) - postcss-minify-selectors: 6.0.4(postcss@8.5.10) - postcss-normalize-charset: 6.0.2(postcss@8.5.10) - postcss-normalize-display-values: 6.0.2(postcss@8.5.10) - postcss-normalize-positions: 6.0.2(postcss@8.5.10) - postcss-normalize-repeat-style: 6.0.2(postcss@8.5.10) - postcss-normalize-string: 6.0.2(postcss@8.5.10) - postcss-normalize-timing-functions: 6.0.2(postcss@8.5.10) - postcss-normalize-unicode: 6.1.0(postcss@8.5.10) - postcss-normalize-url: 6.0.2(postcss@8.5.10) - postcss-normalize-whitespace: 6.0.2(postcss@8.5.10) - postcss-ordered-values: 6.0.2(postcss@8.5.10) - postcss-reduce-initial: 6.1.0(postcss@8.5.10) - postcss-reduce-transforms: 6.0.2(postcss@8.5.10) - postcss-svgo: 6.0.3(postcss@8.5.10) - postcss-unique-selectors: 6.0.4(postcss@8.5.10) - - cssnano-utils@4.0.2(postcss@8.5.10): - dependencies: - postcss: 8.5.10 - - cssnano@6.1.2(postcss@8.5.10): - dependencies: - cssnano-preset-default: 6.1.2(postcss@8.5.10) + css-declaration-sorter: 7.3.0(postcss@8.5.23) + cssnano-utils: 4.0.2(postcss@8.5.23) + postcss: 8.5.23 + postcss-calc: 9.0.1(postcss@8.5.23) + postcss-colormin: 6.1.0(postcss@8.5.23) + postcss-convert-values: 6.1.0(postcss@8.5.23) + postcss-discard-comments: 6.0.2(postcss@8.5.23) + postcss-discard-duplicates: 6.0.3(postcss@8.5.23) + postcss-discard-empty: 6.0.3(postcss@8.5.23) + postcss-discard-overridden: 6.0.2(postcss@8.5.23) + postcss-merge-longhand: 6.0.5(postcss@8.5.23) + postcss-merge-rules: 6.1.1(postcss@8.5.23) + postcss-minify-font-values: 6.1.0(postcss@8.5.23) + postcss-minify-gradients: 6.0.3(postcss@8.5.23) + postcss-minify-params: 6.1.0(postcss@8.5.23) + postcss-minify-selectors: 6.0.4(postcss@8.5.23) + postcss-normalize-charset: 6.0.2(postcss@8.5.23) + postcss-normalize-display-values: 6.0.2(postcss@8.5.23) + postcss-normalize-positions: 6.0.2(postcss@8.5.23) + postcss-normalize-repeat-style: 6.0.2(postcss@8.5.23) + postcss-normalize-string: 6.0.2(postcss@8.5.23) + postcss-normalize-timing-functions: 6.0.2(postcss@8.5.23) + postcss-normalize-unicode: 6.1.0(postcss@8.5.23) + postcss-normalize-url: 6.0.2(postcss@8.5.23) + postcss-normalize-whitespace: 6.0.2(postcss@8.5.23) + postcss-ordered-values: 6.0.2(postcss@8.5.23) + postcss-reduce-initial: 6.1.0(postcss@8.5.23) + postcss-reduce-transforms: 6.0.2(postcss@8.5.23) + postcss-svgo: 6.0.3(postcss@8.5.23) + postcss-unique-selectors: 6.0.4(postcss@8.5.23) + + cssnano-utils@4.0.2(postcss@8.5.23): + dependencies: + postcss: 8.5.23 + + cssnano@6.1.2(postcss@8.5.23): + dependencies: + cssnano-preset-default: 6.1.2(postcss@8.5.23) lilconfig: 3.1.3 - postcss: 8.5.10 + postcss: 8.5.23 csso@5.0.5: dependencies: @@ -21810,7 +21869,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.4 es-to-primitive@1.3.0: dependencies: @@ -21993,7 +22052,7 @@ snapshots: express-rate-limit@8.5.1(express@4.22.2): dependencies: express: 4.22.2 - ip-address: 10.2.0 + ip-address: 10.3.1 express@4.22.2: dependencies: @@ -22051,7 +22110,7 @@ snapshots: fast-json-stable-stringify@2.1.0: {} - fast-uri@4.0.1: {} + fast-uri@4.1.1: {} fast-xml-builder@1.2.0: dependencies: @@ -22076,7 +22135,7 @@ snapshots: faye-websocket@0.11.4: dependencies: - websocket-driver: 0.7.4 + websocket-driver: 0.7.5 fb-watchman@2.0.2: dependencies: @@ -22830,6 +22889,13 @@ snapshots: https-browserify@1.0.0: {} + https-proxy-agent@5.0.1(supports-color@8.1.1): + dependencies: + agent-base: 6.0.2(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) + transitivePeerDependencies: + - supports-color + https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 @@ -22857,9 +22923,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.10): + icss-utils@5.1.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 ieee754@1.2.1: {} @@ -22874,7 +22940,7 @@ snapshots: immediate@3.0.6: {} - immutable@3.8.3: {} + immutable@4.3.9: {} import-fresh@3.3.1: dependencies: @@ -22947,7 +23013,7 @@ snapshots: dependencies: loose-envify: 1.4.0 - ip-address@10.2.0: {} + ip-address@10.3.1: {} ipaddr.js@1.9.1: {} @@ -23639,8 +23705,8 @@ snapshots: magicast@0.5.2: dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 source-map-js: 1.2.1 make-dir@2.1.0: @@ -23655,7 +23721,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.4 + semver: 7.8.0 map-cache@0.2.2: {} @@ -24243,19 +24309,19 @@ snapshots: minimatch@10.2.4: dependencies: - brace-expansion: 5.0.7 + brace-expansion: 5.0.8 minimatch@10.2.5: dependencies: - brace-expansion: 5.0.7 + brace-expansion: 5.0.8 minimatch@3.1.5: dependencies: - brace-expansion: 5.0.7 + brace-expansion: 5.0.8 minimatch@9.0.9: dependencies: - brace-expansion: 2.0.3 + brace-expansion: 2.1.2 minimist@1.2.8: {} @@ -24366,17 +24432,23 @@ snapshots: bson: 6.10.4 mongodb-connection-string-url: 3.0.2 + mongodb@6.20.0: + dependencies: + '@mongodb-js/saslprep': 1.3.2 + bson: 6.10.4 + mongodb-connection-string-url: 3.0.2 + mongodb@6.21.0: dependencies: '@mongodb-js/saslprep': 1.3.2 bson: 6.10.4 mongodb-connection-string-url: 3.0.2 - mongoose@8.17.0(supports-color@8.1.1): + mongoose@8.24.1(supports-color@8.1.1): dependencies: bson: 6.10.4 kareem: 2.6.3 - mongodb: 6.18.0 + mongodb: 6.20.0 mpath: 0.9.0 mquery: 5.0.0(supports-color@8.1.1) ms: 2.1.3 @@ -24451,7 +24523,7 @@ snapshots: dependencies: lru-cache: 7.18.3 - nanoid@3.3.11: {} + nanoid@3.3.16: {} native-duplexpair@1.0.0: {} @@ -25046,429 +25118,429 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-attribute-case-insensitive@7.0.1(postcss@8.5.10): + postcss-attribute-case-insensitive@7.0.1(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - postcss-calc@9.0.1(postcss@8.5.10): + postcss-calc@9.0.1(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-clamp@4.1.0(postcss@8.5.10): + postcss-clamp@4.1.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.12(postcss@8.5.10): + postcss-color-functional-notation@7.0.12(postcss@8.5.23): 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - postcss-color-hex-alpha@10.0.0(postcss@8.5.10): + postcss-color-hex-alpha@10.0.0(postcss@8.5.23): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-color-rebeccapurple@10.0.0(postcss@8.5.10): + postcss-color-rebeccapurple@10.0.0(postcss@8.5.23): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-colormin@6.1.0(postcss@8.5.10): + postcss-colormin@6.1.0(postcss@8.5.23): dependencies: browserslist: 4.28.1 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-convert-values@6.1.0(postcss@8.5.10): + postcss-convert-values@6.1.0(postcss@8.5.23): dependencies: browserslist: 4.28.1 - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.6(postcss@8.5.10): + postcss-custom-media@11.0.6(postcss@8.5.23): 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.10 + postcss: 8.5.23 - postcss-custom-properties@14.0.6(postcss@8.5.10): + postcss-custom-properties@14.0.6(postcss@8.5.23): 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.10) - postcss: 8.5.10 + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.5(postcss@8.5.10): + postcss-custom-selectors@8.0.5(postcss@8.5.23): 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.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - postcss-dir-pseudo-class@9.0.1(postcss@8.5.10): + postcss-dir-pseudo-class@9.0.1(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - postcss-discard-comments@6.0.2(postcss@8.5.10): + postcss-discard-comments@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss-discard-duplicates@6.0.3(postcss@8.5.10): + postcss-discard-duplicates@6.0.3(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss-discard-empty@6.0.3(postcss@8.5.10): + postcss-discard-empty@6.0.3(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss-discard-overridden@6.0.2(postcss@8.5.10): + postcss-discard-overridden@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss-discard-unused@6.0.5(postcss@8.5.10): + postcss-discard-unused@6.0.5(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 6.1.2 - postcss-double-position-gradients@6.0.4(postcss@8.5.10): + postcss-double-position-gradients@6.0.4(postcss@8.5.23): dependencies: - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-focus-visible@10.0.1(postcss@8.5.10): + postcss-focus-visible@10.0.1(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - postcss-focus-within@9.0.1(postcss@8.5.10): + postcss-focus-within@9.0.1(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - postcss-font-variant@5.0.0(postcss@8.5.10): + postcss-font-variant@5.0.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss-gap-properties@6.0.0(postcss@8.5.10): + postcss-gap-properties@6.0.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss-image-set-function@7.0.0(postcss@8.5.10): + postcss-image-set-function@7.0.0(postcss@8.5.23): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-import@15.1.0(postcss@8.5.10): + postcss-import@15.1.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.11 - postcss-js@4.1.0(postcss@8.5.10): + postcss-js@4.1.0(postcss@8.5.23): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.10 + postcss: 8.5.23 - postcss-lab-function@7.0.12(postcss@8.5.10): + postcss-lab-function@7.0.12(postcss@8.5.23): 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.10) - '@csstools/utilities': 2.0.0(postcss@8.5.10) - postcss: 8.5.10 + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/utilities': 2.0.0(postcss@8.5.23) + postcss: 8.5.23 - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0)(yaml@2.8.3): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.23)(tsx@4.21.0)(yaml@2.8.3): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.6.1 - postcss: 8.5.10 + postcss: 8.5.23 tsx: 4.21.0 yaml: 2.8.3 - postcss-loader@7.3.4(postcss@8.5.10)(typescript@6.0.3)(webpack@5.105.4(esbuild@0.28.1)): + postcss-loader@7.3.4(postcss@8.5.23)(typescript@6.0.3)(webpack@5.105.4(esbuild@0.28.1)): dependencies: cosmiconfig: 8.3.6(typescript@6.0.3) jiti: 2.6.1 - postcss: 8.5.10 + postcss: 8.5.23 semver: 7.7.4 webpack: 5.105.4(esbuild@0.28.1) transitivePeerDependencies: - typescript - postcss-logical@8.1.0(postcss@8.5.10): + postcss-logical@8.1.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-merge-idents@6.0.3(postcss@8.5.10): + postcss-merge-idents@6.0.3(postcss@8.5.23): dependencies: - cssnano-utils: 4.0.2(postcss@8.5.10) - postcss: 8.5.10 + cssnano-utils: 4.0.2(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-merge-longhand@6.0.5(postcss@8.5.10): + postcss-merge-longhand@6.0.5(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - stylehacks: 6.1.1(postcss@8.5.10) + stylehacks: 6.1.1(postcss@8.5.23) - postcss-merge-rules@6.1.1(postcss@8.5.10): + postcss-merge-rules@6.1.1(postcss@8.5.23): dependencies: browserslist: 4.28.1 caniuse-api: 3.0.0 - cssnano-utils: 4.0.2(postcss@8.5.10) - postcss: 8.5.10 + cssnano-utils: 4.0.2(postcss@8.5.23) + postcss: 8.5.23 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@6.1.0(postcss@8.5.10): + postcss-minify-font-values@6.1.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-minify-gradients@6.0.3(postcss@8.5.10): + postcss-minify-gradients@6.0.3(postcss@8.5.23): dependencies: colord: 2.9.3 - cssnano-utils: 4.0.2(postcss@8.5.10) - postcss: 8.5.10 + cssnano-utils: 4.0.2(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-minify-params@6.1.0(postcss@8.5.10): + postcss-minify-params@6.1.0(postcss@8.5.23): dependencies: browserslist: 4.28.1 - cssnano-utils: 4.0.2(postcss@8.5.10) - postcss: 8.5.10 + cssnano-utils: 4.0.2(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-minify-selectors@6.0.4(postcss@8.5.10): + postcss-minify-selectors@6.0.4(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 6.1.2 - postcss-modules-extract-imports@3.1.0(postcss@8.5.10): + postcss-modules-extract-imports@3.1.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss-modules-local-by-default@4.2.0(postcss@8.5.10): + postcss-modules-local-by-default@4.2.0(postcss@8.5.23): dependencies: - icss-utils: 5.1.0(postcss@8.5.10) - postcss: 8.5.10 + icss-utils: 5.1.0(postcss@8.5.23) + postcss: 8.5.23 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.10): + postcss-modules-scope@3.2.1(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - postcss-modules-values@4.0.0(postcss@8.5.10): + postcss-modules-values@4.0.0(postcss@8.5.23): dependencies: - icss-utils: 5.1.0(postcss@8.5.10) - postcss: 8.5.10 + icss-utils: 5.1.0(postcss@8.5.23) + postcss: 8.5.23 - postcss-nested@6.2.0(postcss@8.5.10): + postcss-nested@6.2.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 6.1.2 - postcss-nesting@13.0.2(postcss@8.5.10): + postcss-nesting@13.0.2(postcss@8.5.23): 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.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - postcss-normalize-charset@6.0.2(postcss@8.5.10): + postcss-normalize-charset@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss-normalize-display-values@6.0.2(postcss@8.5.10): + postcss-normalize-display-values@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-normalize-positions@6.0.2(postcss@8.5.10): + postcss-normalize-positions@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@6.0.2(postcss@8.5.10): + postcss-normalize-repeat-style@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-normalize-string@6.0.2(postcss@8.5.10): + postcss-normalize-string@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@6.0.2(postcss@8.5.10): + postcss-normalize-timing-functions@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@6.1.0(postcss@8.5.10): + postcss-normalize-unicode@6.1.0(postcss@8.5.23): dependencies: browserslist: 4.28.1 - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-normalize-url@6.0.2(postcss@8.5.10): + postcss-normalize-url@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@6.0.2(postcss@8.5.10): + postcss-normalize-whitespace@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-opacity-percentage@3.0.0(postcss@8.5.10): + postcss-opacity-percentage@3.0.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss-ordered-values@6.0.2(postcss@8.5.10): + postcss-ordered-values@6.0.2(postcss@8.5.23): dependencies: - cssnano-utils: 4.0.2(postcss@8.5.10) - postcss: 8.5.10 + cssnano-utils: 4.0.2(postcss@8.5.23) + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-overflow-shorthand@6.0.0(postcss@8.5.10): + postcss-overflow-shorthand@6.0.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-page-break@3.0.4(postcss@8.5.10): + postcss-page-break@3.0.4(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss-place@10.0.0(postcss@8.5.10): + postcss-place@10.0.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-preset-env@10.4.0(postcss@8.5.10): - dependencies: - '@csstools/postcss-alpha-function': 1.0.1(postcss@8.5.10) - '@csstools/postcss-cascade-layers': 5.0.2(postcss@8.5.10) - '@csstools/postcss-color-function': 4.0.12(postcss@8.5.10) - '@csstools/postcss-color-function-display-p3-linear': 1.0.1(postcss@8.5.10) - '@csstools/postcss-color-mix-function': 3.0.12(postcss@8.5.10) - '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.2(postcss@8.5.10) - '@csstools/postcss-content-alt-text': 2.0.8(postcss@8.5.10) - '@csstools/postcss-contrast-color-function': 2.0.12(postcss@8.5.10) - '@csstools/postcss-exponential-functions': 2.0.9(postcss@8.5.10) - '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.10) - '@csstools/postcss-gamut-mapping': 2.0.11(postcss@8.5.10) - '@csstools/postcss-gradients-interpolation-method': 5.0.12(postcss@8.5.10) - '@csstools/postcss-hwb-function': 4.0.12(postcss@8.5.10) - '@csstools/postcss-ic-unit': 4.0.4(postcss@8.5.10) - '@csstools/postcss-initial': 2.0.1(postcss@8.5.10) - '@csstools/postcss-is-pseudo-class': 5.0.3(postcss@8.5.10) - '@csstools/postcss-light-dark-function': 2.0.11(postcss@8.5.10) - '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.10) - '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.10) - '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.10) - '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.10) - '@csstools/postcss-logical-viewport-units': 3.0.4(postcss@8.5.10) - '@csstools/postcss-media-minmax': 2.0.9(postcss@8.5.10) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.5(postcss@8.5.10) - '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.10) - '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.10) - '@csstools/postcss-oklab-function': 4.0.12(postcss@8.5.10) - '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.10) - '@csstools/postcss-random-function': 2.0.1(postcss@8.5.10) - '@csstools/postcss-relative-color-syntax': 3.0.12(postcss@8.5.10) - '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.10) - '@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.10) - '@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.10) - '@csstools/postcss-text-decoration-shorthand': 4.0.3(postcss@8.5.10) - '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.10) - '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.10) - autoprefixer: 10.4.22(postcss@8.5.10) + postcss-preset-env@10.4.0(postcss@8.5.23): + dependencies: + '@csstools/postcss-alpha-function': 1.0.1(postcss@8.5.23) + '@csstools/postcss-cascade-layers': 5.0.2(postcss@8.5.23) + '@csstools/postcss-color-function': 4.0.12(postcss@8.5.23) + '@csstools/postcss-color-function-display-p3-linear': 1.0.1(postcss@8.5.23) + '@csstools/postcss-color-mix-function': 3.0.12(postcss@8.5.23) + '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.2(postcss@8.5.23) + '@csstools/postcss-content-alt-text': 2.0.8(postcss@8.5.23) + '@csstools/postcss-contrast-color-function': 2.0.12(postcss@8.5.23) + '@csstools/postcss-exponential-functions': 2.0.9(postcss@8.5.23) + '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.23) + '@csstools/postcss-gamut-mapping': 2.0.11(postcss@8.5.23) + '@csstools/postcss-gradients-interpolation-method': 5.0.12(postcss@8.5.23) + '@csstools/postcss-hwb-function': 4.0.12(postcss@8.5.23) + '@csstools/postcss-ic-unit': 4.0.4(postcss@8.5.23) + '@csstools/postcss-initial': 2.0.1(postcss@8.5.23) + '@csstools/postcss-is-pseudo-class': 5.0.3(postcss@8.5.23) + '@csstools/postcss-light-dark-function': 2.0.11(postcss@8.5.23) + '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.23) + '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.23) + '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.23) + '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.23) + '@csstools/postcss-logical-viewport-units': 3.0.4(postcss@8.5.23) + '@csstools/postcss-media-minmax': 2.0.9(postcss@8.5.23) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.5(postcss@8.5.23) + '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.23) + '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.23) + '@csstools/postcss-oklab-function': 4.0.12(postcss@8.5.23) + '@csstools/postcss-progressive-custom-properties': 4.2.1(postcss@8.5.23) + '@csstools/postcss-random-function': 2.0.1(postcss@8.5.23) + '@csstools/postcss-relative-color-syntax': 3.0.12(postcss@8.5.23) + '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.23) + '@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.23) + '@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.23) + '@csstools/postcss-text-decoration-shorthand': 4.0.3(postcss@8.5.23) + '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.23) + '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.23) + autoprefixer: 10.4.22(postcss@8.5.23) browserslist: 4.28.1 - css-blank-pseudo: 7.0.1(postcss@8.5.10) - css-has-pseudo: 7.0.3(postcss@8.5.10) - css-prefers-color-scheme: 10.0.0(postcss@8.5.10) + css-blank-pseudo: 7.0.1(postcss@8.5.23) + css-has-pseudo: 7.0.3(postcss@8.5.23) + css-prefers-color-scheme: 10.0.0(postcss@8.5.23) cssdb: 8.4.3 - postcss: 8.5.10 - postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.10) - postcss-clamp: 4.1.0(postcss@8.5.10) - postcss-color-functional-notation: 7.0.12(postcss@8.5.10) - postcss-color-hex-alpha: 10.0.0(postcss@8.5.10) - postcss-color-rebeccapurple: 10.0.0(postcss@8.5.10) - postcss-custom-media: 11.0.6(postcss@8.5.10) - postcss-custom-properties: 14.0.6(postcss@8.5.10) - postcss-custom-selectors: 8.0.5(postcss@8.5.10) - postcss-dir-pseudo-class: 9.0.1(postcss@8.5.10) - postcss-double-position-gradients: 6.0.4(postcss@8.5.10) - postcss-focus-visible: 10.0.1(postcss@8.5.10) - postcss-focus-within: 9.0.1(postcss@8.5.10) - postcss-font-variant: 5.0.0(postcss@8.5.10) - postcss-gap-properties: 6.0.0(postcss@8.5.10) - postcss-image-set-function: 7.0.0(postcss@8.5.10) - postcss-lab-function: 7.0.12(postcss@8.5.10) - postcss-logical: 8.1.0(postcss@8.5.10) - postcss-nesting: 13.0.2(postcss@8.5.10) - postcss-opacity-percentage: 3.0.0(postcss@8.5.10) - postcss-overflow-shorthand: 6.0.0(postcss@8.5.10) - postcss-page-break: 3.0.4(postcss@8.5.10) - postcss-place: 10.0.0(postcss@8.5.10) - postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.10) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.10) - postcss-selector-not: 8.0.1(postcss@8.5.10) - - postcss-pseudo-class-any-link@10.0.1(postcss@8.5.10): - dependencies: - postcss: 8.5.10 + postcss: 8.5.23 + postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.23) + postcss-clamp: 4.1.0(postcss@8.5.23) + postcss-color-functional-notation: 7.0.12(postcss@8.5.23) + postcss-color-hex-alpha: 10.0.0(postcss@8.5.23) + postcss-color-rebeccapurple: 10.0.0(postcss@8.5.23) + postcss-custom-media: 11.0.6(postcss@8.5.23) + postcss-custom-properties: 14.0.6(postcss@8.5.23) + postcss-custom-selectors: 8.0.5(postcss@8.5.23) + postcss-dir-pseudo-class: 9.0.1(postcss@8.5.23) + postcss-double-position-gradients: 6.0.4(postcss@8.5.23) + postcss-focus-visible: 10.0.1(postcss@8.5.23) + postcss-focus-within: 9.0.1(postcss@8.5.23) + postcss-font-variant: 5.0.0(postcss@8.5.23) + postcss-gap-properties: 6.0.0(postcss@8.5.23) + postcss-image-set-function: 7.0.0(postcss@8.5.23) + postcss-lab-function: 7.0.12(postcss@8.5.23) + postcss-logical: 8.1.0(postcss@8.5.23) + postcss-nesting: 13.0.2(postcss@8.5.23) + postcss-opacity-percentage: 3.0.0(postcss@8.5.23) + postcss-overflow-shorthand: 6.0.0(postcss@8.5.23) + postcss-page-break: 3.0.4(postcss@8.5.23) + postcss-place: 10.0.0(postcss@8.5.23) + postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.23) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.23) + postcss-selector-not: 8.0.1(postcss@8.5.23) + + postcss-pseudo-class-any-link@10.0.1(postcss@8.5.23): + dependencies: + postcss: 8.5.23 postcss-selector-parser: 7.1.1 - postcss-reduce-idents@6.0.3(postcss@8.5.10): + postcss-reduce-idents@6.0.3(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-reduce-initial@6.1.0(postcss@8.5.10): + postcss-reduce-initial@6.1.0(postcss@8.5.23): dependencies: browserslist: 4.28.1 caniuse-api: 3.0.0 - postcss: 8.5.10 + postcss: 8.5.23 - postcss-reduce-transforms@6.0.2(postcss@8.5.10): + postcss-reduce-transforms@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - postcss-replace-overflow-wrap@4.0.0(postcss@8.5.10): + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss-selector-not@8.0.1(postcss@8.5.10): + postcss-selector-not@8.0.1(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 7.1.1 postcss-selector-parser@6.1.2: @@ -25481,31 +25553,31 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sort-media-queries@5.2.0(postcss@8.5.10): + postcss-sort-media-queries@5.2.0(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 sort-css-media-queries: 2.2.0 - postcss-svgo@6.0.3(postcss@8.5.10): + postcss-svgo@6.0.3(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-value-parser: 4.2.0 - svgo: 3.3.3 + svgo: 3.3.4 - postcss-unique-selectors@6.0.4(postcss@8.5.10): + postcss-unique-selectors@6.0.4(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 6.1.2 postcss-value-parser@4.2.0: {} - postcss-zindex@6.0.2(postcss@8.5.10): + postcss-zindex@6.0.2(postcss@8.5.23): dependencies: - postcss: 8.5.10 + postcss: 8.5.23 - postcss@8.5.10: + postcss@8.5.23: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.16 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -25737,11 +25809,11 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react-router-dom@7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-router-dom@7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - react-router: 7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react-router: 7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react-router@5.3.4(react@19.2.0): dependencies: @@ -25756,7 +25828,7 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react-router@7.15.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-router@7.18.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: cookie: 1.1.1 react: 19.2.0 @@ -25904,7 +25976,7 @@ snapshots: registry-auth-token@5.1.0: dependencies: - '@pnpm/npm-conf': 2.3.1 + '@pnpm/npm-conf': 3.0.2 registry-url@6.0.1: dependencies: @@ -26167,7 +26239,7 @@ snapshots: dependencies: escalade: 3.2.0 picocolors: 1.1.1 - postcss: 8.5.10 + postcss: 8.5.23 strip-json-comments: 3.1.1 run-applescript@7.1.0: {} @@ -26451,12 +26523,6 @@ snapshots: signedsource@1.0.0: {} - sirv@2.0.4: - dependencies: - '@polka/url': 1.0.0-next.29 - mrmime: 2.0.1 - totalist: 3.0.1 - sirv@3.0.2: dependencies: '@polka/url': 1.0.0-next.29 @@ -26512,7 +26578,7 @@ snapshots: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 - websocket-driver: 0.7.4 + websocket-driver: 0.7.5 sort-css-media-queries@2.2.0: {} @@ -26773,10 +26839,10 @@ snapshots: dependencies: inline-style-parser: 0.2.7 - stylehacks@6.1.1(postcss@8.5.10): + stylehacks@6.1.1(postcss@8.5.23): dependencies: browserslist: 4.28.1 - postcss: 8.5.10 + postcss: 8.5.23 postcss-selector-parser: 6.1.2 stylis@4.3.6: {} @@ -26788,7 +26854,7 @@ snapshots: lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.7 - tinyglobby: 0.2.15 + tinyglobby: 0.2.17 ts-interface-checker: 0.1.13 supports-color@5.5.0: @@ -26807,7 +26873,7 @@ snapshots: svg-parser@2.0.4: {} - svgo@3.3.3: + svgo@3.3.4: dependencies: commander: 7.2.0 css-select: 5.2.2 @@ -26855,11 +26921,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.10 - postcss-import: 15.1.0(postcss@8.5.10) - postcss-js: 4.1.0(postcss@8.5.10) - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.10)(tsx@4.21.0)(yaml@2.8.3) - postcss-nested: 6.2.0(postcss@8.5.10) + postcss: 8.5.23 + postcss-import: 15.1.0(postcss@8.5.23) + postcss-js: 4.1.0(postcss@8.5.23) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.23)(tsx@4.21.0)(yaml@2.8.3) + postcss-nested: 6.2.0(postcss@8.5.23) postcss-selector-parser: 6.1.2 resolve: 1.22.11 sucrase: 3.35.1 @@ -26974,11 +27040,6 @@ snapshots: tinyexec@1.0.4: {} - tinyglobby@0.2.15: - dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -27411,7 +27472,7 @@ snapshots: dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.10 + postcss: 8.5.23 rolldown: 1.0.3 tinyglobby: 0.2.17 optionalDependencies: @@ -27428,7 +27489,7 @@ snapshots: dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.10 + postcss: 8.5.23 rolldown: 1.0.3 tinyglobby: 0.2.17 optionalDependencies: @@ -27441,15 +27502,15 @@ snapshots: tsx: 4.21.0 yaml: 2.8.3 - vitest@4.1.8(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: - '@vitest/expect': 4.1.8 - '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/pretty-format': 4.1.8 - '@vitest/runner': 4.1.8 - '@vitest/snapshot': 4.1.8 - '@vitest/spy': 4.1.8 - '@vitest/utils': 4.1.8 + '@vitest/expect': 4.1.10 + '@vitest/mocker': 4.1.10(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.10 + '@vitest/runner': 4.1.10 + '@vitest/snapshot': 4.1.10 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -27466,22 +27527,22 @@ snapshots: optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/node': 22.19.15 - '@vitest/browser-playwright': 4.1.8(playwright@1.59.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8) - '@vitest/coverage-istanbul': 4.1.8(supports-color@8.1.1)(vitest@4.1.8) + '@vitest/browser-playwright': 4.1.10(playwright@1.59.0)(vite@8.0.16(@types/node@22.19.15)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10) + '@vitest/coverage-istanbul': 4.1.10(supports-color@8.1.1)(vitest@4.1.10) happy-dom: 20.10.1 jsdom: 26.1.0 transitivePeerDependencies: - msw - vitest@4.1.8(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.8)(@vitest/coverage-istanbul@4.1.8)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.10(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.10)(@vitest/coverage-istanbul@4.1.10)(happy-dom@20.10.1)(jsdom@26.1.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: - '@vitest/expect': 4.1.8 - '@vitest/mocker': 4.1.8(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/pretty-format': 4.1.8 - '@vitest/runner': 4.1.8 - '@vitest/snapshot': 4.1.8 - '@vitest/spy': 4.1.8 - '@vitest/utils': 4.1.8 + '@vitest/expect': 4.1.10 + '@vitest/mocker': 4.1.10(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.10 + '@vitest/runner': 4.1.10 + '@vitest/snapshot': 4.1.10 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -27498,8 +27559,8 @@ snapshots: optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/node': 24.10.1 - '@vitest/browser-playwright': 4.1.8(playwright@1.59.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.8) - '@vitest/coverage-istanbul': 4.1.8(vitest@4.1.8) + '@vitest/browser-playwright': 4.1.10(playwright@1.59.0)(vite@8.0.16(@types/node@24.10.1)(esbuild@0.28.1)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.10) + '@vitest/coverage-istanbul': 4.1.10(vitest@4.1.10) happy-dom: 20.10.1 jsdom: 26.1.0 transitivePeerDependencies: @@ -27550,7 +27611,7 @@ snapshots: html-escaper: 2.0.2 opener: 1.5.2 picocolors: 1.1.1 - sirv: 2.0.4 + sirv: 3.0.2 ws: 8.21.0 transitivePeerDependencies: - bufferutil @@ -27661,7 +27722,7 @@ snapshots: optionalDependencies: webpack: 5.105.4(esbuild@0.28.1) - websocket-driver@0.7.4: + websocket-driver@0.7.5: dependencies: http-parser-js: 0.5.10 safe-buffer: 5.2.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d72187af9..670b4a4cc 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -25,9 +25,9 @@ catalog: '@serenity-js/cucumber': 3.43.0 '@serenity-js/serenity-bdd': 3.43.0 '@types/node': ^22.19.5 - '@vitest/browser': 4.1.8 - '@vitest/browser-playwright': 4.1.8 - '@vitest/coverage-istanbul': 4.1.8 + '@vitest/browser': 4.1.10 + '@vitest/browser-playwright': 4.1.10 + '@vitest/coverage-istanbul': 4.1.10 antd: 6.3.5 archunit: ^2.1.63 esbuild: 0.28.1 @@ -35,8 +35,8 @@ catalog: jsdom: ^26.1.0 mongodb: 6.18.0 mongodb-memory-server: ^10.1.4 - mongoose: 8.17.0 - react-router-dom: 7.15.1 + mongoose: 8.24.1 + react-router-dom: 7.18.1 react: ^19.1.1 react-dom: ^19.1.1 '@ant-design/icons': ^6.0.2 @@ -52,7 +52,7 @@ catalog: typescript: 6.0.3 "@typescript/native-preview": 7.0.0-dev.20260428.1 vite: 8.0.16 - vitest: 4.1.8 + vitest: 4.1.10 vite-plugin-node-polyfills: ^0.28.0 auditConfig: @@ -63,6 +63,8 @@ auditConfig: - GHSA-wpg9-53fq-2r8h - GHSA-q7rr-3cgh-j5r3 - GHSA-869p-cjfg-cm3x # jws@4.0.0: Improperly Verifies HMAC Signature (transitive from azurite) + - GHSA-mh99-v99m-4gvg # brace-expansion 2.x is required by minimatch 9; the patched 5.x line is incompatible with the current dev-tool parents + - GHSA-qwww-vcr4-c8h2 # React Router advisory applies only to unstable RSC APIs; this repo uses client-side BrowserRouter/Routes allowBuilds: '@apollo/protobufjs': true @@ -75,10 +77,10 @@ allowBuilds: snyk: true overrides: - '@vitest/browser': 4.1.8 - '@vitest/browser-playwright': 4.1.8 + '@vitest/browser': 4.1.10 + '@vitest/browser-playwright': 4.1.10 happy-dom: 20.10.1 - axios: 1.16.0 + axios: 1.18.1 body-parser: 2.3.0 esbuild: 'catalog:' follow-redirects: ^1.16.0 @@ -86,14 +88,22 @@ overrides: jiti: 2.6.1 rollup: ^4.59.0 '@ant-design/pro-layout>path-to-regexp': ^8.4.0 - brace-expansion: 5.0.7 + brace-expansion: 5.0.8 'diff@4.0.2': 4.0.4 '@protobufjs/codegen': 2.0.5 '@protobufjs/utf8': 1.1.1 + 'protobufjs@7.5.4': 7.6.5 + 'protobufjs@7.6.3': 7.6.5 'serve-handler>minimatch': 3.1.5 + sirv: 3.0.2 + websocket-driver: 0.7.5 + '@pnpm/npm-conf': 3.0.2 + adm-zip: 0.6.0 + 'brace-expansion@2': 2.1.2 + immutable: 4.3.9 'serialize-javascript@6.0.2': 7.0.5 'serialize-javascript@7.0.4': 7.0.5 - svgo: ^3.3.3 + svgo: ^3.3.4 'yaml@2.8.2': 2.8.3 'yauzl@3.2.0': 3.2.1 qs: 6.15.2 @@ -113,15 +123,16 @@ overrides: 'ws@8.20.0': 8.21.0 playwright-core: 1.59.0 playwright: 1.59.0 - postcss: 8.5.10 + postcss: 8.5.23 protobufjs: 7.6.5 - ip-address: ^10.1.1 - fast-uri: ^4.0.1 + ip-address: ^10.2.1 + fast-uri: ^4.1.1 '@babel/plugin-transform-modules-systemjs': 7.29.4 '@babel/core': ^7.29.6 js-yaml: 4.3.0 'js-yaml@3.14.2': 3.15.0 'shell-quote@<1.8.4': 1.8.4 + '@opentelemetry/propagator-jaeger@1.30.1': 2.9.0 '@opentelemetry/exporter-prometheus@0.57.2': 0.217.0 '@opentelemetry/core@2.7.1': 2.8.0 ws: 8.21.0 @@ -130,10 +141,8 @@ overrides: form-data: ^4.0.6 'webpack-dev-server>http-proxy-middleware': 3.0.7 joi: ^17.13.4 - brace-expansion@2: 2.0.3 dottie: 2.0.7 http-proxy-middleware: 3.0.7 - immutable: 3.8.3 launch-editor: ^2.14.1 'react-router-dom@7.15.0>react-router': 7.15.1 sequelize: 6.37.8 diff --git a/readme.md b/readme.md index 570439ab0..67310b602 100644 --- a/readme.md +++ b/readme.md @@ -170,6 +170,7 @@ The local mock OpenID Connect provider used for UI development is configured per } ``` + The envVars values are environment variable names (from the UI app's `.env` file) that the server resolves to actual values at startup. Per-developer overrides @@ -232,6 +233,7 @@ CellixJS integrates [Agent Skills](https://agentskills.io) to provide AI coding The managed skill set lives in [`.agents/skills/`](.agents/skills/) and is mirrored for Copilot discovery through symlinks in [`.github/skills/`](.github/skills/). Only skills relevant to normal work in this repo are committed. + **Current managed skills:** - **madr-enforcement**: Enforces ADR-defined architectural standards across the codebase - **turborepo**: Guides monorepo task graph, caching, and pipeline work