diff --git a/.eslintignore b/.eslintignore index 91f29fbc7..176d4a6bc 100644 --- a/.eslintignore +++ b/.eslintignore @@ -2,4 +2,5 @@ node_modules pnpm-lock.yaml packages/*/docs packages/*/coverage +*tsconfig.tsbuildinfo* diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 24a9198ce..3cbcc4d59 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: - run: git branch --track main origin/main - run: pnpm exec nx-cloud record -- nx format:check - - run: pnpm exec nx affected -t typecheck build lint test docs e2e-ci + - run: pnpm exec nx affected -t build typecheck lint test docs e2e-ci - uses: codecov/codecov-action@v5 with: diff --git a/e2e/davinci-app/package.json b/e2e/davinci-app/package.json index e42344e81..1edd91c1c 100644 --- a/e2e/davinci-app/package.json +++ b/e2e/davinci-app/package.json @@ -13,9 +13,6 @@ }, "devDependencies": {}, "scripts": { - "build": "nx exec -- vite build --watch false", - "serve": "vite dev", - "preview": "vite preview", - "lint": "nx exec -- eslint **/*.ts --fix" + "lint": "eslint **/*.ts --fix" } } diff --git a/e2e/davinci-app/tsconfig.json b/e2e/davinci-app/tsconfig.json index 14186f2dd..9db433b0c 100644 --- a/e2e/davinci-app/tsconfig.json +++ b/e2e/davinci-app/tsconfig.json @@ -6,9 +6,6 @@ "useDefineForClassFields": true, "lib": ["ESNext", "DOM"], "strict": true, - "resolveJsonModule": true, - "moduleDetection": "force", - "verbatimModuleSyntax": true, "isolatedModules": true, "esModuleInterop": true, "noUnusedLocals": true, diff --git a/e2e/mock-api-v2/.eslintignore b/e2e/mock-api-v2/.eslintignore index 0360812cd..094b3eca0 100644 --- a/e2e/mock-api-v2/.eslintignore +++ b/e2e/mock-api-v2/.eslintignore @@ -8,3 +8,4 @@ dist .eslintignore coverage html/* +*tsconfig.tsbuildinfo* diff --git a/e2e/mock-api-v2/build.js b/e2e/mock-api-v2/build.js deleted file mode 100644 index 2f9204e9d..000000000 --- a/e2e/mock-api-v2/build.js +++ /dev/null @@ -1,35 +0,0 @@ -// build.js -const esbuild = require('esbuild'); -const process = require('process'); -const fs = require('fs'); -const path = require('path'); - -const { env } = process; - -const production = Boolean(env?.PROD) ?? false; -const watch = Boolean(env?.WATCH) ?? false; - -esbuild - .build({ - entryPoints: ['src/main.ts'], - bundle: true, - platform: 'node', - target: 'node20', // or your preferred Node.js version - assetNames: 'assets', - format: 'esm', - outfile: 'dist/main.js', - sourcemap: true, - watch, - minify: production, // Set to true for production - }) - .then(() => { - // Copy CSS file to dist directory - fs.copyFileSync( - path.join(__dirname, 'src', 'index.css'), - path.join(__dirname, 'dist', 'index.css'), - ); - console.log('CSS file copied to dist directory'); - - console.log('Build completed successfully!'); - }) - .catch(() => process.exit(1)); diff --git a/e2e/mock-api-v2/package.json b/e2e/mock-api-v2/package.json index f531fd8a1..db893bfb7 100644 --- a/e2e/mock-api-v2/package.json +++ b/e2e/mock-api-v2/package.json @@ -3,16 +3,7 @@ "version": "1.0.0", "description": "", "main": "./dist/index.js", - "type": "commonjs", - "scripts": { - "build": "tsc --project tsconfig.app.json", - "build:watch": "tsc --project tsconfig.app.json --watch", - "serve": "node dist/e2e/mock-api-v2/src/main.js", - "serve:dev": "nodemon dist/e2e/mock-api-v2/src/main.js", - "test": "vitest", - "test:watch": "vitest watch --coverage --coverage.reportsDirectory=../../coverage/mock-api-v2", - "lint": "nx exec -- eslint --fix --ignore-path .eslintignore \"**/*.ts\"" - }, + "type": "module", "dependencies": { "@effect/language-service": "^0.2.0", "@effect/platform": "^0.58.27", @@ -21,6 +12,22 @@ "effect-http": "^0.73.0", "effect-http-node": "^0.16.1", "@effect/schema": "^0.68.23", - "@effect/vitest": "^0.17.3" + "@effect/vitest": "^0.17.0" + }, + "nx": { + "tags": ["scope:e2e"], + "targets": { + "build": { + "executor": "@nx/js:tsc", + "outputs": ["{options.outputPath}"], + "options": { + "outputPath": "e2e/mock-api-v2/dist", + "main": "e2e/mock-api-v2/src/main.ts", + "tsConfig": "e2e/mock-api-v2/tsconfig.app.json", + "generatePackageJson": true, + "assets": [] + } + } + } } } diff --git a/e2e/mock-api-v2/src/helpers/test/cookie.test.ts b/e2e/mock-api-v2/src/helpers/test/cookie.test.ts index d89a5090a..16b4fed6d 100644 --- a/e2e/mock-api-v2/src/helpers/test/cookie.test.ts +++ b/e2e/mock-api-v2/src/helpers/test/cookie.test.ts @@ -1,4 +1,5 @@ -import { it, expect } from '@effect/vitest'; +import { it } from '@effect/vitest'; +import { expect } from 'vitest'; import { getElementFromCookie, incrementCookieHeader, diff --git a/e2e/mock-api-v2/src/helpers/test/match.test.ts b/e2e/mock-api-v2/src/helpers/test/match.test.ts index 10ee30d6b..37cbe0b38 100644 --- a/e2e/mock-api-v2/src/helpers/test/match.test.ts +++ b/e2e/mock-api-v2/src/helpers/test/match.test.ts @@ -1,4 +1,5 @@ -import { it, expect } from '@effect/vitest'; +import { it } from '@effect/vitest'; +import { expect } from 'vitest'; import { PingRequestData, validator } from '../match.js'; import { Effect, Exit } from 'effect'; import { InvalidUsernamePassword, InvalidProtectNode } from '../../errors/index.js'; diff --git a/e2e/mock-api-v2/src/services/tests/authorize.service.test.ts b/e2e/mock-api-v2/src/services/tests/authorize.service.test.ts index a3cd13663..866e729b3 100644 --- a/e2e/mock-api-v2/src/services/tests/authorize.service.test.ts +++ b/e2e/mock-api-v2/src/services/tests/authorize.service.test.ts @@ -1,4 +1,5 @@ -import { it, expect } from '@effect/vitest'; +import { it } from '@effect/vitest'; +import { expect } from 'vitest'; import { Effect, Layer } from 'effect'; import { Authorize, authorizeMock } from '../authorize.service.js'; import { mockRequest } from '../request.service.js'; diff --git a/e2e/mock-api-v2/src/services/tests/cookie.service.test.ts b/e2e/mock-api-v2/src/services/tests/cookie.service.test.ts index a792f15e6..1795b0429 100644 --- a/e2e/mock-api-v2/src/services/tests/cookie.service.test.ts +++ b/e2e/mock-api-v2/src/services/tests/cookie.service.test.ts @@ -1,4 +1,5 @@ -import { it, expect } from '@effect/vitest'; +import { it } from '@effect/vitest'; +import { expect } from 'vitest'; import { CookieService, cookieServiceTest } from '../cookie.service.js'; import { Effect, Either } from 'effect'; import { Cookies } from '@effect/platform'; diff --git a/e2e/mock-api-v2/src/services/tests/custom-html-template.service.test.ts b/e2e/mock-api-v2/src/services/tests/custom-html-template.service.test.ts index 7083747e6..596b1db3d 100644 --- a/e2e/mock-api-v2/src/services/tests/custom-html-template.service.test.ts +++ b/e2e/mock-api-v2/src/services/tests/custom-html-template.service.test.ts @@ -1,4 +1,5 @@ -import { it, expect } from '@effect/vitest'; +import { it } from '@effect/vitest'; +import { expect } from 'vitest'; import { CustomHtmlTemplate, mockCustomHtmlTemplate } from '../custom-html-template.service.js'; import { Effect, Exit, Layer } from 'effect'; import { mockRequest } from '../request.service.js'; diff --git a/e2e/mock-api-v2/src/services/tests/request.service.test.ts b/e2e/mock-api-v2/src/services/tests/request.service.test.ts index 8a45001ea..57f8e98ea 100644 --- a/e2e/mock-api-v2/src/services/tests/request.service.test.ts +++ b/e2e/mock-api-v2/src/services/tests/request.service.test.ts @@ -1,4 +1,5 @@ -import { it, expect } from '@effect/vitest'; +import { it } from '@effect/vitest'; +import { expect } from 'vitest'; import { Request, mockRequest } from '../request.service.js'; import { Effect } from 'effect'; import { CustomHtmlResponseBody } from '../custom-html-template.service.js'; diff --git a/e2e/mock-api-v2/src/services/tests/userinfo.service.test.ts b/e2e/mock-api-v2/src/services/tests/userinfo.service.test.ts index 6b57b6875..da0dd98fb 100644 --- a/e2e/mock-api-v2/src/services/tests/userinfo.service.test.ts +++ b/e2e/mock-api-v2/src/services/tests/userinfo.service.test.ts @@ -1,4 +1,5 @@ -import { expect, it } from '@effect/vitest'; +import { it } from '@effect/vitest'; +import { expect } from 'vitest'; import { UserInfo, userInfoMock } from '../userinfo.service.js'; import { userInfoResponse } from '../../responses/userinfo/userinfo.js'; import { Effect } from 'effect'; diff --git a/e2e/mock-api-v2/tsconfig.spec.json b/e2e/mock-api-v2/tsconfig.spec.json index 72ea49cbd..1beb5a8ed 100644 --- a/e2e/mock-api-v2/tsconfig.spec.json +++ b/e2e/mock-api-v2/tsconfig.spec.json @@ -2,20 +2,13 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "../../dist/out-tsc", - "module": "NodeNext", - "moduleResolution": "NodeNext", - "target": "ES2020", - "types": [ - "vitest/vitest", - "vitest/globals", - "vitest/importMeta", - "vite/client", - "node" - ] + "module": "Node16", + "moduleResolution": "Node16", + "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node"] }, "include": [ "src/**/*.ts", - "vite.config.ts", + "vite.config.mts", "vitest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", diff --git a/e2e/mock-api-v2/vite.config.ts b/e2e/mock-api-v2/vite.config.ts index f85e2d61a..60b70a423 100644 --- a/e2e/mock-api-v2/vite.config.ts +++ b/e2e/mock-api-v2/vite.config.ts @@ -6,13 +6,9 @@ export default defineConfig({ test: { globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - watch: !process.env['CI'], + watch: Boolean(process.env['CI']) === false, environment: 'jsdom', include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - reporters: ['default', 'json', 'html'], coverage: { enabled: Boolean(process.env['CI']), diff --git a/nx.json b/nx.json index e1fe46526..df09cd69b 100644 --- a/nx.json +++ b/nx.json @@ -13,7 +13,8 @@ }, "targetDefaults": { "typecheck": { - "dependsOn": ["build", "^build"] + "outputs": ["{projectRoot}/out-tsc"], + "dependsOn": ["^typecheck"] }, "docs": { "dependsOn": ["build", "^build", "^docs"], @@ -26,7 +27,7 @@ "e2e": { "dependsOn": ["^e2e"], "inputs": ["noMarkdown", "^noMarkdown"], - "outputs": ["{projectRoot}/./.playwright"], + "outputs": ["{projectRoot}/.playwright"], "cache": true }, "lint": { @@ -37,13 +38,13 @@ "test": { "inputs": ["noMarkdown", "^noMarkdown"], "dependsOn": ["^test"], - "outputs": ["{projectRoot}/./coverage"], + "outputs": ["{projectRoot}/coverage"], "cache": true }, "build": { "inputs": ["noMarkdown", "^noMarkdown"], "dependsOn": ["^build"], - "outputs": ["{projectRoot}/./dist"], + "outputs": ["{projectRoot}/dist"], "cache": true }, "e2e-ci--**/*": { @@ -80,6 +81,9 @@ "cache": true } }, + "sync": { + "applyChanges": true + }, "plugins": [ { "plugin": "@nx/js/typescript", @@ -91,21 +95,23 @@ "targetName": "build", "configName": "tsconfig.lib.json" } - } + }, + "include": ["e2e/**/**/*", "packages/**/**/*"] }, { "plugin": "@nx/playwright/plugin", "options": { "ciTargetName": "e2e-ci", "targetName": "e2e" - } + }, + "include": ["e2e/**/**/*"] }, { "plugin": "@nx/eslint/plugin", "options": { "targetName": "lint" }, - "include": ["tools/create-package/**/*", "packages/**/**/*"] + "include": ["e2e/**/**/*", "packages/**/**/*"] }, { "plugin": "@nx/vite/plugin", @@ -117,7 +123,7 @@ "serveStaticTargetName": "serve-static", "typecheckTargetName": "typecheck" }, - "include": ["tools/create-package/**/*"] + "include": ["packages/**/**/*", "e2e/**/**/*"] } ], "parallel": 1, @@ -125,9 +131,6 @@ "appsDir": "", "libsDir": "" }, - "sync": { - "applyChanges": true - }, "generators": { "@nx/js:library": { "publishable": true, diff --git a/package.json b/package.json index 1305b2bb5..719094b07 100644 --- a/package.json +++ b/package.json @@ -60,8 +60,8 @@ "@typescript-eslint/parser": "7.16.1", "@typescript-eslint/typescript-estree": "5.59.5", "@typescript-eslint/utils": "^8.13.0", - "@vitest/coverage-v8": "^3.0.4", - "@vitest/ui": "^3.0.4", + "@vitest/coverage-v8": "^2.0.5", + "@vitest/ui": "^2.0.5", "conventional-changelog-conventionalcommits": "^7.0.2", "cz-conventional-changelog": "^3.3.0", "cz-git": "^1.6.1", @@ -95,7 +95,7 @@ "vite-plugin-eslint": "^1.8.1", "vite-plugin-externalize-deps": "^0.8.0", "vite-tsconfig-paths": "^4.3.2", - "vitest": "^3.0.4", + "vitest": "^2.0.5", "vitest-canvas-mock": "^0.3.3" }, "config": { diff --git a/packages/davinci-client/.eslintignore b/packages/davinci-client/.eslintignore index 288d66ab2..309688b91 100644 --- a/packages/davinci-client/.eslintignore +++ b/packages/davinci-client/.eslintignore @@ -9,3 +9,4 @@ dist docs coverage vite.config.*.timestamp* +*tsconfig.tsbuildinfo* diff --git a/packages/davinci-client/.eslintrc.json b/packages/davinci-client/.eslintrc.json index 5a28bc406..df1d6d4dc 100644 --- a/packages/davinci-client/.eslintrc.json +++ b/packages/davinci-client/.eslintrc.json @@ -19,7 +19,7 @@ "parser": "jsonc-eslint-parser", "rules": { "@nx/dependency-checks": [ - "error", + "warn", { "ignoredFiles": ["{projectRoot}/vite.config.{js,ts,mjs,mts}"] } diff --git a/packages/davinci-client/package.json b/packages/davinci-client/package.json index 0be9ab197..e47077f9a 100644 --- a/packages/davinci-client/package.json +++ b/packages/davinci-client/package.json @@ -20,17 +20,13 @@ "@reduxjs/toolkit": "catalog:", "immer": "catalog:" }, + "devDependencies": { + "vitest": "^2.0.5" + }, "exports": { ".": "./dist/src/index.js", "./types": "./dist/src/types.d.ts" }, - "scripts": { - "build": "nx exec -- tsc --project ./tsconfig.lib.json", - "test": "nx exec -- vitest --typecheck", - "test:watch": "vitest --watch", - "test:coverage": "nx exec -- vitest --coverage", - "lint": "nx exec -- eslint **/*.ts --fix" - }, "nx": { "tags": ["scope:package"], "targets": { diff --git a/packages/davinci-client/src/lib/mock-data/mock-form-fields.data.ts b/packages/davinci-client/src/lib/mock-data/mock-form-fields.data.ts index 92d324387..f118bc5a6 100644 --- a/packages/davinci-client/src/lib/mock-data/mock-form-fields.data.ts +++ b/packages/davinci-client/src/lib/mock-data/mock-form-fields.data.ts @@ -1,4 +1,4 @@ -const obj = { +export const obj = { interactionId: '18fa40b7-0eb8-4a5c-803c-d3f3f807ed46', companyId: '02fb4743-189a-4bc7-9d6c-a919edfe6447', connectionId: '8209285e0d2f3fc76bfd23fd10d45e6f', diff --git a/packages/davinci-client/tsconfig.json b/packages/davinci-client/tsconfig.json index 91ceb908d..eefb01564 100644 --- a/packages/davinci-client/tsconfig.json +++ b/packages/davinci-client/tsconfig.json @@ -6,7 +6,8 @@ "noImplicitOverride": true, "noPropertyAccessFromIndexSignature": true, "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true + "noFallthroughCasesInSwitch": true, + "resolveJsonModule": true }, "references": [ { diff --git a/packages/davinci-client/tsconfig.lib.json b/packages/davinci-client/tsconfig.lib.json index 562809b65..dcee077a8 100644 --- a/packages/davinci-client/tsconfig.lib.json +++ b/packages/davinci-client/tsconfig.lib.json @@ -22,6 +22,7 @@ "vite.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts", + "src/**/*.test-d.ts", "src/lib/mock-data/*" ] } diff --git a/packages/davinci-client/tsconfig.spec.json b/packages/davinci-client/tsconfig.spec.json index c788fc13e..e89db4491 100644 --- a/packages/davinci-client/tsconfig.spec.json +++ b/packages/davinci-client/tsconfig.spec.json @@ -5,14 +5,9 @@ "outDir": "../../dist/out-tsc", "composite": true, "moduleResolution": "NodeNext", + "resolveJsonModule": true, "target": "ESNext", - "types": [ - "vitest/vitest", - "vitest/globals", - "vitest/importMeta", - "vite/client", - "node" - ] + "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node"] }, "include": [ "src/**/*.ts", diff --git a/packages/davinci-client/vite.config.ts b/packages/davinci-client/vite.config.ts index 904e32ca2..9ccbbcc29 100644 --- a/packages/davinci-client/vite.config.ts +++ b/packages/davinci-client/vite.config.ts @@ -1,7 +1,6 @@ import { defineConfig } from 'vite'; import dts from 'vite-plugin-dts'; import * as path from 'path'; -import * as pkg from './package.json'; import { codecovVitePlugin } from '@codecov/vite-plugin'; export default defineConfig({ @@ -32,13 +31,6 @@ export default defineConfig({ preserveModules: true, preserveModulesRoot: 'src', }, - external: Array.from(Object.keys(pkg.dependencies) || []).concat([ - './src/lib/mock-data/*', - '@reduxjs/toolkit/query', - '@forgerock/javascript-sdk', - '@forgerock/javascript-sdk/src/oauth2-client/state-pkce', - 'javascript-sdk', - ]), }, lib: { entry: 'src/index.ts', diff --git a/packages/device-client/.eslintignore b/packages/device-client/.eslintignore index 288d66ab2..309688b91 100644 --- a/packages/device-client/.eslintignore +++ b/packages/device-client/.eslintignore @@ -9,3 +9,4 @@ dist docs coverage vite.config.*.timestamp* +*tsconfig.tsbuildinfo* diff --git a/packages/device-client/.eslintrc.json b/packages/device-client/.eslintrc.json index 3fc5707da..28346c7fe 100644 --- a/packages/device-client/.eslintrc.json +++ b/packages/device-client/.eslintrc.json @@ -19,7 +19,7 @@ "parser": "jsonc-eslint-parser", "rules": { "@nx/dependency-checks": [ - "error", + "warn", { "ignoredFiles": [ "{projectRoot}/eslint.config.{js,cjs,mjs}", diff --git a/packages/device-client/package.json b/packages/device-client/package.json index 74de31495..859a3fcfc 100644 --- a/packages/device-client/package.json +++ b/packages/device-client/package.json @@ -15,19 +15,11 @@ "files": ["./dist"], "dependencies": { "@reduxjs/toolkit": "catalog:", - "@forgerock/javascript-sdk": "4.6.0", - "immer": "catalog:" + "@forgerock/javascript-sdk": "4.6.0" }, "devDependencies": { "msw": "^2.5.1" }, - "scripts": { - "build": "nx exec -- tsc --project ./tsconfig.lib.json", - "test": "vitest", - "test:watch": "vitest --watch", - "test:coverage": "vitest --coverage", - "lint": "nx exec -- eslint **/*.ts --fix" - }, "nx": { "targets": { "build": { diff --git a/packages/device-client/tsconfig.spec.json b/packages/device-client/tsconfig.spec.json index 0e527c9e6..9e6c46079 100644 --- a/packages/device-client/tsconfig.spec.json +++ b/packages/device-client/tsconfig.spec.json @@ -6,13 +6,7 @@ "moduleResolution": "NodeNext", "target": "ESNext", "outDir": "../../dist/out-tsc", - "types": [ - "vitest/vitest", - "vitest/globals", - "vitest/importMeta", - "vite/client", - "node" - ] + "types": ["vitest/globals", "vitest/importMeta", "vite/client", "node"] }, "include": [ "vite.config.ts", diff --git a/packages/device-client/vite.config.ts b/packages/device-client/vite.config.ts index b5da742d3..537f24c6c 100644 --- a/packages/device-client/vite.config.ts +++ b/packages/device-client/vite.config.ts @@ -46,7 +46,6 @@ export default defineConfig(() => ({ reportsDirectory: './coverage', provider: 'v8', }, - deps: { optimizer: { web: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15122f793..b69293d01 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,13 +67,13 @@ importers: version: 20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0)) '@nx/playwright': specifier: 20.4.0 - version: 20.4.0(@babel/traverse@7.24.1)(@playwright/test@1.47.2)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@3.0.4) + version: 20.4.0(@babel/traverse@7.24.1)(@playwright/test@1.47.2)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@2.1.8) '@nx/plugin': specifier: 20.4.0 version: 20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@8.57.0)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(ts-node@10.9.1(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(typescript@5.7.3))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0)) '@nx/vite': specifier: 20.4.0 - version: 20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@3.0.4) + version: 20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@2.1.8) '@nx/web': specifier: 20.4.0 version: 20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0)) @@ -117,11 +117,11 @@ importers: specifier: ^8.13.0 version: 8.18.0(eslint@8.57.0)(typescript@5.7.3) '@vitest/coverage-v8': - specifier: ^3.0.4 - version: 3.0.4(vitest@3.0.4) + specifier: ^2.0.5 + version: 2.1.8(vitest@2.1.8) '@vitest/ui': - specifier: ^3.0.4 - version: 3.0.4(vitest@3.0.4) + specifier: ^2.0.5 + version: 2.1.8(vitest@2.1.8) conventional-changelog-conventionalcommits: specifier: ^7.0.2 version: 7.0.2 @@ -222,11 +222,11 @@ importers: specifier: ^4.3.2 version: 4.3.2(typescript@5.7.3)(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0)) vitest: - specifier: ^3.0.4 - version: 3.0.4(@types/node@22.10.2)(@vitest/ui@3.0.4)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + specifier: ^2.0.5 + version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) vitest-canvas-mock: specifier: ^0.3.3 - version: 0.3.3(vitest@3.0.4) + version: 0.3.3(vitest@2.1.8) e2e/davinci-app: dependencies: @@ -254,7 +254,7 @@ importers: specifier: ^0.68.23 version: 0.68.23(effect@3.12.7) '@effect/vitest': - specifier: ^0.17.3 + specifier: ^0.17.0 version: 0.17.3(effect@3.12.7)(vitest@3.0.4) effect: specifier: ^3.12.7 @@ -277,6 +277,10 @@ importers: immer: specifier: 'catalog:' version: 10.1.1 + devDependencies: + vitest: + specifier: ^2.0.5 + version: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) packages/device-client: dependencies: @@ -286,9 +290,6 @@ importers: '@reduxjs/toolkit': specifier: 'catalog:' version: 2.3.0(react@18.3.1) - immer: - specifier: 'catalog:' - version: 10.1.1 devDependencies: msw: specifier: ^2.5.1 @@ -965,10 +966,6 @@ 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'} - '@bundled-es-modules/cookie@2.0.0': resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==} @@ -2561,18 +2558,32 @@ packages: resolution: {integrity: sha512-ZtQZjUyxHZHQSjbajncdPLuJt5D0k3r6RQ8Wg0jM5LAoAJM5L+ISC0lcDZI3VRY6mq/LhU6hKfUygBK8o7VQmQ==} engines: {node: '>=12'} - '@vitest/coverage-v8@3.0.4': - resolution: {integrity: sha512-f0twgRCHgbs24Dp8cLWagzcObXMcuKtAwgxjJV/nnysPAJJk1JiKu/W0gIehZLmkljhJXU/E0/dmuQzsA/4jhA==} + '@vitest/coverage-v8@2.1.8': + resolution: {integrity: sha512-2Y7BPlKH18mAZYAW1tYByudlCYrQyl5RGvnnDYJKW5tCiO5qg3KSAy3XAxcxKz900a0ZXxWtKrMuZLe3lKBpJw==} peerDependencies: - '@vitest/browser': 3.0.4 - vitest: 3.0.4 + '@vitest/browser': 2.1.8 + vitest: 2.1.8 peerDependenciesMeta: '@vitest/browser': optional: true + '@vitest/expect@2.1.8': + resolution: {integrity: sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==} + '@vitest/expect@3.0.4': resolution: {integrity: sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==} + '@vitest/mocker@2.1.8': + resolution: {integrity: sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/mocker@3.0.4': resolution: {integrity: sha512-gEef35vKafJlfQbnyOXZ0Gcr9IBUsMTyTLXsEQwuyYAerpHqvXhzdBnDFuHLpFqth3F7b6BaFr4qV/Cs1ULx5A==} peerDependencies: @@ -2584,23 +2595,43 @@ packages: vite: optional: true + '@vitest/pretty-format@2.1.8': + resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==} + '@vitest/pretty-format@3.0.4': resolution: {integrity: sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==} + '@vitest/runner@2.1.8': + resolution: {integrity: sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==} + '@vitest/runner@3.0.4': resolution: {integrity: sha512-dKHzTQ7n9sExAcWH/0sh1elVgwc7OJ2lMOBrAm73J7AH6Pf9T12Zh3lNE1TETZaqrWFXtLlx3NVrLRb5hCK+iw==} + '@vitest/snapshot@2.1.8': + resolution: {integrity: sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==} + '@vitest/snapshot@3.0.4': resolution: {integrity: sha512-+p5knMLwIk7lTQkM3NonZ9zBewzVp9EVkVpvNta0/PlFWpiqLaRcF4+33L1it3uRUCh0BGLOaXPPGEjNKfWb4w==} + '@vitest/spy@2.1.8': + resolution: {integrity: sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==} + '@vitest/spy@3.0.4': resolution: {integrity: sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==} + '@vitest/ui@2.1.8': + resolution: {integrity: sha512-5zPJ1fs0ixSVSs5+5V2XJjXLmNzjugHRyV11RqxYVR+oMcogZ9qTuSfKW+OcTV0JeFNznI83BNylzH6SSNJ1+w==} + peerDependencies: + vitest: 2.1.8 + '@vitest/ui@3.0.4': resolution: {integrity: sha512-e+s2F9e9FUURkZ5aFIe1Fi3Y8M7UF6gEuShcaV/ur7y/Ldri+1tzWQ1TJq9Vas42NXnXvCAIrU39Z4U2RyET6g==} peerDependencies: vitest: 3.0.4 + '@vitest/utils@2.1.8': + resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==} + '@vitest/utils@3.0.4': resolution: {integrity: sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==} @@ -7161,6 +7192,10 @@ packages: resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} engines: {node: ^18.0.0 || >=20.0.0} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -7536,6 +7571,11 @@ packages: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} + vite-node@2.1.8: + resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + vite-node@3.0.4: resolution: {integrity: sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -7606,6 +7646,31 @@ packages: peerDependencies: vitest: '*' + vitest@2.1.8: + resolution: {integrity: sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.1.8 + '@vitest/ui': 2.1.8 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vitest@3.0.4: resolution: {integrity: sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -8674,8 +8739,6 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@bcoe/v8-coverage@1.0.2': {} - '@bundled-es-modules/cookie@2.0.0': dependencies: cookie: 0.5.0 @@ -9723,12 +9786,12 @@ snapshots: '@nx/nx-win32-x64-msvc@20.4.0': optional: true - '@nx/playwright@20.4.0(@babel/traverse@7.24.1)(@playwright/test@1.47.2)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@3.0.4)': + '@nx/playwright@20.4.0(@babel/traverse@7.24.1)(@playwright/test@1.47.2)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@2.1.8)': dependencies: '@nx/devkit': 20.4.0(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))) '@nx/eslint': 20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(@zkochan/js-yaml@0.0.7)(eslint@8.57.0)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(verdaccio@5.30.3(typanion@3.14.0)) '@nx/js': 20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0)) - '@nx/vite': 20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@3.0.4) + '@nx/vite': 20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@2.1.8) '@nx/webpack': 20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0)) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.7.3) minimatch: 9.0.3 @@ -9791,7 +9854,7 @@ snapshots: - typescript - verdaccio - '@nx/vite@20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@3.0.4)': + '@nx/vite@20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))(vitest@2.1.8)': dependencies: '@nx/devkit': 20.4.0(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))) '@nx/js': 20.4.0(@babel/traverse@7.24.1)(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12))(@types/node@22.10.2)(nx@20.4.0(@swc-node/register@1.9.2(@swc/core@1.10.9(@swc/helpers@0.5.12))(@swc/types@0.1.17)(typescript@5.7.3))(@swc/core@1.10.9(@swc/helpers@0.5.12)))(typescript@5.7.3)(verdaccio@5.30.3(typanion@3.14.0)) @@ -9801,7 +9864,7 @@ snapshots: minimatch: 9.0.3 tsconfig-paths: 4.2.0 vite: 5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) - vitest: 3.0.4(@types/node@22.10.2)(@vitest/ui@3.0.4)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + vitest: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -10818,10 +10881,10 @@ snapshots: minimatch: 7.4.6 semver: 7.6.0 - '@vitest/coverage-v8@3.0.4(vitest@3.0.4)': + '@vitest/coverage-v8@2.1.8(vitest@2.1.8)': dependencies: '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 1.0.2 + '@bcoe/v8-coverage': 0.2.3 debug: 4.4.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -10831,11 +10894,18 @@ snapshots: magicast: 0.3.5 std-env: 3.8.0 test-exclude: 7.0.1 - tinyrainbow: 2.0.0 - vitest: 3.0.4(@types/node@22.10.2)(@vitest/ui@3.0.4)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + tinyrainbow: 1.2.0 + vitest: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) transitivePeerDependencies: - supports-color + '@vitest/expect@2.1.8': + dependencies: + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 + chai: 5.1.2 + tinyrainbow: 1.2.0 + '@vitest/expect@3.0.4': dependencies: '@vitest/spy': 3.0.4 @@ -10843,6 +10913,15 @@ snapshots: chai: 5.1.2 tinyrainbow: 2.0.0 + '@vitest/mocker@2.1.8(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))': + dependencies: + '@vitest/spy': 2.1.8 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.5.1(@types/node@22.10.2)(typescript@5.7.3) + vite: 5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + '@vitest/mocker@3.0.4(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0))': dependencies: '@vitest/spy': 3.0.4 @@ -10852,25 +10931,55 @@ snapshots: msw: 2.5.1(@types/node@22.10.2)(typescript@5.7.3) vite: 5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + '@vitest/pretty-format@2.1.8': + dependencies: + tinyrainbow: 1.2.0 + '@vitest/pretty-format@3.0.4': dependencies: tinyrainbow: 2.0.0 + '@vitest/runner@2.1.8': + dependencies: + '@vitest/utils': 2.1.8 + pathe: 1.1.2 + '@vitest/runner@3.0.4': dependencies: '@vitest/utils': 3.0.4 pathe: 2.0.2 + '@vitest/snapshot@2.1.8': + dependencies: + '@vitest/pretty-format': 2.1.8 + magic-string: 0.30.17 + pathe: 1.1.2 + '@vitest/snapshot@3.0.4': dependencies: '@vitest/pretty-format': 3.0.4 magic-string: 0.30.17 pathe: 2.0.2 + '@vitest/spy@2.1.8': + dependencies: + tinyspy: 3.0.2 + '@vitest/spy@3.0.4': dependencies: tinyspy: 3.0.2 + '@vitest/ui@2.1.8(vitest@2.1.8)': + dependencies: + '@vitest/utils': 2.1.8 + fflate: 0.8.2 + flatted: 3.3.2 + pathe: 1.1.2 + sirv: 3.0.0 + tinyglobby: 0.2.10 + tinyrainbow: 1.2.0 + vitest: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + '@vitest/ui@3.0.4(vitest@3.0.4)': dependencies: '@vitest/utils': 3.0.4 @@ -10881,6 +10990,13 @@ snapshots: tinyglobby: 0.2.10 tinyrainbow: 2.0.0 vitest: 3.0.4(@types/node@22.10.2)(@vitest/ui@3.0.4)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + optional: true + + '@vitest/utils@2.1.8': + dependencies: + '@vitest/pretty-format': 2.1.8 + loupe: 3.1.3 + tinyrainbow: 1.2.0 '@vitest/utils@3.0.4': dependencies: @@ -12485,7 +12601,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -15931,6 +16047,8 @@ snapshots: tinypool@1.0.2: {} + tinyrainbow@1.2.0: {} + tinyrainbow@2.0.0: {} tinyspy@3.0.2: {} @@ -16326,6 +16444,24 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 + vite-node@2.1.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0): + dependencies: + cac: 6.7.14 + debug: 4.4.0 + es-module-lexer: 1.6.0 + pathe: 1.1.2 + vite: 5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + vite-node@3.0.4(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0): dependencies: cac: 6.7.14 @@ -16399,10 +16535,47 @@ snapshots: stylus: 0.64.0 terser: 5.33.0 - vitest-canvas-mock@0.3.3(vitest@3.0.4): + vitest-canvas-mock@0.3.3(vitest@2.1.8): dependencies: jest-canvas-mock: 2.5.2 - vitest: 3.0.4(@types/node@22.10.2)(@vitest/ui@3.0.4)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + vitest: 2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + + vitest@2.1.8(@types/node@22.10.2)(@vitest/ui@2.1.8)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0): + dependencies: + '@vitest/expect': 2.1.8 + '@vitest/mocker': 2.1.8(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(vite@5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0)) + '@vitest/pretty-format': 2.1.8 + '@vitest/runner': 2.1.8 + '@vitest/snapshot': 2.1.8 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 + chai: 5.1.2 + debug: 4.4.0 + expect-type: 1.1.0 + magic-string: 0.30.17 + pathe: 1.1.2 + std-env: 3.8.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 1.2.0 + vite: 5.4.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + vite-node: 2.1.8(@types/node@22.10.2)(less@4.1.3)(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.10.2 + '@vitest/ui': 2.1.8(vitest@2.1.8) + jsdom: 22.1.0 + transitivePeerDependencies: + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser vitest@3.0.4(@types/node@22.10.2)(@vitest/ui@3.0.4)(jsdom@22.1.0)(less@4.1.3)(msw@2.5.1(@types/node@22.10.2)(typescript@5.7.3))(sass@1.75.0)(stylus@0.64.0)(terser@5.33.0): dependencies: diff --git a/tools/create-package/src/generators/create-package-generator.test.ts b/tools/create-package/src/generators/create-package-generator.test.ts deleted file mode 100644 index 25a16fb66..000000000 --- a/tools/create-package/src/generators/create-package-generator.test.ts +++ /dev/null @@ -1,214 +0,0 @@ -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import { Tree, installPackagesTask, formatFiles } from '@nx/devkit'; -import { createPackageGeneratorGenerator } from './create-package-generator.js'; -import { CreatePackageGeneratorGeneratorSchema } from './schema.js'; -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -// Mock installPackagesTask and formatFiles -vi.mock('@nx/devkit', async () => { - const actual = await vi.importActual('@nx/devkit'); - return { - ...actual, - installPackagesTask: vi.fn(), - formatFiles: vi.fn(), - }; -}); - -describe('create-package-generator generator', () => { - let tree: Tree; - let options: CreatePackageGeneratorGeneratorSchema = { name: 'test' }; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace(); - vi.clearAllMocks(); - }); - - const getJson = (path: string) => { - const contents = tree.read(path) ?? new Buffer(''); - const value = Buffer.from(contents).toString(); - - return JSON.parse(value); - }; - - it('should run successfully', async () => { - options = { - name: 'test-package', - packageScope: 'test', - description: 'I have written some code', - sideEffects: false, - outputDir: './dist', - moduleType: 'module', - }; - const returnedFn = await createPackageGeneratorGenerator(tree, options); - - expect(tree.exists('packages/test-package/package.json')).toBeTruthy(); - - const packageJson = getJson('packages/test-package/package.json'); - - expect(packageJson.name).toBe('@test/test-package'); - expect(packageJson.sideEffects).toBe(false); - expect(packageJson.type).toBe('module'); - expect(packageJson.description).toBe('I have written some code'); - expect(packageJson.module).toBe('./dist/index.js'); - expect(packageJson.exports).toEqual({ - '.': './dist/index.js', - './package.json': './package.json', - }); - expect(packageJson.dependencies).toEqual({}); - expect(packageJson.devDependencies).toEqual({}); - expect(packageJson.version).toBe('0.0.0'); - expect(packageJson.private).toBe(true); - expect(packageJson.main).toBe('./dist/index.js'); - - expect(tree.exists('packages/test-package/src/index.ts')).toBe(true); - expect(tree.exists('packages/test-package/src/lib/index.ts')).toBe(true); - expect(tree.exists('packages/test-package/LICENSE')).toBe(true); - - expect(typeof returnedFn).toBe('function'); - - returnedFn(); - expect(installPackagesTask).toHaveBeenCalledTimes(1); - expect(installPackagesTask).toHaveBeenCalledWith(tree, true); - }); - - it('should have defaults that work', async () => { - options = { - name: 'test-package', - }; - const installer = await createPackageGeneratorGenerator(tree, options); - - expect(tree.exists('packages/test-package/package.json')).toBeTruthy(); - - const packageJson = getJson('packages/test-package/package.json'); - - expect(packageJson.name).toBe('@forgerock/test-package'); - expect(packageJson.sideEffects).toBe(false); - expect(packageJson.type).toBe('module'); - expect(packageJson.description).toBe(''); - expect(packageJson.module).toBe('./dist/index.js'); - expect(packageJson.exports).toEqual({ - '.': './dist/index.js', - './package.json': './package.json', - }); - expect(packageJson.dependencies).toEqual({}); - expect(packageJson.devDependencies).toEqual({}); - expect(packageJson.version).toBe('0.0.0'); - expect(packageJson.private).toBe(true); - expect(packageJson.main).toBe('./dist/index.js'); - - expect(tree.exists('packages/test-package/src/index.ts')).toBe(true); - expect(tree.exists('packages/test-package/src/lib/index.ts')).toBe(true); - expect(tree.exists('packages/test-package/LICENSE')).toBe(true); - - installer(); - expect(installPackagesTask).toHaveBeenCalledWith(tree, true); - }); - - describe('installer function', () => { - it('should handle installation errors', async () => { - vi.mocked(installPackagesTask).mockImplementationOnce(() => { - throw new Error('Installation failed'); - }); - - const installer = await createPackageGeneratorGenerator(tree, { name: 'test-package' }); - expect(() => installer()).toThrow('Installation failed'); - }); - - it('should handle multiple installations', async () => { - const installer = await createPackageGeneratorGenerator(tree, { name: 'test-package' }); - - installer(); - installer(); - - expect(installPackagesTask).toHaveBeenCalledTimes(2); - expect(installPackagesTask).toHaveBeenNthCalledWith(1, tree, true); - expect(installPackagesTask).toHaveBeenNthCalledWith(2, tree, true); - }); - }); - - describe('file content validation', () => { - it('should generate correct index.ts content', async () => { - await createPackageGeneratorGenerator(tree, { name: 'test-package' }); - - const indexContent = tree.read('packages/test-package/src/index.ts')?.toString(); - expect(indexContent).toContain('import testPackage from "./lib/index.ts"'); - }); - - it('should generate correct lib/index.ts content', async () => { - await createPackageGeneratorGenerator(tree, { name: 'test-package' }); - - const libContent = tree.read('packages/test-package/src/lib/index.ts')?.toString(); - expect(libContent).toBeDefined(); - expect(libContent).not.toBe(''); - }); - - it('should include correct license content', async () => { - await createPackageGeneratorGenerator(tree, { name: 'test-package' }); - - const licenseContent = tree.read('packages/test-package/LICENSE')?.toString(); - expect(licenseContent).toBeDefined(); - expect(licenseContent).toContain('MIT License'); - }); - }); - - describe('package.json edge cases', () => { - it('should sanitize package names properly', async () => { - await createPackageGeneratorGenerator(tree, { - name: 'test-package-with-special', - packageScope: 'test-scope', - }); - - const packageJson = getJson('packages/test-package-with-special/package.json'); - expect(packageJson.name).toBe('@test-scope/test-package-with-special'); - }); - - it('should handle very long descriptions', async () => { - const longDescription = 'a'.repeat(1000); - await createPackageGeneratorGenerator(tree, { - name: 'test-package-long-desc', - description: longDescription, - }); - - const packageJson = getJson('packages/test-package-long-desc/package.json'); - expect(packageJson.description).toBe(longDescription); - }); - }); - - describe('file formatting', () => { - it('should call formatFiles after generating files', async () => { - await createPackageGeneratorGenerator(tree, { name: 'test-package' }); - expect(formatFiles).toHaveBeenCalledTimes(1); - expect(formatFiles).toHaveBeenCalledWith(tree); - }); - - it('should still create files if formatFiles fails', async () => { - vi.mocked(formatFiles).mockRejectedValueOnce(new Error('Format failed')); - - await expect(createPackageGeneratorGenerator(tree, { name: 'test-package' })).rejects.toThrow( - 'Format failed', - ); - - expect(tree.exists('packages/test-package/package.json')).toBe(true); - }); - }); - - it('should error if no name is passed', async () => { - const options = {}; - // @ts-expect-error options is purposefully invalid - await expect(createPackageGeneratorGenerator(tree, options)).rejects.toThrowError( - 'Invalid name provided. Please provide a name', - ); - }); - - it('should error when no moduleType is provided or its invalid', async () => { - const options = { - name: 'test-package', - moduleType: 'invalid moduleType', - }; - - // @ts-expect-error options is purposefully invalid - await expect(createPackageGeneratorGenerator(tree, options)).rejects.toThrowError( - 'Invalid moduleType provided. Please provide a valid moduleType', - ); - }); -}); diff --git a/tsconfig.base.json b/tsconfig.base.json index 9ecd4ab32..1f316f588 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -2,6 +2,7 @@ "compilerOptions": { "composite": true, "declaration": true, - "declarationMap": true + "declarationMap": true, + "skipLibCheck": true } } diff --git a/tsconfig.json b/tsconfig.json index 705fb4abe..48184413d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,9 +4,6 @@ "compilerOptions": {}, "files": [], // intentionally empty "references": [ - { - "path": "./packages/davinci-client" - }, { "path": "./packages/device-client" }, @@ -16,6 +13,11 @@ { "path": "./e2e/davinci-app" }, - {} + { + "path": "./e2e/mock-api-v2" + }, + { + "path": "./packages/davinci-client" + } ] }