From cd43c882949b3e1e24ac134cc5fd2264f2dbfa18 Mon Sep 17 00:00:00 2001 From: z3n Date: Fri, 26 Jun 2026 13:11:44 +0000 Subject: [PATCH] back(test): coverage vitest (@vitest/coverage-v8) Ajoute le provider de coverage + section coverage dans vitest.config (reporter text/html/lcov, exclusions modules/entities/dto/main) et un script test:cov. Co-Authored-By: Claude Opus 4.8 --- back/package.json | 46 ++++----- back/vitest.config.ts | 13 +++ pnpm-lock.yaml | 217 ++++++++++++++++++++++++++++++++---------- 3 files changed, 204 insertions(+), 72 deletions(-) diff --git a/back/package.json b/back/package.json index d7adc04..e0c6bb0 100644 --- a/back/package.json +++ b/back/package.json @@ -9,41 +9,43 @@ "start:debug": "nest start --debug --watch", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\"", "test": "vitest run", - "test:watch": "vitest" + "test:watch": "vitest", + "test:cov": "vitest run --coverage" }, "dependencies": { - "@datacat/shared": "workspace:*", - "@nestjs/common": "^11.0.0", - "@nestjs/core": "^11.0.0", - "@nestjs/platform-express": "^11.0.0", - "@nestjs/typeorm": "^11.0.0", - "@nestjs/config": "^4.0.0", - "@nestjs/serve-static": "^5.0.0", - "typeorm": "^0.3.20", - "pg": "^8.13.0", - "reflect-metadata": "^0.2.0", - "rxjs": "^7.8.0", - "multer": "^1.4.5-lts.1", - "uuid": "^11.0.0", - "pino": "^9.0.0", - "pino-http": "^10.0.0", - "class-validator": "^0.14.0", - "class-transformer": "^0.5.0", - "@asyncapi/cli": "6.0.0", "@asyncapi/bundler": "^1.0.1", - "js-yaml": "^4.1.0", + "@asyncapi/cli": "6.0.0", "@asyncapi/generator": "3.0.1", "@asyncapi/html-template": "3.5.6", - "@redocly/cli": "latest" + "@datacat/shared": "workspace:*", + "@nestjs/common": "^11.0.0", + "@nestjs/config": "^4.0.0", + "@nestjs/core": "^11.0.0", + "@nestjs/platform-express": "^11.0.0", + "@nestjs/serve-static": "^5.0.0", + "@nestjs/typeorm": "^11.0.0", + "@redocly/cli": "latest", + "class-transformer": "^0.5.0", + "class-validator": "^0.14.0", + "js-yaml": "^4.1.0", + "multer": "^1.4.5-lts.1", + "pg": "^8.13.0", + "pino": "^9.0.0", + "pino-http": "^10.0.0", + "reflect-metadata": "^0.2.0", + "rxjs": "^7.8.0", + "typeorm": "^0.3.20", + "uuid": "^11.0.0" }, "devDependencies": { "@nestjs/cli": "^11.0.0", "@nestjs/testing": "^11.0.0", "@types/express": "^5.0.0", + "@types/js-yaml": "^4.0.9", "@types/multer": "^1.4.12", "@types/node": "^22.0.0", - "@types/js-yaml": "^4.0.9", "@types/uuid": "^10.0.0", + "@vitest/coverage-v8": "^3.2.6", "typescript": "^5.7.0", "vitest": "^3.0.0" } diff --git a/back/vitest.config.ts b/back/vitest.config.ts index 3566066..0e8fb7b 100644 --- a/back/vitest.config.ts +++ b/back/vitest.config.ts @@ -5,5 +5,18 @@ export default defineConfig({ globals: true, environment: 'node', include: ['src/**/*.spec.ts'], + coverage: { + provider: 'v8', + reportsDirectory: './coverage', + reporter: ['text', 'html', 'lcov'], + include: ['src/**/*.ts'], + exclude: [ + 'src/**/*.spec.ts', + 'src/**/*.module.ts', + 'src/**/*.entity.ts', + 'src/main.ts', + 'src/**/*.dto.ts', + ], + }, }, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ce2efc..f042be5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -101,6 +101,9 @@ importers: '@types/uuid': specifier: ^10.0.0 version: 10.0.0 + '@vitest/coverage-v8': + specifier: ^3.2.6 + version: 3.2.6(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.19)(jiti@1.21.7)(jsdom@28.1.0(@noble/hashes@1.8.0))(less@4.2.2)(sass@1.99.0)(terser@5.47.1)(yaml@2.9.0)) typescript: specifier: ^5.7.0 version: 5.9.3 @@ -134,6 +137,12 @@ importers: '@angular/router': specifier: ^19.0.0 version: 19.2.22(@angular/common@19.2.22(@angular/core@19.2.22(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.22(rxjs@7.8.2)(zone.js@0.15.1))(@angular/platform-browser@19.2.22(@angular/animations@19.2.22(@angular/common@19.2.22(@angular/core@19.2.22(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.22(rxjs@7.8.2)(zone.js@0.15.1)))(@angular/common@19.2.22(@angular/core@19.2.22(rxjs@7.8.2)(zone.js@0.15.1))(rxjs@7.8.2))(@angular/core@19.2.22(rxjs@7.8.2)(zone.js@0.15.1)))(rxjs@7.8.2) + '@datacat/shared': + specifier: workspace:* + version: link:../shared + '@gouvfr/dsfr': + specifier: ^1.13.0 + version: 1.14.4 rxjs: specifier: ^7.8.0 version: 7.8.2 @@ -153,9 +162,6 @@ importers: '@angular/compiler-cli': specifier: ^19.0.0 version: 19.2.22(@angular/compiler@19.2.22)(typescript@5.8.3) - '@gouvfr/dsfr': - specifier: ^1.13.0 - version: 1.14.4 '@types/node': specifier: ^22.0.0 version: 22.19.19 @@ -1254,6 +1260,10 @@ packages: resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} engines: {node: '>=6.9.0'} + '@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==} @@ -4031,6 +4041,15 @@ packages: peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + '@vitest/coverage-v8@3.2.6': + resolution: {integrity: sha512-LsAdmUapA0qSN306d8+zOyawM0hFm2m2Hg9IwVNIKBm+qJV8cijiq2c+gxKZcB1HCfIWAy+0qEZDCUQA58A1cw==} + peerDependencies: + '@vitest/browser': 3.2.6 + vitest: 3.2.6 + peerDependenciesMeta: + '@vitest/browser': + optional: true + '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} @@ -4367,6 +4386,9 @@ packages: resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} engines: {node: '>=4'} + ast-v8-to-istanbul@0.3.12: + resolution: {integrity: sha512-BRRC8VRZY2R4Z4lFIL35MwNXmwVqBityvOIwETtsCSwvjl0IdgFsy9NhdaA6j74nUdtJJlIypeRhpDam19Wq3g==} + astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -6135,6 +6157,9 @@ packages: resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + htmlparser2@10.1.0: resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} @@ -6579,6 +6604,18 @@ packages: resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + iterare@1.2.1: resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} engines: {node: '>=6'} @@ -6613,6 +6650,9 @@ packages: resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} engines: {node: '>=0.10.0'} + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -6953,10 +6993,17 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} @@ -9227,6 +9274,10 @@ packages: engines: {node: '>=10'} hasBin: true + test-exclude@7.0.2: + resolution: {integrity: sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==} + engines: {node: '>=18'} + text-decoder@1.2.7: resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} @@ -10192,7 +10243,7 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1902.26(chokidar@4.0.3) - '@angular-devkit/build-webpack': 0.1902.26(chokidar@4.0.3)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.105.0(postcss@8.5.12)))(webpack@5.105.0(postcss@8.5.12)) + '@angular-devkit/build-webpack': 0.1902.26(chokidar@4.0.3)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.105.0(postcss@8.5.12)))(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) '@angular-devkit/core': 19.2.26(chokidar@4.0.3) '@angular/build': 19.2.26(@angular/compiler-cli@19.2.22(@angular/compiler@19.2.22)(typescript@5.8.3))(@angular/compiler@19.2.22)(@types/node@22.19.19)(chokidar@4.0.3)(jiti@1.21.7)(less@4.2.2)(postcss@8.5.12)(tailwindcss@3.3.3(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.8.3)))(terser@5.39.0)(typescript@5.8.3)(yaml@2.9.0) '@angular/compiler-cli': 19.2.22(@angular/compiler@19.2.22)(typescript@5.8.3) @@ -10206,14 +10257,14 @@ snapshots: '@babel/preset-env': 7.26.9(@babel/core@7.26.10) '@babel/runtime': 7.26.10 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 19.2.26(@angular/compiler-cli@19.2.22(@angular/compiler@19.2.22)(typescript@5.8.3))(typescript@5.8.3)(webpack@5.105.0(postcss@8.5.12)) + '@ngtools/webpack': 19.2.26(@angular/compiler-cli@19.2.22(@angular/compiler@19.2.22)(typescript@5.8.3))(typescript@5.8.3)(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) '@vitejs/plugin-basic-ssl': 1.2.0(vite@7.3.3(@types/node@22.19.19)(jiti@1.21.7)(less@4.2.2)(sass@1.99.0)(terser@5.39.0)(yaml@2.9.0)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.5.12) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.105.0(postcss@8.5.12)) + babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) browserslist: 4.28.2 - copy-webpack-plugin: 12.0.2(webpack@5.105.0(postcss@8.5.12)) - css-loader: 7.1.2(webpack@5.105.0(postcss@8.5.12)) + copy-webpack-plugin: 12.0.2(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) + css-loader: 7.1.2(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) esbuild-wasm: 0.28.0 fast-glob: 3.3.3 http-proxy-middleware: 3.0.5 @@ -10221,22 +10272,22 @@ snapshots: jsonc-parser: 3.3.1 karma-source-map-support: 1.4.0 less: 4.2.2 - less-loader: 12.2.0(less@4.2.2)(webpack@5.105.0(postcss@8.5.12)) - license-webpack-plugin: 4.0.2(webpack@5.105.0(postcss@8.5.12)) + less-loader: 12.2.0(less@4.2.2)(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) + license-webpack-plugin: 4.0.2(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) loader-utils: 3.3.1 - mini-css-extract-plugin: 2.9.2(webpack@5.105.0(postcss@8.5.12)) + mini-css-extract-plugin: 2.9.2(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) open: 10.1.0 ora: 5.4.1 picomatch: 4.0.4 piscina: 4.8.0 postcss: 8.5.12 - postcss-loader: 8.1.1(postcss@8.5.12)(typescript@5.8.3)(webpack@5.105.0(postcss@8.5.12)) + postcss-loader: 8.1.1(postcss@8.5.12)(typescript@5.8.3)(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) resolve-url-loader: 5.0.0 rxjs: 7.8.1 sass: 1.85.0 - sass-loader: 16.0.5(sass@1.85.0)(webpack@5.105.0(postcss@8.5.12)) + sass-loader: 16.0.5(sass@1.85.0)(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) semver: 7.7.1 - source-map-loader: 5.0.0(webpack@5.105.0(postcss@8.5.12)) + source-map-loader: 5.0.0(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) source-map-support: 0.5.21 terser: 5.39.0 tree-kill: 1.2.2 @@ -10246,7 +10297,7 @@ snapshots: webpack-dev-middleware: 7.4.2(tslib@2.8.1)(webpack@5.105.0(postcss@8.5.12)) webpack-dev-server: 5.2.2(tslib@2.8.1)(webpack@5.105.0(postcss@8.5.12)) webpack-merge: 6.0.1 - webpack-subresource-integrity: 5.1.0(webpack@5.105.0(postcss@8.5.12)) + webpack-subresource-integrity: 5.1.0(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)) optionalDependencies: esbuild: 0.28.0 tailwindcss: 3.3.3(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.8.3)) @@ -10280,7 +10331,7 @@ snapshots: - webpack-cli - yaml - '@angular-devkit/build-webpack@0.1902.26(chokidar@4.0.3)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.105.0(postcss@8.5.12)))(webpack@5.105.0(postcss@8.5.12))': + '@angular-devkit/build-webpack@0.1902.26(chokidar@4.0.3)(webpack-dev-server@5.2.2(tslib@2.8.1)(webpack@5.105.0(postcss@8.5.12)))(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12))': dependencies: '@angular-devkit/architect': 0.1902.26(chokidar@4.0.3) rxjs: 7.8.1 @@ -11422,7 +11473,7 @@ snapshots: '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@babel/helper-annotate-as-pure@7.29.7': dependencies: @@ -11505,7 +11556,7 @@ snapshots: '@babel/helper-member-expression-to-functions@7.28.5': dependencies: '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color @@ -11552,7 +11603,7 @@ snapshots: '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@babel/helper-plugin-utils@7.28.6': {} @@ -11597,7 +11648,7 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color @@ -11621,7 +11672,7 @@ snapshots: dependencies: '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color @@ -12675,6 +12726,8 @@ snapshots: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 + '@bcoe/v8-coverage@1.0.2': {} + '@borewit/text-codec@0.2.2': {} '@braintree/sanitize-url@7.1.2': {} @@ -13788,7 +13841,7 @@ snapshots: '@next/swc-win32-x64-msvc@14.2.33': optional: true - '@ngtools/webpack@19.2.26(@angular/compiler-cli@19.2.22(@angular/compiler@19.2.22)(typescript@5.8.3))(typescript@5.8.3)(webpack@5.105.0(postcss@8.5.12))': + '@ngtools/webpack@19.2.26(@angular/compiler-cli@19.2.22(@angular/compiler@19.2.22)(typescript@5.8.3))(typescript@5.8.3)(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12))': dependencies: '@angular/compiler-cli': 19.2.22(@angular/compiler@19.2.22)(typescript@5.8.3) typescript: 5.8.3 @@ -13928,15 +13981,15 @@ snapshots: '@npmcli/fs@2.1.2': dependencies: '@gar/promisify': 1.1.3 - semver: 7.8.0 + semver: 7.8.1 '@npmcli/fs@4.0.0': dependencies: - semver: 7.7.1 + semver: 7.8.1 '@npmcli/fs@5.0.0': dependencies: - semver: 7.8.0 + semver: 7.8.1 '@npmcli/git@3.0.2': dependencies: @@ -13947,7 +14000,7 @@ snapshots: proc-log: 2.0.1 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.8.0 + semver: 7.8.1 which: 2.0.2 transitivePeerDependencies: - bluebird @@ -13961,7 +14014,7 @@ snapshots: proc-log: 4.2.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.8.0 + semver: 7.8.1 which: 4.0.0 transitivePeerDependencies: - bluebird @@ -13985,7 +14038,7 @@ snapshots: lru-cache: 11.5.0 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 - semver: 7.8.0 + semver: 7.8.1 which: 6.0.1 '@npmcli/installed-package-contents@1.0.7': @@ -14040,7 +14093,7 @@ snapshots: json-parse-even-better-errors: 5.0.0 pacote: 21.5.0 proc-log: 6.1.0 - semver: 7.8.0 + semver: 7.8.1 transitivePeerDependencies: - supports-color @@ -14094,7 +14147,7 @@ snapshots: hosted-git-info: 9.0.3 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.8.0 + semver: 7.8.1 spdx-expression-parse: 4.0.0 '@npmcli/promise-spawn@3.0.0': @@ -15638,6 +15691,25 @@ snapshots: dependencies: vite: 7.3.3(@types/node@22.19.19)(jiti@1.21.7)(less@4.2.2)(sass@1.99.0)(terser@5.39.0)(yaml@2.9.0) + '@vitest/coverage-v8@3.2.6(vitest@3.2.4(@types/debug@4.1.13)(@types/node@22.19.19)(jiti@1.21.7)(jsdom@28.1.0(@noble/hashes@1.8.0))(less@4.2.2)(sass@1.99.0)(terser@5.47.1)(yaml@2.9.0))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 1.0.2 + ast-v8-to-istanbul: 0.3.12 + debug: 4.4.3(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.2.0 + magic-string: 0.30.21 + magicast: 0.3.5 + std-env: 3.10.0 + test-exclude: 7.0.2 + tinyrainbow: 2.0.0 + vitest: 3.2.4(@types/debug@4.1.13)(@types/node@22.19.19)(jiti@1.21.7)(jsdom@28.1.0(@noble/hashes@1.8.0))(less@4.2.2)(sass@1.99.0)(terser@5.47.1)(yaml@2.9.0) + transitivePeerDependencies: + - supports-color + '@vitest/expect@3.2.4': dependencies: '@types/chai': 5.2.3 @@ -16012,6 +16084,12 @@ snapshots: dependencies: tslib: 2.8.1 + ast-v8-to-istanbul@0.3.12: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + estree-walker: 3.0.3 + js-tokens: 10.0.0 + astral-regex@2.0.0: {} astring@1.9.0: {} @@ -16054,7 +16132,7 @@ snapshots: b4a@1.8.1: {} - babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.105.0(postcss@8.5.12)): + babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)): dependencies: '@babel/core': 7.26.10 find-cache-dir: 4.0.0 @@ -16297,7 +16375,7 @@ snapshots: builtins@5.1.0: dependencies: - semver: 7.8.0 + semver: 7.8.1 bundle-name@4.1.0: dependencies: @@ -16732,7 +16810,7 @@ snapshots: dependencies: is-what: 3.14.1 - copy-webpack-plugin@12.0.2(webpack@5.105.0(postcss@8.5.12)): + copy-webpack-plugin@12.0.2(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -16807,7 +16885,7 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-loader@7.1.2(webpack@5.105.0(postcss@8.5.12)): + css-loader@7.1.2(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)): dependencies: icss-utils: 5.1.0(postcss@8.5.12) postcss: 8.5.12 @@ -18113,6 +18191,8 @@ snapshots: transitivePeerDependencies: - '@noble/hashes' + html-escaper@2.0.2: {} + htmlparser2@10.1.0: dependencies: domelementtype: 2.3.0 @@ -18550,6 +18630,25 @@ snapshots: transitivePeerDependencies: - supports-color + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@5.0.6: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + debug: 4.4.3(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + iterare@1.2.1: {} jackspeak@3.4.3: @@ -18580,6 +18679,8 @@ snapshots: js-levenshtein@1.1.6: {} + js-tokens@10.0.0: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -18753,7 +18854,7 @@ snapshots: dependencies: readable-stream: 2.3.8 - less-loader@12.2.0(less@4.2.2)(webpack@5.105.0(postcss@8.5.12)): + less-loader@12.2.0(less@4.2.2)(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)): dependencies: less: 4.2.2 optionalDependencies: @@ -18779,7 +18880,7 @@ snapshots: libphonenumber-js@1.13.2: {} - license-webpack-plugin@4.0.2(webpack@5.105.0(postcss@8.5.12)): + license-webpack-plugin@4.0.2(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)): dependencies: webpack-sources: 3.4.1 optionalDependencies: @@ -18904,12 +19005,22 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + magicast@0.3.5: + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + source-map-js: 1.2.1 + make-dir@2.1.0: dependencies: pify: 4.0.1 semver: 5.7.2 optional: true + make-dir@4.0.0: + dependencies: + semver: 7.8.1 + make-error@1.3.6: {} make-fetch-happen@10.2.1: @@ -19071,7 +19182,7 @@ snapshots: mimic-response@4.0.0: {} - mini-css-extract-plugin@2.9.2(webpack@5.105.0(postcss@8.5.12)): + mini-css-extract-plugin@2.9.2(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)): dependencies: schema-utils: 4.3.3 tapable: 2.3.3 @@ -19400,7 +19511,7 @@ snapshots: make-fetch-happen: 14.0.3 nopt: 8.1.0 proc-log: 5.0.0 - semver: 7.7.1 + semver: 7.8.1 tar: 7.5.15 tinyglobby: 0.2.16 which: 5.0.0 @@ -19414,7 +19525,7 @@ snapshots: graceful-fs: 4.2.11 nopt: 9.0.0 proc-log: 6.1.0 - semver: 7.8.0 + semver: 7.8.1 tar: 7.5.15 tinyglobby: 0.2.16 undici: 6.26.0 @@ -19430,7 +19541,7 @@ snapshots: nopt: 6.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.8.0 + semver: 7.8.1 tar: 6.2.1 which: 2.0.2 transitivePeerDependencies: @@ -19470,7 +19581,7 @@ snapshots: dependencies: hosted-git-info: 5.2.1 is-core-module: 2.16.2 - semver: 7.8.0 + semver: 7.8.1 validate-npm-package-license: 3.0.4 normalize-package-data@6.0.2: @@ -19507,7 +19618,7 @@ snapshots: npm-install-checks@6.3.0: dependencies: - semver: 7.8.0 + semver: 7.8.1 npm-install-checks@7.1.2: dependencies: @@ -19515,7 +19626,7 @@ snapshots: npm-install-checks@8.0.0: dependencies: - semver: 7.8.0 + semver: 7.8.1 npm-normalize-package-bin@1.0.1: {} @@ -19545,7 +19656,7 @@ snapshots: dependencies: hosted-git-info: 9.0.3 proc-log: 6.1.0 - semver: 7.8.0 + semver: 7.8.1 validate-npm-package-name: 7.0.2 npm-package-arg@9.1.2: @@ -19583,7 +19694,7 @@ snapshots: npm-install-checks: 8.0.0 npm-normalize-package-bin: 5.0.0 npm-package-arg: 13.0.2 - semver: 7.8.0 + semver: 7.8.1 npm-pick-manifest@7.0.2: dependencies: @@ -19597,7 +19708,7 @@ snapshots: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 11.0.3 - semver: 7.8.0 + semver: 7.8.1 npm-registry-fetch@13.3.1: dependencies: @@ -20170,7 +20281,7 @@ snapshots: postcss: 8.5.15 ts-node: 10.9.2(@types/node@22.19.19)(typescript@5.9.3) - postcss-loader@8.1.1(postcss@8.5.12)(typescript@5.8.3)(webpack@5.105.0(postcss@8.5.12)): + postcss-loader@8.1.1(postcss@8.5.12)(typescript@5.8.3)(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)): dependencies: cosmiconfig: 9.0.1(typescript@5.8.3) jiti: 1.21.7 @@ -20866,7 +20977,7 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@16.0.5(sass@1.85.0)(webpack@5.105.0(postcss@8.5.12)): + sass-loader@16.0.5(sass@1.85.0)(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)): dependencies: neo-async: 2.6.2 optionalDependencies: @@ -21244,7 +21355,7 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@5.0.0(webpack@5.105.0(postcss@8.5.12)): + source-map-loader@5.0.0(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)): dependencies: iconv-lite: 0.6.3 source-map-js: 1.2.1 @@ -21643,6 +21754,12 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + test-exclude@7.0.2: + dependencies: + '@istanbuljs/schema': 0.1.6 + glob: 10.5.0 + minimatch: 10.2.5 + text-decoder@1.2.7: dependencies: b4a: 1.8.1 @@ -22347,7 +22464,7 @@ snapshots: webpack-sources@3.4.1: {} - webpack-subresource-integrity@5.1.0(webpack@5.105.0(postcss@8.5.12)): + webpack-subresource-integrity@5.1.0(webpack@5.105.0(esbuild@0.28.0)(postcss@8.5.12)): dependencies: typed-assert: 1.0.9 webpack: 5.105.0(esbuild@0.28.0)(postcss@8.5.12)