From 8de19320c582b96c91e3faa56f98a6c11f76feac Mon Sep 17 00:00:00 2001 From: Julien Gautier Date: Thu, 30 Apr 2026 17:37:29 +0200 Subject: [PATCH] chore: generate shared and feature libs with module boundaries per ADR-0003 Generate the four phase-4 libraries: - libs/shared/tokens (project name shared-tokens) - plain TS lib via @nx/js:library; will host the a11y design tokens (palette, contrast tiers, spacing, motion) once Tailwind lands in phase 5; consumable by both apps; tagged scope:shared, type:shared. - libs/shared/util (shared-util) - plain TS lib for cross-cutting utility code; tagged scope:shared, type:shared. - libs/shared/ui (shared-ui) - Angular standalone library that will host the spartan-ng components copy-pasted in phase 5; Angular-only so tagged scope:portal-shell, type:shared. unitTestRunner= vitest-analog because vitest-angular requires a buildable lib. - libs/feature/auth (feature-auth) - placeholder Angular standalone feature lib to demonstrate the type:feature pattern; tagged scope:portal-shell, type:feature. @nx/enforce-module-boundaries depConstraints replaced (root eslint.config.mjs) with the rules from ADR-0003: scope:portal-shell -> scope:portal-shell, scope:shared scope:portal-bff -> scope:portal-bff, scope:shared scope:shared -> scope:shared type:app -> type:feature, type:shared type:feature -> type:feature, type:shared type:shared -> type:shared This forbids portal-shell from importing portal-bff code (and vice versa) and prevents shared libs from depending on feature libs. Project names follow the convention of ADR-0003 (feature- / shared-) by passing --name explicitly to the generator; the Nx 22 default takes only the last directory segment. Sanity check: pnpm nx run-many -t lint and -t test pass for the 8 projects (4 apps/e2e + 4 libs). Side effects from the generators: tsconfig.base.json paths populated with the lib import aliases; nx.json gains vite/playwright plugin entries; .gitignore picks up vitest.config.*.timestamp* (Vitest temp files); package.json gains @analogjs/vitest-angular and related devDeps; pnpm-lock.yaml regenerated. Two eslint-disable comments in portal-bff-e2e support files were trimmed by lint --fix - those files already lint clean without the directive. --- .gitignore | 2 + .../src/support/global-teardown.ts | 2 +- apps/portal-bff-e2e/src/support/test-setup.ts | 2 +- eslint.config.mjs | 34 +- libs/feature/auth/README.md | 7 + libs/feature/auth/eslint.config.mjs | 34 ++ libs/feature/auth/project.json | 13 + libs/feature/auth/src/index.ts | 1 + .../src/lib/feature-auth/feature-auth.css | 0 .../src/lib/feature-auth/feature-auth.html | 1 + .../src/lib/feature-auth/feature-auth.spec.ts | 21 + .../auth/src/lib/feature-auth/feature-auth.ts | 9 + libs/feature/auth/src/test-setup.ts | 5 + libs/feature/auth/tsconfig.json | 23 + libs/feature/auth/tsconfig.lib.json | 26 + libs/feature/auth/tsconfig.spec.json | 23 + libs/feature/auth/vite.config.mts | 28 ++ libs/shared/tokens/README.md | 11 + libs/shared/tokens/eslint.config.mjs | 22 + libs/shared/tokens/package.json | 13 + libs/shared/tokens/project.json | 19 + libs/shared/tokens/src/index.ts | 1 + .../tokens/src/lib/shared-tokens.spec.ts | 7 + libs/shared/tokens/src/lib/shared-tokens.ts | 3 + libs/shared/tokens/tsconfig.json | 23 + libs/shared/tokens/tsconfig.lib.json | 23 + libs/shared/tokens/tsconfig.spec.json | 22 + libs/shared/tokens/vitest.config.mts | 21 + libs/shared/ui/README.md | 7 + libs/shared/ui/eslint.config.mjs | 34 ++ libs/shared/ui/project.json | 13 + libs/shared/ui/src/index.ts | 1 + .../shared/ui/src/lib/shared-ui/shared-ui.css | 0 .../ui/src/lib/shared-ui/shared-ui.html | 1 + .../ui/src/lib/shared-ui/shared-ui.spec.ts | 21 + libs/shared/ui/src/lib/shared-ui/shared-ui.ts | 9 + libs/shared/ui/src/test-setup.ts | 5 + libs/shared/ui/tsconfig.json | 23 + libs/shared/ui/tsconfig.lib.json | 26 + libs/shared/ui/tsconfig.spec.json | 23 + libs/shared/ui/vite.config.mts | 28 ++ libs/shared/util/README.md | 11 + libs/shared/util/eslint.config.mjs | 22 + libs/shared/util/package.json | 13 + libs/shared/util/project.json | 19 + libs/shared/util/src/index.ts | 1 + libs/shared/util/src/lib/shared-util.spec.ts | 7 + libs/shared/util/src/lib/shared-util.ts | 3 + libs/shared/util/tsconfig.json | 23 + libs/shared/util/tsconfig.lib.json | 23 + libs/shared/util/tsconfig.spec.json | 22 + libs/shared/util/vitest.config.mts | 21 + nx.json | 20 + package.json | 7 + pnpm-lock.yaml | 455 ++++++++++++++---- tsconfig.base.json | 7 +- vitest.workspace.ts | 1 + 57 files changed, 1143 insertions(+), 99 deletions(-) create mode 100644 libs/feature/auth/README.md create mode 100644 libs/feature/auth/eslint.config.mjs create mode 100644 libs/feature/auth/project.json create mode 100644 libs/feature/auth/src/index.ts create mode 100644 libs/feature/auth/src/lib/feature-auth/feature-auth.css create mode 100644 libs/feature/auth/src/lib/feature-auth/feature-auth.html create mode 100644 libs/feature/auth/src/lib/feature-auth/feature-auth.spec.ts create mode 100644 libs/feature/auth/src/lib/feature-auth/feature-auth.ts create mode 100644 libs/feature/auth/src/test-setup.ts create mode 100644 libs/feature/auth/tsconfig.json create mode 100644 libs/feature/auth/tsconfig.lib.json create mode 100644 libs/feature/auth/tsconfig.spec.json create mode 100644 libs/feature/auth/vite.config.mts create mode 100644 libs/shared/tokens/README.md create mode 100644 libs/shared/tokens/eslint.config.mjs create mode 100644 libs/shared/tokens/package.json create mode 100644 libs/shared/tokens/project.json create mode 100644 libs/shared/tokens/src/index.ts create mode 100644 libs/shared/tokens/src/lib/shared-tokens.spec.ts create mode 100644 libs/shared/tokens/src/lib/shared-tokens.ts create mode 100644 libs/shared/tokens/tsconfig.json create mode 100644 libs/shared/tokens/tsconfig.lib.json create mode 100644 libs/shared/tokens/tsconfig.spec.json create mode 100644 libs/shared/tokens/vitest.config.mts create mode 100644 libs/shared/ui/README.md create mode 100644 libs/shared/ui/eslint.config.mjs create mode 100644 libs/shared/ui/project.json create mode 100644 libs/shared/ui/src/index.ts create mode 100644 libs/shared/ui/src/lib/shared-ui/shared-ui.css create mode 100644 libs/shared/ui/src/lib/shared-ui/shared-ui.html create mode 100644 libs/shared/ui/src/lib/shared-ui/shared-ui.spec.ts create mode 100644 libs/shared/ui/src/lib/shared-ui/shared-ui.ts create mode 100644 libs/shared/ui/src/test-setup.ts create mode 100644 libs/shared/ui/tsconfig.json create mode 100644 libs/shared/ui/tsconfig.lib.json create mode 100644 libs/shared/ui/tsconfig.spec.json create mode 100644 libs/shared/ui/vite.config.mts create mode 100644 libs/shared/util/README.md create mode 100644 libs/shared/util/eslint.config.mjs create mode 100644 libs/shared/util/package.json create mode 100644 libs/shared/util/project.json create mode 100644 libs/shared/util/src/index.ts create mode 100644 libs/shared/util/src/lib/shared-util.spec.ts create mode 100644 libs/shared/util/src/lib/shared-util.ts create mode 100644 libs/shared/util/tsconfig.json create mode 100644 libs/shared/util/tsconfig.lib.json create mode 100644 libs/shared/util/tsconfig.spec.json create mode 100644 libs/shared/util/vitest.config.mts create mode 100644 vitest.workspace.ts diff --git a/.gitignore b/.gitignore index 8086b75..d84b099 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,5 @@ notes/ .angular __screenshots__/ + +vitest.config.*.timestamp* diff --git a/apps/portal-bff-e2e/src/support/global-teardown.ts b/apps/portal-bff-e2e/src/support/global-teardown.ts index 3f14e49..f6aca47 100644 --- a/apps/portal-bff-e2e/src/support/global-teardown.ts +++ b/apps/portal-bff-e2e/src/support/global-teardown.ts @@ -1,5 +1,5 @@ import { killPort } from '@nx/node/utils'; -/* eslint-disable */ + module.exports = async function () { // Put clean up logic here (e.g. stopping services, docker-compose, etc.). diff --git a/apps/portal-bff-e2e/src/support/test-setup.ts b/apps/portal-bff-e2e/src/support/test-setup.ts index 4ae5f15..718ef48 100644 --- a/apps/portal-bff-e2e/src/support/test-setup.ts +++ b/apps/portal-bff-e2e/src/support/test-setup.ts @@ -1,4 +1,4 @@ -/* eslint-disable */ + import axios from 'axios'; module.exports = async function () { diff --git a/eslint.config.mjs b/eslint.config.mjs index 5f08df3..d55d975 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -5,7 +5,7 @@ export default [ ...nx.configs['flat/typescript'], ...nx.configs['flat/javascript'], { - ignores: ['**/dist', '**/out-tsc'], + ignores: ['**/dist', '**/out-tsc', '**/vitest.config.*.timestamp*'], }, { files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], @@ -15,10 +15,38 @@ export default [ { enforceBuildableLibDependency: true, allow: ['^.*/eslint(\\.base)?\\.config\\.[cm]?[jt]s$'], + // Module boundaries per ADR-0003. + // + // Scope tags partition the workspace into front (portal-shell) / + // back (portal-bff) / shared (consumable by both). Type tags + // partition into apps / feature libs / shared libs. + // + // Both axes apply: a lib must satisfy both scope and type rules + // to be importable. depConstraints: [ { - sourceTag: '*', - onlyDependOnLibsWithTags: ['*'], + sourceTag: 'scope:portal-shell', + onlyDependOnLibsWithTags: ['scope:portal-shell', 'scope:shared'], + }, + { + sourceTag: 'scope:portal-bff', + onlyDependOnLibsWithTags: ['scope:portal-bff', 'scope:shared'], + }, + { + sourceTag: 'scope:shared', + onlyDependOnLibsWithTags: ['scope:shared'], + }, + { + sourceTag: 'type:app', + onlyDependOnLibsWithTags: ['type:feature', 'type:shared'], + }, + { + sourceTag: 'type:feature', + onlyDependOnLibsWithTags: ['type:feature', 'type:shared'], + }, + { + sourceTag: 'type:shared', + onlyDependOnLibsWithTags: ['type:shared'], }, ], }, diff --git a/libs/feature/auth/README.md b/libs/feature/auth/README.md new file mode 100644 index 0000000..21eaf8f --- /dev/null +++ b/libs/feature/auth/README.md @@ -0,0 +1,7 @@ +# feature-auth + +This library was generated with [Nx](https://nx.dev). + +## Running unit tests + +Run `nx test feature-auth` to execute the unit tests. diff --git a/libs/feature/auth/eslint.config.mjs b/libs/feature/auth/eslint.config.mjs new file mode 100644 index 0000000..8e41cc1 --- /dev/null +++ b/libs/feature/auth/eslint.config.mjs @@ -0,0 +1,34 @@ +import nx from '@nx/eslint-plugin'; +import baseConfig from '../../../eslint.config.mjs'; + +export default [ + ...nx.configs['flat/angular'], + ...nx.configs['flat/angular-template'], + ...baseConfig, + { + files: ['**/*.ts'], + rules: { + '@angular-eslint/directive-selector': [ + 'error', + { + type: 'attribute', + prefix: 'lib', + style: 'camelCase', + }, + ], + '@angular-eslint/component-selector': [ + 'error', + { + type: 'element', + prefix: 'lib', + style: 'kebab-case', + }, + ], + }, + }, + { + files: ['**/*.html'], + // Override or add rules here + rules: {}, + }, +]; diff --git a/libs/feature/auth/project.json b/libs/feature/auth/project.json new file mode 100644 index 0000000..98015db --- /dev/null +++ b/libs/feature/auth/project.json @@ -0,0 +1,13 @@ +{ + "name": "feature-auth", + "$schema": "../../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "libs/feature/auth/src", + "prefix": "lib", + "projectType": "library", + "tags": ["scope:portal-shell", "type:feature"], + "targets": { + "lint": { + "executor": "@nx/eslint:lint" + } + } +} diff --git a/libs/feature/auth/src/index.ts b/libs/feature/auth/src/index.ts new file mode 100644 index 0000000..563880e --- /dev/null +++ b/libs/feature/auth/src/index.ts @@ -0,0 +1 @@ +export * from './lib/feature-auth/feature-auth'; diff --git a/libs/feature/auth/src/lib/feature-auth/feature-auth.css b/libs/feature/auth/src/lib/feature-auth/feature-auth.css new file mode 100644 index 0000000..e69de29 diff --git a/libs/feature/auth/src/lib/feature-auth/feature-auth.html b/libs/feature/auth/src/lib/feature-auth/feature-auth.html new file mode 100644 index 0000000..9a8ac28 --- /dev/null +++ b/libs/feature/auth/src/lib/feature-auth/feature-auth.html @@ -0,0 +1 @@ +

FeatureAuth works!

diff --git a/libs/feature/auth/src/lib/feature-auth/feature-auth.spec.ts b/libs/feature/auth/src/lib/feature-auth/feature-auth.spec.ts new file mode 100644 index 0000000..85c3885 --- /dev/null +++ b/libs/feature/auth/src/lib/feature-auth/feature-auth.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { FeatureAuth } from './feature-auth'; + +describe('FeatureAuth', () => { + let component: FeatureAuth; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [FeatureAuth], + }).compileComponents(); + + fixture = TestBed.createComponent(FeatureAuth); + component = fixture.componentInstance; + await fixture.whenStable(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/libs/feature/auth/src/lib/feature-auth/feature-auth.ts b/libs/feature/auth/src/lib/feature-auth/feature-auth.ts new file mode 100644 index 0000000..f9b0971 --- /dev/null +++ b/libs/feature/auth/src/lib/feature-auth/feature-auth.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'lib-feature-auth', + imports: [], + templateUrl: './feature-auth.html', + styleUrl: './feature-auth.css', +}) +export class FeatureAuth {} diff --git a/libs/feature/auth/src/test-setup.ts b/libs/feature/auth/src/test-setup.ts new file mode 100644 index 0000000..17b7965 --- /dev/null +++ b/libs/feature/auth/src/test-setup.ts @@ -0,0 +1,5 @@ +import '@angular/compiler'; +import '@analogjs/vitest-angular/setup-snapshots'; +import { setupTestBed } from '@analogjs/vitest-angular/setup-testbed'; + +setupTestBed(); diff --git a/libs/feature/auth/tsconfig.json b/libs/feature/auth/tsconfig.json new file mode 100644 index 0000000..116e088 --- /dev/null +++ b/libs/feature/auth/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "emitDecoratorMetadata": false, + "module": "preserve" + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ] +} diff --git a/libs/feature/auth/tsconfig.lib.json b/libs/feature/auth/tsconfig.lib.json new file mode 100644 index 0000000..a9b98ba --- /dev/null +++ b/libs/feature/auth/tsconfig.lib.json @@ -0,0 +1,26 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../dist/out-tsc", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [] + }, + "include": ["src/**/*.ts"], + "exclude": [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "vite.config.ts", + "vite.config.mts", + "vitest.config.ts", + "vitest.config.mts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx", + "src/test-setup.ts" + ] +} diff --git a/libs/feature/auth/tsconfig.spec.json b/libs/feature/auth/tsconfig.spec.json new file mode 100644 index 0000000..39a8c3f --- /dev/null +++ b/libs/feature/auth/tsconfig.spec.json @@ -0,0 +1,23 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../dist/out-tsc", + "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"] + }, + "include": [ + "vite.config.ts", + "vite.config.mts", + "vitest.config.ts", + "vitest.config.mts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx", + "src/**/*.d.ts" + ], + "files": ["src/test-setup.ts"] +} diff --git a/libs/feature/auth/vite.config.mts b/libs/feature/auth/vite.config.mts new file mode 100644 index 0000000..eb31f04 --- /dev/null +++ b/libs/feature/auth/vite.config.mts @@ -0,0 +1,28 @@ +/// +import { defineConfig } from 'vite'; +import angular from '@analogjs/vite-plugin-angular'; +import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; +import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; + +export default defineConfig(() => ({ + root: __dirname, + cacheDir: '../../../node_modules/.vite/libs/feature/auth', + plugins: [angular(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])], + // Uncomment this if you are using workers. + // worker: { + // plugins: () => [ nxViteTsPaths() ], + // }, + test: { + name: 'feature-auth', + watch: false, + globals: true, + environment: 'jsdom', + include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + setupFiles: ['src/test-setup.ts'], + reporters: ['default'], + coverage: { + reportsDirectory: '../../../coverage/libs/feature/auth', + provider: 'v8' as const, + }, + }, +})); diff --git a/libs/shared/tokens/README.md b/libs/shared/tokens/README.md new file mode 100644 index 0000000..52185b1 --- /dev/null +++ b/libs/shared/tokens/README.md @@ -0,0 +1,11 @@ +# shared-tokens + +This library was generated with [Nx](https://nx.dev). + +## Building + +Run `nx build shared-tokens` to build the library. + +## Running unit tests + +Run `nx test shared-tokens` to execute the unit tests via [Vitest](https://vitest.dev/). diff --git a/libs/shared/tokens/eslint.config.mjs b/libs/shared/tokens/eslint.config.mjs new file mode 100644 index 0000000..36838af --- /dev/null +++ b/libs/shared/tokens/eslint.config.mjs @@ -0,0 +1,22 @@ +import baseConfig from '../../../eslint.config.mjs'; + +export default [ + ...baseConfig, + { + files: ['**/*.json'], + rules: { + '@nx/dependency-checks': [ + 'error', + { + ignoredFiles: [ + '{projectRoot}/eslint.config.{js,cjs,mjs,ts,cts,mts}', + '{projectRoot}/vite.config.{js,ts,mjs,mts}', + ], + }, + ], + }, + languageOptions: { + parser: await import('jsonc-eslint-parser'), + }, + }, +]; diff --git a/libs/shared/tokens/package.json b/libs/shared/tokens/package.json new file mode 100644 index 0000000..c7959d3 --- /dev/null +++ b/libs/shared/tokens/package.json @@ -0,0 +1,13 @@ +{ + "name": "shared-tokens", + "version": "0.0.1", + "private": true, + "type": "commonjs", + "main": "./src/index.js", + "types": "./src/index.d.ts", + "dependencies": { + "tslib": "^2.3.0", + "vitest": "^4.0.8", + "@nx/vite": "^22.7.1" + } +} diff --git a/libs/shared/tokens/project.json b/libs/shared/tokens/project.json new file mode 100644 index 0000000..b5893e4 --- /dev/null +++ b/libs/shared/tokens/project.json @@ -0,0 +1,19 @@ +{ + "name": "shared-tokens", + "$schema": "../../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "libs/shared/tokens/src", + "projectType": "library", + "tags": ["scope:shared", "type:shared"], + "targets": { + "build": { + "executor": "@nx/js:tsc", + "outputs": ["{options.outputPath}"], + "options": { + "outputPath": "dist/libs/shared/tokens", + "main": "libs/shared/tokens/src/index.ts", + "tsConfig": "libs/shared/tokens/tsconfig.lib.json", + "assets": ["libs/shared/tokens/*.md"] + } + } + } +} diff --git a/libs/shared/tokens/src/index.ts b/libs/shared/tokens/src/index.ts new file mode 100644 index 0000000..4915f95 --- /dev/null +++ b/libs/shared/tokens/src/index.ts @@ -0,0 +1 @@ +export * from './lib/shared-tokens'; diff --git a/libs/shared/tokens/src/lib/shared-tokens.spec.ts b/libs/shared/tokens/src/lib/shared-tokens.spec.ts new file mode 100644 index 0000000..b9fc896 --- /dev/null +++ b/libs/shared/tokens/src/lib/shared-tokens.spec.ts @@ -0,0 +1,7 @@ +import { sharedTokens } from './shared-tokens'; + +describe('sharedTokens', () => { + it('should work', () => { + expect(sharedTokens()).toEqual('shared-tokens'); + }); +}); diff --git a/libs/shared/tokens/src/lib/shared-tokens.ts b/libs/shared/tokens/src/lib/shared-tokens.ts new file mode 100644 index 0000000..2e2c8c6 --- /dev/null +++ b/libs/shared/tokens/src/lib/shared-tokens.ts @@ -0,0 +1,3 @@ +export function sharedTokens(): string { + return 'shared-tokens'; +} diff --git a/libs/shared/tokens/tsconfig.json b/libs/shared/tokens/tsconfig.json new file mode 100644 index 0000000..86622ac --- /dev/null +++ b/libs/shared/tokens/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "module": "commonjs", + "forceConsistentCasingInFileNames": true, + "strict": true, + "importHelpers": true, + "noImplicitOverride": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "noPropertyAccessFromIndexSignature": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ] +} diff --git a/libs/shared/tokens/tsconfig.lib.json b/libs/shared/tokens/tsconfig.lib.json new file mode 100644 index 0000000..190d53f --- /dev/null +++ b/libs/shared/tokens/tsconfig.lib.json @@ -0,0 +1,23 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../dist/out-tsc", + "declaration": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"], + "exclude": [ + "vite.config.ts", + "vite.config.mts", + "vitest.config.ts", + "vitest.config.mts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx" + ] +} diff --git a/libs/shared/tokens/tsconfig.spec.json b/libs/shared/tokens/tsconfig.spec.json new file mode 100644 index 0000000..eb111c7 --- /dev/null +++ b/libs/shared/tokens/tsconfig.spec.json @@ -0,0 +1,22 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../dist/out-tsc", + "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"] + }, + "include": [ + "vite.config.ts", + "vite.config.mts", + "vitest.config.ts", + "vitest.config.mts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx", + "src/**/*.d.ts" + ] +} diff --git a/libs/shared/tokens/vitest.config.mts b/libs/shared/tokens/vitest.config.mts new file mode 100644 index 0000000..e44534d --- /dev/null +++ b/libs/shared/tokens/vitest.config.mts @@ -0,0 +1,21 @@ +import { defineConfig } from 'vitest/config'; +import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; +import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; + +export default defineConfig(() => ({ + root: __dirname, + cacheDir: '../../../node_modules/.vite/libs/shared/tokens', + plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])], + test: { + name: 'shared-tokens', + watch: false, + globals: true, + environment: 'node', + include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + reporters: ['default'], + coverage: { + reportsDirectory: '../../../coverage/libs/shared/tokens', + provider: 'v8' as const, + }, + }, +})); diff --git a/libs/shared/ui/README.md b/libs/shared/ui/README.md new file mode 100644 index 0000000..66b2964 --- /dev/null +++ b/libs/shared/ui/README.md @@ -0,0 +1,7 @@ +# shared-ui + +This library was generated with [Nx](https://nx.dev). + +## Running unit tests + +Run `nx test shared-ui` to execute the unit tests. diff --git a/libs/shared/ui/eslint.config.mjs b/libs/shared/ui/eslint.config.mjs new file mode 100644 index 0000000..8e41cc1 --- /dev/null +++ b/libs/shared/ui/eslint.config.mjs @@ -0,0 +1,34 @@ +import nx from '@nx/eslint-plugin'; +import baseConfig from '../../../eslint.config.mjs'; + +export default [ + ...nx.configs['flat/angular'], + ...nx.configs['flat/angular-template'], + ...baseConfig, + { + files: ['**/*.ts'], + rules: { + '@angular-eslint/directive-selector': [ + 'error', + { + type: 'attribute', + prefix: 'lib', + style: 'camelCase', + }, + ], + '@angular-eslint/component-selector': [ + 'error', + { + type: 'element', + prefix: 'lib', + style: 'kebab-case', + }, + ], + }, + }, + { + files: ['**/*.html'], + // Override or add rules here + rules: {}, + }, +]; diff --git a/libs/shared/ui/project.json b/libs/shared/ui/project.json new file mode 100644 index 0000000..3f44d25 --- /dev/null +++ b/libs/shared/ui/project.json @@ -0,0 +1,13 @@ +{ + "name": "shared-ui", + "$schema": "../../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "libs/shared/ui/src", + "prefix": "lib", + "projectType": "library", + "tags": ["scope:portal-shell", "type:shared"], + "targets": { + "lint": { + "executor": "@nx/eslint:lint" + } + } +} diff --git a/libs/shared/ui/src/index.ts b/libs/shared/ui/src/index.ts new file mode 100644 index 0000000..59dee3e --- /dev/null +++ b/libs/shared/ui/src/index.ts @@ -0,0 +1 @@ +export * from './lib/shared-ui/shared-ui'; diff --git a/libs/shared/ui/src/lib/shared-ui/shared-ui.css b/libs/shared/ui/src/lib/shared-ui/shared-ui.css new file mode 100644 index 0000000..e69de29 diff --git a/libs/shared/ui/src/lib/shared-ui/shared-ui.html b/libs/shared/ui/src/lib/shared-ui/shared-ui.html new file mode 100644 index 0000000..3585dd1 --- /dev/null +++ b/libs/shared/ui/src/lib/shared-ui/shared-ui.html @@ -0,0 +1 @@ +

