diff --git a/.agents/skills/README.md b/.agents/skills/README.md index 24c84f1a..29408390 100644 --- a/.agents/skills/README.md +++ b/.agents/skills/README.md @@ -25,7 +25,8 @@ CellixJS skills follow the agentskills.io directory convention: ├── mongodb-connection/ # Community skill for MongoDB connection tuning ├── mongodb-mcp-setup/ # Community skill for MongoDB MCP configuration ├── mongodb-query-optimizer/ # Community skill for MongoDB query/index performance -└── mongodb-schema-design/ # Community skill for MongoDB schema modeling +├── mongodb-schema-design/ # Community skill for MongoDB schema modeling +└── turbo-graph-optimization/ # CellixJS-authored skill for Turborepo task graph optimization .github/skills/ # Symlinks for GitHub Copilot discovery └── -> ../../.agents/skills/ @@ -86,6 +87,36 @@ skills-lock.json # Upstream source + hash metadata for insta - [EXAMPLES.md](madr-enforcement/EXAMPLES.md) - Code examples following ADRs - [All ADRs](../../apps/docs/docs/decisions/) - Source of architectural standards +### Turborepo Task Graph Optimization + +**Purpose:** Autonomously analyze and optimize Turborepo task graphs to eliminate unnecessary transitive dependencies and improve build performance. + +**Use Cases:** +- Build slowdown investigation (identifying task graph bloat) +- New package added pulling in unnecessary upstream tasks +- Periodic hygiene (quarterly/semi-annual reviews) +- Pre-release verification of build targets +- CI/CD optimization to reduce pipeline build time + +**What This Skill Does:** +- Discovers build targets dynamically via `turbo query` (repo-agnostic) +- Analyzes transitive dependencies and identifies unnecessary tasks +- Proposes optimizations verified via static import analysis +- Applies safe changes and verifies build succeeds +- Flags unsafe changes (dynamic imports, runtime deps) for human review +- Generates before/after comparison tables with results + +**Key Features:** +- Fully autonomous workflow (no user confirmation steps) +- Works with any Turborepo 2.9+ monorepo (not hardcoded to CellixJS) +- Safety verification through import analysis and build testing +- Formatted results with task type breakdown and percentages + +**References:** +- [SKILL.md](turbo-graph-optimization/SKILL.md) - Complete skill documentation +- [ADR-0019: Monorepo Structure and Turborepo](../../apps/docs/docs/decisions/0019-monorepo-turborepo.md) - CellixJS context +- [ADR-0024: Agent Skills Framework](../../apps/docs/docs/decisions/0024-madr-agent-skills.md) - Skills framework + ### Installed Community Skills | Skill | Source | Why it is kept in this repo | diff --git a/.agents/skills/turbo-graph-optimization/SKILL.md b/.agents/skills/turbo-graph-optimization/SKILL.md new file mode 100644 index 00000000..e338ae63 --- /dev/null +++ b/.agents/skills/turbo-graph-optimization/SKILL.md @@ -0,0 +1,418 @@ +--- +name: turbo-graph-optimization +description: > + General-purpose agent skill for optimizing Turborepo task graphs using `turbo query` GraphQL + introspection. Works with any Turborepo 2.9+ monorepo — discovers build targets, task types, and + dependencies dynamically at runtime. Fully autonomous workflow: invoke and the agent completes + end-to-end analysis, optimization, verification, and presents formatted before/after results. + No user prompts, no ambiguous steps. Flags changes that cannot be verified via static import + analysis for human review; continues with all other optimizations. +license: MIT +compatibility: Turborepo 2.9+ +metadata: + author: CellixJS Team + version: "1.0" + repository: https://github.com/CellixJs/cellixjs +allowed-tools: Bash(turbo:query) Bash(turbo:run) Bash(find) Bash(cat) Bash(grep) Read Write Glob Grep +--- + +# Turborepo Task Graph Optimization Skill + +This skill automates the analysis and optimization of Turborepo task graphs to eliminate unnecessary +transitive dependencies and improve build performance. The workflow is **fully autonomous** — once invoked, +the agent discovers the repository structure, analyzes task dependencies, proposes optimizations, +verifies changes, and presents results without user interaction. + +## When to Use This Skill + +Use this skill when: + +- **Build slowdown**: The monorepo build is slower than expected and you want to identify unnecessary + transitive dependencies +- **New package added**: Adding a new workspace package may pull in unnecessary upstream tasks +- **Periodic hygiene**: Regular reviews to keep task graphs clean and optimized +- **Pre-release**: Before major releases, verify that build targets are optimally configured +- **Performance investigation**: Analyze task graph structure to understand dependency bloat +- **CI optimization**: Reduce build time in CI/CD pipelines by removing unnecessary transitive tasks + +## Workflow Overview + +The skill executes this fully autonomous workflow with no user interaction points: + +``` +discover targets → load schema → baseline capture → analyze → +propose & apply → verify → after capture → formatted results output +``` + +### Step-by-Step Workflow + +1. **Discover Build Targets** (Autonomous) + - Introspect the repository using `turbo query ls` to identify all packages + - Detect deployable application build targets by finding packages with the primary build task + - Primary task detection strategy: + - First, check for the `build` task (the standard Turborepo convention) + - If not found, query the `turbo.json` configuration for task definitions and infer the primary + task from the `tasks` section ordering or documentation + - As fallback, use the first task defined in a package's `package.json` scripts if it's + semantically a build task (contains keywords: `build`, `bundle`, `dist`) + - Use workspace configuration to understand package structure + - No user selection or confirmation — analyze all discovered targets + +2. **Load GraphQL Schema** (Autonomous) + - Execute `turbo query --schema` to retrieve the full GraphQL schema + - Insert schema into agent context for analysis + +3. **Capture Baseline** (Autonomous) + - For each discovered build target, execute `turbo query` to fetch transitive dependencies + - Group results by task type (dynamically determined from query results) + - Record as **Before** snapshot with task counts per type + +4. **Analyze Dependencies** (Autonomous) + - Identify unnecessary transitive dependencies using these patterns: + - Task types pulled in transitively that are not required for the target's build output + - Overly broad `dependsOn` rules (e.g., `^build` pulling in the entire upstream tree) + - Uncacheable tasks in the critical path (tasks with no `outputs` defined) + - Diamond dependencies that inflate the effective task graph + - Use static import analysis of downstream source code to verify that tasks are actually used + +5. **Propose & Apply Optimizations** (Autonomous with Safety Flags) + - For each optimization, verify safety by checking actual `import` statements in downstream source + - **Apply safe changes directly** to the build configuration + - **Flag changes that cannot be verified** through static import analysis: + - Runtime-only dependencies + - Dynamic imports or conditional requires + - Removals that could silently break production build paths + - Continue with all other optimizations — the workflow does not halt for flagged items + - Document reasoning for each flagged item + +6. **Verify Build** (Autonomous) + - Detect the primary build task using the same strategy as Step 1 (look for `build`, infer from + `turbo.json`, or fallback to package scripts) + - Execute `turbo run ` where `` is the dynamically detected build task + - Confirm the build succeeds with optimized graph + - If build fails, halt and report the failure + - If the primary task cannot be reliably determined, document the limitation and continue with + snapshot comparison only (defer verification to human review) + +7. **Capture After State** (Autonomous) + - Re-run the same queries from step 3 to capture **After** snapshot + - Compare against baseline + +8. **Present Results** (Autonomous) + - Output formatted before/after comparison table with: + - Task type breakdown + - Before count, after count, delta (with percentage for total) + - Summary of changes made + - If items were flagged for human review, list them separately with reasons + - This output is the final deliverable — no separate log file needed + +## Design Principles + +### Repo-Agnostic Discovery + +The skill discovers everything dynamically — **no hardcoded package names, paths, task types, or CI +platform references**: + +- **Build targets**: Discovered via `turbo query ls` and workspace introspection +- **Package structure**: Determined from actual repo layout — not assumed to be `packages/` and `apps/` +- **Task types**: Discovered from query results — not assumed (e.g., not hardcoding `build`, + `type-check`, `typegen`) +- **CI coordination**: Skill notes that changes may affect CI change detection but does not reference + any specific platform + +This means the skill works equally on any Turborepo 2.9+ monorepo, regardless of: +- Workspace layout (e.g., `packages/` and `apps/`, or custom structures) +- Naming conventions (e.g., scoped vs. non-scoped package names) +- Task naming (e.g., `build`, `dist`, `compile`, etc.) +- Organizational strategy (e.g., feature-based, layer-based, etc.) + +### Autonomous by Default + +No routine user prompts. If the agent encounters an ambiguous situation it can resolve safely: + +- ✅ Makes reasonable choices and documents reasoning +- ✅ Continues with all other optimizations if some are risky +- ❌ Does NOT halt for routine decisions +- ❌ Does NOT ask "would you like me to proceed?" + +**Exception — Critical Dependency Decisions**: If removal carries genuine risk that cannot be +verified via static import analysis, the agent **flags that item** for human review rather than +apply it. The workflow continues; only the specific risky change is deferred. + +## Safety Verification + +The skill never proposes removing a transitive dependency without: + +1. **Static Import Analysis**: Check actual `import` / `require` statements in downstream source +2. **Output Verification**: Confirm the task's outputs are not consumed by the target +3. **Documentation**: If a removal cannot be verified, document why and flag it + +### What Gets Flagged for Human Review + +Examples of situations that cannot be verified via static import analysis: + +- **Dynamic imports**: Code that uses `import()` with computed paths +- **Conditional requires**: `require(process.env.PLUGIN || 'default-plugin')` +- **Runtime plugins**: Tasks that load plugins at runtime without explicit imports +- **Side effects**: Tasks that must run for side effects (e.g., seeding databases) even if not + explicitly imported +- **Cross-cutting concerns**: Setup/teardown tasks that affect the entire build environment + +These are listed in the final output with a reason for deferral, and the rest of the optimizations +continue. + +## Output Format + +### Standard Results (with optimizations found) + +``` +turbo query analysis on # transitive dependencies: + +| Task Type | Before | After | Δ | +|------------------------|--------|-------|-----------| +| Total tasks | 97 | 59 | -38 (39%) | +| build | 58 | 59 | +1 | +| type-check | 20 | 0 | -20 | +| typegen (uncacheable) | 19 | 0 | -19 | + +Summary: Removed type-check and typegen from the transitive dependency +graph. These tasks were pulled in via ^build in shared utility packages +but the target does not consume their outputs. +``` + +### No Optimizations Found + +``` +turbo query analysis on # transitive dependencies: + +No unnecessary transitive dependencies found. Task graph is clean. +Total tasks: XX +``` + +### With Flagged Items for Human Review + +``` +turbo query analysis on # transitive dependencies: + +| Task Type | Before | After | Δ | +|------------------------|--------|-------|-----------| +| Total tasks | 97 | 67 | -30 (31%) | +| (other tasks...) | ... | ... | ... | + +Summary: Optimizations applied. See flagged items below for additional +review. + +⚠ Flagged for review (not applied): + +- #: depends on #codegen via dynamic require() + → Cannot verify via static import analysis (src/plugins/loader.ts + loads plugins dynamically) + +- #: setup task required for CI environment + → May affect CI change detection if removed +``` + +## Verification & Validation + +The skill includes several validation checkpoints: + +1. **Schema validation**: Verify `turbo query --schema` returns valid GraphQL schema +2. **Query execution**: Confirm queries return results before proceeding to analysis +3. **Build verification**: Run full build after changes to ensure success +4. **Snapshot comparison**: Verify before/after queries return valid results + +If any critical step fails, the workflow halts and reports the failure. + +## Turborepo 2.9+ Requirement + +This skill requires **Turborepo 2.9 or later** because: + +- `turbo query` became stable in Turborepo 2.9 +- The GraphQL schema API provides structured task graph introspection +- Earlier versions use unstable or unavailable query endpoints + +To check your Turborepo version: + +```bash +turbo --version +``` + +If you have Turborepo < 2.9, upgrade: + +```bash +pnpm add -D turbo@latest +``` + +## CI Coordination Notes + +Task graph changes may affect CI change detection and build optimization. When updating +`turbo.json` or task dependencies, be aware of: + +- **Local Turborepo Cache**: Changes will affect remote caching behavior in CI/CD +- **Change Detection**: Updates to `dependsOn` may alter which packages are detected as changed +- **Build Time**: Removing unnecessary tasks should improve overall CI/CD pipeline time + +Consult your project's CI/CD configuration and task graph documentation when making changes. + +## Repo Patterns + +The skill adapts to different monorepo structures. Example workspace layouts it supports: + +**Flat structure** +``` +packages/ + ├── ui/ + ├── api/ + ├── shared/ +``` + +**Nested/scoped structure** +``` +packages/ + ├── core/ + │ ├── domain/ + │ └── persistence/ + ├── apps/ + │ ├── api/ + │ └── web/ +``` + +**Hybrid structure** +``` +packages/scope1/component1/ +packages/scope1/component2/ +apps/app1/ +apps/app2/ +``` + +The skill discovers whatever structure exists via `turbo query ls` and analyzes accordingly. Task types and naming are inferred dynamically—no assumptions about `build`, `test`, `gen`, etc. + +## Example Commands + +The agent uses `turbo query` to introspect the repository structure. Here are common valid queries: + +```bash +# Get the GraphQL schema to understand available fields +turbo query --schema + +# List all packages in the repository +turbo query 'query { packages }' + +# Get packages with their paths +turbo query 'query { + packages { + path + name + allDependencies { + path + } + } +}' + +# Query task information for a specific package +turbo query 'query { + package(name: "@scope/package-name") { + path + name + } +}' + +# Detect primary build task (example for repos without 'build' task) +cat turbo.json | grep -A 10 '"tasks"' +cat package.json | grep -A 5 '"scripts"' + +# Verify build with detected primary task +turbo run build # if 'build' task exists +turbo run dist # or alternative primary task if detected +turbo run compile # or other task depending on repository + +# Analyze task graph for a specific target +turbo run build --dry=json +``` + +The specific queries used are determined by the agent based on the repository's structure and the Turborepo `turbo query` GraphQL schema. The agent dynamically discovers available query fields and adapts accordingly. + +## Common Optimization Patterns + +The skill identifies and proposes these types of optimizations: + +### 1. Removing Unused Task Types + +**Pattern**: A task type is pulled in transitively but not used by the target + +``` +Before: Target depends on ^build → upstream has build, type-check, typegen +After: Target depends on ^build filtered to exclude type-check (uncacheable) + +Result: -20 type-check tasks from transitive graph +``` + +### 2. Overly Broad Dependency Declarations + +**Pattern**: `dependsOn: ["^build"]` pulls in all upstream builds, but only specific ones needed + +``` +Before: ^build pulls in 50+ upstream tasks +After: Explicit list of required tasks + +Result: -30 tasks from critical path +``` + +### 3. Uncacheable Tasks in the Graph + +**Pattern**: Tasks with no `outputs` cannot be cached and block downstream tasks unnecessarily + +``` +Before: typegen (uncacheable) in critical path +After: Remove from transitive deps or mark as optional + +Result: -19 uncacheable tasks, faster builds +``` + +### 4. Diamond Dependencies + +**Pattern**: Multiple paths to the same dependency inflate task count + +``` +Before: Package A → B → D, C → D (D counted twice) +After: Consolidate dependencies + +Result: -15 duplicate tasks in graph +``` + +## Limitations & Caveats + +- **Static Analysis Only**: Cannot detect truly dynamic dependencies (requires runtime analysis) +- **Output Matching**: Relies on tasks declaring their outputs correctly in `turbo.json` +- **Source Inspection**: Only checks explicit imports — cannot detect plugin loading or side effects +- **Build Variants**: Analysis assumes a single build configuration; multi-target builds may have + different optimization opportunities +- **Package.json Scripts**: Task discovery relies on Turborepo's introspection, not package.json scripts + +## References + +### Turborepo Documentation +- [Turborepo 2.9 Release](https://turborepo.dev/blog/2-9) +- [turbo query Documentation](https://turborepo.dev/docs/reference/query) +- [Task Graph Structure](https://turborepo.dev/docs/core-concepts/task-graph) +- [Skipping Tasks with turbo query affected](https://turborepo.dev/docs/guides/skipping-tasks) + +### Inspiration & Reference Workflow +- [Anthony Shew's turbo query + agent workflow](https://x.com/anthonysheww/status/2039812921845502371) + — Demonstrates the manual version of this workflow that the skill automates + + +## CellixJS-Specific Guidance + +For CellixJS monorepo users, additional context is available in project-specific documentation: + +- **[ADR-0019: Monorepo Structure and Turborepo](../../apps/docs/docs/decisions/0019-monorepo-turborepo.md)** + — Documents CellixJS task graph configuration, baseline analysis, and optimization strategy. + +- **[ADR-0020: Azure DevOps Monorepo Pipeline](../../apps/docs/docs/decisions/0020-azure-devops-monorepo-pipeline.md)** + — Covers CI/CD change detection behavior and how task graph updates interact with Azure Pipelines. + When flagging items for review (Step 5), note that setup/teardown tasks may affect CI change + detection — refer to this ADR for context specific to your CI/CD platform. + +These references provide CellixJS-specific implementation details and are not required for using +this skill in other Turborepo monorepos. diff --git a/.github/skills/turbo-graph-optimization b/.github/skills/turbo-graph-optimization new file mode 120000 index 00000000..c1e17c53 --- /dev/null +++ b/.github/skills/turbo-graph-optimization @@ -0,0 +1 @@ +../../.agents/skills/turbo-graph-optimization \ No newline at end of file diff --git a/apps/api/turbo.json b/apps/api/turbo.json index aed2375c..620926f3 100644 --- a/apps/api/turbo.json +++ b/apps/api/turbo.json @@ -5,6 +5,10 @@ "cache": true, "inputs": ["$TURBO_EXTENDS$", "rolldown.config.ts", "host.json", "$TURBO_ROOT$/build-pipeline/scripts/**"], "outputs": ["$TURBO_EXTENDS$", "deploy/**"] + }, + "dev": { + "dependsOn": ["^watch", "//#gen"], + "interruptible": true } } } diff --git a/apps/docs/docs/decisions/0019-monorepo-turborepo.md b/apps/docs/docs/decisions/0019-monorepo-turborepo.md index 45de583d..7115e372 100644 --- a/apps/docs/docs/decisions/0019-monorepo-turborepo.md +++ b/apps/docs/docs/decisions/0019-monorepo-turborepo.md @@ -154,6 +154,92 @@ Packages are categorized by tags for selective deployments: - **config**: Shared configurations - **docs**: Documentation +## Task Graph Optimization + +### Overview + +Turborepo task graphs can accumulate unnecessary transitive dependencies over time, increasing +build times. The `turbo-graph-optimization` agent skill automates analysis and optimization +(located in `.agents/skills/turbo-graph-optimization/SKILL.md`, with symlink at +`.github/skills/turbo-graph-optimization`). + +The skill autonomously discovers build targets, analyzes task graphs, proposes safe optimizations +(verifying via static import analysis), flags risky changes for human review, and verifies the +build succeeds. + +### When to Optimize + +- New package added pulling in unnecessary upstream tasks +- Build slowdown investigation (task graph bloat) +- Periodic hygiene (quarterly or semi-annually) +- Pre-release verification +- CI/CD optimization + +Current CellixJS build targets: `@apps/api#build`, `@apps/ui-community#build`, `@apps/docs#build` + +### Safety Approach + +1. **Static import analysis** verifies removed tasks aren't consumed +2. **Build verification** runs `turbo run build` to confirm success +3. **Flagging** (not applying) changes unverifiable via static analysis (dynamic imports, + conditional requires, runtime dependencies) +4. **Before/after tables** document results with task breakdown and percentages + +See [ADR-0020](./0020-azure-devops-monorepo-pipeline.md) for CI change detection notes — +task graph updates may affect change detection in Azure Pipelines. + +### CellixJS Task Graph Analysis (April 2026) + +**Baseline Analysis** — Turborepo 2.9.3 with `turbo query --dry=json`: + +Per-target task counts: +- **@apps/api#build**: 26 tasks (24 build, 1 gen, 1 audit) +- **@apps/ui-community#build**: 7 tasks (5 build, 1 gen, 1 audit) +- **@apps/docs#build**: 5 tasks (3 build, 1 gen, 1 audit) + +Full monorepo build (`turbo run build`): +- **Total tasks**: 36 (34 build, 1 gen, 1 audit) + +**Optimization Scan Results**: +``` +✓ No unnecessary transitive dependencies found +✓ Task graph is clean and well-optimized +✓ All dependencies are necessary for build outputs +``` + +**Key Findings**: +- All `build` tasks correctly depend on `^build` (upstream packages) +- `//#gen` (monorepo-wide code generation) runs once, appropriately scoped +- `//#audit` (monorepo-wide audit) runs once, appropriately scoped +- No uncacheable tasks blocking critical path +- No diamond dependencies inflating task count + +**Conclusion**: The CellixJS task graph is currently well-optimized with no low-hanging optimization +opportunities. Future optimization candidates would emerge as: +1. New packages with unnecessary upstream dependencies are added +2. New task types (e.g., typegen, type-check) are introduced +3. Build time regressions trigger periodic reviews + +### Usage + +```bash +# Via GitHub Copilot or Claude: +# "Optimize the Turborepo task graph using the turbo-graph-optimization skill" +``` + +When run, the skill will: +1. Discover build targets (`@apps/api`, `@apps/ui-community`, `@apps/docs`) +2. Analyze current task graph (as captured above) +3. Identify optimization opportunities (if any emerge) +4. Apply safe changes and verify build succeeds +5. Present before/after comparison with summary + +### References + +- [Agent Skill: turbo-graph-optimization](https://github.com/CellixJs/cellixjs/blob/main/.agents/skills/turbo-graph-optimization/SKILL.md) +- [ADR-0020: Azure DevOps Pipeline](./0020-azure-devops-monorepo-pipeline.md) +- [ADR-0024: Agent Skills Framework](./0024-madr-agent-skills.md) +- [turbo query Docs](https://turborepo.dev/docs/reference/query) ## More Information diff --git a/apps/docs/docs/decisions/0029-turbo-watch-dev-mode.md b/apps/docs/docs/decisions/0029-turbo-watch-dev-mode.md new file mode 100644 index 00000000..db35e567 --- /dev/null +++ b/apps/docs/docs/decisions/0029-turbo-watch-dev-mode.md @@ -0,0 +1,385 @@ +--- +sidebar_position: 29 +sidebar_label: 0029 Turbo Watch Dev Mode +description: "Adopt turbo watch with proper task semantics for coordinated dev workflow, clean configuration, and portless integration without blocking." +status: accepted +date: 2026-04-07 +contact: nnoce14 +deciders: nnoce14 +consulted: turborepo documentation, Portless ADR-0028 +informed: +--- + +# Turbo Watch Dev Mode for Coordinated Development + +## Context and Problem Statement + +CellixJS is a Turborepo monorepo with multiple applications (`@apps/*`), TypeScript libraries (`@cellix/*`, `@ocom/*`), and code generation tasks. The dev workflow requires: + +1. **Parallel app servers** — Azure Functions, Vite frontend, Next.js-like docs, and HTTP mock services running concurrently +2. **Automatic rebuilds** — When library source changes, dependent apps should restart +3. **GraphQL codegen** — When `.graphql` files change, generated types should update before apps rebuild +4. **Portless proxy integration** — Browser-facing routing via `portless` (per ADR-0028) without blocking the dev orchestrator + +Previous implementation mixed tasks with incompatible semantics: +- Running `turbo watch //#gen:watch dev build` combined persistent (long-running) and non-persistent (one-shot) tasks, causing infinite loops or hangs +- Using `with` arrays in app configs forced all library watches to start concurrently before app startup, rather than waiting for them to complete +- Portless proxy ran synchronously in the dev script, blocking turbo watch and causing port conflicts on restarts +- Root task `//#gen:watch` was filtered out via `--filter='@apps/*'`, breaking GraphQL change detection + +This ADR documents the decision to adopt Turborepo's watch mode with proper task semantics, clean configuration, and non-blocking portless integration. + +## Decision Drivers + +- **Task semantics clarity** — Distinguish between one-shot watch tasks (library builds, codegen) that complete and persistent tasks (app servers) that stay running +- **Configuration minimization** — Avoid per-package turbo.json overrides where possible; let root config define semantics +- **Portless integration** — Proxy must run as a non-blocking background daemon, not part of turbo watch orchestration +- **Dependency ordering** — Apps must wait for library watches and codegen to complete before starting, not run concurrently +- **Loop prevention** — Task inputs must exclude generated outputs to prevent self-triggering; dependency graph must be acyclic +- **Developer experience** — File changes should trigger predictable, fast rebuilds with clear sequencing + +## Considered Options + +### Option A: `turbo watch dev build gen` with concurrent execution +- Runs all tasks concurrently after startup +- Simple command line +- **Rejected** — mixing persistent (dev) and non-persistent (build, gen) tasks causes Turbo to wait forever or loop; `--filter` breaks root tasks + +### Option B: Separate `turbo run` for setup, then `turbo watch dev` +- Pre-build libraries and gen, then start watch on dev only +- Requires manual two-step startup +- **Rejected** — defeats the purpose of watch mode; changes to libraries or `.graphql` files wouldn't trigger rebuilds + +### Option C: `turbo watch dev` with proper dependencies, portless as background daemon +- Root `dev` task depends on `^watch` and `//#gen` +- New explicit `watch` task for library watches (non-persistent) +- Portless starts as `&` background process before turbo watch +- App configs only override what they need (dependsOn, interruptible) +- **Chosen** — aligns with Turborepo best practices, minimizes configuration, ensures proper sequencing + +## Decision Outcome + +Chosen option: "turbo watch dev with proper dependencies, portless as background daemon", because it: + +1. **Separates task semantics** — Persistent tasks (dev servers) stay running; non-persistent tasks (watches, gen) complete and re-run on changes +2. **Minimizes configuration** — Root config defines all task behavior; apps only override `dependsOn` and `interruptible` +3. **Prevents infinite loops** — Clear dependency direction (watch → gen → dev); generated outputs excluded from gen inputs +4. **Integrates portless cleanly** — Proxy runs independently in background; turbo watch not blocked by proxy restarts +5. **Maintains developer velocity** — File changes to libraries trigger fast, predictable rebuilds with correct app restarts + +### Consequences + +- Good, because app configurations are 75% smaller (removed `with` arrays) +- Good, because library watches complete cleanly without blocking startup +- Good, because generated outputs can't trigger self-loops +- Good, because GraphQL schema changes trigger full rebuild pipeline (gen → build → app restart) +- Good, because app server restarts can happen cleanly when library watches re-run +- Neutral, because Vite apps (ui-community) use native HMR instead of full restarts (performance improvement) +- Neutral, because portless stays running independently; if it crashes, turbo watch continues +- Bad, because portless must be manually restarted if needed (`pnpm proxy:stop && pnpm proxy:start`) + +## Implementation + +### Root package.json + +**Dev script:** +```json +"dev": "pnpm proxy:start > /dev/null 2>&1 & turbo watch dev" +``` + +The command starts portless in the background with `&`. Output is suppressed to `/dev/null` so the TUI stays clean. Turbo watch begins immediately and doesn't wait for portless to complete initialization. + +**Proxy start script:** +```json +"proxy:start": "portless proxy stop || true; portless proxy start -p 1355 --https" +``` + +Ensures clean state: stop any existing proxy, then start fresh. Prevents "address already in use" errors. + +### Root turbo.json + +**New `watch` task:** +```json +{ + "watch": { + "description": "Watches package source files and rebuilds on changes (one-shot completion)", + "cache": false, + "persistent": false, + "inputs": [ + "src/**/*.ts", + "tsconfig*.json", + "rolldown.config.ts", + "!coverage/**", + "!target/**", + "!tests/**", + "!**/*.test.*", + "!**/*.spec.*", + "!vitest*.config.*" + ], + "outputs": ["dist/**", "build/**", "*.tsbuildinfo"] + } +} +``` + +- `persistent: false` — Task completes when TypeScript compiles; doesn't run indefinitely +- `cache: false` — Cache disabled in watch mode (files changing frequently) +- Explicit inputs prevent false triggers on test or coverage changes +- Explicit outputs let turbo detect when libraries rebuild + +**Updated `dev` task:** +```json +{ + "dev": { + "description": "Starts application packages dev servers in watch mode", + "dependsOn": ["^watch", "//#gen"], + "cache": false, + "persistent": true, + "interruptible": true, + "inputs": [ + "$TURBO_DEFAULT$", + "!coverage/**", + "!target/**", + "!dist/**", + "!build/**", + "!deploy/**", + "!**/*.tsbuildinfo" + ] + } +} +``` + +- `dependsOn: ["^watch", "//#gen"]` — Wait for library watches and codegen to complete before starting apps +- `persistent: true` — App servers stay running (don't exit after startup) +- `interruptible: true` — Turbo can restart them when dependency watches re-run +- Inputs exclude build outputs to prevent false triggers on rebuilt libraries + +**Updated `//#gen` task inputs:** +```json +{ + "//#gen": { + "inputs": [ + "codegen.yml", + "**/*.graphql", + "**/*.resolvers.ts", + "**/*.permissions.ts", + "packages/cellix/graphql-codegen/plugins/**", + "!src/generated/**", + "!**/*.generated.ts", + "!**/generated.ts", + "!**/generated.tsx", + "!**/graphql.schema.json" + ] + } +} +``` + +Excludes generated outputs to prevent self-triggering. Only runs when `.graphql` or plugin source changes. + +**New `//#gen:watch` task:** +```json +{ + "//#gen:watch": { + "description": "Runs graphql-codegen in watch mode", + "cache": false, + "persistent": false, + "inputs": [/* same as //#gen */], + "outputs": [/* same as //#gen */] + } +} +``` + +Non-persistent watch task; completes on each codegen run and re-runs on schema changes. + +### App Package turbo.json Files + +**Minimal overrides** — only `dependsOn` and `interruptible` where needed: + +```json +{ + "extends": ["//"], + "tasks": { + "dev": { + "dependsOn": ["^watch", "//#gen"], + "interruptible": true + } + } +} +``` + +**Why this works:** +- `"extends": ["//"]` — Inherits root task definitions (cache, persistent, inputs, etc.) +- `"dependsOn": ["^watch", "//#gen"]` — Override to declare explicit dependencies (automatic via caret) +- `"interruptible": true"` — Only for services that should restart on dependency changes +- No `with` arrays needed — Turbo handles dependency ordering automatically + +All libraries inherit root config via `extends: ["//"]` in their minimal turbo.json files. **No per-library config needed.** + +## Task Execution Flow + +### Initial Startup +``` +1. pnpm run dev + ├─ Background: portless proxy start (non-blocking) + └─ Foreground: turbo watch dev + ├─ Identify: ^watch tasks (all library watches) + ├─ Run: ^watch tasks in parallel + ├─ Wait: for all ^watch tasks to complete + ├─ Run: //#gen task + ├─ Wait: for //#gen to complete + └─ Run: dev tasks (all app servers) + ├─ apps/api: func host start (persistent) + ├─ apps/ui-community: vite (persistent) + ├─ apps/docs: docusaurus (persistent) + ├─ apps/server-oauth2-mock: node (persistent) + └─ apps/server-mongodb-memory-mock: node (persistent) +``` + +### On Library Source Change (e.g., packages/ocom/graphql/src/index.ts) +``` +1. Edit and save file +2. Turbo detects file change via watch inputs +3. Re-run: @ocom/graphql#watch + └─ tsc --build --watch completes with new dist/ +4. Turbo detects downstream dependency: @apps/api#dev depends on @ocom/graphql +5. Turbo re-run: @apps/api#dev (because of interruptible: true) + └─ func host start exits and restarts + └─ Reads new @ocom/graphql dist/ and starts +6. Vite (ui-community) detects linked package change via native HMR + └─ Reloads without full restart (for Vite apps) +``` + +### On GraphQL Schema Change (e.g., packages/ocom/graphql/schema.graphql) +``` +1. Edit and save .graphql file +2. Turbo detects file change via //#gen inputs +3. Re-run: //#gen task + └─ graphql-codegen completes with new generated.ts files +4. Turbo detects downstream dependency: build depends on //#gen +5. Re-run: affected build tasks +6. Turbo detects: dev depends on //#gen +7. Turbo re-run: dev tasks (because //#gen is dependency, not persistent) + └─ @apps/api#dev restarts with new generated types +``` + +### On App Source Change (e.g., apps/ui-community/src/App.tsx) +``` +1. Edit and save .tsx file +2. Vite detects change via native file watcher +3. Vite HMR reloads component (no full restart) +``` + +## Validation + +Testing strategy to validate the implementation: + +1. **Dev startup** — `pnpm run dev` launches portless and all app servers +2. **Library rebuild** — Edit library source → library rebuilds → app restarts +3. **GraphQL codegen** — Edit .graphql file → gen runs → build runs → app restarts +4. **No infinite loops** — Idle dev session shows no spurious task re-runs +5. **Portless reliability** — Proxy stays running; no "address in use" errors on app restart +6. **App hot reload** — Vite-based apps HMR without full restart; traditional apps restart cleanly + +## Trade-Offs + +### vs. Concurrent `with` Model +- **`dependsOn` (chosen)**: Libraries finish before apps start; guaranteed correct state +- **`with` (rejected)**: Libraries and apps start concurrently; apps might start before libraries are ready + +### vs. Manual Root Orchestration +- **Turbo watch (chosen)**: Automatic dependency discovery and sequencing +- **Manual (rejected)**: Complex shell scripts; harder to maintain; more error-prone + +### vs. Portless Inside turbo.json +- **Background daemon (chosen)**: Proxy independent; turbo focuses on watch coordination +- **Turbo task (rejected)**: Proxy becomes part of task graph; failures block watch; harder to manage lifecycle + +## Future Evolution + +### Multiple OIDC Providers +Per ADR-0028, multiple OIDC providers may eventually be needed. Options: + +1. **Multiple instances** — Run separate `@apps/server-oauth2-mock` with different configs +2. **Route-based multiplexing** — Evolve seedwork to accept provider map (future enhancement) + +Current implementation supports Option 1 without changes. + +### Caching in Watch Mode +Turborepo watch mode has experimental cache support via `--experimental-write-cache`. Future work could enable incremental rebuilds by caching library builds between watch sessions. + +### Performance Optimization +For large monorepos, watch-mode performance can be optimized by: +- Narrowing task inputs further (exclude more non-source files) +- Using Turborepo's `--filter` at startup (after initial build) +- Leveraging TypeScript's incremental build via `tsconfig.json` `incremental: true` + +## Developer Notes + +### Starting Dev Mode +```bash +pnpm run dev +``` + +This is the canonical entry point. Portless starts in background; turbo watch begins immediately. + +### Stopping Dev Mode +```bash +# Ctrl+C to stop turbo watch +# Portless continues running + +# To stop portless: +pnpm proxy:stop +``` + +### Troubleshooting: Dev Mode Doesn't Start +```bash +# Check if portless is already running +portless proxy status + +# Clean stop and restart +pnpm proxy:stop +pnpm run dev +``` + +### Troubleshooting: Portless output interferes with turbo TUI +Portless output is intentionally suppressed (`> /dev/null 2>&1`) to keep turbo's TUI clean. The `&` operator runs portless in the background, allowing turbo watch to start immediately. + +If you need to see portless logs: + +```bash +# Check proxy status without output interference +portless proxy status + +# For debugging: restart proxy with visible output +pnpm proxy:stop +portless proxy start -p 1355 --https # Will show diagnostic output +# Then stop dev mode (Ctrl+C) and restart: pnpm run dev +``` + +### Troubleshooting: Port Conflicts +The `proxy:start` script includes `portless proxy stop || true`, which cleanly stops any existing proxy before starting a new one. This prevents "address already in use" errors. + +If you still see port conflicts: +```bash +# Find process on port 1355 +lsof -i :1355 + +# Kill if needed (use PID from lsof output) +kill -9 + +# Then restart dev +pnpm run dev +``` + +### Troubleshooting: File Changes Don't Trigger Rebuilds +- Check watch task has explicit `inputs` defined (not using defaults) +- Check generated outputs aren't tracked in git (breaks change detection) +- Verify `watchUsingTaskInputs: true` in root turbo.json + +## References + +- [Turborepo Watch Mode Documentation](https://turborepo.dev/docs/reference/watch) +- [Turborepo Task Configuration Reference](https://turborepo.dev/docs/reference/configuration#tasks) +- [Issue #189: Extend dev command with turbo watch mode](https://github.com/CellixJs/cellixjs/issues/189) +- [ADR-0019: Monorepo + Turborepo](./0019-monorepo-turborepo.md) +- [ADR-0028: Portless Local Development](./0028-portless-local-development.md) +- [Turborepo: Crafting Your Repository - Developing with Watch Mode](https://turborepo.dev/docs/crafting-your-repository/developing-applications#watch-mode) diff --git a/apps/docs/turbo.json b/apps/docs/turbo.json index 6f2aff64..a2a02ae7 100644 --- a/apps/docs/turbo.json +++ b/apps/docs/turbo.json @@ -1,19 +1,40 @@ { - "extends": ["//"], + "extends": [ + "//" + ], "tasks": { "test": { - "inputs": ["$TURBO_EXTENDS$", "!docs/**", "!blog/**", "!static/**"] + "inputs": [ + "$TURBO_EXTENDS$", + "!docs/**", + "!blog/**", + "!static/**" + ] }, "test:coverage": { - "inputs": ["$TURBO_EXTENDS$", "!docs/**", "!blog/**", "!static/**"] + "inputs": [ + "$TURBO_EXTENDS$", + "!docs/**", + "!blog/**", + "!static/**" + ] }, "test:watch": { "cache": false, "persistent": true, - "inputs": ["$TURBO_EXTENDS$", "!docs/**", "!blog/**", "!static/**"] + "inputs": [ + "$TURBO_EXTENDS$", + "!docs/**", + "!blog/**", + "!static/**" + ] }, "lint": { - "inputs": ["$TURBO_EXTENDS$", "!static/**", "!**/*.md"] + "inputs": [ + "$TURBO_EXTENDS$", + "!static/**", + "!**/*.md" + ] } } } diff --git a/apps/server-mongodb-memory-mock/turbo.json b/apps/server-mongodb-memory-mock/turbo.json index 12d64c2c..82e990f3 100644 --- a/apps/server-mongodb-memory-mock/turbo.json +++ b/apps/server-mongodb-memory-mock/turbo.json @@ -1,4 +1,10 @@ { "extends": ["//"], - "tags": ["mock"] + "tags": ["mock"], + "tasks": { + "dev": { + "interruptible": true, + "dependsOn": ["^watch", "//#gen"] + } + } } diff --git a/apps/server-oauth2-mock/turbo.json b/apps/server-oauth2-mock/turbo.json new file mode 100644 index 00000000..de079b58 --- /dev/null +++ b/apps/server-oauth2-mock/turbo.json @@ -0,0 +1,9 @@ +{ + "extends": ["//"], + "tasks": { + "dev": { + "interruptible": true, + "dependsOn": ["^watch", "//#gen"] + } + } +} diff --git a/apps/ui-community/turbo.json b/apps/ui-community/turbo.json new file mode 100644 index 00000000..7cbd9a03 --- /dev/null +++ b/apps/ui-community/turbo.json @@ -0,0 +1,8 @@ +{ + "extends": ["//"], + "tasks": { + "dev": { + "dependsOn": ["^watch", "//#gen"] + } + } +} diff --git a/package.json b/package.json index 8c0bd827..4f36bf40 100644 --- a/package.json +++ b/package.json @@ -1,119 +1,119 @@ { - "name": "cellixjs", - "version": "1.0.0", - "description": "", - "type": "module", - "author": "CellixJS", - "license": "MIT", - "packageManager": "pnpm@10.30.1", - "scripts": { - "antd": "antd", - "audit": "(pnpm audit --audit-level=high --prod) && (pnpm audit --audit-level=critical --dev)", - "build": "turbo run build", - "test": "turbo run test", - "lint": "turbo run lint", - "dev": "pnpm run build && pnpm run proxy:stop && pnpm run proxy:start && turbo run azurite gen:watch dev", - "start": "turbo run build && concurrently --kill-others-on-fail \"pnpm run start:api\" \"pnpm run start:ui-community\"", - "proxy:stop": "portless proxy stop || true", - "proxy:start": "portless proxy start -p 1355 --https", - "format": "turbo run format", - "gen": "graphql-codegen --config codegen.yml", - "gen:watch": "graphql-codegen --config codegen.yml --watch", - "clean": "turbo run clean && rimraf dist node_modules **/coverage", - "start:api": "pnpm --filter @apps/api start", - "start:ui-community": "pnpm --filter @apps/ui-community dev", - "start-emulator:mongo-memory-server": "pnpm --filter @cellix/mock-mongodb-memory-server start", - "start-emulator:auth-server": "pnpm --filter @cellix/mock-oauth2-server start", - "test:all": "turbo run test:all", - "test:coverage": "turbo run test:coverage", - "test:coverage:merge": "pnpm run test:coverage && pnpm run merge-lcov-reports", - "merge-lcov-reports": "node build-pipeline/scripts/merge-coverage.js", - "test:integration": "turbo run test:integration", - "test:serenity": "turbo run test:serenity", - "test:unit": "turbo run test:unit", - "test:watch": "turbo run test:watch --concurrency 15", - "storybook": "turbo run storybook", - "sonar": "sonar-scanner", - "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 test:coverage:merge && pnpm run knip && pnpm run snyk && pnpm run sonar:pr && pnpm run check-sonar", - "knip": "knip", - "snyk": "pnpm run snyk:test && pnpm run snyk:code", - "snyk:report": "pnpm run snyk:monitor && pnpm run snyk:code:report", - "snyk:test": "snyk test --all-projects --org=cellixjs --remote-repo-url=https://github.com/CellixJs/cellixjs --policy-path=.snyk", - "snyk:monitor": "snyk monitor --all-projects --org=cellixjs --target-reference=main --remote-repo-url=https://github.com/CellixJs/cellixjs --project-name-prefix=\"cellixjs/\" --policy-path=.snyk --exclude=dist,build,.turbo,coverage", - "snyk:code": "snyk code test --org=cellixjs --remote-repo-url=https://github.com/CellixJs/cellixjs", - "snyk:code:report": "snyk code test --org=cellixjs --remote-repo-url=https://github.com/CellixJs/cellixjs --target-reference=main --project-name=cellixjs-code --report", - "snyk:iac": "snyk iac test iac/build/**/*.json --org=cellixjs --remote-repo-url=https://github.com/CellixJs/cellixjs", - "snyk:iac:report": "snyk iac test iac/build/**/*.json --org=cellixjs --remote-repo-url=https://github.com/CellixJs/cellixjs --target-reference=main --target-name=cellixjs-iac --report", - "analyze": "pnpm dlx @e18e/cli analyze", - "prepare": "husky", - "edgescan:run": "docker run --tty --rm edgescan/cicd-integration:latest --api-token $ES_API_TOKEN --asset-id $ES_ASSET_ID --start-scan --max-risk-threshold 3 --wait --color" - }, - "devDependencies": { - "@amiceli/vitest-cucumber": "^6.3.0", - "@ant-design/cli": "^6.3.5", - "@biomejs/biome": "2.4.10", - "@cellix/graphql-codegen": "workspace:*", - "@graphql-codegen/cli": "^5.0.7", - "@graphql-codegen/introspection": "^4.0.3", - "@graphql-codegen/typed-document-node": "^5.1.2", - "@graphql-codegen/typescript": "^4.1.6", - "@graphql-codegen/typescript-operations": "^4.6.1", - "@graphql-codegen/typescript-resolvers": "^4.5.1", - "@parcel/watcher": "^2.5.1", - "@playwright/test": "1.59.0", - "@sonar/scan": "^4.3.0", - "@types/node": "catalog:", - "@vitest/coverage-istanbul": "catalog:", - "azurite": "^3.35.0", - "concurrently": "^9.1.2", - "husky": "^9.1.7", - "knip": "^5.64.2", - "portless": "0.9.1", - "rimraf": "^6.0.1", - "snyk": "^1.1300.2", - "ts-scope-trimmer-plugin": "^1.0.2", - "turbo": "2.9.3", - "typescript": "catalog:", - "vitest": "catalog:" - }, - "pnpm": { - "auditConfig": { - "ignoreGhsas": [ - "GHSA-6rw7-vpxm-498p", - "GHSA-2w69-qvjg-hvjx", - "GHSA-8v8x-cx79-35w7" - ] + "name": "cellixjs", + "version": "1.0.0", + "description": "", + "type": "module", + "author": "CellixJS", + "license": "MIT", + "packageManager": "pnpm@10.30.1", + "scripts": { + "antd": "antd", + "audit": "(pnpm audit --audit-level=high --prod) && (pnpm audit --audit-level=critical --dev)", + "build": "turbo run build", + "test": "turbo run test", + "lint": "turbo run lint", + "dev": "pnpm proxy:start > /dev/null 2>&1 & turbo watch dev", + "start": "turbo run build && concurrently --kill-others-on-fail \"pnpm run start:api\" \"pnpm run start:ui-community\"", + "proxy:stop": "portless proxy stop || true", + "proxy:start": "portless proxy stop || true; portless proxy start -p 1355 --https", + "format": "turbo run format", + "gen": "graphql-codegen --config codegen.yml", + "gen:watch": "graphql-codegen --config codegen.yml --watch", + "clean": "turbo run clean && rimraf dist node_modules **/coverage", + "start:api": "pnpm --filter @apps/api start", + "start:ui-community": "pnpm --filter @apps/ui-community dev", + "start-emulator:mongo-memory-server": "pnpm --filter @cellix/mock-mongodb-memory-server start", + "start-emulator:auth-server": "pnpm --filter @cellix/mock-oauth2-server start", + "test:all": "turbo run test:all", + "test:coverage": "turbo run test:coverage", + "test:coverage:merge": "pnpm run test:coverage && pnpm run merge-lcov-reports", + "merge-lcov-reports": "node build-pipeline/scripts/merge-coverage.js", + "test:integration": "turbo run test:integration", + "test:serenity": "turbo run test:serenity", + "test:unit": "turbo run test:unit", + "test:watch": "turbo run test:watch --concurrency 15", + "storybook": "turbo run storybook", + "sonar": "sonar-scanner", + "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 test:coverage:merge && pnpm run knip && pnpm run snyk && pnpm run sonar:pr && pnpm run check-sonar", + "knip": "knip", + "snyk": "pnpm run snyk:test && pnpm run snyk:code", + "snyk:report": "pnpm run snyk:monitor && pnpm run snyk:code:report", + "snyk:test": "snyk test --all-projects --org=cellixjs --remote-repo-url=https://github.com/CellixJs/cellixjs --policy-path=.snyk", + "snyk:monitor": "snyk monitor --all-projects --org=cellixjs --target-reference=main --remote-repo-url=https://github.com/CellixJs/cellixjs --project-name-prefix=\"cellixjs/\" --policy-path=.snyk --exclude=dist,build,.turbo,coverage", + "snyk:code": "snyk code test --org=cellixjs --remote-repo-url=https://github.com/CellixJs/cellixjs", + "snyk:code:report": "snyk code test --org=cellixjs --remote-repo-url=https://github.com/CellixJs/cellixjs --target-reference=main --project-name=cellixjs-code --report", + "snyk:iac": "snyk iac test iac/build/**/*.json --org=cellixjs --remote-repo-url=https://github.com/CellixJs/cellixjs", + "snyk:iac:report": "snyk iac test iac/build/**/*.json --org=cellixjs --remote-repo-url=https://github.com/CellixJs/cellixjs --target-reference=main --target-name=cellixjs-iac --report", + "analyze": "pnpm dlx @e18e/cli analyze", + "prepare": "husky", + "edgescan:run": "docker run --tty --rm edgescan/cicd-integration:latest --api-token $ES_API_TOKEN --asset-id $ES_ASSET_ID --start-scan --max-risk-threshold 3 --wait --color" }, - "overrides": { - "vite": "catalog:", - "jiti": "2.6.1", - "rollup": "^4.59.0", - "@ant-design/pro-layout>path-to-regexp": "^8.4.0", - "brace-expansion@1.1.12": "1.1.13", - "serve-handler>minimatch": "3.1.5", - "serialize-javascript@6.0.2": "7.0.5", - "serialize-javascript@7.0.4": "7.0.5", - "svgo": "^3.3.3", - "yaml@2.8.2": "2.8.3", - "yauzl@3.2.0": "3.2.1", - "qs": "^6.14.2", - "ajv@^6": "6.14.0", - "lodash": "4.18.1", - "lodash-es": "4.18.1", - "node-forge": "^1.4.0", - "picomatch": "^4.0.4", - "webpack": "^5.105.4", - "playwright-core": "1.59.0", - "playwright": "1.59.0" + "devDependencies": { + "@amiceli/vitest-cucumber": "^6.3.0", + "@ant-design/cli": "^6.3.5", + "@biomejs/biome": "2.4.10", + "@cellix/graphql-codegen": "workspace:*", + "@graphql-codegen/cli": "^5.0.7", + "@graphql-codegen/introspection": "^4.0.3", + "@graphql-codegen/typed-document-node": "^5.1.2", + "@graphql-codegen/typescript": "^4.1.6", + "@graphql-codegen/typescript-operations": "^4.6.1", + "@graphql-codegen/typescript-resolvers": "^4.5.1", + "@parcel/watcher": "^2.5.1", + "@playwright/test": "1.59.0", + "@sonar/scan": "^4.3.0", + "@types/node": "catalog:", + "@vitest/coverage-istanbul": "catalog:", + "azurite": "^3.35.0", + "concurrently": "^9.1.2", + "husky": "^9.1.7", + "knip": "^5.64.2", + "portless": "0.9.1", + "rimraf": "^6.0.1", + "snyk": "^1.1300.2", + "ts-scope-trimmer-plugin": "^1.0.2", + "turbo": "2.9.3", + "typescript": "catalog:", + "vitest": "catalog:" }, - "patchedDependencies": { - "@azure/functions@4.11.0": "patches/@azure__functions@4.11.0.patch" + "pnpm": { + "auditConfig": { + "ignoreGhsas": [ + "GHSA-6rw7-vpxm-498p", + "GHSA-2w69-qvjg-hvjx", + "GHSA-8v8x-cx79-35w7" + ] + }, + "overrides": { + "vite": "catalog:", + "jiti": "2.6.1", + "rollup": "^4.59.0", + "@ant-design/pro-layout>path-to-regexp": "^8.4.0", + "brace-expansion@1.1.12": "1.1.13", + "serve-handler>minimatch": "3.1.5", + "serialize-javascript@6.0.2": "7.0.5", + "serialize-javascript@7.0.4": "7.0.5", + "svgo": "^3.3.3", + "yaml@2.8.2": "2.8.3", + "yauzl@3.2.0": "3.2.1", + "qs": "^6.14.2", + "ajv@^6": "6.14.0", + "lodash": "4.18.1", + "lodash-es": "4.18.1", + "node-forge": "^1.4.0", + "picomatch": "^4.0.4", + "webpack": "^5.105.4", + "playwright-core": "1.59.0", + "playwright": "1.59.0" + }, + "patchedDependencies": { + "@azure/functions@4.11.0": "patches/@azure__functions@4.11.0.patch" + } + }, + "engines": { + "node": "22.22.2" } - }, - "engines": { - "node": "22.22.2" - } } diff --git a/packages/cellix/api-services-spec/package.json b/packages/cellix/api-services-spec/package.json index 5a16cefb..716b4be9 100644 --- a/packages/cellix/api-services-spec/package.json +++ b/packages/cellix/api-services-spec/package.json @@ -17,7 +17,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "clean": "rimraf dist" }, "devDependencies": { diff --git a/packages/cellix/domain-seedwork/package.json b/packages/cellix/domain-seedwork/package.json index ba4cbb7a..56bc1578 100644 --- a/packages/cellix/domain-seedwork/package.json +++ b/packages/cellix/domain-seedwork/package.json @@ -60,7 +60,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/cellix/event-bus-seedwork-node/package.json b/packages/cellix/event-bus-seedwork-node/package.json index bef263fd..adc112af 100644 --- a/packages/cellix/event-bus-seedwork-node/package.json +++ b/packages/cellix/event-bus-seedwork-node/package.json @@ -16,7 +16,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/cellix/graphql-codegen/package.json b/packages/cellix/graphql-codegen/package.json index f038500c..24fa556b 100644 --- a/packages/cellix/graphql-codegen/package.json +++ b/packages/cellix/graphql-codegen/package.json @@ -21,7 +21,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/cellix/graphql-core/package.json b/packages/cellix/graphql-core/package.json index 59e11226..867893b2 100644 --- a/packages/cellix/graphql-core/package.json +++ b/packages/cellix/graphql-core/package.json @@ -23,7 +23,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/cellix/mongoose-seedwork/package.json b/packages/cellix/mongoose-seedwork/package.json index 08264594..49f37a46 100644 --- a/packages/cellix/mongoose-seedwork/package.json +++ b/packages/cellix/mongoose-seedwork/package.json @@ -16,7 +16,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:integration": "vitest run integration.test.ts --silent --reporter=dot", diff --git a/packages/cellix/server-mongodb-memory-mock-seedwork/package.json b/packages/cellix/server-mongodb-memory-mock-seedwork/package.json index 04b5d101..146d8c56 100644 --- a/packages/cellix/server-mongodb-memory-mock-seedwork/package.json +++ b/packages/cellix/server-mongodb-memory-mock-seedwork/package.json @@ -9,6 +9,7 @@ "scripts": { "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", + "watch": "tsc --build --watch", "clean": "rimraf dist tsconfig.tsbuildinfo", "lint": "biome lint", "format": "biome format --write" diff --git a/packages/cellix/server-oauth2-mock-seedwork/package.json b/packages/cellix/server-oauth2-mock-seedwork/package.json index a03cd812..a94cbfa5 100644 --- a/packages/cellix/server-oauth2-mock-seedwork/package.json +++ b/packages/cellix/server-oauth2-mock-seedwork/package.json @@ -9,6 +9,7 @@ "scripts": { "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", + "watch": "tsc --build --watch", "clean": "rimraf dist tsconfig.tsbuildinfo && tsc --build --clean", "lint": "biome lint", "format": "biome format --write" diff --git a/packages/cellix/ui-core/package.json b/packages/cellix/ui-core/package.json index 94ea4ae0..7097cb7e 100644 --- a/packages/cellix/ui-core/package.json +++ b/packages/cellix/ui-core/package.json @@ -20,7 +20,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/ocom/application-services/package.json b/packages/ocom/application-services/package.json index 025743d6..95499330 100644 --- a/packages/ocom/application-services/package.json +++ b/packages/ocom/application-services/package.json @@ -16,7 +16,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run", "test:coverage": "vitest run --coverage", "test:watch": "vitest", diff --git a/packages/ocom/context-spec/package.json b/packages/ocom/context-spec/package.json index b50900af..07b325ac 100644 --- a/packages/ocom/context-spec/package.json +++ b/packages/ocom/context-spec/package.json @@ -17,7 +17,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "clean": "rimraf dist" }, "dependencies": { diff --git a/packages/ocom/data-sources-mongoose-models/package.json b/packages/ocom/data-sources-mongoose-models/package.json index 86e2c9ad..08b82981 100644 --- a/packages/ocom/data-sources-mongoose-models/package.json +++ b/packages/ocom/data-sources-mongoose-models/package.json @@ -65,7 +65,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "clean": "rimraf dist" }, "dependencies": { diff --git a/packages/ocom/domain/package.json b/packages/ocom/domain/package.json index f4872e2d..e3314ba1 100644 --- a/packages/ocom/domain/package.json +++ b/packages/ocom/domain/package.json @@ -16,7 +16,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:integration": "vitest run integration.test.ts --silent --reporter=dot", diff --git a/packages/ocom/event-handler/package.json b/packages/ocom/event-handler/package.json index d3de92f9..87b5fe99 100644 --- a/packages/ocom/event-handler/package.json +++ b/packages/ocom/event-handler/package.json @@ -17,7 +17,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "clean": "rimraf dist" }, "dependencies": { diff --git a/packages/ocom/graphql-handler/package.json b/packages/ocom/graphql-handler/package.json index 63e1b4c4..32d595f8 100644 --- a/packages/ocom/graphql-handler/package.json +++ b/packages/ocom/graphql-handler/package.json @@ -18,7 +18,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/ocom/graphql/package.json b/packages/ocom/graphql/package.json index a7a02750..06131ed8 100644 --- a/packages/ocom/graphql/package.json +++ b/packages/ocom/graphql/package.json @@ -18,7 +18,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/ocom/persistence/package.json b/packages/ocom/persistence/package.json index 21e419a6..50349f01 100644 --- a/packages/ocom/persistence/package.json +++ b/packages/ocom/persistence/package.json @@ -112,7 +112,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/ocom/rest/package.json b/packages/ocom/rest/package.json index 62fb9913..5ed42d9f 100644 --- a/packages/ocom/rest/package.json +++ b/packages/ocom/rest/package.json @@ -17,7 +17,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "clean": "rimraf dist" }, "dependencies": { diff --git a/packages/ocom/service-apollo-server/package.json b/packages/ocom/service-apollo-server/package.json index 251b0194..282507d4 100644 --- a/packages/ocom/service-apollo-server/package.json +++ b/packages/ocom/service-apollo-server/package.json @@ -17,7 +17,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/ocom/service-blob-storage/package.json b/packages/ocom/service-blob-storage/package.json index 64463be6..4c81a3e8 100644 --- a/packages/ocom/service-blob-storage/package.json +++ b/packages/ocom/service-blob-storage/package.json @@ -17,7 +17,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "clean": "rimraf dist" }, "dependencies": { diff --git a/packages/ocom/service-mongoose/package.json b/packages/ocom/service-mongoose/package.json index 6a8eb772..14688f9d 100644 --- a/packages/ocom/service-mongoose/package.json +++ b/packages/ocom/service-mongoose/package.json @@ -16,7 +16,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/ocom/service-otel/package.json b/packages/ocom/service-otel/package.json index 780e35db..ade4eb52 100644 --- a/packages/ocom/service-otel/package.json +++ b/packages/ocom/service-otel/package.json @@ -16,7 +16,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/ocom/service-token-validation/package.json b/packages/ocom/service-token-validation/package.json index fccdebb4..49836203 100644 --- a/packages/ocom/service-token-validation/package.json +++ b/packages/ocom/service-token-validation/package.json @@ -16,7 +16,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/packages/ocom/ui-components/package.json b/packages/ocom/ui-components/package.json index 075a1524..9d4781d6 100644 --- a/packages/ocom/ui-components/package.json +++ b/packages/ocom/ui-components/package.json @@ -16,7 +16,7 @@ "format": "biome format --write", "prebuild": "pnpm run lint && pnpm run format", "build": "tsc --build", - "watch": "tsc --watch", + "watch": "tsc --build --watch", "test": "vitest run --silent --reporter=dot", "test:coverage": "vitest run --coverage --silent --reporter=dot", "test:watch": "vitest", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aa4bcabc..0a5c0318 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,7 +53,7 @@ catalogs: version: 4.1.2 overrides: - vite: 8.0.3 + vite: 8.0.5 jiti: 2.6.1 rollup: ^4.59.0 '@ant-design/pro-layout>path-to-regexp': ^8.4.0 @@ -160,7 +160,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) apps/api: dependencies: @@ -236,7 +236,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) apps/docs: dependencies: @@ -294,7 +294,7 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 6.0.1(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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.2(vitest@4.1.2) @@ -306,7 +306,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -408,25 +408,25 @@ importers: version: link:../../packages/cellix/config-vitest '@chromatic-com/storybook': specifier: ^4.1.1 - version: 4.1.3(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 4.1.3(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/addon-a11y': specifier: ^9.1.3 - version: 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/addon-docs': specifier: ^9.1.3 - version: 9.1.16(@types/react@19.2.7)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 9.1.16(@types/react@19.2.7)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/addon-onboarding': specifier: ^9.1.3 - version: 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/addon-vitest': specifier: ^9.1.3 - version: 9.1.16(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2) + version: 9.1.16(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2) '@storybook/react': specifier: ^9.1.9 - version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2) + version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2) '@storybook/react-vite': specifier: ^9.1.3 - version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.59.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.59.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@testing-library/jest-dom': specifier: ^6.6.4 version: 6.9.1 @@ -438,7 +438,7 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 6.0.1(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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.2(vitest@4.1.2) @@ -453,7 +453,7 @@ importers: version: 6.0.5(rolldown@1.0.0-rc.12(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1))(rollup@4.59.0) storybook: specifier: 'catalog:' - version: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) storybook-addon-apollo-client: specifier: ^9.0.0 version: 9.0.0(@apollo/client@3.14.0(@types/react@19.2.7)(graphql-ws@6.0.6(graphql@16.12.0)(ws@8.20.0))(graphql@16.12.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(graphql@16.12.0)(react@19.2.0) @@ -464,11 +464,11 @@ importers: specifier: 'catalog:' version: 6.0.2 vite: - specifier: 8.0.3 - version: 8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + specifier: 8.0.5 + version: 8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -498,7 +498,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -522,7 +522,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/cellix/config-typescript: {} @@ -530,13 +530,13 @@ importers: dependencies: '@storybook/addon-vitest': specifier: ^9.1.20 - version: 9.1.20(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2) + version: 9.1.20(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2) '@vitest/browser-playwright': specifier: ^4.1.2 - version: 4.1.2(playwright@1.59.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + version: 4.1.2(playwright@1.59.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) devDependencies: '@cellix/config-typescript': specifier: workspace:* @@ -564,7 +564,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -632,7 +632,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -660,7 +660,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -697,7 +697,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -763,34 +763,34 @@ importers: version: link:../config-vitest '@chromatic-com/storybook': specifier: ^4.1.1 - version: 4.1.3(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 4.1.3(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/addon-a11y': specifier: ^9.1.3 - version: 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/addon-docs': specifier: ^9.1.3 - version: 9.1.16(@types/react@19.2.7)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 9.1.16(@types/react@19.2.7)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/addon-onboarding': specifier: ^9.1.3 - version: 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/addon-vitest': specifier: ^9.1.3 - version: 9.1.16(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2) + version: 9.1.16(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2) '@storybook/react': specifier: ^9.1.9 - version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2) + version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2) '@storybook/react-vite': specifier: ^9.1.3 - version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.59.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.59.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@types/react': specifier: ^19.1.16 version: 19.2.7 '@vitest/browser': specifier: ^4.1.2 - version: 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + version: 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) '@vitest/browser-playwright': specifier: ^4.1.2 - version: 4.1.2(playwright@1.59.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + version: 4.1.2(playwright@1.59.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) '@vitest/coverage-istanbul': specifier: 'catalog:' version: 4.1.2(vitest@4.1.2) @@ -808,13 +808,13 @@ importers: version: 6.0.1 storybook: specifier: 'catalog:' - version: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) typescript: specifier: 'catalog:' version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/application-services: dependencies: @@ -860,7 +860,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -959,7 +959,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -1018,7 +1018,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -1061,7 +1061,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/persistence: dependencies: @@ -1104,7 +1104,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/rest: dependencies: @@ -1166,7 +1166,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -1274,7 +1274,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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: @@ -1302,7 +1302,7 @@ importers: version: 6.0.2 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages/ocom/ui-components: dependencies: @@ -1342,22 +1342,22 @@ importers: version: link:../../cellix/config-vitest '@chromatic-com/storybook': specifier: ^4.1.1 - version: 4.1.3(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 4.1.3(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/addon-a11y': specifier: ^9.1.3 - version: 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/addon-docs': specifier: ^9.1.3 - version: 9.1.16(@types/react@19.2.7)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + version: 9.1.16(@types/react@19.2.7)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/addon-vitest': specifier: ^9.1.3 - version: 9.1.16(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2) + version: 9.1.16(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2) '@storybook/react': specifier: ^9.1.9 - version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2) + version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2) '@storybook/react-vite': specifier: ^9.1.3 - version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.59.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.59.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@types/react': specifier: ^19.1.11 version: 19.2.7 @@ -1366,7 +1366,7 @@ importers: version: 19.2.3(@types/react@19.2.7) '@vitest/browser': specifier: ^4.1.2 - version: 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + version: 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) '@vitest/coverage-istanbul': specifier: 'catalog:' version: 4.1.2(vitest@4.1.2) @@ -1378,7 +1378,7 @@ importers: version: 6.0.1 storybook: specifier: 'catalog:' - version: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) storybook-addon-apollo-client: specifier: ^9.0.0 version: 9.0.0(@apollo/client@3.14.0(@types/react@19.2.7)(graphql-ws@6.0.6(graphql@16.12.0)(ws@8.20.0))(graphql@16.12.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(graphql@16.12.0)(react@19.2.0) @@ -1386,11 +1386,11 @@ importers: specifier: 'catalog:' version: 6.0.2 vite: - specifier: 8.0.3 - version: 8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + specifier: 8.0.5 + version: 8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) packages: @@ -3695,7 +3695,7 @@ packages: resolution: {integrity: sha512-J4BaTocTOYFkMHIra1JDWrMWpNmBl4EkplIwHEsV8aeUOtdWjwSnln9U7twjMFTAEB7mptNtSKyVi1Y2W9sDJw==} peerDependencies: typescript: '>= 4.3.x' - vite: 8.0.3 + vite: 8.0.5 peerDependenciesMeta: typescript: optional: true @@ -4987,7 +4987,7 @@ packages: resolution: {integrity: sha512-CyvYA5w1BKeSVaRavKi+euWxLffshq0v9Rz/5E9MKCitbYtjwkDH6UMIYmcbTs906mEBuYqrbz3nygDP0ppodw==} peerDependencies: storybook: ^9.1.16 - vite: 8.0.3 + vite: 8.0.5 '@storybook/csf-plugin@9.1.16': resolution: {integrity: sha512-GKlNNlmWeFBQxhQY5hZOSnFGbeKq69jal0dYNWoSImTjor28eYRHb9iQkDzRpijLPizBaB9MlxLsLrgFDp7adA==} @@ -5018,7 +5018,7 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta storybook: ^9.1.16 - vite: 8.0.3 + vite: 8.0.5 '@storybook/react@9.1.16': resolution: {integrity: sha512-M/SkHJJdtiGpodBJq9+DYmSkEOD+VqlPxKI+FvbHESTNs//1IgqFIjEWetd8quhd9oj/gvo4ICBAPu+UmD6M9w==} @@ -5435,7 +5435,7 @@ packages: peerDependencies: '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 babel-plugin-react-compiler: ^1.0.0 - vite: 8.0.3 + vite: 8.0.5 peerDependenciesMeta: '@rolldown/plugin-babel': optional: true @@ -5468,7 +5468,7 @@ packages: resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} peerDependencies: msw: ^2.4.9 - vite: 8.0.3 + vite: 8.0.5 peerDependenciesMeta: msw: optional: true @@ -5479,7 +5479,7 @@ packages: resolution: {integrity: sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==} peerDependencies: msw: ^2.4.9 - vite: 8.0.3 + vite: 8.0.5 peerDependenciesMeta: msw: optional: true @@ -11678,14 +11678,14 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite@8.0.3: - resolution: {integrity: sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==} + vite@8.0.5: + resolution: {integrity: sha512-nmu43Qvq9UopTRfMx2jOYW5l16pb3iDC1JH6yMuPkpVbzK0k+L7dfsEDH4jRgYFmsg0sTAqkojoZgzLMlwHsCQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 '@vitejs/devtools': ^0.1.0 - esbuild: ^0.27.0 + esbuild: ^0.27.0 || ^0.28.0 jiti: 2.6.1 less: ^4.0.0 sass: ^1.70.0 @@ -11735,7 +11735,7 @@ packages: '@vitest/ui': 4.1.2 happy-dom: '*' jsdom: '*' - vite: 8.0.3 + vite: 8.0.5 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -12228,7 +12228,7 @@ snapshots: minimist: 1.2.8 parsecurrency: 1.1.1 ts-morph: 27.0.2 - vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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.7.1)(@emnapi/runtime@1.7.1)': dependencies: @@ -13585,13 +13585,13 @@ snapshots: '@blazediff/core@1.9.1': {} - '@chromatic-com/storybook@4.1.3(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': + '@chromatic-com/storybook@4.1.3(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: '@neoconfetti/react': 1.0.0 chromatic: 13.3.4 filesize: 10.1.6 jsonfile: 6.2.0 - storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) strip-ansi: 7.1.2 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -14195,9 +14195,9 @@ snapshots: '@docusaurus/cssnano-preset@3.9.2': dependencies: - cssnano-preset-advanced: 6.1.2(postcss@8.5.6) - postcss: 8.5.6 - postcss-sort-media-queries: 5.2.0(postcss@8.5.6) + cssnano-preset-advanced: 6.1.2(postcss@8.5.8) + postcss: 8.5.8 + postcss-sort-media-queries: 5.2.0(postcss@8.5.8) tslib: 2.8.1 '@docusaurus/logger@3.9.2': @@ -15574,12 +15574,12 @@ snapshots: '@types/yargs': 17.0.35 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@6.0.2)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: glob: 10.5.0 magic-string: 0.30.21 react-docgen-typescript: 2.4.0(typescript@6.0.2) - vite: 8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) optionalDependencies: typescript: 6.0.2 @@ -16698,71 +16698,71 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@storybook/addon-a11y@9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': + '@storybook/addon-a11y@9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: '@storybook/global': 5.0.0 axe-core: 4.11.0 - storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - '@storybook/addon-docs@9.1.16(@types/react@19.2.7)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': + '@storybook/addon-docs@9.1.16(@types/react@19.2.7)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.2.7)(react@19.2.0) - '@storybook/csf-plugin': 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + '@storybook/csf-plugin': 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) '@storybook/icons': 1.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@storybook/react-dom-shim': 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + '@storybook/react-dom-shim': 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-onboarding@9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': + '@storybook/addon-onboarding@9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: - storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - '@storybook/addon-vitest@9.1.16(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2)': + '@storybook/addon-vitest@9.1.16(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2)': dependencies: '@storybook/global': 5.0.0 '@storybook/icons': 1.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) prompts: 2.4.2 - storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) ts-dedent: 2.2.0 optionalDependencies: - '@vitest/browser': 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) - '@vitest/browser-playwright': 4.1.2(playwright@1.59.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/browser': 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/browser-playwright': 4.1.2(playwright@1.59.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) '@vitest/runner': 4.1.2 - vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - react - react-dom - '@storybook/addon-vitest@9.1.20(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2)': + '@storybook/addon-vitest@9.1.20(@vitest/browser-playwright@4.1.2)(@vitest/browser@4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2))(@vitest/runner@4.1.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vitest@4.1.2)': dependencies: '@storybook/global': 5.0.0 '@storybook/icons': 1.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) prompts: 2.4.2 - storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) ts-dedent: 2.2.0 optionalDependencies: - '@vitest/browser': 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) - '@vitest/browser-playwright': 4.1.2(playwright@1.59.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/browser': 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/browser-playwright': 4.1.2(playwright@1.59.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) '@vitest/runner': 4.1.2 - vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - react - react-dom - '@storybook/builder-vite@9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@storybook/builder-vite@9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@storybook/csf-plugin': 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) - storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@storybook/csf-plugin': 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) ts-dedent: 2.2.0 - vite: 8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - '@storybook/csf-plugin@9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': + '@storybook/csf-plugin@9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: - storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) unplugin: 1.16.1 '@storybook/global@5.0.0': {} @@ -16772,39 +16772,39 @@ snapshots: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - '@storybook/react-dom-shim@9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': + '@storybook/react-dom-shim@9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))': dependencies: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - '@storybook/react-vite@9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.59.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@storybook/react-vite@9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.59.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@6.0.2)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@6.0.2)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@rollup/pluginutils': 5.3.0(rollup@4.59.0) - '@storybook/builder-vite': 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) - '@storybook/react': 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2) + '@storybook/builder-vite': 9.1.16(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@storybook/react': 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2) find-up: 7.0.0 magic-string: 0.30.21 react: 19.2.0 react-docgen: 8.0.2 react-dom: 19.2.0(react@19.2.0) resolve: 1.22.11 - storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) tsconfig-paths: 4.2.0 - vite: 8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - rollup - supports-color - typescript - '@storybook/react@9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2)': + '@storybook/react@9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)))(typescript@6.0.2)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) + '@storybook/react-dom-shim': 9.1.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + storybook: 9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) optionalDependencies: typescript: 6.0.2 @@ -17255,18 +17255,18 @@ snapshots: '@vercel/oidc@3.0.5': {} - '@vitejs/plugin-react@6.0.1(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitejs/plugin-react@6.0.1(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 - vite: 8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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.2(playwright@1.59.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2)': + '@vitest/browser-playwright@4.1.2(playwright@1.59.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2)': dependencies: - '@vitest/browser': 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/browser': 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/mocker': 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(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.2(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - bufferutil - msw @@ -17274,29 +17274,29 @@ snapshots: - vite optional: true - '@vitest/browser-playwright@4.1.2(playwright@1.59.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2)': + '@vitest/browser-playwright@4.1.2(playwright@1.59.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2)': dependencies: - '@vitest/browser': 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/browser': 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/mocker': 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2)': + '@vitest/browser@4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2)': dependencies: '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/utils': 4.1.2 magic-string: 0.30.21 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.1.0 - vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) ws: 8.20.0 transitivePeerDependencies: - bufferutil @@ -17305,16 +17305,16 @@ snapshots: - vite optional: true - '@vitest/browser@4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2)': + '@vitest/browser@4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2)': dependencies: '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/utils': 4.1.2 magic-string: 0.30.21 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.1.0 - vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) ws: 8.20.0 transitivePeerDependencies: - bufferutil @@ -17334,7 +17334,7 @@ snapshots: magicast: 0.5.2 obug: 2.1.1 tinyrainbow: 3.1.0 - vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - supports-color @@ -17355,29 +17355,29 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@3.2.4(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@3.2.4(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/mocker@4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(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.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/mocker@4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) '@vitest/pretty-format@3.2.4': dependencies: @@ -17854,6 +17854,16 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 + autoprefixer@10.4.22(postcss@8.5.8): + 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.8 + postcss-value-parser: 4.2.0 + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 @@ -18556,6 +18566,10 @@ snapshots: dependencies: postcss: 8.5.6 + css-declaration-sorter@7.3.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + css-has-pseudo@7.0.3(postcss@8.5.6): dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1) @@ -18565,12 +18579,12 @@ snapshots: css-loader@6.11.0(webpack@5.105.4(esbuild@0.27.4)): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) + icss-utils: 5.1.0(postcss@8.5.8) + postcss: 8.5.8 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.8) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.8) + postcss-modules-scope: 3.2.1(postcss@8.5.8) + postcss-modules-values: 4.0.0(postcss@8.5.8) postcss-value-parser: 4.2.0 semver: 7.7.3 optionalDependencies: @@ -18579,9 +18593,9 @@ snapshots: css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(esbuild@0.27.4)(webpack@5.105.4(esbuild@0.27.4)): dependencies: '@jridgewell/trace-mapping': 0.3.31 - cssnano: 6.1.2(postcss@8.5.6) + cssnano: 6.1.2(postcss@8.5.8) jest-worker: 29.7.0 - postcss: 8.5.6 + postcss: 8.5.8 schema-utils: 4.3.3 serialize-javascript: 7.0.5 webpack: 5.105.4(esbuild@0.27.4) @@ -18627,16 +18641,16 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-advanced@6.1.2(postcss@8.5.6): + cssnano-preset-advanced@6.1.2(postcss@8.5.8): dependencies: - autoprefixer: 10.4.22(postcss@8.5.6) + autoprefixer: 10.4.22(postcss@8.5.8) browserslist: 4.28.1 - cssnano-preset-default: 6.1.2(postcss@8.5.6) - postcss: 8.5.6 - postcss-discard-unused: 6.0.5(postcss@8.5.6) - postcss-merge-idents: 6.0.3(postcss@8.5.6) - postcss-reduce-idents: 6.0.3(postcss@8.5.6) - postcss-zindex: 6.0.2(postcss@8.5.6) + cssnano-preset-default: 6.1.2(postcss@8.5.8) + postcss: 8.5.8 + postcss-discard-unused: 6.0.5(postcss@8.5.8) + postcss-merge-idents: 6.0.3(postcss@8.5.8) + postcss-reduce-idents: 6.0.3(postcss@8.5.8) + postcss-zindex: 6.0.2(postcss@8.5.8) cssnano-preset-default@6.1.2(postcss@8.5.6): dependencies: @@ -18672,16 +18686,60 @@ snapshots: postcss-svgo: 6.0.3(postcss@8.5.6) postcss-unique-selectors: 6.0.4(postcss@8.5.6) + cssnano-preset-default@6.1.2(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + css-declaration-sorter: 7.3.0(postcss@8.5.8) + cssnano-utils: 4.0.2(postcss@8.5.8) + postcss: 8.5.8 + postcss-calc: 9.0.1(postcss@8.5.8) + postcss-colormin: 6.1.0(postcss@8.5.8) + postcss-convert-values: 6.1.0(postcss@8.5.8) + postcss-discard-comments: 6.0.2(postcss@8.5.8) + postcss-discard-duplicates: 6.0.3(postcss@8.5.8) + postcss-discard-empty: 6.0.3(postcss@8.5.8) + postcss-discard-overridden: 6.0.2(postcss@8.5.8) + postcss-merge-longhand: 6.0.5(postcss@8.5.8) + postcss-merge-rules: 6.1.1(postcss@8.5.8) + postcss-minify-font-values: 6.1.0(postcss@8.5.8) + postcss-minify-gradients: 6.0.3(postcss@8.5.8) + postcss-minify-params: 6.1.0(postcss@8.5.8) + postcss-minify-selectors: 6.0.4(postcss@8.5.8) + postcss-normalize-charset: 6.0.2(postcss@8.5.8) + postcss-normalize-display-values: 6.0.2(postcss@8.5.8) + postcss-normalize-positions: 6.0.2(postcss@8.5.8) + postcss-normalize-repeat-style: 6.0.2(postcss@8.5.8) + postcss-normalize-string: 6.0.2(postcss@8.5.8) + postcss-normalize-timing-functions: 6.0.2(postcss@8.5.8) + postcss-normalize-unicode: 6.1.0(postcss@8.5.8) + postcss-normalize-url: 6.0.2(postcss@8.5.8) + postcss-normalize-whitespace: 6.0.2(postcss@8.5.8) + postcss-ordered-values: 6.0.2(postcss@8.5.8) + postcss-reduce-initial: 6.1.0(postcss@8.5.8) + postcss-reduce-transforms: 6.0.2(postcss@8.5.8) + postcss-svgo: 6.0.3(postcss@8.5.8) + postcss-unique-selectors: 6.0.4(postcss@8.5.8) + cssnano-utils@4.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 + cssnano-utils@4.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + cssnano@6.1.2(postcss@8.5.6): dependencies: cssnano-preset-default: 6.1.2(postcss@8.5.6) lilconfig: 3.1.3 postcss: 8.5.6 + cssnano@6.1.2(postcss@8.5.8): + dependencies: + cssnano-preset-default: 6.1.2(postcss@8.5.8) + lilconfig: 3.1.3 + postcss: 8.5.8 + csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -20057,9 +20115,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.6): + icss-utils@5.1.0(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 ieee754@1.2.1: {} @@ -22046,6 +22104,12 @@ snapshots: postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 + postcss-calc@9.0.1(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + postcss-clamp@4.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -22080,12 +22144,26 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-colormin@6.1.0(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-convert-values@6.1.0(postcss@8.5.6): dependencies: browserslist: 4.28.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-convert-values@6.1.0(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-custom-media@11.0.6(postcss@8.5.6): 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) @@ -22120,21 +22198,37 @@ snapshots: dependencies: postcss: 8.5.6 + postcss-discard-comments@6.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-discard-duplicates@6.0.3(postcss@8.5.6): dependencies: postcss: 8.5.6 + postcss-discard-duplicates@6.0.3(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-discard-empty@6.0.3(postcss@8.5.6): dependencies: postcss: 8.5.6 + postcss-discard-empty@6.0.3(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-discard-overridden@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-discard-unused@6.0.5(postcss@8.5.6): + postcss-discard-overridden@6.0.2(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 + + postcss-discard-unused@6.0.5(postcss@8.5.8): + dependencies: + postcss: 8.5.8 postcss-selector-parser: 6.1.2 postcss-double-position-gradients@6.0.4(postcss@8.5.6): @@ -22213,10 +22307,10 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-merge-idents@6.0.3(postcss@8.5.6): + postcss-merge-idents@6.0.3(postcss@8.5.8): dependencies: - cssnano-utils: 4.0.2(postcss@8.5.6) - postcss: 8.5.6 + cssnano-utils: 4.0.2(postcss@8.5.8) + postcss: 8.5.8 postcss-value-parser: 4.2.0 postcss-merge-longhand@6.0.5(postcss@8.5.6): @@ -22225,6 +22319,12 @@ snapshots: postcss-value-parser: 4.2.0 stylehacks: 6.1.1(postcss@8.5.6) + postcss-merge-longhand@6.0.5(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + stylehacks: 6.1.1(postcss@8.5.8) + postcss-merge-rules@6.1.1(postcss@8.5.6): dependencies: browserslist: 4.28.1 @@ -22233,11 +22333,24 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 6.1.2 + postcss-merge-rules@6.1.1(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + caniuse-api: 3.0.0 + cssnano-utils: 4.0.2(postcss@8.5.8) + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 + postcss-minify-font-values@6.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-minify-font-values@6.1.0(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-minify-gradients@6.0.3(postcss@8.5.6): dependencies: colord: 2.9.3 @@ -22245,6 +22358,13 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-minify-gradients@6.0.3(postcss@8.5.8): + dependencies: + colord: 2.9.3 + cssnano-utils: 4.0.2(postcss@8.5.8) + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-minify-params@6.1.0(postcss@8.5.6): dependencies: browserslist: 4.28.1 @@ -22252,31 +22372,43 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-minify-params@6.1.0(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + cssnano-utils: 4.0.2(postcss@8.5.8) + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-minify-selectors@6.0.4(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-modules-extract-imports@3.1.0(postcss@8.5.6): + postcss-minify-selectors@6.0.4(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 - postcss-modules-local-by-default@4.2.0(postcss@8.5.6): + postcss-modules-extract-imports@3.1.0(postcss@8.5.8): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 + postcss: 8.5.8 + + postcss-modules-local-by-default@4.2.0(postcss@8.5.8): + dependencies: + icss-utils: 5.1.0(postcss@8.5.8) + postcss: 8.5.8 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.6): + postcss-modules-scope@3.2.1(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss-selector-parser: 7.1.1 - postcss-modules-values@4.0.0(postcss@8.5.6): + postcss-modules-values@4.0.0(postcss@8.5.8): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 + icss-utils: 5.1.0(postcss@8.5.8) + postcss: 8.5.8 postcss-nested@6.2.0(postcss@8.5.6): dependencies: @@ -22294,47 +22426,92 @@ snapshots: dependencies: postcss: 8.5.6 + postcss-normalize-charset@6.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-normalize-display-values@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-normalize-display-values@6.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-normalize-positions@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-normalize-positions@6.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-normalize-repeat-style@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-normalize-repeat-style@6.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-normalize-string@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-normalize-string@6.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-normalize-timing-functions@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-normalize-timing-functions@6.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-normalize-unicode@6.1.0(postcss@8.5.6): dependencies: browserslist: 4.28.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-normalize-unicode@6.1.0(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-normalize-url@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-normalize-url@6.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-normalize-whitespace@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-normalize-whitespace@6.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-opacity-percentage@3.0.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -22345,6 +22522,12 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-ordered-values@6.0.2(postcss@8.5.8): + dependencies: + cssnano-utils: 4.0.2(postcss@8.5.8) + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-overflow-shorthand@6.0.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -22435,9 +22618,9 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 7.1.1 - postcss-reduce-idents@6.0.3(postcss@8.5.6): + postcss-reduce-idents@6.0.3(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss-value-parser: 4.2.0 postcss-reduce-initial@6.1.0(postcss@8.5.6): @@ -22446,11 +22629,22 @@ snapshots: caniuse-api: 3.0.0 postcss: 8.5.6 + postcss-reduce-initial@6.1.0(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + caniuse-api: 3.0.0 + postcss: 8.5.8 + postcss-reduce-transforms@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-reduce-transforms@6.0.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -22470,9 +22664,9 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sort-media-queries@5.2.0(postcss@8.5.6): + postcss-sort-media-queries@5.2.0(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 sort-css-media-queries: 2.2.0 postcss-svgo@6.0.3(postcss@8.5.6): @@ -22481,16 +22675,27 @@ snapshots: postcss-value-parser: 4.2.0 svgo: 3.3.3 + postcss-svgo@6.0.3(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-value-parser: 4.2.0 + svgo: 3.3.3 + postcss-unique-selectors@6.0.4(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 6.1.2 + postcss-unique-selectors@6.0.4(postcss@8.5.8): + dependencies: + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 + postcss-value-parser@4.2.0: {} - postcss-zindex@6.0.2(postcss@8.5.6): + postcss-zindex@6.0.2(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss@8.5.6: dependencies: @@ -23470,7 +23675,7 @@ snapshots: dependencies: escalade: 3.2.0 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.8 strip-json-comments: 3.1.1 run-applescript@7.1.0: {} @@ -23922,13 +24127,13 @@ snapshots: graphql: 16.12.0 react: 19.2.0 - storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + storybook@9.1.20(@testing-library/dom@10.4.1)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@storybook/global': 5.0.0 '@testing-library/jest-dom': 6.9.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 3.2.4(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/spy': 3.2.4 better-opn: 3.0.2 esbuild: 0.25.12 @@ -24062,6 +24267,12 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 6.1.2 + stylehacks@6.1.1(postcss@8.5.8): + dependencies: + browserslist: 4.28.1 + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 + stylis@4.3.6: {} sucrase@3.35.1: @@ -24630,7 +24841,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -24650,7 +24861,7 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): + vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -24670,10 +24881,10 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - vitest@4.1.2(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.2(@opentelemetry/api@1.9.0)(@types/node@22.19.15)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(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.2 - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(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.2 '@vitest/runner': 4.1.2 '@vitest/snapshot': 4.1.2 @@ -24690,20 +24901,20 @@ snapshots: tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/node': 22.19.15 - '@vitest/browser-playwright': 4.1.2(playwright@1.59.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/browser-playwright': 4.1.2(playwright@1.59.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) jsdom: 26.1.0 transitivePeerDependencies: - msw - vitest@4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)): + vitest@4.1.2(@opentelemetry/api@1.9.0)(@types/node@24.10.1)(@vitest/browser-playwright@4.1.2)(jsdom@26.1.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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.2 - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3)) + '@vitest/mocker': 4.1.2(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(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.2 '@vitest/runner': 4.1.2 '@vitest/snapshot': 4.1.2 @@ -24720,12 +24931,12 @@ snapshots: tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) + vite: 8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/node': 24.10.1 - '@vitest/browser-playwright': 4.1.2(playwright@1.59.0)(vite@8.0.3(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) + '@vitest/browser-playwright': 4.1.2(playwright@1.59.0)(vite@8.0.5(@emnapi/core@1.7.1)(@emnapi/runtime@1.7.1)(@types/node@24.10.1)(esbuild@0.27.4)(jiti@2.6.1)(less@4.4.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.3))(vitest@4.1.2) jsdom: 26.1.0 transitivePeerDependencies: - msw diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 68c1d33b..dedea64a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -18,7 +18,7 @@ catalog: storybook: 9.1.20 tsx: ^4.21.0 typescript: 6.0.2 - vite: 8.0.3 + vite: 8.0.5 vitest: 4.1.2 overrides: diff --git a/turbo.json b/turbo.json index 73f18424..42808d61 100644 --- a/turbo.json +++ b/turbo.json @@ -2,62 +2,200 @@ "$schema": "https://turbo.build/schema.json", "ui": "tui", "futureFlags": { - "affectedUsingTaskInputs": true + "affectedUsingTaskInputs": true, + "watchUsingTaskInputs": true }, "tasks": { "build": { "description": "Compiles TypeScript and bundles each package", - "dependsOn": ["//#audit", "^build", "//#gen"], - "inputs": ["$TURBO_DEFAULT$", "!coverage/**", "!target/**", "!tests/**", "!**/*.test.*", "!**/*.spec.*", "!vitest*.config.*"], - "outputs": ["dist/**", "build/**", "*.tsbuildinfo"] + "dependsOn": [ + "//#audit", + "^build", + "//#gen" + ], + "inputs": [ + "src/**/*.ts", + "tsconfig*.json", + "rolldown.config.ts", + "!coverage/**", + "!target/**", + "!tests/**", + "!**/*.test.*", + "!**/*.spec.*", + "!vitest*.config.*" + ], + "outputs": [ + "dist/**", + "build/**", + "*.tsbuildinfo" + ] + }, + "watch": { + "description": "Watches package source files and rebuilds on changes (one-shot completion)", + "cache": false, + "persistent": false, + "inputs": [ + "src/**/*.ts", + "tsconfig*.json", + "rolldown.config.ts", + "!coverage/**", + "!target/**", + "!tests/**", + "!**/*.test.*", + "!**/*.spec.*", + "!vitest*.config.*" + ], + "outputs": [ + "dist/**", + "build/**", + "*.tsbuildinfo" + ] }, "test": { "description": "Runs the default test suite for each package", - "dependsOn": ["^build", "@cellix/config-vitest#build"], - "inputs": ["$TURBO_DEFAULT$", "!coverage/**", "!target/**", "!dist/**", "!build/**", "!deploy/**"] + "dependsOn": [ + "^build", + "@cellix/config-vitest#build" + ], + "inputs": [ + "$TURBO_DEFAULT$", + "!coverage/**", + "!target/**", + "!dist/**", + "!build/**", + "!deploy/**" + ] }, "test:coverage": { "description": "Runs the coverage test suite and writes coverage reports", - "dependsOn": ["build", "^build", "@cellix/config-vitest#build"], - "inputs": ["$TURBO_DEFAULT$", "!coverage/**", "!target/**", "!dist/**", "!build/**", "!deploy/**"], - "outputs": ["coverage/**"] + "dependsOn": [ + "build", + "^build", + "@cellix/config-vitest#build" + ], + "inputs": [ + "$TURBO_DEFAULT$", + "!coverage/**", + "!target/**", + "!dist/**", + "!build/**", + "!deploy/**" + ], + "outputs": [ + "coverage/**" + ] }, "test:watch": { "description": "Runs tests in watch mode for active packages", - "dependsOn": ["build", "^build"], + "dependsOn": [ + "build", + "^build" + ], "cache": false, "persistent": true }, "test:unit": { "description": "Runs unit tests for each package", - "dependsOn": ["^build"], - "inputs": ["$TURBO_DEFAULT$", "!coverage/**", "!target/**", "!dist/**", "!build/**", "!deploy/**"], - "outputs": ["coverage/**"] + "dependsOn": [ + "^build" + ], + "inputs": [ + "$TURBO_DEFAULT$", + "!coverage/**", + "!target/**", + "!dist/**", + "!build/**", + "!deploy/**" + ], + "outputs": [ + "coverage/**" + ] }, "test:integration": { "description": "Runs integration tests for each package", - "dependsOn": ["^build"], - "inputs": ["$TURBO_DEFAULT$", "!coverage/**", "!target/**", "!dist/**", "!build/**", "!deploy/**"], - "outputs": ["coverage/**"] + "dependsOn": [ + "^build" + ], + "inputs": [ + "$TURBO_DEFAULT$", + "!coverage/**", + "!target/**", + "!dist/**", + "!build/**", + "!deploy/**" + ], + "outputs": [ + "coverage/**" + ] }, "test:serenity": { "description": "Runs SerenityJS end-to-end test suites", - "dependsOn": ["^build"], - "inputs": ["$TURBO_DEFAULT$", "!coverage/**", "!target/**", "!dist/**", "!build/**", "!deploy/**"], - "outputs": ["target/**"] + "dependsOn": [ + "^build" + ], + "inputs": [ + "$TURBO_DEFAULT$", + "!coverage/**", + "!target/**", + "!dist/**", + "!build/**", + "!deploy/**" + ], + "outputs": [ + "target/**" + ] }, "storybook": { "description": "Starts Storybook for packages that expose it", - "dependsOn": ["^build", "//#gen"], + "dependsOn": [ + "^build", + "//#gen" + ], "cache": false, "persistent": true }, - "start": { - "description": "Starts long-running package start scripts", + "dev": { + "description": "Starts application packages dev servers in watch mode", + "dependsOn": [ + "^build", + "//#gen" + ], "cache": false, - "persistent": true + "persistent": true, + "interruptible": true, + "inputs": [ + "$TURBO_DEFAULT$", + "!coverage/**", + "!target/**", + "!dist/**", + "!build/**", + "!deploy/**", + "!**/*.tsbuildinfo" + ] }, - "dev": { + "watch": { + "description": "Runs native library/package watch tasks during development", + "cache": false, + "persistent": false, + "inputs": [ + "src/**/*.ts", + "tsconfig*.json", + "rolldown.config.ts", + "!coverage/**", + "!target/**", + "!tests/**", + "!**/*.test.*", + "!**/*.spec.*", + "!vitest*.config.*" + ], + "outputs": [ + "dist/**", + "build/**", + "*.tsbuildinfo" + ] + }, + "start": { + "description": "Starts long-running package start scripts", "cache": false, "persistent": true }, @@ -68,7 +206,15 @@ }, "lint": { "description": "Runs the Biome linter", - "inputs": ["$TURBO_DEFAULT$", "$TURBO_ROOT$/biome.json", "!coverage/**", "!target/**", "!dist/**", "!build/**", "!deploy/**"], + "inputs": [ + "$TURBO_DEFAULT$", + "$TURBO_ROOT$/biome.json", + "!coverage/**", + "!target/**", + "!dist/**", + "!build/**", + "!deploy/**" + ], "outputs": [] }, "format": { @@ -83,13 +229,47 @@ "//#gen": { "description": "Runs graphql-codegen to generate static SDL arrays and resolver manifests from .graphql schema files", "cache": true, - "inputs": ["codegen.yml", "**/*.graphql", "**/*.resolvers.ts", "**/*.permissions.ts", "packages/cellix/graphql-codegen/plugins/**"], - "outputs": ["**/generated.ts", "**/*.generated.ts", "**/graphql.schema.json", "**/generated.tsx"] + "inputs": [ + "codegen.yml", + "**/*.graphql", + "**/*.resolvers.ts", + "**/*.permissions.ts", + "packages/cellix/graphql-codegen/plugins/**", + "!src/generated/**", + "!**/*.generated.ts", + "!**/generated.ts", + "!**/generated.tsx", + "!**/graphql.schema.json" + ], + "outputs": [ + "**/generated.ts", + "**/*.generated.ts", + "**/graphql.schema.json", + "**/generated.tsx" + ] }, "//#gen:watch": { "description": "Runs graphql-codegen in watch mode", "cache": false, - "persistent": true + "persistent": false, + "inputs": [ + "codegen.yml", + "**/*.graphql", + "**/*.resolvers.ts", + "**/*.permissions.ts", + "packages/cellix/graphql-codegen/plugins/**", + "!src/generated/**", + "!**/*.generated.ts", + "!**/generated.ts", + "!**/generated.tsx", + "!**/graphql.schema.json" + ], + "outputs": [ + "**/generated.ts", + "**/*.generated.ts", + "**/graphql.schema.json", + "**/generated.tsx" + ] }, "//#audit": { "description": "Runs package audit checks before build tasks",