diff --git a/.github/workflows/test-matrix.yml b/.github/workflows/test-matrix.yml new file mode 100644 index 0000000..ea6f717 --- /dev/null +++ b/.github/workflows/test-matrix.yml @@ -0,0 +1,48 @@ +name: Test Angular Matrix + +on: + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }} + cancel-in-progress: true + +jobs: + test-matrix: + name: Angular ${{ matrix.angular }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - angular: 15 + node: 18 + - angular: 16 + node: 18 + - angular: 17 + node: 18 + - angular: 18 + node: 20 + - angular: 19 + node: 20 + - angular: 20 + node: 20 + - angular: 21 + node: 22 + + steps: + - uses: actions/checkout@v4 + + - name: Setup Node.js ${{ matrix.node }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + + - name: Install pnpm + uses: pnpm/action-setup@v4 + + - name: Install dependencies + run: pnpm install + + - name: Run Matrix Check for Angular ${{ matrix.angular }} + run: pnpm run test:matrix --version=${{ matrix.angular }} diff --git a/.gitignore b/.gitignore index 61d149b..9c48f85 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ /tmp /out-tsc /bazel-out +.pnpm-store projects/*/dist projects/*/out-tsc @@ -12,6 +13,7 @@ projects/*/out-tsc node_modules npm-debug.log yarn-error.log +test-logs # IDEs and editors .idea/ diff --git a/.node-version b/.node-version new file mode 100644 index 0000000..3c03207 --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +18 diff --git a/bin/test-matrix.ts b/bin/test-matrix.ts new file mode 100644 index 0000000..b4bd476 --- /dev/null +++ b/bin/test-matrix.ts @@ -0,0 +1,188 @@ +import * as fs from 'fs' +import * as path from 'path' +import * as os from 'os' +import { angularMetadata } from './utils/angularMetadata' +import { setupLogDir, executeCommand, updateJsonFile } from './utils/helpers' +import { parseArgs } from 'node:util' + +const LIB_NAME = 'fingerprintjs-pro-angular' +const LOG_DIR = path.join(process.cwd(), 'test-logs') + +process.env['NG_CLI_ANALYTICS'] = 'false' + +async function testVersion(version: string): Promise { + const meta = angularMetadata[version] + if (!meta) { + const errorMsg = `No metadata found for version ${version}` + console.error(errorMsg) + const logFile = path.join(LOG_DIR, `angular-${version}.log`) + fs.writeFileSync(logFile, errorMsg) + return 1 + } + + const logFile = path.join(LOG_DIR, `angular-${version}.log`) + const logStream = fs.createWriteStream(logFile) + const log = (data: string) => logStream.write(data) + + const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'angular-test-')) + const workspaceDir = path.join(tempDir, 'test-workspace') + + try { + log(`Angular ${version}: Starting check...\n`) + console.log(`Angular ${version}: Starting check...`) + + await executeCommand( + 'npx', + [ + '-y', + `@angular/cli@${version}`, + 'new', + 'test-workspace', + '--create-application=false', + '--skip-git', + '--skip-install', + '--defaults', + '--package-manager=pnpm', + ], + { cwd: tempDir, env: { ...process.env } }, + log + ) + + await executeCommand( + 'npx', + ['-y', `@angular/cli@${version}`, 'generate', 'library', LIB_NAME, '--skip-install'], + { cwd: workspaceDir, env: { ...process.env } }, + log + ) + + const angularVersionTag = parseInt(version) > 15 ? `v${version}-lts` : `^${version}` + + const extraPackagesToInstall = [`zone.js@${meta.zone}`, `@angular/platform-browser-dynamic@${angularVersionTag}`] + + const jestVersion = meta.jest + const typesJestVersion = meta.typesJest || jestVersion + + const extraDevPackagesToInstall = [ + '@fingerprint/agent', + `jest-preset-angular@${meta.jpa}`, + `jest@${jestVersion}`, + `jest-environment-jsdom@${jestVersion}`, + `@types/jest@${typesJestVersion}`, + '@types/node', + ] + + const commonOptions = [ + '--config.strict-peer-dependencies=false', + '--no-lockfile', + '--config.fund=false', + '--ignore-scripts', + ] + + await executeCommand( + 'pnpm', + ['add', ...extraPackagesToInstall, ...extraDevPackagesToInstall, ...commonOptions], + { cwd: workspaceDir, env: { ...process.env } }, + log + ) + + const libDestDir = path.join(workspaceDir, 'projects', LIB_NAME, 'src', 'lib') + fs.mkdirSync(libDestDir, { recursive: true }) + fs.cpSync(path.join(process.cwd(), 'projects', LIB_NAME, 'src', 'lib'), libDestDir, { recursive: true }) + + fs.copyFileSync( + path.join(process.cwd(), 'projects', LIB_NAME, 'src', 'public-api.ts'), + path.join(workspaceDir, 'projects', LIB_NAME, 'src', 'public-api.ts') + ) + + const rootFiles = ['jest.config.js', 'tsconfig.json', 'tsconfig.spec.json', 'test.ts'] + for (const file of rootFiles) { + const src = path.join(process.cwd(), file) + if (fs.existsSync(src)) { + fs.copyFileSync(src, path.join(workspaceDir, file)) + } + } + + const projectDir = path.join(workspaceDir, 'projects', LIB_NAME) + const projectFiles = [ + 'ng-package.json', + 'package.json', + 'tsconfig.lib.json', + 'tsconfig.lib.prod.json', + 'tsconfig.spec.json', + ] + for (const file of projectFiles) { + fs.copyFileSync(path.join(process.cwd(), 'projects', LIB_NAME, file), path.join(projectDir, file)) + } + + const tsconfigFiles = [ + path.join(workspaceDir, 'tsconfig.json'), + path.join(workspaceDir, 'projects', LIB_NAME, 'tsconfig.spec.json'), + ] + for (const file of tsconfigFiles) { + if (fs.existsSync(file)) { + updateJsonFile(file, (json) => { + if (!json.compilerOptions) { + json.compilerOptions = {} + } + json.compilerOptions.skipLibCheck = true + json.compilerOptions.esModuleInterop = true + if (parseInt(version) >= 21) { + json.compilerOptions.moduleResolution = 'bundler' + } + }) + } + } + + await executeCommand( + './node_modules/.bin/ng', + ['build', LIB_NAME], + { cwd: workspaceDir, env: { ...process.env } }, + log + ) + + await executeCommand('./node_modules/.bin/jest', [], { cwd: workspaceDir, env: { ...process.env } }, log) + + console.log(`Angular ${version}: PASSED`) + return 0 + } catch (err: any) { + log(err.stack || err.message) + return 1 + } finally { + logStream.end() + fs.rmSync(tempDir, { recursive: true, force: true }) + } +} + +setupLogDir(LOG_DIR) + +const { version: versionsParsed } = parseArgs({ + options: { + version: { + type: 'string', + multiple: true, + short: 'v', + }, + }, +}).values +const versionArgs: string[] = versionsParsed ?? [] + +const versionsToTest = versionArgs.length > 0 ? versionArgs : Object.keys(angularMetadata) + +async function run() { + console.log(`Starting matrix tests for: ${versionsToTest.join(', ')}`) + + const results = await Promise.all(versionsToTest.map((version) => testVersion(version))) + const failed = results.some((code) => code !== 0) + + if (failed) { + process.exit(1) + } else { + console.log('Success: All versions passed') + process.exit(0) + } +} + +run().catch((err) => { + console.error(err) + process.exit(1) +}) diff --git a/bin/utils/angularMetadata.ts b/bin/utils/angularMetadata.ts new file mode 100644 index 0000000..0cd0d4c --- /dev/null +++ b/bin/utils/angularMetadata.ts @@ -0,0 +1,16 @@ +export interface AngularVersionMetadata { + zone: string + jpa: string + jest: string + typesJest?: string +} + +export const angularMetadata: Record = { + 15: { zone: '~0.11.4', jpa: '^13.1.4', jest: '^29.0.0' }, + 16: { zone: '~0.13.3', jpa: '^13.1.4', jest: '^29.0.0' }, + 17: { zone: '~0.14.4', jpa: '^14.1.1', jest: '^29.0.0' }, + 18: { zone: '~0.14.4', jpa: '^14.1.1', jest: '^29.0.0' }, + 19: { zone: '~0.15.0', jpa: '^14.4.2', jest: '^29.0.0' }, + 20: { zone: '~0.15.0', jpa: '^15.0.0', jest: '^30.2.0', typesJest: '^30.0.0' }, + 21: { zone: '~0.16.0', jpa: '^17.0.0', jest: '^30.2.0', typesJest: '^30.0.0' }, +} diff --git a/bin/utils/helpers.ts b/bin/utils/helpers.ts new file mode 100644 index 0000000..b3a766a --- /dev/null +++ b/bin/utils/helpers.ts @@ -0,0 +1,47 @@ +import * as fs from 'fs' +import * as path from 'path' +import { spawn, SpawnOptions } from 'child_process' +import { parse, stringify } from 'comment-json' + +export function setupLogDir(logDir: string): void { + if (!fs.existsSync(logDir)) { + fs.mkdirSync(logDir, { recursive: true }) + } else { + fs.readdirSync(logDir).forEach((file) => { + fs.unlinkSync(path.join(logDir, file)) + }) + } +} + +export function executeCommand( + cmd: string, + args: string[], + opts: SpawnOptions, + log?: (data: string) => void +): Promise { + return new Promise((resolve, reject) => { + const child = spawn(cmd, args, opts) + if (log) { + child.stdout?.on('data', (data) => log(data.toString())) + child.stderr?.on('data', (data) => log(data.toString())) + } + child.on('close', (code) => { + if (code === 0) { + resolve() + } else { + reject(new Error(`Command failed with code ${code}: ${cmd} ${args.join(' ')}`)) + } + }) + child.on('error', (err) => reject(err)) + }) +} + +export function updateJsonFile(filePath: string, updater: (json: any) => void): void { + if (!fs.existsSync(filePath)) { + return + } + const content = fs.readFileSync(filePath, 'utf8') + const json = parse(content) + updater(json) + fs.writeFileSync(filePath, stringify(json, null, 2), 'utf8') +} diff --git a/package.json b/package.json index 8a10de0..1bd9898 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,9 @@ { "name": "fingerprintjs-pro-angular-demo", "version": "0.0.0", + "engines": { + "node": ">=18.0.0" + }, "scripts": { "prepare": "husky install", "ng": "ng", @@ -13,11 +16,12 @@ "build:ssr": "ng build && ng run fingerprintjs-pro-angular-demo:server", "prerender": "ng run fingerprintjs-pro-angular-demo:prerender", "generate:version": "node bin/generate-version.js", - "lint": "eslint --ext .js,.ts --ignore-path .gitignore --max-warnings 0 .", - "lint:fix": "eslint --ext .js,.ts --ignore-path .gitignore --max-warnings 0 --fix .", + "lint": "eslint --ext .js,.mjs,.ts --ignore-path .gitignore --max-warnings 0 .", + "lint:fix": "eslint --ext .js,.mjs,.ts --ignore-path .gitignore --max-warnings 0 --fix .", "test:dts": "tsc -p tsconfig.test-dts.json", "test": "jest", "test:coverage": "jest --coverage", + "test:matrix": "pnpm generate:version && tsx bin/test-matrix.ts", "docs": "typedoc projects/fingerprintjs-pro-angular/src/public-api.ts --out docs", "changeset:publish": "HUSKY=0 pnpm build && changeset publish", "changeset:version": "changeset version" @@ -55,9 +59,10 @@ "@nguniversal/builders": "^15.2.1", "@types/express": "^4.17.0", "@types/jest": "^29.5.12", - "@types/node": "^12.11.1", + "@types/node": "^26.0.1", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", + "comment-json": "^5.0.0", "commitizen": "^4.2.5", "cz-conventional-changelog": "^3.3.0", "eslint": "^8.56.0", @@ -68,6 +73,7 @@ "lint-staged": "^13.0.3", "ng-packagr": "^15.2.2", "prettier": "^3.2.4", + "tsx": "^4.22.4", "typedoc": "^0.24.8", "typescript": "~4.9.5" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 919c686..f604963 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,7 +68,7 @@ importers: version: 15.2.10(@angular/compiler@15.2.10(@angular/core@15.2.10(rxjs@7.8.2)(zone.js@0.11.5)))(typescript@4.9.5) '@changesets/cli': specifier: ^2.31.0 - version: 2.31.0(@types/node@12.20.52) + version: 2.31.0(@types/node@26.1.1) '@commitlint/cli': specifier: ^17.2.0 version: 17.2.0 @@ -100,14 +100,17 @@ importers: specifier: ^29.5.12 version: 29.5.12 '@types/node': - specifier: ^12.11.1 - version: 12.20.52 + specifier: ^26.0.1 + version: 26.1.1 '@typescript-eslint/eslint-plugin': specifier: ^6.21.0 version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@4.9.5))(eslint@8.56.0)(typescript@4.9.5) '@typescript-eslint/parser': specifier: ^6.21.0 version: 6.21.0(eslint@8.56.0)(typescript@4.9.5) + comment-json: + specifier: ^5.0.0 + version: 5.0.0 commitizen: specifier: ^4.2.5 version: 4.2.5 @@ -125,10 +128,10 @@ importers: version: 4.0.1 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)) + version: 29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)) jest-preset-angular: specifier: ^14.0.3 - version: 14.0.3(u2q7nq3urm6q6nbjqmgv6cbbhu) + version: 14.0.3(ybdqoi7743j2nuttuf4klr6wce) lint-staged: specifier: ^13.0.3 version: 13.0.3(enquirer@2.4.1) @@ -138,6 +141,9 @@ importers: prettier: specifier: ^3.2.4 version: 3.2.5 + tsx: + specifier: ^4.22.4 + version: 4.23.1 typedoc: specifier: ^0.24.8 version: 0.24.8(typescript@4.9.5) @@ -186,16 +192,16 @@ importers: version: 15.2.1(eslint@8.56.0)(typescript@5.9.3) '@angular-eslint/schematics': specifier: 15.2.1 - version: 15.2.1(@angular/cli@21.2.12(@types/node@12.20.52)(chokidar@5.0.0))(eslint@8.56.0)(typescript@5.9.3) + version: 15.2.1(@angular/cli@21.2.12(@types/node@26.1.1)(chokidar@5.0.0))(eslint@8.56.0)(typescript@5.9.3) '@angular-eslint/template-parser': specifier: 15.2.1 version: 15.2.1(eslint@8.56.0)(typescript@5.9.3) '@angular/build': specifier: ^21.2.12 - version: 21.2.12(tgtkolpbo6xk4md46r5ydmb5zm) + version: 21.2.12(jko2kgqoxargmntxo7zvvyhcfa) '@angular/cli': specifier: ^21.2.12 - version: 21.2.12(@types/node@12.20.52)(chokidar@5.0.0) + version: 21.2.12(@types/node@26.1.1)(chokidar@5.0.0) '@angular/compiler-cli': specifier: ^21.2.0 version: 21.2.14(@angular/compiler@21.2.14)(typescript@5.9.3) @@ -219,7 +225,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.8 - version: 4.1.7(@types/node@12.20.52)(jsdom@28.1.0)(vite@7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)) + version: 4.1.7(@types/node@26.1.1)(jsdom@28.1.0)(vite@7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1)) projects/fingerprintjs-pro-angular: dependencies: @@ -1515,6 +1521,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.28.1': + resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.17.19': resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -1533,6 +1545,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.28.1': + resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.17.19': resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -1551,6 +1569,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.28.1': + resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.17.19': resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -1569,6 +1593,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.28.1': + resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.17.19': resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -1587,6 +1617,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.28.1': + resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.17.19': resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -1605,6 +1641,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.28.1': + resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.17.19': resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -1623,6 +1665,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.28.1': + resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.17.19': resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -1641,6 +1689,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.28.1': + resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.17.19': resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -1659,6 +1713,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.28.1': + resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.17.19': resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -1677,6 +1737,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.28.1': + resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.17.19': resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -1695,6 +1761,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.28.1': + resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.17.19': resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -1713,6 +1785,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.28.1': + resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.17.19': resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -1731,6 +1809,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.28.1': + resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.17.19': resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -1749,6 +1833,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.28.1': + resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.17.19': resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -1767,6 +1857,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.28.1': + resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.17.19': resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -1785,6 +1881,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.28.1': + resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.17.19': resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -1803,12 +1905,24 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.28.1': + resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.27.3': resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.28.1': + resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.17.19': resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -1827,12 +1941,24 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.28.1': + resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.27.3': resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.28.1': + resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.17.19': resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -1851,12 +1977,24 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.28.1': + resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/openharmony-arm64@0.27.3': resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] + '@esbuild/openharmony-arm64@0.28.1': + resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -1875,6 +2013,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.28.1': + resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.17.19': resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -1893,6 +2037,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.28.1': + resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.17.19': resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -1911,6 +2061,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.28.1': + resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.17.19': resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -1929,6 +2085,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.28.1': + resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3106,8 +3268,8 @@ packages: '@types/node@14.18.33': resolution: {integrity: sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==} - '@types/node@18.11.9': - resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} + '@types/node@26.1.1': + resolution: {integrity: sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==} '@types/normalize-package-data@2.4.1': resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -3650,6 +3812,9 @@ packages: array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + array-timsort@1.0.3: + resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -4108,6 +4273,10 @@ packages: resolution: {integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==} engines: {node: ^12.20.0 || >=14} + comment-json@5.0.0: + resolution: {integrity: sha512-uiqLcOiVDJtBP8WGkZHEP+FZIhTzP1dxvn59EfoYUi9gqupjrBWVQkO2atDrbnKPwLeotFYDsuNb26uBMqB+hw==} + engines: {node: '>= 6'} + commitizen@4.2.5: resolution: {integrity: sha512-9sXju8Qrz1B4Tw7kC5KhnvwYQN88qs2zbiB8oyMsnXZyJ24PPGiNM3nHr73d32dnE3i8VJEXddBFIbOgYSEXtQ==} engines: {node: '>= 12'} @@ -4690,6 +4859,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.28.1: + resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} + engines: {node: '>=18'} + hasBin: true + escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -8035,6 +8209,11 @@ packages: peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + tsx@4.23.1: + resolution: {integrity: sha512-GQHnkIfxyx1wYCOS/wonik5MVRZU9hi1TEZmzGZSCJB1y9YgoZ8H6itNE/u4suE+yLmOzuE4E5S4TZ/ZX2wcWQ==} + engines: {node: '>=18.0.0'} + hasBin: true + tuf-js@1.1.7: resolution: {integrity: sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -8107,6 +8286,9 @@ packages: resolution: {integrity: sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==} deprecated: You are using an outdated version of ua-parser-js. Please update to ua-parser-js v0.7.33 / v1.0.33 / v2.0.0 (or later) to avoid ReDoS vulnerability [CVE-2022-25927](https://github.com/advisories/GHSA-fhg7-m89q-25r3) + undici-types@8.3.0: + resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} + undici@6.26.0: resolution: {integrity: sha512-4yqz8a3n5HmGTlsbADNtr/dJlhkh/55Rq798G6ibiULcXbDtaLpTl1pvdqcbFfeoj3iSi52lePFM7h9H21cw/A==} engines: {node: '>=18.17'} @@ -8971,11 +9153,11 @@ snapshots: - supports-color - typescript - '@angular-eslint/schematics@15.2.1(@angular/cli@21.2.12(@types/node@12.20.52)(chokidar@5.0.0))(eslint@8.56.0)(typescript@5.9.3)': + '@angular-eslint/schematics@15.2.1(@angular/cli@21.2.12(@types/node@26.1.1)(chokidar@5.0.0))(eslint@8.56.0)(typescript@5.9.3)': dependencies: '@angular-eslint/eslint-plugin': 15.2.1(eslint@8.56.0)(typescript@5.9.3) '@angular-eslint/eslint-plugin-template': 15.2.1(eslint@8.56.0)(typescript@5.9.3) - '@angular/cli': 21.2.12(@types/node@12.20.52)(chokidar@5.0.0) + '@angular/cli': 21.2.12(@types/node@26.1.1)(chokidar@5.0.0) ignore: 5.2.4 strip-json-comments: 3.1.1 tmp: 0.2.1 @@ -9014,7 +9196,7 @@ snapshots: '@angular/core': 15.2.10(rxjs@7.8.2)(zone.js@0.11.5) tslib: 2.6.2 - '@angular/build@21.2.12(tgtkolpbo6xk4md46r5ydmb5zm)': + '@angular/build@21.2.12(jko2kgqoxargmntxo7zvvyhcfa)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) @@ -9023,8 +9205,8 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 5.1.21(@types/node@12.20.52) - '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)) + '@inquirer/confirm': 5.1.21(@types/node@26.1.1) + '@vitejs/plugin-basic-ssl': 2.1.4(vite@7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1)) beasties: 0.4.1 browserslist: 4.28.2 esbuild: 0.27.3 @@ -9045,7 +9227,7 @@ snapshots: tslib: 2.6.2 typescript: 5.9.3 undici: 7.24.4 - vite: 7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3) + vite: 7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1) watchpack: 2.5.1 optionalDependencies: '@angular/core': 21.2.14(@angular/compiler@21.2.14)(rxjs@7.8.2)(zone.js@0.11.5) @@ -9055,7 +9237,7 @@ snapshots: lmdb: 3.5.1 ng-packagr: 15.2.2(@angular/compiler-cli@15.2.10(@angular/compiler@15.2.10(@angular/core@15.2.10(rxjs@7.8.2)(zone.js@0.11.5)))(typescript@4.9.5))(tslib@2.5.0)(typescript@4.9.5) postcss: 8.5.15 - vitest: 4.1.7(@types/node@12.20.52)(jsdom@28.1.0)(vite@7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)) + vitest: 4.1.7(@types/node@26.1.1)(jsdom@28.1.0)(vite@7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1)) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -9096,13 +9278,13 @@ snapshots: - chokidar - supports-color - '@angular/cli@21.2.12(@types/node@12.20.52)(chokidar@5.0.0)': + '@angular/cli@21.2.12(@types/node@26.1.1)(chokidar@5.0.0)': dependencies: '@angular-devkit/architect': 0.2102.12(chokidar@5.0.0) '@angular-devkit/core': 21.2.12(chokidar@5.0.0) '@angular-devkit/schematics': 21.2.12(chokidar@5.0.0) - '@inquirer/prompts': 7.10.1(@types/node@12.20.52) - '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@12.20.52))(@types/node@12.20.52)(listr2@9.0.5) + '@inquirer/prompts': 7.10.1(@types/node@26.1.1) + '@listr2/prompt-adapter-inquirer': 3.0.5(@inquirer/prompts@7.10.1(@types/node@26.1.1))(@types/node@26.1.1)(listr2@9.0.5) '@modelcontextprotocol/sdk': 1.26.0(zod@4.3.6) '@schematics/angular': 21.2.12(chokidar@5.0.0) '@yarnpkg/lockfile': 1.1.0 @@ -10210,7 +10392,7 @@ snapshots: dependencies: '@changesets/types': 6.1.0 - '@changesets/cli@2.31.0(@types/node@12.20.52)': + '@changesets/cli@2.31.0(@types/node@26.1.1)': dependencies: '@changesets/apply-release-plan': 7.1.1 '@changesets/assemble-release-plan': 6.0.10 @@ -10226,7 +10408,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@12.20.52) + '@inquirer/external-editor': 1.0.3(@types/node@26.1.1) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 enquirer: 2.4.1 @@ -10382,7 +10564,7 @@ snapshots: '@types/node': 14.18.33 chalk: 4.1.2 cosmiconfig: 7.0.1 - cosmiconfig-typescript-loader: 4.2.0(@types/node@14.18.33)(cosmiconfig@7.0.1)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5))(typescript@4.9.5) + cosmiconfig-typescript-loader: 4.2.0(@types/node@14.18.33)(cosmiconfig@7.0.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5))(typescript@4.9.5) lodash: 4.17.21 resolve-from: 5.0.0 ts-node: 10.9.1(@types/node@14.18.33)(typescript@4.9.5) @@ -10483,6 +10665,9 @@ snapshots: '@esbuild/aix-ppc64@0.27.3': optional: true + '@esbuild/aix-ppc64@0.28.1': + optional: true + '@esbuild/android-arm64@0.17.19': optional: true @@ -10492,6 +10677,9 @@ snapshots: '@esbuild/android-arm64@0.27.3': optional: true + '@esbuild/android-arm64@0.28.1': + optional: true + '@esbuild/android-arm@0.17.19': optional: true @@ -10501,6 +10689,9 @@ snapshots: '@esbuild/android-arm@0.27.3': optional: true + '@esbuild/android-arm@0.28.1': + optional: true + '@esbuild/android-x64@0.17.19': optional: true @@ -10510,6 +10701,9 @@ snapshots: '@esbuild/android-x64@0.27.3': optional: true + '@esbuild/android-x64@0.28.1': + optional: true + '@esbuild/darwin-arm64@0.17.19': optional: true @@ -10519,6 +10713,9 @@ snapshots: '@esbuild/darwin-arm64@0.27.3': optional: true + '@esbuild/darwin-arm64@0.28.1': + optional: true + '@esbuild/darwin-x64@0.17.19': optional: true @@ -10528,6 +10725,9 @@ snapshots: '@esbuild/darwin-x64@0.27.3': optional: true + '@esbuild/darwin-x64@0.28.1': + optional: true + '@esbuild/freebsd-arm64@0.17.19': optional: true @@ -10537,6 +10737,9 @@ snapshots: '@esbuild/freebsd-arm64@0.27.3': optional: true + '@esbuild/freebsd-arm64@0.28.1': + optional: true + '@esbuild/freebsd-x64@0.17.19': optional: true @@ -10546,6 +10749,9 @@ snapshots: '@esbuild/freebsd-x64@0.27.3': optional: true + '@esbuild/freebsd-x64@0.28.1': + optional: true + '@esbuild/linux-arm64@0.17.19': optional: true @@ -10555,6 +10761,9 @@ snapshots: '@esbuild/linux-arm64@0.27.3': optional: true + '@esbuild/linux-arm64@0.28.1': + optional: true + '@esbuild/linux-arm@0.17.19': optional: true @@ -10564,6 +10773,9 @@ snapshots: '@esbuild/linux-arm@0.27.3': optional: true + '@esbuild/linux-arm@0.28.1': + optional: true + '@esbuild/linux-ia32@0.17.19': optional: true @@ -10573,6 +10785,9 @@ snapshots: '@esbuild/linux-ia32@0.27.3': optional: true + '@esbuild/linux-ia32@0.28.1': + optional: true + '@esbuild/linux-loong64@0.17.19': optional: true @@ -10582,6 +10797,9 @@ snapshots: '@esbuild/linux-loong64@0.27.3': optional: true + '@esbuild/linux-loong64@0.28.1': + optional: true + '@esbuild/linux-mips64el@0.17.19': optional: true @@ -10591,6 +10809,9 @@ snapshots: '@esbuild/linux-mips64el@0.27.3': optional: true + '@esbuild/linux-mips64el@0.28.1': + optional: true + '@esbuild/linux-ppc64@0.17.19': optional: true @@ -10600,6 +10821,9 @@ snapshots: '@esbuild/linux-ppc64@0.27.3': optional: true + '@esbuild/linux-ppc64@0.28.1': + optional: true + '@esbuild/linux-riscv64@0.17.19': optional: true @@ -10609,6 +10833,9 @@ snapshots: '@esbuild/linux-riscv64@0.27.3': optional: true + '@esbuild/linux-riscv64@0.28.1': + optional: true + '@esbuild/linux-s390x@0.17.19': optional: true @@ -10618,6 +10845,9 @@ snapshots: '@esbuild/linux-s390x@0.27.3': optional: true + '@esbuild/linux-s390x@0.28.1': + optional: true + '@esbuild/linux-x64@0.17.19': optional: true @@ -10627,9 +10857,15 @@ snapshots: '@esbuild/linux-x64@0.27.3': optional: true + '@esbuild/linux-x64@0.28.1': + optional: true + '@esbuild/netbsd-arm64@0.27.3': optional: true + '@esbuild/netbsd-arm64@0.28.1': + optional: true + '@esbuild/netbsd-x64@0.17.19': optional: true @@ -10639,9 +10875,15 @@ snapshots: '@esbuild/netbsd-x64@0.27.3': optional: true + '@esbuild/netbsd-x64@0.28.1': + optional: true + '@esbuild/openbsd-arm64@0.27.3': optional: true + '@esbuild/openbsd-arm64@0.28.1': + optional: true + '@esbuild/openbsd-x64@0.17.19': optional: true @@ -10651,9 +10893,15 @@ snapshots: '@esbuild/openbsd-x64@0.27.3': optional: true + '@esbuild/openbsd-x64@0.28.1': + optional: true + '@esbuild/openharmony-arm64@0.27.3': optional: true + '@esbuild/openharmony-arm64@0.28.1': + optional: true + '@esbuild/sunos-x64@0.17.19': optional: true @@ -10663,6 +10911,9 @@ snapshots: '@esbuild/sunos-x64@0.27.3': optional: true + '@esbuild/sunos-x64@0.28.1': + optional: true + '@esbuild/win32-arm64@0.17.19': optional: true @@ -10672,6 +10923,9 @@ snapshots: '@esbuild/win32-arm64@0.27.3': optional: true + '@esbuild/win32-arm64@0.28.1': + optional: true + '@esbuild/win32-ia32@0.17.19': optional: true @@ -10681,6 +10935,9 @@ snapshots: '@esbuild/win32-ia32@0.27.3': optional: true + '@esbuild/win32-ia32@0.28.1': + optional: true + '@esbuild/win32-x64@0.17.19': optional: true @@ -10690,6 +10947,9 @@ snapshots: '@esbuild/win32-x64@0.27.3': optional: true + '@esbuild/win32-x64@0.28.1': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': dependencies: eslint: 8.56.0 @@ -10771,128 +11031,128 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.3.2(@types/node@12.20.52)': + '@inquirer/checkbox@4.3.2(@types/node@26.1.1)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@12.20.52) + '@inquirer/core': 10.3.2(@types/node@26.1.1) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/type': 3.0.10(@types/node@26.1.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 - '@inquirer/confirm@5.1.21(@types/node@12.20.52)': + '@inquirer/confirm@5.1.21(@types/node@26.1.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@12.20.52) - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/core': 10.3.2(@types/node@26.1.1) + '@inquirer/type': 3.0.10(@types/node@26.1.1) optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 - '@inquirer/core@10.3.2(@types/node@12.20.52)': + '@inquirer/core@10.3.2(@types/node@26.1.1)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/type': 3.0.10(@types/node@26.1.1) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 - '@inquirer/editor@4.2.23(@types/node@12.20.52)': + '@inquirer/editor@4.2.23(@types/node@26.1.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@12.20.52) - '@inquirer/external-editor': 1.0.3(@types/node@12.20.52) - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/core': 10.3.2(@types/node@26.1.1) + '@inquirer/external-editor': 1.0.3(@types/node@26.1.1) + '@inquirer/type': 3.0.10(@types/node@26.1.1) optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 - '@inquirer/expand@4.0.23(@types/node@12.20.52)': + '@inquirer/expand@4.0.23(@types/node@26.1.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@12.20.52) - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/core': 10.3.2(@types/node@26.1.1) + '@inquirer/type': 3.0.10(@types/node@26.1.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 - '@inquirer/external-editor@1.0.3(@types/node@12.20.52)': + '@inquirer/external-editor@1.0.3(@types/node@26.1.1)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 '@inquirer/figures@1.0.15': {} - '@inquirer/input@4.3.1(@types/node@12.20.52)': + '@inquirer/input@4.3.1(@types/node@26.1.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@12.20.52) - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/core': 10.3.2(@types/node@26.1.1) + '@inquirer/type': 3.0.10(@types/node@26.1.1) optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 - '@inquirer/number@3.0.23(@types/node@12.20.52)': + '@inquirer/number@3.0.23(@types/node@26.1.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@12.20.52) - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/core': 10.3.2(@types/node@26.1.1) + '@inquirer/type': 3.0.10(@types/node@26.1.1) optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 - '@inquirer/password@4.0.23(@types/node@12.20.52)': + '@inquirer/password@4.0.23(@types/node@26.1.1)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@12.20.52) - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/core': 10.3.2(@types/node@26.1.1) + '@inquirer/type': 3.0.10(@types/node@26.1.1) optionalDependencies: - '@types/node': 12.20.52 - - '@inquirer/prompts@7.10.1(@types/node@12.20.52)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@12.20.52) - '@inquirer/confirm': 5.1.21(@types/node@12.20.52) - '@inquirer/editor': 4.2.23(@types/node@12.20.52) - '@inquirer/expand': 4.0.23(@types/node@12.20.52) - '@inquirer/input': 4.3.1(@types/node@12.20.52) - '@inquirer/number': 3.0.23(@types/node@12.20.52) - '@inquirer/password': 4.0.23(@types/node@12.20.52) - '@inquirer/rawlist': 4.1.11(@types/node@12.20.52) - '@inquirer/search': 3.2.2(@types/node@12.20.52) - '@inquirer/select': 4.4.2(@types/node@12.20.52) + '@types/node': 26.1.1 + + '@inquirer/prompts@7.10.1(@types/node@26.1.1)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@26.1.1) + '@inquirer/confirm': 5.1.21(@types/node@26.1.1) + '@inquirer/editor': 4.2.23(@types/node@26.1.1) + '@inquirer/expand': 4.0.23(@types/node@26.1.1) + '@inquirer/input': 4.3.1(@types/node@26.1.1) + '@inquirer/number': 3.0.23(@types/node@26.1.1) + '@inquirer/password': 4.0.23(@types/node@26.1.1) + '@inquirer/rawlist': 4.1.11(@types/node@26.1.1) + '@inquirer/search': 3.2.2(@types/node@26.1.1) + '@inquirer/select': 4.4.2(@types/node@26.1.1) optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 - '@inquirer/rawlist@4.1.11(@types/node@12.20.52)': + '@inquirer/rawlist@4.1.11(@types/node@26.1.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@12.20.52) - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/core': 10.3.2(@types/node@26.1.1) + '@inquirer/type': 3.0.10(@types/node@26.1.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 - '@inquirer/search@3.2.2(@types/node@12.20.52)': + '@inquirer/search@3.2.2(@types/node@26.1.1)': dependencies: - '@inquirer/core': 10.3.2(@types/node@12.20.52) + '@inquirer/core': 10.3.2(@types/node@26.1.1) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/type': 3.0.10(@types/node@26.1.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 - '@inquirer/select@4.4.2(@types/node@12.20.52)': + '@inquirer/select@4.4.2(@types/node@26.1.1)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@12.20.52) + '@inquirer/core': 10.3.2(@types/node@26.1.1) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/type': 3.0.10(@types/node@26.1.1) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 - '@inquirer/type@3.0.10(@types/node@12.20.52)': + '@inquirer/type@3.0.10(@types/node@26.1.1)': optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 '@isaacs/cliui@8.0.2': dependencies: @@ -10920,27 +11180,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 12.20.52 + '@types/node': 26.1.1 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5))': + '@jest/core@29.7.0(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 12.20.52 + '@types/node': 26.1.1 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.3.1 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)) + jest-config: 29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -10965,7 +11225,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 12.20.52 + '@types/node': 26.1.1 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -10983,7 +11243,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 12.20.52 + '@types/node': 26.1.1 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -11005,7 +11265,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 12.20.52 + '@types/node': 26.1.1 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -11075,7 +11335,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 12.20.52 + '@types/node': 26.1.1 '@types/yargs': 17.0.10 chalk: 4.1.2 @@ -11130,10 +11390,10 @@ snapshots: '@leichtgewicht/ip-codec@2.0.4': {} - '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@12.20.52))(@types/node@12.20.52)(listr2@9.0.5)': + '@listr2/prompt-adapter-inquirer@3.0.5(@inquirer/prompts@7.10.1(@types/node@26.1.1))(@types/node@26.1.1)(listr2@9.0.5)': dependencies: - '@inquirer/prompts': 7.10.1(@types/node@12.20.52) - '@inquirer/type': 3.0.10(@types/node@12.20.52) + '@inquirer/prompts': 7.10.1(@types/node@26.1.1) + '@inquirer/type': 3.0.10(@types/node@26.1.1) listr2: 9.0.5 transitivePeerDependencies: - '@types/node' @@ -11822,11 +12082,11 @@ snapshots: '@types/body-parser@1.19.2': dependencies: '@types/connect': 3.4.35 - '@types/node': 18.11.9 + '@types/node': 26.1.1 '@types/bonjour@3.5.10': dependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 '@types/chai@5.2.3': dependencies: @@ -11838,11 +12098,11 @@ snapshots: '@types/connect-history-api-fallback@1.3.5': dependencies: '@types/express-serve-static-core': 4.17.28 - '@types/node': 12.20.52 + '@types/node': 26.1.1 '@types/connect@3.4.35': dependencies: - '@types/node': 18.11.9 + '@types/node': 26.1.1 '@types/cookie@0.4.1': {} @@ -11868,7 +12128,7 @@ snapshots: '@types/express-serve-static-core@4.17.28': dependencies: - '@types/node': 18.11.9 + '@types/node': 26.1.1 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 @@ -11881,11 +12141,11 @@ snapshots: '@types/graceful-fs@4.1.5': dependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 '@types/http-proxy@1.17.9': dependencies: - '@types/node': 18.11.9 + '@types/node': 26.1.1 '@types/istanbul-lib-coverage@2.0.4': {} @@ -11904,7 +12164,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 '@types/tough-cookie': 4.0.2 parse5: 7.1.2 @@ -11918,13 +12178,15 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 '@types/node@12.20.52': {} '@types/node@14.18.33': {} - '@types/node@18.11.9': {} + '@types/node@26.1.1': + dependencies: + undici-types: 8.3.0 '@types/normalize-package-data@2.4.1': {} @@ -11947,11 +12209,11 @@ snapshots: '@types/serve-static@1.13.10': dependencies: '@types/mime': 1.3.2 - '@types/node': 18.11.9 + '@types/node': 26.1.1 '@types/sockjs@0.3.33': dependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 '@types/stack-utils@2.0.1': {} @@ -11959,7 +12221,7 @@ snapshots: '@types/ws@8.5.3': dependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 '@types/yargs-parser@21.0.0': {} @@ -12265,9 +12527,9 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3))': + '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1))': dependencies: - vite: 7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3) + vite: 7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1) '@vitest/expect@4.1.7': dependencies: @@ -12278,13 +12540,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.7(vite@7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3))': + '@vitest/mocker@4.1.7(vite@7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1))': dependencies: '@vitest/spy': 4.1.7 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3) + vite: 7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1) '@vitest/pretty-format@4.1.7': dependencies: @@ -12628,6 +12890,8 @@ snapshots: array-ify@1.0.0: {} + array-timsort@1.0.3: {} + array-union@2.1.0: {} arrify@1.0.1: {} @@ -13231,6 +13495,11 @@ snapshots: commander@9.4.1: {} + comment-json@5.0.0: + dependencies: + array-timsort: 1.0.3 + esprima: 4.0.1 + commitizen@4.2.5: dependencies: cachedir: 2.3.0 @@ -13370,11 +13639,11 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@4.2.0(@types/node@14.18.33)(cosmiconfig@7.0.1)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5))(typescript@4.9.5): + cosmiconfig-typescript-loader@4.2.0(@types/node@14.18.33)(cosmiconfig@7.0.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5))(typescript@4.9.5): dependencies: '@types/node': 14.18.33 cosmiconfig: 7.0.1 - ts-node: 10.9.1(@types/node@12.20.52)(typescript@4.9.5) + ts-node: 10.9.1(@types/node@26.1.1)(typescript@4.9.5) typescript: 4.9.5 cosmiconfig@7.0.1: @@ -13385,13 +13654,13 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - create-jest@29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)): + create-jest@29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 - jest-config: 29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)) + jest-config: 29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -13746,7 +14015,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.12 - '@types/node': 12.20.52 + '@types/node': 26.1.1 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -13907,6 +14176,35 @@ snapshots: '@esbuild/win32-ia32': 0.27.3 '@esbuild/win32-x64': 0.27.3 + esbuild@0.28.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.1 + '@esbuild/android-arm': 0.28.1 + '@esbuild/android-arm64': 0.28.1 + '@esbuild/android-x64': 0.28.1 + '@esbuild/darwin-arm64': 0.28.1 + '@esbuild/darwin-x64': 0.28.1 + '@esbuild/freebsd-arm64': 0.28.1 + '@esbuild/freebsd-x64': 0.28.1 + '@esbuild/linux-arm': 0.28.1 + '@esbuild/linux-arm64': 0.28.1 + '@esbuild/linux-ia32': 0.28.1 + '@esbuild/linux-loong64': 0.28.1 + '@esbuild/linux-mips64el': 0.28.1 + '@esbuild/linux-ppc64': 0.28.1 + '@esbuild/linux-riscv64': 0.28.1 + '@esbuild/linux-s390x': 0.28.1 + '@esbuild/linux-x64': 0.28.1 + '@esbuild/netbsd-arm64': 0.28.1 + '@esbuild/netbsd-x64': 0.28.1 + '@esbuild/openbsd-arm64': 0.28.1 + '@esbuild/openbsd-x64': 0.28.1 + '@esbuild/openharmony-arm64': 0.28.1 + '@esbuild/sunos-x64': 0.28.1 + '@esbuild/win32-arm64': 0.28.1 + '@esbuild/win32-ia32': 0.28.1 + '@esbuild/win32-x64': 0.28.1 + escalade@3.1.1: {} escalade@3.2.0: {} @@ -15077,7 +15375,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 12.20.52 + '@types/node': 26.1.1 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -15097,16 +15395,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)): + jest-cli@29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)) + '@jest/core': 29.7.0(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)) + create-jest: 29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)) + jest-config: 29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.6.2 @@ -15116,7 +15414,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)): + jest-config@29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)): dependencies: '@babel/core': 7.20.12 '@jest/test-sequencer': 29.7.0 @@ -15141,8 +15439,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 12.20.52 - ts-node: 10.9.1(@types/node@12.20.52)(typescript@4.9.5) + '@types/node': 26.1.1 + ts-node: 10.9.1(@types/node@26.1.1)(typescript@4.9.5) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -15172,7 +15470,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 12.20.52 + '@types/node': 26.1.1 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -15186,7 +15484,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 12.20.52 + '@types/node': 26.1.1 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -15196,7 +15494,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.5 - '@types/node': 12.20.52 + '@types/node': 26.1.1 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 @@ -15235,14 +15533,14 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 12.20.52 + '@types/node': 26.1.1 jest-util: 29.7.0 jest-pnp-resolver@1.2.2(jest-resolve@29.7.0): optionalDependencies: jest-resolve: 29.7.0 - jest-preset-angular@14.0.3(u2q7nq3urm6q6nbjqmgv6cbbhu): + jest-preset-angular@14.0.3(ybdqoi7743j2nuttuf4klr6wce): dependencies: '@angular-devkit/build-angular': 15.2.10(@angular/compiler-cli@15.2.10(@angular/compiler@15.2.10(@angular/core@15.2.10(rxjs@7.8.2)(zone.js@0.11.5)))(typescript@4.9.5))(@angular/platform-server@15.2.10(ozg6ihtx76ye5mwqiskjono6ia))(ng-packagr@15.2.2(@angular/compiler-cli@15.2.10(@angular/compiler@15.2.10(@angular/core@15.2.10(rxjs@7.8.2)(zone.js@0.11.5)))(typescript@4.9.5))(tslib@2.5.0)(typescript@4.9.5))(typescript@4.9.5) '@angular/compiler-cli': 15.2.10(@angular/compiler@15.2.10(@angular/core@15.2.10(rxjs@7.8.2)(zone.js@0.11.5)))(typescript@4.9.5) @@ -15250,11 +15548,11 @@ snapshots: '@angular/platform-browser-dynamic': 15.2.10(@angular/common@15.2.10(@angular/core@15.2.10(rxjs@7.8.2)(zone.js@0.11.5))(rxjs@7.8.2))(@angular/compiler@15.2.10(@angular/core@15.2.10(rxjs@7.8.2)(zone.js@0.11.5)))(@angular/core@15.2.10(rxjs@7.8.2)(zone.js@0.11.5))(@angular/platform-browser@15.2.10(@angular/animations@15.2.10(@angular/core@15.2.10(rxjs@7.8.2)(zone.js@0.11.5)))(@angular/common@15.2.10(@angular/core@15.2.10(rxjs@7.8.2)(zone.js@0.11.5))(rxjs@7.8.2))(@angular/core@15.2.10(rxjs@7.8.2)(zone.js@0.11.5))) bs-logger: 0.2.6 esbuild-wasm: 0.17.19 - jest: 29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)) + jest: 29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)) jest-environment-jsdom: 29.7.0 jest-util: 29.7.0 pretty-format: 29.7.0 - ts-jest: 29.1.2(@babel/core@7.20.12)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.20.12))(esbuild@0.17.19)(jest@29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)))(typescript@4.9.5) + ts-jest: 29.1.2(@babel/core@7.20.12)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.20.12))(esbuild@0.17.19)(jest@29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)))(typescript@4.9.5) typescript: 4.9.5 optionalDependencies: esbuild: 0.17.19 @@ -15295,7 +15593,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 12.20.52 + '@types/node': 26.1.1 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 @@ -15323,7 +15621,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 12.20.52 + '@types/node': 26.1.1 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -15369,7 +15667,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 12.20.52 + '@types/node': 26.1.1 chalk: 4.1.2 ci-info: 3.3.1 graceful-fs: 4.2.10 @@ -15388,7 +15686,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 12.20.52 + '@types/node': 26.1.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -15397,23 +15695,23 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)): + jest@29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)) + '@jest/core': 29.7.0(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)) + jest-cli: 29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -17873,11 +18171,11 @@ snapshots: dependencies: typescript: 4.9.5 - ts-jest@29.1.2(@babel/core@7.20.12)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.20.12))(esbuild@0.17.19)(jest@29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)))(typescript@4.9.5): + ts-jest@29.1.2(@babel/core@7.20.12)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.20.12))(esbuild@0.17.19)(jest@29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)))(typescript@4.9.5): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@12.20.52)(ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5)) + jest: 29.7.0(@types/node@26.1.1)(ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -17891,14 +18189,14 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.20.12) esbuild: 0.17.19 - ts-node@10.9.1(@types/node@12.20.52)(typescript@4.9.5): + ts-node@10.9.1(@types/node@14.18.33)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 12.20.52 + '@types/node': 14.18.33 acorn: 8.11.3 acorn-walk: 8.2.0 arg: 4.1.3 @@ -17909,14 +18207,14 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.1(@types/node@14.18.33)(typescript@4.9.5): + ts-node@10.9.1(@types/node@26.1.1)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 14.18.33 + '@types/node': 26.1.1 acorn: 8.11.3 acorn-walk: 8.2.0 arg: 4.1.3 @@ -17943,6 +18241,12 @@ snapshots: tslib: 1.14.1 typescript: 5.9.3 + tsx@4.23.1: + dependencies: + esbuild: 0.28.1 + optionalDependencies: + fsevents: 2.3.3 + tuf-js@1.1.7: dependencies: '@tufjs/models': 1.0.4 @@ -18006,6 +18310,8 @@ snapshots: ua-parser-js@1.0.2: {} + undici-types@8.3.0: {} + undici@6.26.0: {} undici@7.24.4: {} @@ -18101,7 +18407,7 @@ snapshots: vary@1.1.2: {} - vite@7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3): + vite@7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.4) @@ -18110,16 +18416,17 @@ snapshots: rollup: 4.60.4 tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 fsevents: 2.3.3 less: 4.1.3 sass: 1.97.3 terser: 5.16.3 + tsx: 4.23.1 - vitest@4.1.7(@types/node@12.20.52)(jsdom@28.1.0)(vite@7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)): + vitest@4.1.7(@types/node@26.1.1)(jsdom@28.1.0)(vite@7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1)): dependencies: '@vitest/expect': 4.1.7 - '@vitest/mocker': 4.1.7(vite@7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)) + '@vitest/mocker': 4.1.7(vite@7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1)) '@vitest/pretty-format': 4.1.7 '@vitest/runner': 4.1.7 '@vitest/snapshot': 4.1.7 @@ -18136,10 +18443,10 @@ snapshots: tinyexec: 1.2.2 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 - vite: 7.3.2(@types/node@12.20.52)(less@4.1.3)(sass@1.97.3)(terser@5.16.3) + vite: 7.3.2(@types/node@26.1.1)(less@4.1.3)(sass@1.97.3)(terser@5.16.3)(tsx@4.23.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 12.20.52 + '@types/node': 26.1.1 jsdom: 28.1.0 transitivePeerDependencies: - msw