SharedUi works!

diff --git a/libs/shared/ui/src/lib/shared-ui/shared-ui.spec.ts b/libs/shared/ui/src/lib/shared-ui/shared-ui.spec.ts new file mode 100644 index 0000000..f267a25 --- /dev/null +++ b/libs/shared/ui/src/lib/shared-ui/shared-ui.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { SharedUi } from './shared-ui'; + +describe('SharedUi', () => { + let component: SharedUi; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [SharedUi], + }).compileComponents(); + + fixture = TestBed.createComponent(SharedUi); + component = fixture.componentInstance; + await fixture.whenStable(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/libs/shared/ui/src/lib/shared-ui/shared-ui.ts b/libs/shared/ui/src/lib/shared-ui/shared-ui.ts new file mode 100644 index 0000000..7b19e89 --- /dev/null +++ b/libs/shared/ui/src/lib/shared-ui/shared-ui.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'lib-shared-ui', + imports: [], + templateUrl: './shared-ui.html', + styleUrl: './shared-ui.css', +}) +export class SharedUi {} diff --git a/libs/shared/ui/src/test-setup.ts b/libs/shared/ui/src/test-setup.ts new file mode 100644 index 0000000..17b7965 --- /dev/null +++ b/libs/shared/ui/src/test-setup.ts @@ -0,0 +1,5 @@ +import '@angular/compiler'; +import '@analogjs/vitest-angular/setup-snapshots'; +import { setupTestBed } from '@analogjs/vitest-angular/setup-testbed'; + +setupTestBed(); diff --git a/libs/shared/ui/tsconfig.json b/libs/shared/ui/tsconfig.json new file mode 100644 index 0000000..116e088 --- /dev/null +++ b/libs/shared/ui/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "emitDecoratorMetadata": false, + "module": "preserve" + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ] +} diff --git a/libs/shared/ui/tsconfig.lib.json b/libs/shared/ui/tsconfig.lib.json new file mode 100644 index 0000000..a9b98ba --- /dev/null +++ b/libs/shared/ui/tsconfig.lib.json @@ -0,0 +1,26 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../dist/out-tsc", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [] + }, + "include": ["src/**/*.ts"], + "exclude": [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "vite.config.ts", + "vite.config.mts", + "vitest.config.ts", + "vitest.config.mts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx", + "src/test-setup.ts" + ] +} diff --git a/libs/shared/ui/tsconfig.spec.json b/libs/shared/ui/tsconfig.spec.json new file mode 100644 index 0000000..39a8c3f --- /dev/null +++ b/libs/shared/ui/tsconfig.spec.json @@ -0,0 +1,23 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../dist/out-tsc", + "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"] + }, + "include": [ + "vite.config.ts", + "vite.config.mts", + "vitest.config.ts", + "vitest.config.mts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx", + "src/**/*.d.ts" + ], + "files": ["src/test-setup.ts"] +} diff --git a/libs/shared/ui/vite.config.mts b/libs/shared/ui/vite.config.mts new file mode 100644 index 0000000..2576643 --- /dev/null +++ b/libs/shared/ui/vite.config.mts @@ -0,0 +1,28 @@ +/// +import { defineConfig } from 'vite'; +import angular from '@analogjs/vite-plugin-angular'; +import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; +import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; + +export default defineConfig(() => ({ + root: __dirname, + cacheDir: '../../../node_modules/.vite/libs/shared/ui', + plugins: [angular(), nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])], + // Uncomment this if you are using workers. + // worker: { + // plugins: () => [ nxViteTsPaths() ], + // }, + test: { + name: 'shared-ui', + watch: false, + globals: true, + environment: 'jsdom', + include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + setupFiles: ['src/test-setup.ts'], + reporters: ['default'], + coverage: { + reportsDirectory: '../../../coverage/libs/shared/ui', + provider: 'v8' as const, + }, + }, +})); diff --git a/libs/shared/util/README.md b/libs/shared/util/README.md new file mode 100644 index 0000000..e0af348 --- /dev/null +++ b/libs/shared/util/README.md @@ -0,0 +1,11 @@ +# shared-util + +This library was generated with [Nx](https://nx.dev). + +## Building + +Run `nx build shared-util` to build the library. + +## Running unit tests + +Run `nx test shared-util` to execute the unit tests via [Vitest](https://vitest.dev/). diff --git a/libs/shared/util/eslint.config.mjs b/libs/shared/util/eslint.config.mjs new file mode 100644 index 0000000..36838af --- /dev/null +++ b/libs/shared/util/eslint.config.mjs @@ -0,0 +1,22 @@ +import baseConfig from '../../../eslint.config.mjs'; + +export default [ + ...baseConfig, + { + files: ['**/*.json'], + rules: { + '@nx/dependency-checks': [ + 'error', + { + ignoredFiles: [ + '{projectRoot}/eslint.config.{js,cjs,mjs,ts,cts,mts}', + '{projectRoot}/vite.config.{js,ts,mjs,mts}', + ], + }, + ], + }, + languageOptions: { + parser: await import('jsonc-eslint-parser'), + }, + }, +]; diff --git a/libs/shared/util/package.json b/libs/shared/util/package.json new file mode 100644 index 0000000..c3429d5 --- /dev/null +++ b/libs/shared/util/package.json @@ -0,0 +1,13 @@ +{ + "name": "shared-util", + "version": "0.0.1", + "private": true, + "type": "commonjs", + "main": "./src/index.js", + "types": "./src/index.d.ts", + "dependencies": { + "tslib": "^2.3.0", + "vitest": "^4.0.8", + "@nx/vite": "^22.7.1" + } +} diff --git a/libs/shared/util/project.json b/libs/shared/util/project.json new file mode 100644 index 0000000..d2bc68d --- /dev/null +++ b/libs/shared/util/project.json @@ -0,0 +1,19 @@ +{ + "name": "shared-util", + "$schema": "../../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "libs/shared/util/src", + "projectType": "library", + "tags": ["scope:shared", "type:shared"], + "targets": { + "build": { + "executor": "@nx/js:tsc", + "outputs": ["{options.outputPath}"], + "options": { + "outputPath": "dist/libs/shared/util", + "main": "libs/shared/util/src/index.ts", + "tsConfig": "libs/shared/util/tsconfig.lib.json", + "assets": ["libs/shared/util/*.md"] + } + } + } +} diff --git a/libs/shared/util/src/index.ts b/libs/shared/util/src/index.ts new file mode 100644 index 0000000..635dab3 --- /dev/null +++ b/libs/shared/util/src/index.ts @@ -0,0 +1 @@ +export * from './lib/shared-util'; diff --git a/libs/shared/util/src/lib/shared-util.spec.ts b/libs/shared/util/src/lib/shared-util.spec.ts new file mode 100644 index 0000000..e3a9251 --- /dev/null +++ b/libs/shared/util/src/lib/shared-util.spec.ts @@ -0,0 +1,7 @@ +import { sharedUtil } from './shared-util'; + +describe('sharedUtil', () => { + it('should work', () => { + expect(sharedUtil()).toEqual('shared-util'); + }); +}); diff --git a/libs/shared/util/src/lib/shared-util.ts b/libs/shared/util/src/lib/shared-util.ts new file mode 100644 index 0000000..421768b --- /dev/null +++ b/libs/shared/util/src/lib/shared-util.ts @@ -0,0 +1,3 @@ +export function sharedUtil(): string { + return 'shared-util'; +} diff --git a/libs/shared/util/tsconfig.json b/libs/shared/util/tsconfig.json new file mode 100644 index 0000000..86622ac --- /dev/null +++ b/libs/shared/util/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "module": "commonjs", + "forceConsistentCasingInFileNames": true, + "strict": true, + "importHelpers": true, + "noImplicitOverride": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "noPropertyAccessFromIndexSignature": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ] +} diff --git a/libs/shared/util/tsconfig.lib.json b/libs/shared/util/tsconfig.lib.json new file mode 100644 index 0000000..190d53f --- /dev/null +++ b/libs/shared/util/tsconfig.lib.json @@ -0,0 +1,23 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../dist/out-tsc", + "declaration": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"], + "exclude": [ + "vite.config.ts", + "vite.config.mts", + "vitest.config.ts", + "vitest.config.mts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx" + ] +} diff --git a/libs/shared/util/tsconfig.spec.json b/libs/shared/util/tsconfig.spec.json new file mode 100644 index 0000000..eb111c7 --- /dev/null +++ b/libs/shared/util/tsconfig.spec.json @@ -0,0 +1,22 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../../dist/out-tsc", + "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node", "vitest"] + }, + "include": [ + "vite.config.ts", + "vite.config.mts", + "vitest.config.ts", + "vitest.config.mts", + "src/**/*.test.ts", + "src/**/*.spec.ts", + "src/**/*.test.tsx", + "src/**/*.spec.tsx", + "src/**/*.test.js", + "src/**/*.spec.js", + "src/**/*.test.jsx", + "src/**/*.spec.jsx", + "src/**/*.d.ts" + ] +} diff --git a/libs/shared/util/vitest.config.mts b/libs/shared/util/vitest.config.mts new file mode 100644 index 0000000..28de98c --- /dev/null +++ b/libs/shared/util/vitest.config.mts @@ -0,0 +1,21 @@ +import { defineConfig } from 'vitest/config'; +import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; +import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'; + +export default defineConfig(() => ({ + root: __dirname, + cacheDir: '../../../node_modules/.vite/libs/shared/util', + plugins: [nxViteTsPaths(), nxCopyAssetsPlugin(['*.md'])], + test: { + name: 'shared-util', + watch: false, + globals: true, + environment: 'node', + include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + reporters: ['default'], + coverage: { + reportsDirectory: '../../../coverage/libs/shared/util', + provider: 'v8' as const, + }, + }, +})); diff --git a/nx.json b/nx.json index b492435..192b4a8 100644 --- a/nx.json +++ b/nx.json @@ -58,6 +58,14 @@ "targetName": "test" }, "exclude": ["apps/portal-bff-e2e/**/*"] + }, + { + "plugin": "@nx/vitest", + "options": { + "testTargetName": "test", + "ciTargetName": "test-ci", + "testMode": "watch" + } } ], "analytics": false, @@ -81,6 +89,11 @@ "@angular/build:unit-test": { "cache": true, "inputs": ["default", "^production"] + }, + "@nx/js:tsc": { + "cache": true, + "dependsOn": ["^build"], + "inputs": ["production", "^production"] } }, "generators": { @@ -89,6 +102,13 @@ "linter": "eslint", "style": "scss", "unitTestRunner": "vitest-angular" + }, + "@nx/angular:library": { + "linter": "eslint", + "unitTestRunner": "vitest-analog" + }, + "@nx/angular:component": { + "style": "css" } } } diff --git a/package.json b/package.json index ca68fa9..0677be3 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,8 @@ "scripts": {}, "private": true, "devDependencies": { + "@analogjs/vite-plugin-angular": "~2.1.2", + "@analogjs/vitest-angular": "~2.1.2", "@angular-devkit/core": "~21.2.0", "@angular-devkit/schematics": "~21.2.0", "@angular/build": "~21.2.0", @@ -24,6 +26,7 @@ "@nx/node": "22.7.1", "@nx/playwright": "22.7.1", "@nx/vite": "^22.7.1", + "@nx/vitest": "22.7.1", "@nx/web": "22.7.1", "@nx/webpack": "22.7.1", "@oxc-project/runtime": "^0.115.0", @@ -35,6 +38,8 @@ "@types/jest": "^30.0.0", "@types/node": "20.19.9", "@typescript-eslint/utils": "^8.40.0", + "@vitest/coverage-v8": "~4.1.0", + "@vitest/ui": "~4.1.0", "angular-eslint": "^21.2.0", "eslint": "^9.8.0", "eslint-config-prettier": "^10.0.0", @@ -43,6 +48,7 @@ "jest-environment-node": "^30.0.2", "jest-util": "^30.0.2", "jsdom": "^27.1.0", + "jsonc-eslint-parser": "^2.1.0", "nx": "22.7.0", "prettier": "^3.8.1", "prisma": "^7.8.0", @@ -51,6 +57,7 @@ "tslib": "^2.3.0", "typescript": "~5.9.2", "typescript-eslint": "^8.40.0", + "vite": "^8.0.0", "vitest": "^4.0.8", "webpack-cli": "^5.1.4" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b24a4be..30ff4ca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,7 +37,7 @@ importers: version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.15.1)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.19) '@prisma/client': specifier: ^7.8.0 - version: 7.8.0(prisma@7.8.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3) + version: 7.8.0(prisma@7.8.0(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3) axios: specifier: ^1.6.0 version: 1.15.0 @@ -49,7 +49,7 @@ importers: version: 0.15.1 nestjs-prisma: specifier: ^0.27.0 - version: 0.27.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.15.1)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@prisma/client@7.8.0(prisma@7.8.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3))(prisma@7.8.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3)) + version: 0.27.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.15.1)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@prisma/client@7.8.0(prisma@7.8.0(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3))(chokidar@5.0.0)(prisma@7.8.0(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3)) reflect-metadata: specifier: ^0.1.13 version: 0.1.14 @@ -57,18 +57,24 @@ importers: specifier: ~7.8.0 version: 7.8.2 devDependencies: + '@analogjs/vite-plugin-angular': + specifier: ~2.1.2 + version: 2.1.3(@angular/build@21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(chokidar@5.0.0)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5)(yaml@2.8.0)) + '@analogjs/vitest-angular': + specifier: ~2.1.2 + version: 2.1.3(@analogjs/vite-plugin-angular@2.1.3(@angular/build@21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(chokidar@5.0.0)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5)(yaml@2.8.0)))(@angular-devkit/architect@0.2102.9(chokidar@5.0.0))(vitest@4.1.5) '@angular-devkit/core': specifier: ~21.2.0 - version: 21.2.9 + version: 21.2.9(chokidar@5.0.0) '@angular-devkit/schematics': specifier: ~21.2.0 - version: 21.2.9 + version: 21.2.9(chokidar@5.0.0) '@angular/build': specifier: ~21.2.0 - version: 21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)))(yaml@2.8.0) + version: 21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(chokidar@5.0.0)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5)(yaml@2.8.0) '@angular/cli': specifier: ~21.2.0 - version: 21.2.9(@types/node@20.19.9) + version: 21.2.9(@types/node@20.19.9)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ~21.2.0 version: 21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3) @@ -80,13 +86,13 @@ importers: version: 9.39.4 '@nestjs/schematics': specifier: ^11.0.0 - version: 11.1.0(prettier@3.8.3)(typescript@5.9.3) + version: 11.1.0(chokidar@5.0.0)(prettier@3.8.3)(typescript@5.9.3) '@nestjs/testing': specifier: ^11.0.0 version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.15.1)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/platform-express@11.1.19) '@nx/angular': specifier: ^22.7.1 - version: 22.7.1(5bc7e425eb1262634566b91ea7a8208c) + version: 22.7.1(0c4acc484cef310e685059893b212727) '@nx/devkit': specifier: 22.7.1 version: 22.7.1(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) @@ -104,7 +110,7 @@ importers: version: 22.7.1(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) '@nx/nest': specifier: ^22.7.1 - version: 22.7.1(7aefdee842d4dc9533b115d77ccc0ef3) + version: 22.7.1(ff75800671d6e53540e74774b09ff4e4) '@nx/node': specifier: 22.7.1 version: 22.7.1(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@20.19.9)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.39.4(jiti@2.6.1))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(ts-node@10.9.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@20.19.9)(typescript@5.9.3))(typescript@5.9.3) @@ -113,10 +119,13 @@ importers: version: 22.7.1(0914e6729b234c971c425e19a892bd69) '@nx/vite': specifier: ^22.7.1 - version: 22.7.1(@babel/traverse@7.29.0)(@nx/eslint@22.7.1(b42b4dedbd3a0c85115099f8a9e21618))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))(vitest@4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))) + version: 22.7.1(@babel/traverse@7.29.0)(@nx/eslint@22.7.1(b42b4dedbd3a0c85115099f8a9e21618))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))(vitest@4.1.5) + '@nx/vitest': + specifier: 22.7.1 + version: 22.7.1(@babel/traverse@7.29.0)(@nx/eslint@22.7.1(b42b4dedbd3a0c85115099f8a9e21618))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))(vitest@4.1.5) '@nx/web': specifier: 22.7.1 - version: 22.7.1(bc1bfc32fc11241ab96f9e54a7c47d08) + version: 22.7.1(e667a354dca3d93513feff4e1b599c99) '@nx/webpack': specifier: 22.7.1 version: 22.7.1(@babel/traverse@7.29.0)(@rspack/core@1.6.8(@swc/helpers@0.5.18))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(lightningcss@1.32.0)(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(webpack-cli@5.1.4(webpack@5.106.2)) @@ -128,7 +137,7 @@ importers: version: 1.59.1 '@schematics/angular': specifier: ~21.2.0 - version: 21.2.9 + version: 21.2.9(chokidar@5.0.0) '@swc-node/register': specifier: 1.11.1 version: 1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3) @@ -147,9 +156,15 @@ importers: '@typescript-eslint/utils': specifier: ^8.40.0 version: 8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@vitest/coverage-v8': + specifier: ~4.1.0 + version: 4.1.5(vitest@4.1.5) + '@vitest/ui': + specifier: ~4.1.0 + version: 4.1.5(vitest@4.1.5) angular-eslint: specifier: ^21.2.0 - version: 21.3.1(@angular/cli@21.2.9(@types/node@20.19.9))(eslint@9.39.4(jiti@2.6.1))(typescript-eslint@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(typescript@5.9.3) + version: 21.3.1(@angular/cli@21.2.9(@types/node@20.19.9)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@9.39.4(jiti@2.6.1))(typescript-eslint@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(typescript@5.9.3) eslint: specifier: ^9.8.0 version: 9.39.4(jiti@2.6.1) @@ -171,6 +186,9 @@ importers: jsdom: specifier: ^27.1.0 version: 27.4.0 + jsonc-eslint-parser: + specifier: ^2.1.0 + version: 2.4.2 nx: specifier: 22.7.0 version: 22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)) @@ -179,7 +197,7 @@ importers: version: 3.8.3 prisma: specifier: ^7.8.0 - version: 7.8.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + version: 7.8.0(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) ts-jest: specifier: ^29.4.0 version: 29.4.9(@babel/core@7.29.0)(@jest/transform@30.3.0)(@jest/types@30.3.0)(babel-jest@30.3.0(@babel/core@7.29.0))(esbuild@0.27.3)(jest-util@30.3.0)(jest@30.3.0(@types/node@20.19.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@20.19.9)(typescript@5.9.3)))(typescript@5.9.3) @@ -195,13 +213,28 @@ importers: typescript-eslint: specifier: ^8.40.0 version: 8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + vite: + specifier: ^8.0.0 + version: 8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0) vitest: specifier: ^4.0.8 - version: 4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) + version: 4.1.5(@types/node@20.19.9)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) webpack-cli: specifier: ^5.1.4 version: 5.1.4(webpack@5.106.2) + libs/shared/tokens: + dependencies: + tslib: + specifier: ^2.3.0 + version: 2.8.1 + + libs/shared/util: + dependencies: + tslib: + specifier: ^2.3.0 + version: 2.8.1 + packages: '@acemir/cssom@0.9.31': @@ -267,6 +300,24 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@analogjs/vite-plugin-angular@2.1.3': + resolution: {integrity: sha512-mXL3LPMRC0nEWzSLP6sguXYUm+J4l+qRZmR9czhTQKWFP+PbNas6UHF6txe1fQs1pc/tMb7HQPZCEoaPMlol9Q==} + peerDependencies: + '@angular-devkit/build-angular': ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 + '@angular/build': ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 + peerDependenciesMeta: + '@angular-devkit/build-angular': + optional: true + '@angular/build': + optional: true + + '@analogjs/vitest-angular@2.1.3': + resolution: {integrity: sha512-oRZxP/8cnf7g6e+VDYkILeA2gQLDS+oDrytiPixoA5YQwlroGtB1B3DkPOuzSSlI3Z9YMHkdL3OLKFIcuCDr5g==} + peerDependencies: + '@analogjs/vite-plugin-angular': '*' + '@angular-devkit/architect': '>=0.1500.0 < 0.2200.0' + vitest: ^1.3.1 || ^2.0.0 || ^3.0.0 || ^4.0.0 + '@angular-devkit/architect@0.2102.9': resolution: {integrity: sha512-OlPEtd5pPZSFdkXEIyZ93jsfBrkvUrVPb3xs4z2WPRnBRk9jyey40eKnmql86KRHfdn4WjHpmde4NDgtDpZRxQ==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -1100,6 +1151,10 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@bcoe/v8-coverage@1.0.2': + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + engines: {node: '>=18'} + '@borewit/text-codec@0.2.2': resolution: {integrity: sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==} @@ -2195,6 +2250,18 @@ packages: resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} engines: {node: '>= 16'} + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + '@npmcli/agent@4.0.0': resolution: {integrity: sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==} engines: {node: ^20.17.0 || >=22.9.0} @@ -2733,6 +2800,9 @@ packages: engines: {node: '>=18'} hasBin: true + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + '@prisma/client-runtime-utils@7.8.0': resolution: {integrity: sha512-5NQZztQ0oY/ADFkmd9gPuweH5A1/CCY8YQPorLLO0Mu6a87mY5gsnDkzmFmIHs9NFaLnZojzgddFVN4RpKYrdw==} @@ -3416,6 +3486,9 @@ packages: '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + '@ts-morph/common@0.22.0': + resolution: {integrity: sha512-HqNBuV/oIlMKdkLshXd1zKBqNQCsuPEsgQOkfFQ/eUKjRlwndXW1AjN9LVkBEIukm00gGXSRmfkl0Wv5VXLnlw==} + '@tsconfig/node10@1.0.12': resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} @@ -3742,6 +3815,15 @@ packages: peerDependencies: vite: ^6.0.0 || ^7.0.0 + '@vitest/coverage-v8@4.1.5': + resolution: {integrity: sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==} + peerDependencies: + '@vitest/browser': 4.1.5 + vitest: 4.1.5 + peerDependenciesMeta: + '@vitest/browser': + optional: true + '@vitest/expect@4.1.5': resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==} @@ -3768,6 +3850,11 @@ packages: '@vitest/spy@4.1.5': resolution: {integrity: sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==} + '@vitest/ui@4.1.5': + resolution: {integrity: sha512-3Z9HNFiV0IF1fk0JPiK+7kE1GcaIPefQQIBYur6PM5yFIq6agys3uqP/0t966e1wXfmjbRCHDe7qW236Xjwnag==} + peerDependencies: + vitest: 4.1.5 + '@vitest/utils@4.1.5': resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==} @@ -4019,6 +4106,9 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + ast-v8-to-istanbul@1.0.0: + resolution: {integrity: sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==} + async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -4355,6 +4445,9 @@ packages: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + code-block-writer@12.0.0: + resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} + collect-v8-coverage@1.0.3: resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} @@ -5060,6 +5153,10 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -5076,6 +5173,9 @@ packages: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + faye-websocket@0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} @@ -5092,6 +5192,9 @@ packages: picomatch: optional: true + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -5848,6 +5951,9 @@ packages: jose@6.2.3: resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -6145,6 +6251,9 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + magicast@0.5.2: + resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} + make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -6200,6 +6309,10 @@ packages: merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -6292,6 +6405,11 @@ packages: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -6627,6 +6745,9 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -7039,6 +7160,9 @@ packages: resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} engines: {node: '>=0.6'} + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -7179,6 +7303,10 @@ packages: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} @@ -7205,6 +7333,9 @@ packages: resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} engines: {node: '>=18'} + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rxjs@6.6.7: resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} engines: {npm: '>=2.0.0'} @@ -7506,6 +7637,10 @@ packages: resolution: {integrity: sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==} engines: {node: ^20.17.0 || >=22.9.0} + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -7834,6 +7969,10 @@ packages: resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} engines: {node: '>=14.16'} + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + tough-cookie@6.0.1: resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} engines: {node: '>=16'} @@ -7904,6 +8043,9 @@ packages: typescript: '*' webpack: ^5.0.0 + ts-morph@21.0.1: + resolution: {integrity: sha512-dbDtVdEAncKctzrVZ+Nr7kHpHkv+0JDJb2MjjpBaj8bFeCkePU9rHfMklmhuLFnpeq/EJZk2IhStY6NzqgjOkg==} + ts-node@10.9.1: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true @@ -8603,14 +8745,26 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@angular-devkit/architect@0.2102.9': + '@analogjs/vite-plugin-angular@2.1.3(@angular/build@21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(chokidar@5.0.0)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5)(yaml@2.8.0))': dependencies: - '@angular-devkit/core': 21.2.9 + ts-morph: 21.0.1 + optionalDependencies: + '@angular/build': 21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(chokidar@5.0.0)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5)(yaml@2.8.0) + + '@analogjs/vitest-angular@2.1.3(@analogjs/vite-plugin-angular@2.1.3(@angular/build@21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(chokidar@5.0.0)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5)(yaml@2.8.0)))(@angular-devkit/architect@0.2102.9(chokidar@5.0.0))(vitest@4.1.5)': + dependencies: + '@analogjs/vite-plugin-angular': 2.1.3(@angular/build@21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(chokidar@5.0.0)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5)(yaml@2.8.0)) + '@angular-devkit/architect': 0.2102.9(chokidar@5.0.0) + vitest: 4.1.5(@types/node@20.19.9)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) + + '@angular-devkit/architect@0.2102.9(chokidar@5.0.0)': + dependencies: + '@angular-devkit/core': 21.2.9(chokidar@5.0.0) rxjs: 7.8.2 transitivePeerDependencies: - chokidar - '@angular-devkit/core@13.3.11': + '@angular-devkit/core@13.3.11(chokidar@5.0.0)': dependencies: ajv: 8.9.0 ajv-formats: 2.1.1(ajv@8.9.0) @@ -8618,8 +8772,10 @@ snapshots: magic-string: 0.25.7 rxjs: 6.6.7 source-map: 0.7.3 + optionalDependencies: + chokidar: 5.0.0 - '@angular-devkit/core@19.2.24': + '@angular-devkit/core@19.2.24(chokidar@5.0.0)': dependencies: ajv: 8.18.0 ajv-formats: 3.0.1(ajv@8.18.0) @@ -8627,8 +8783,10 @@ snapshots: picomatch: 4.0.4 rxjs: 7.8.1 source-map: 0.7.4 + optionalDependencies: + chokidar: 5.0.0 - '@angular-devkit/core@21.2.9': + '@angular-devkit/core@21.2.9(chokidar@5.0.0)': dependencies: ajv: 8.18.0 ajv-formats: 3.0.1(ajv@8.18.0) @@ -8636,10 +8794,12 @@ snapshots: picomatch: 4.0.4 rxjs: 7.8.2 source-map: 0.7.6 + optionalDependencies: + chokidar: 5.0.0 - '@angular-devkit/schematics@13.3.11': + '@angular-devkit/schematics@13.3.11(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 13.3.11 + '@angular-devkit/core': 13.3.11(chokidar@5.0.0) jsonc-parser: 3.0.0 magic-string: 0.25.7 ora: 5.4.1 @@ -8647,9 +8807,9 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/schematics@19.2.24': + '@angular-devkit/schematics@19.2.24(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 19.2.24 + '@angular-devkit/core': 19.2.24(chokidar@5.0.0) jsonc-parser: 3.3.1 magic-string: 0.30.17 ora: 5.4.1 @@ -8657,9 +8817,9 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/schematics@21.2.9': + '@angular-devkit/schematics@21.2.9(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 21.2.9 + '@angular-devkit/core': 21.2.9(chokidar@5.0.0) jsonc-parser: 3.3.1 magic-string: 0.30.21 ora: 9.3.0 @@ -8667,11 +8827,11 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-eslint/builder@21.3.1(@angular/cli@21.2.9(@types/node@20.19.9))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@angular-eslint/builder@21.3.1(@angular/cli@21.2.9(@types/node@20.19.9)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@angular-devkit/architect': 0.2102.9 - '@angular-devkit/core': 21.2.9 - '@angular/cli': 21.2.9(@types/node@20.19.9) + '@angular-devkit/architect': 0.2102.9(chokidar@5.0.0) + '@angular-devkit/core': 21.2.9(chokidar@5.0.0) + '@angular/cli': 21.2.9(@types/node@20.19.9)(chokidar@5.0.0) eslint: 9.39.4(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: @@ -8700,13 +8860,13 @@ snapshots: ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 - '@angular-eslint/schematics@21.3.1(@angular-eslint/template-parser@21.3.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@angular/cli@21.2.9(@types/node@20.19.9))(@typescript-eslint/types@8.59.1)(@typescript-eslint/utils@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': + '@angular-eslint/schematics@21.3.1(@angular-eslint/template-parser@21.3.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@angular/cli@21.2.9(@types/node@20.19.9)(chokidar@5.0.0))(@typescript-eslint/types@8.59.1)(@typescript-eslint/utils@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(chokidar@5.0.0)(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@angular-devkit/core': 21.2.9 - '@angular-devkit/schematics': 21.2.9 + '@angular-devkit/core': 21.2.9(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.9(chokidar@5.0.0) '@angular-eslint/eslint-plugin': 21.3.1(@typescript-eslint/utils@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@angular-eslint/eslint-plugin-template': 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/types@8.59.1)(@typescript-eslint/utils@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@angular/cli': 21.2.9(@types/node@20.19.9) + '@angular/cli': 21.2.9(@types/node@20.19.9)(chokidar@5.0.0) ignore: 7.0.5 semver: 7.7.4 strip-json-comments: 3.1.1 @@ -8732,10 +8892,10 @@ snapshots: eslint: 9.39.4(jiti@2.6.1) typescript: 5.9.3 - '@angular/build@21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)))(yaml@2.8.0)': + '@angular/build@21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(chokidar@5.0.0)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5)(yaml@2.8.0)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2102.9 + '@angular-devkit/architect': 0.2102.9(chokidar@5.0.0) '@angular/compiler': 21.2.11 '@angular/compiler-cli': 21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3) '@babel/core': 7.29.0 @@ -8771,7 +8931,7 @@ snapshots: less: 4.5.1 lmdb: 3.5.1 postcss: 8.5.12 - vitest: 4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) + vitest: 4.1.5(@types/node@20.19.9)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -8787,15 +8947,15 @@ snapshots: - tsx - yaml - '@angular/cli@21.2.9(@types/node@20.19.9)': + '@angular/cli@21.2.9(@types/node@20.19.9)(chokidar@5.0.0)': dependencies: - '@angular-devkit/architect': 0.2102.9 - '@angular-devkit/core': 21.2.9 - '@angular-devkit/schematics': 21.2.9 + '@angular-devkit/architect': 0.2102.9(chokidar@5.0.0) + '@angular-devkit/core': 21.2.9(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.9(chokidar@5.0.0) '@inquirer/prompts': 7.10.1(@types/node@20.19.9) '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@20.19.9))(@types/node@20.19.9)(listr2@9.0.5) '@modelcontextprotocol/sdk': 1.26.0(zod@4.3.6) - '@schematics/angular': 21.2.9 + '@schematics/angular': 21.2.9(chokidar@5.0.0) '@yarnpkg/lockfile': 1.1.0 algoliasearch: 5.48.1 ini: 6.0.0 @@ -9677,6 +9837,8 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@bcoe/v8-coverage@1.0.2': {} + '@borewit/text-codec@0.2.2': {} '@bufbuild/protobuf@2.12.0': {} @@ -10793,10 +10955,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@nestjs/schematics@11.1.0(prettier@3.8.3)(typescript@5.9.3)': + '@nestjs/schematics@11.1.0(chokidar@5.0.0)(prettier@3.8.3)(typescript@5.9.3)': dependencies: - '@angular-devkit/core': 19.2.24 - '@angular-devkit/schematics': 19.2.24 + '@angular-devkit/core': 19.2.24(chokidar@5.0.0) + '@angular-devkit/schematics': 19.2.24(chokidar@5.0.0) comment-json: 5.0.0 jsonc-parser: 3.3.1 pluralize: 8.0.0 @@ -10816,6 +10978,18 @@ snapshots: '@noble/hashes@1.4.0': {} + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + '@npmcli/agent@4.0.0': dependencies: agent-base: 7.1.4 @@ -10876,20 +11050,20 @@ snapshots: dependencies: consola: 3.4.2 - '@nx/angular@22.7.1(5bc7e425eb1262634566b91ea7a8208c)': + '@nx/angular@22.7.1(0c4acc484cef310e685059893b212727)': dependencies: - '@angular-devkit/core': 21.2.9 - '@angular-devkit/schematics': 21.2.9 + '@angular-devkit/core': 21.2.9(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.9(chokidar@5.0.0) '@nx/devkit': 22.7.1(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) '@nx/eslint': 22.7.1(b42b4dedbd3a0c85115099f8a9e21618) '@nx/js': 22.7.1(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) - '@nx/module-federation': 22.7.1(c2c45d76e6702e3cf065b440e07e4739) - '@nx/rspack': 22.7.1(9c4158b7862e23044d7280f07d0d5e5a) - '@nx/web': 22.7.1(bc1bfc32fc11241ab96f9e54a7c47d08) + '@nx/module-federation': 22.7.1(27b1ab36afbd8bd0e18d980b54763c18) + '@nx/rspack': 22.7.1(7c686c8582d9d337db8df3943967f6a5) + '@nx/web': 22.7.1(e667a354dca3d93513feff4e1b599c99) '@nx/webpack': 22.7.1(@babel/traverse@7.29.0)(@rspack/core@1.6.8(@swc/helpers@0.5.18))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(lightningcss@1.32.0)(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(webpack-cli@5.1.4(webpack@5.106.2)) '@nx/workspace': 22.7.1(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)) '@phenomnomnominal/tsquery': 6.1.4(typescript@5.9.3) - '@schematics/angular': 21.2.9 + '@schematics/angular': 21.2.9(chokidar@5.0.0) '@typescript-eslint/type-utils': 8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) enquirer: 2.3.6 magic-string: 0.30.21 @@ -10900,7 +11074,7 @@ snapshots: tslib: 2.8.1 webpack-merge: 5.10.0 optionalDependencies: - '@angular/build': 21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)))(yaml@2.8.0) + '@angular/build': 21.2.9(@angular/compiler-cli@21.2.11(@angular/compiler@21.2.11)(typescript@5.9.3))(@angular/compiler@21.2.11)(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(@angular/platform-browser@21.2.11(@angular/common@21.2.11(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.2.11(@angular/compiler@21.2.11)(rxjs@7.8.2)))(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@types/node@20.19.9)(chokidar@5.0.0)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(postcss@8.5.12)(sass-embedded@1.99.0)(terser@5.46.2)(tslib@2.8.1)(typescript@5.9.3)(vitest@4.1.5)(yaml@2.8.0) transitivePeerDependencies: - '@babel/traverse' - '@module-federation/enhanced' @@ -11083,14 +11257,14 @@ snapshots: - nx - supports-color - '@nx/module-federation@22.7.1(c2c45d76e6702e3cf065b440e07e4739)': + '@nx/module-federation@22.7.1(27b1ab36afbd8bd0e18d980b54763c18)': dependencies: '@module-federation/enhanced': 2.4.0(@rspack/core@1.6.8(@swc/helpers@0.5.18))(node-fetch@2.7.0(encoding@0.1.13))(typescript@5.9.3)(webpack@5.106.2) '@module-federation/node': 2.7.42(@rspack/core@1.6.8(@swc/helpers@0.5.18))(typescript@5.9.3)(webpack@5.106.2) '@module-federation/sdk': 2.4.0(node-fetch@2.7.0(encoding@0.1.13)) '@nx/devkit': 22.7.1(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) '@nx/js': 22.7.1(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) - '@nx/web': 22.7.1(bc1bfc32fc11241ab96f9e54a7c47d08) + '@nx/web': 22.7.1(e667a354dca3d93513feff4e1b599c99) '@rspack/core': 1.6.8(@swc/helpers@0.5.18) express: 4.22.1 http-proxy-middleware: 3.0.5 @@ -11121,9 +11295,9 @@ snapshots: - vue-tsc - webpack-cli - '@nx/nest@22.7.1(7aefdee842d4dc9533b115d77ccc0ef3)': + '@nx/nest@22.7.1(ff75800671d6e53540e74774b09ff4e4)': dependencies: - '@nestjs/schematics': 11.1.0(prettier@3.8.3)(typescript@5.9.3) + '@nestjs/schematics': 11.1.0(chokidar@5.0.0)(prettier@3.8.3)(typescript@5.9.3) '@nx/devkit': 22.7.1(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) '@nx/eslint': 22.7.1(b42b4dedbd3a0c85115099f8a9e21618) '@nx/js': 22.7.1(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) @@ -11257,14 +11431,14 @@ snapshots: - supports-color - verdaccio - '@nx/rspack@22.7.1(9c4158b7862e23044d7280f07d0d5e5a)': + '@nx/rspack@22.7.1(7c686c8582d9d337db8df3943967f6a5)': dependencies: '@module-federation/enhanced': 2.4.0(@rspack/core@1.6.8(@swc/helpers@0.5.18))(node-fetch@2.7.0(encoding@0.1.13))(typescript@5.9.3)(webpack@5.106.2) '@module-federation/node': 2.7.42(@rspack/core@1.6.8(@swc/helpers@0.5.18))(typescript@5.9.3)(webpack@5.106.2) '@nx/devkit': 22.7.1(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) '@nx/js': 22.7.1(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) - '@nx/module-federation': 22.7.1(c2c45d76e6702e3cf065b440e07e4739) - '@nx/web': 22.7.1(bc1bfc32fc11241ab96f9e54a7c47d08) + '@nx/module-federation': 22.7.1(27b1ab36afbd8bd0e18d980b54763c18) + '@nx/web': 22.7.1(e667a354dca3d93513feff4e1b599c99) '@phenomnomnominal/tsquery': 6.1.4(typescript@5.9.3) '@rspack/core': 1.6.8(@swc/helpers@0.5.18) '@rspack/dev-server': 1.2.1(@rspack/core@1.6.8(@swc/helpers@0.5.18))(tslib@2.8.1)(webpack@5.106.2) @@ -11320,11 +11494,11 @@ snapshots: - webpack-cli - webpack-hot-middleware - '@nx/vite@22.7.1(@babel/traverse@7.29.0)(@nx/eslint@22.7.1(b42b4dedbd3a0c85115099f8a9e21618))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))(vitest@4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)))': + '@nx/vite@22.7.1(@babel/traverse@7.29.0)(@nx/eslint@22.7.1(b42b4dedbd3a0c85115099f8a9e21618))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))(vitest@4.1.5)': dependencies: '@nx/devkit': 22.7.1(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) '@nx/js': 22.7.1(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) - '@nx/vitest': 22.7.1(@babel/traverse@7.29.0)(@nx/eslint@22.7.1(b42b4dedbd3a0c85115099f8a9e21618))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))(vitest@4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))) + '@nx/vitest': 22.7.1(@babel/traverse@7.29.0)(@nx/eslint@22.7.1(b42b4dedbd3a0c85115099f8a9e21618))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))(vitest@4.1.5) '@phenomnomnominal/tsquery': 6.1.4(typescript@5.9.3) ajv: 8.20.0 enquirer: 2.3.6 @@ -11333,7 +11507,7 @@ snapshots: tsconfig-paths: 4.2.0 tslib: 2.8.1 vite: 8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0) - vitest: 4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) + vitest: 4.1.5(@types/node@20.19.9)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) transitivePeerDependencies: - '@babel/traverse' - '@nx/eslint' @@ -11345,7 +11519,7 @@ snapshots: - typescript - verdaccio - '@nx/vitest@22.7.1(@babel/traverse@7.29.0)(@nx/eslint@22.7.1(b42b4dedbd3a0c85115099f8a9e21618))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))(vitest@4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)))': + '@nx/vitest@22.7.1(@babel/traverse@7.29.0)(@nx/eslint@22.7.1(b42b4dedbd3a0c85115099f8a9e21618))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))(vitest@4.1.5)': dependencies: '@nx/devkit': 22.7.1(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) '@nx/js': 22.7.1(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) @@ -11355,7 +11529,7 @@ snapshots: optionalDependencies: '@nx/eslint': 22.7.1(b42b4dedbd3a0c85115099f8a9e21618) vite: 8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0) - vitest: 4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) + vitest: 4.1.5(@types/node@20.19.9)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -11366,7 +11540,7 @@ snapshots: - typescript - verdaccio - '@nx/web@22.7.1(bc1bfc32fc11241ab96f9e54a7c47d08)': + '@nx/web@22.7.1(e667a354dca3d93513feff4e1b599c99)': dependencies: '@nx/devkit': 22.7.1(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) '@nx/js': 22.7.1(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))) @@ -11378,7 +11552,7 @@ snapshots: '@nx/eslint': 22.7.1(b42b4dedbd3a0c85115099f8a9e21618) '@nx/jest': 22.7.1(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@20.19.9)(babel-plugin-macros@3.1.0)(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(ts-node@10.9.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@20.19.9)(typescript@5.9.3))(typescript@5.9.3) '@nx/playwright': 22.7.1(0914e6729b234c971c425e19a892bd69) - '@nx/vite': 22.7.1(@babel/traverse@7.29.0)(@nx/eslint@22.7.1(b42b4dedbd3a0c85115099f8a9e21618))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))(vitest@4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))) + '@nx/vite': 22.7.1(@babel/traverse@7.29.0)(@nx/eslint@22.7.1(b42b4dedbd3a0c85115099f8a9e21618))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0))(vitest@4.1.5) '@nx/webpack': 22.7.1(@babel/traverse@7.29.0)(@rspack/core@1.6.8(@swc/helpers@0.5.18))(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(lightningcss@1.32.0)(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.8(@swc/helpers@0.5.18))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.8(@swc/helpers@0.5.18)))(typescript@5.9.3)(webpack-cli@5.1.4(webpack@5.106.2)) transitivePeerDependencies: - '@babel/traverse' @@ -11703,18 +11877,20 @@ snapshots: dependencies: playwright: 1.59.1 + '@polka/url@1.0.0-next.29': {} + '@prisma/client-runtime-utils@7.8.0': {} - '@prisma/client@7.8.0(prisma@7.8.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3)': + '@prisma/client@7.8.0(prisma@7.8.0(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3)': dependencies: '@prisma/client-runtime-utils': 7.8.0 optionalDependencies: - prisma: 7.8.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + prisma: 7.8.0(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) typescript: 5.9.3 - '@prisma/config@7.8.0': + '@prisma/config@7.8.0(magicast@0.5.2)': dependencies: - c12: 3.3.4 + c12: 3.3.4(magicast@0.5.2) deepmerge-ts: 7.1.5 effect: 3.20.0 empathic: 2.0.0 @@ -12114,18 +12290,18 @@ snapshots: error-stack-parser: 2.1.4 react-refresh: 0.18.0 - '@schematics/angular@13.3.11': + '@schematics/angular@13.3.11(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 13.3.11 - '@angular-devkit/schematics': 13.3.11 + '@angular-devkit/core': 13.3.11(chokidar@5.0.0) + '@angular-devkit/schematics': 13.3.11(chokidar@5.0.0) jsonc-parser: 3.0.0 transitivePeerDependencies: - chokidar - '@schematics/angular@21.2.9': + '@schematics/angular@21.2.9(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 21.2.9 - '@angular-devkit/schematics': 21.2.9 + '@angular-devkit/core': 21.2.9(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.9(chokidar@5.0.0) jsonc-parser: 3.3.1 transitivePeerDependencies: - chokidar @@ -12267,6 +12443,13 @@ snapshots: '@tokenizer/token@0.3.0': {} + '@ts-morph/common@0.22.0': + dependencies: + fast-glob: 3.3.3 + minimatch: 9.0.9 + mkdirp: 3.0.1 + path-browserify: 1.0.1 + '@tsconfig/node10@1.0.12': {} '@tsconfig/node12@1.0.11': {} @@ -12609,6 +12792,20 @@ snapshots: dependencies: vite: 7.3.2(@types/node@20.19.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.32.0)(sass-embedded@1.99.0)(sass@1.97.3)(terser@5.46.2)(yaml@2.8.0) + '@vitest/coverage-v8@4.1.5(vitest@4.1.5)': + dependencies: + '@bcoe/v8-coverage': 1.0.2 + '@vitest/utils': 4.1.5 + ast-v8-to-istanbul: 1.0.0 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.2.0 + magicast: 0.5.2 + obug: 2.1.1 + std-env: 4.1.0 + tinyrainbow: 3.1.0 + vitest: 4.1.5(@types/node@20.19.9)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) + '@vitest/expect@4.1.5': dependencies: '@standard-schema/spec': 1.1.0 @@ -12644,6 +12841,17 @@ snapshots: '@vitest/spy@4.1.5': {} + '@vitest/ui@4.1.5(vitest@4.1.5)': + dependencies: + '@vitest/utils': 4.1.5 + fflate: 0.8.2 + flatted: 3.4.2 + pathe: 2.0.3 + sirv: 3.0.2 + tinyglobby: 0.2.16 + tinyrainbow: 3.1.0 + vitest: 4.1.5(@types/node@20.19.9)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) + '@vitest/utils@4.1.5': dependencies: '@vitest/pretty-format': 4.1.5 @@ -12853,16 +13061,16 @@ snapshots: '@algolia/requester-fetch': 5.48.1 '@algolia/requester-node-http': 5.48.1 - angular-eslint@21.3.1(@angular/cli@21.2.9(@types/node@20.19.9))(eslint@9.39.4(jiti@2.6.1))(typescript-eslint@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(typescript@5.9.3): + angular-eslint@21.3.1(@angular/cli@21.2.9(@types/node@20.19.9)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@9.39.4(jiti@2.6.1))(typescript-eslint@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(typescript@5.9.3): dependencies: - '@angular-devkit/core': 21.2.9 - '@angular-devkit/schematics': 21.2.9 - '@angular-eslint/builder': 21.3.1(@angular/cli@21.2.9(@types/node@20.19.9))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@angular-devkit/core': 21.2.9(chokidar@5.0.0) + '@angular-devkit/schematics': 21.2.9(chokidar@5.0.0) + '@angular-eslint/builder': 21.3.1(@angular/cli@21.2.9(@types/node@20.19.9)(chokidar@5.0.0))(chokidar@5.0.0)(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@angular-eslint/eslint-plugin': 21.3.1(@typescript-eslint/utils@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@angular-eslint/eslint-plugin-template': 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/types@8.59.1)(@typescript-eslint/utils@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@angular-eslint/schematics': 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@angular/cli@21.2.9(@types/node@20.19.9))(@typescript-eslint/types@8.59.1)(@typescript-eslint/utils@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) + '@angular-eslint/schematics': 21.3.1(@angular-eslint/template-parser@21.3.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(@angular/cli@21.2.9(@types/node@20.19.9)(chokidar@5.0.0))(@typescript-eslint/types@8.59.1)(@typescript-eslint/utils@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(chokidar@5.0.0)(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) '@angular-eslint/template-parser': 21.3.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) - '@angular/cli': 21.2.9(@types/node@20.19.9) + '@angular/cli': 21.2.9(@types/node@20.19.9)(chokidar@5.0.0) '@typescript-eslint/types': 8.59.1 '@typescript-eslint/utils': 8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.4(jiti@2.6.1) @@ -12925,6 +13133,12 @@ snapshots: assertion-error@2.0.1: {} + ast-v8-to-istanbul@1.0.0: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + estree-walker: 3.0.3 + js-tokens: 10.0.0 + async@3.2.6: {} asynckit@0.4.0: {} @@ -13195,7 +13409,7 @@ snapshots: bytestreamjs@2.0.1: {} - c12@3.3.4: + c12@3.3.4(magicast@0.5.2): dependencies: chokidar: 5.0.0 confbox: 0.2.4 @@ -13209,6 +13423,8 @@ snapshots: perfect-debounce: 2.1.0 pkg-types: 2.3.1 rc9: 3.0.1 + optionalDependencies: + magicast: 0.5.2 cacache@20.0.4: dependencies: @@ -13342,6 +13558,8 @@ snapshots: co@4.6.0: {} + code-block-writer@12.0.0: {} + collect-v8-coverage@1.0.3: {} color-convert@2.0.1: @@ -14083,6 +14301,14 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} @@ -14093,6 +14319,10 @@ snapshots: fastest-levenshtein@1.0.16: {} + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + faye-websocket@0.11.4: dependencies: websocket-driver: 0.7.4 @@ -14105,6 +14335,8 @@ snapshots: optionalDependencies: picomatch: 4.0.4 + fflate@0.8.2: {} + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -15041,6 +15273,8 @@ snapshots: jose@6.2.3: {} + js-tokens@10.0.0: {} + js-tokens@4.0.0: {} js-yaml@3.14.2: @@ -15329,6 +15563,12 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + magicast@0.5.2: + dependencies: + '@babel/parser': 7.29.2 + '@babel/types': 7.29.0 + source-map-js: 1.2.1 + make-dir@2.1.0: dependencies: pify: 4.0.1 @@ -15399,6 +15639,8 @@ snapshots: merge-stream@2.0.0: {} + merge2@1.4.1: {} + methods@1.1.2: {} micromatch@4.0.8: @@ -15479,6 +15721,8 @@ snapshots: dependencies: minipass: 7.1.3 + mkdirp@3.0.1: {} + mrmime@2.0.1: {} ms@2.0.0: {} @@ -15554,14 +15798,14 @@ snapshots: neo-async@2.6.2: {} - nestjs-prisma@0.27.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.15.1)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@prisma/client@7.8.0(prisma@7.8.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3))(prisma@7.8.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3)): + nestjs-prisma@0.27.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.15.1)(reflect-metadata@0.1.14)(rxjs@7.8.2))(@prisma/client@7.8.0(prisma@7.8.0(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3))(chokidar@5.0.0)(prisma@7.8.0(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3)): dependencies: - '@angular-devkit/core': 13.3.11 - '@angular-devkit/schematics': 13.3.11 + '@angular-devkit/core': 13.3.11(chokidar@5.0.0) + '@angular-devkit/schematics': 13.3.11(chokidar@5.0.0) '@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.15.1)(reflect-metadata@0.1.14)(rxjs@7.8.2) - '@prisma/client': 7.8.0(prisma@7.8.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3) - '@schematics/angular': 13.3.11 - prisma: 7.8.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) + '@prisma/client': 7.8.0(prisma@7.8.0(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3))(typescript@5.9.3) + '@schematics/angular': 13.3.11(chokidar@5.0.0) + prisma: 7.8.0(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3) transitivePeerDependencies: - chokidar @@ -16127,6 +16371,8 @@ snapshots: parseurl@1.3.3: {} + path-browserify@1.0.1: {} + path-exists@4.0.0: {} path-exists@5.0.0: {} @@ -16438,9 +16684,9 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - prisma@7.8.0(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3): + prisma@7.8.0(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@5.9.3): dependencies: - '@prisma/config': 7.8.0 + '@prisma/config': 7.8.0(magicast@0.5.2) '@prisma/dev': 0.24.3(typescript@5.9.3) '@prisma/engines': 7.8.0 '@prisma/studio-core': 0.27.3(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5) @@ -16500,6 +16746,8 @@ snapshots: dependencies: side-channel: 1.1.0 + queue-microtask@1.2.3: {} + range-parser@1.2.1: {} raw-body@2.5.3: @@ -16639,6 +16887,8 @@ snapshots: retry@0.13.1: {} + reusify@1.1.0: {} + rfdc@1.4.1: {} rolldown@1.0.0-rc.17: @@ -16727,6 +16977,10 @@ snapshots: run-applescript@7.1.0: {} + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + rxjs@6.6.7: dependencies: tslib: 1.14.1 @@ -17037,6 +17291,12 @@ snapshots: transitivePeerDependencies: - supports-color + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + slash@3.0.0: {} slice-ansi@7.1.2: @@ -17358,6 +17618,8 @@ snapshots: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 + totalist@3.0.1: {} + tough-cookie@6.0.1: dependencies: tldts: 7.0.29 @@ -17421,6 +17683,11 @@ snapshots: typescript: 5.9.3 webpack: 5.106.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.3)(webpack-cli@5.1.4(webpack@5.106.2)) + ts-morph@21.0.1: + dependencies: + '@ts-morph/common': 0.22.0 + code-block-writer: 12.0.0 + ts-node@10.9.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@20.19.9)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -17647,7 +17914,7 @@ snapshots: terser: 5.46.2 yaml: 2.8.0 - vitest@4.1.5(@types/node@20.19.9)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)): + vitest@4.1.5(@types/node@20.19.9)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@27.4.0)(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)): dependencies: '@vitest/expect': 4.1.5 '@vitest/mocker': 4.1.5(vite@8.0.10(@types/node@20.19.9)(esbuild@0.27.3)(jiti@2.6.1)(less@4.5.1)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.46.2)(yaml@2.8.0)) @@ -17671,6 +17938,8 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.19.9 + '@vitest/coverage-v8': 4.1.5(vitest@4.1.5) + '@vitest/ui': 4.1.5(vitest@4.1.5) jsdom: 27.4.0 transitivePeerDependencies: - msw diff --git a/tsconfig.base.json b/tsconfig.base.json index cce17aa..8d3300a 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -2,7 +2,12 @@ "compilerOptions": { "rootDir": ".", "baseUrl": ".", - "paths": {}, + "paths": { + "shared-tokens": ["./libs/shared/tokens/src/index.ts"], + "shared-util": ["./libs/shared/util/src/index.ts"], + "shared-ui": ["./libs/shared/ui/src/index.ts"], + "feature-auth": ["./libs/feature/auth/src/index.ts"] + }, "sourceMap": true, "declaration": false, "importHelpers": true, diff --git a/vitest.workspace.ts b/vitest.workspace.ts new file mode 100644 index 0000000..7a7df60 --- /dev/null +++ b/vitest.workspace.ts @@ -0,0 +1 @@ +export default ['**/vite.config.{mjs,js,ts,mts}', '**/vitest.config.{mjs,js,ts,mts}'];