From a27bbda556db57e1f689968348b29cb7cd72de05 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 04:47:19 +0000 Subject: [PATCH 01/17] Initial plan From efcc54c04d9bae00703acb4de57382b3739bbadd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 04:50:52 +0000 Subject: [PATCH 02/17] Initial plan for status code matcher implementation Agent-Logs-Url: https://github.com/pact-foundation/pact-js/sessions/5ef516cc-a979-4b12-9ecf-06f58a7622be Co-authored-by: mefellows <53900+mefellows@users.noreply.github.com> --- package-lock.json | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 16770ff34..ba789d96c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1694,9 +1694,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -1714,9 +1711,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -1734,9 +1728,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -1754,9 +1745,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -2659,9 +2647,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2675,9 +2660,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2691,9 +2673,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2707,9 +2686,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ From 68155a7617323a99cb58ae1f996b5372c06e2919 Mon Sep 17 00:00:00 2001 From: JP-Ellis Date: Wed, 6 May 2026 13:58:38 +1000 Subject: [PATCH 03/17] chore: remove dead regression tests Since we have consolidated to vitest, the jest and mocha regression suites are actually not currently functional. If we want, we can create dedicated tests for these later, but deleting for now as I don't think they serve much benefit. Signed-off-by: JP-Ellis --- regression/v2/jest/.mocharc.json | 5 - regression/v2/jest/index.ts | 27 - regression/v2/jest/package-lock.json | 3789 --------------------- regression/v2/jest/package.json | 29 - regression/v2/mocha/index.ts | 30 - regression/v2/mocha/test/get-dogs.spec.ts | 78 - 6 files changed, 3958 deletions(-) delete mode 100644 regression/v2/jest/.mocharc.json delete mode 100644 regression/v2/jest/index.ts delete mode 100644 regression/v2/jest/package-lock.json delete mode 100644 regression/v2/jest/package.json delete mode 100644 regression/v2/mocha/index.ts delete mode 100644 regression/v2/mocha/test/get-dogs.spec.ts diff --git a/regression/v2/jest/.mocharc.json b/regression/v2/jest/.mocharc.json deleted file mode 100644 index ae1631cdc..000000000 --- a/regression/v2/jest/.mocharc.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "timeout": 60000, - "recursive": true, - "exit": true -} diff --git a/regression/v2/jest/index.ts b/regression/v2/jest/index.ts deleted file mode 100644 index 46d477fad..000000000 --- a/regression/v2/jest/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -import axios from 'axios'; - -export const getMeDogs = (endpoint: { url: string }) => { - const { url } = endpoint; - - return axios - .request({ - method: 'GET', - baseURL: url, - url: '/dogs', - headers: { Accept: 'application/json' }, - }) - .then((response) => response.data); -}; - -export const getMeCats = (endpoint: { url: string }) => { - const { url } = endpoint; - - return axios - .request({ - method: 'GET', - baseURL: url, - url: '/cats?catId[]=2&catId[]=3', - headers: { Accept: 'application/json' }, - }) - .then((response) => response.data); -}; diff --git a/regression/v2/jest/package-lock.json b/regression/v2/jest/package-lock.json deleted file mode 100644 index 2d761ec78..000000000 --- a/regression/v2/jest/package-lock.json +++ /dev/null @@ -1,3789 +0,0 @@ -{ - "name": "pact-example-jest", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "pact-example-jest", - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "axios": "^1.12.2" - }, - "devDependencies": { - "@pact-foundation/pact": "file:../../dist", - "@pact-foundation/pact-cli": "^18.0.0", - "absolute-version": "2.0.0", - "jest": "^29.7.0", - "jest-pact": "^0.11.3", - "rimraf": "^6.0.1" - } - }, - "../../dist": { - "dev": true - }, - "node_modules/@babel/code-frame": { - "version": "7.29.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.29.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.29.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-module-transforms": "^7.28.6", - "@babel/helpers": "^7.28.6", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/traverse": "^7.29.0", - "@babel/types": "^7.29.0", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.29.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.28.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.28.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.28.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.29.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.28.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.28.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.28.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.28.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.29.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/types": { - "version": "7.29.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "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": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@pact-foundation/pact": { - "resolved": "../../dist", - "link": true - }, - "node_modules/@pact-foundation/pact-cli": { - "version": "18.0.0", - "cpu": [ - "x64", - "arm64" - ], - "dev": true, - "license": "MIT", - "os": [ - "darwin", - "linux", - "win32" - ], - "bin": { - "pact": "bin/pact.js", - "pact-broker": "bin/pact-broker.js", - "pact-mock-server": "bin/pact-mock-server.js", - "pact-plugin": "bin/pact-plugin.js", - "pact-stub-server": "bin/pact-stub-server.js", - "pact-verifier": "bin/pact-verifier.js", - "pactflow": "bin/pactflow.js" - }, - "engines": { - "node": ">=16" - }, - "optionalDependencies": { - "@pact-foundation/pact-cli-darwin-arm64": "18.0.0", - "@pact-foundation/pact-cli-darwin-x64": "18.0.0", - "@pact-foundation/pact-cli-linux-arm64": "18.0.0", - "@pact-foundation/pact-cli-linux-x64": "18.0.0", - "@pact-foundation/pact-cli-windows-arm64": "18.0.0", - "@pact-foundation/pact-cli-windows-x64": "18.0.0" - } - }, - "node_modules/@pact-foundation/pact-cli-darwin-arm64": { - "version": "18.0.0", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@pact-foundation/pact-cli-darwin-x64": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@pact-foundation/pact-cli-darwin-x64/-/pact-cli-darwin-x64-18.0.0.tgz", - "integrity": "sha512-pfcFVeNtHAqphMkhTvMwMkripbFhliS1MHLjkFb+4UDX4+BKx+xE+cZGT8MfA83P9/8znZOr/1hwLAV5byGlAw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@pact-foundation/pact-cli-linux-arm64": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@pact-foundation/pact-cli-linux-arm64/-/pact-cli-linux-arm64-18.0.0.tgz", - "integrity": "sha512-edHhv7L/MoNgdh+C/1wgyPk/5BZTKhSJZVZ69mHNS/K1B8/P25vDZMVe5hPFD1t8SlI2r1+3JibtFa7/QjLGyw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@pact-foundation/pact-cli-linux-x64": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@pact-foundation/pact-cli-linux-x64/-/pact-cli-linux-x64-18.0.0.tgz", - "integrity": "sha512-7auX0wg2Hl4xytX8RXVu9lLcpYNEJVB6kyMYECpI6iKM0O7Riu/Iqf77G2qq7Fw50O1WZGOf3dW+bdFKwB9Aow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@pact-foundation/pact-cli-windows-arm64": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@pact-foundation/pact-cli-windows-arm64/-/pact-cli-windows-arm64-18.0.0.tgz", - "integrity": "sha512-NllKbNRstZA9oXQcMDAlakMk7dArQl1Qt/mlRxBMCQ/nP0qWbHxTRZXZ+B1LLWeP+/dGyellGybYN+/zq++rwA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@pact-foundation/pact-cli-windows-x64": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@pact-foundation/pact-cli-windows-x64/-/pact-cli-windows-x64-18.0.0.tgz", - "integrity": "sha512-vA+k1PrJ+YxrftEtlicmvy68HkuHSzQmO/H/k576yRZVEqdFwCBfMChuelg0OcderGPFY8zeupyOA0aeBlG5dA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.10", - "dev": true, - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.28.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.2" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/node": { - "version": "25.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~7.19.0" - } - }, - "node_modules/@types/semver": { - "version": "7.7.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/yargs": { - "version": "17.0.35", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/absolute-version": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/absolute-version/-/absolute-version-2.0.0.tgz", - "integrity": "sha512-egwIhHiqtIjI3mboE/kzWw139pa+KwsV+hdJsgtHcnCnpsySehufVV6yB6+x8qc6UrYx9JiZeFoLMLJY6T/RNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "git-describe": "^4.1.1", - "git-rev-sync": "^3.0.1", - "semver": "^7.6.2", - "yargs": "^17.1.0" - }, - "bin": { - "absolute-version-from-git-tag": "dist/bin/absolute-version-from-git-tag.js" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/axios": { - "version": "1.15.2", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.15.11", - "form-data": "^4.0.5", - "proxy-from-env": "^2.1.0" - } - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0 || ^8.0.0-0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/baseline-browser-mapping": { - "version": "2.10.24", - "dev": true, - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.14", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.28.2", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.10.12", - "caniuse-lite": "^1.0.30001782", - "electron-to-chromium": "^1.5.328", - "node-releases": "^2.0.36", - "update-browserslist-db": "^1.2.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001791", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.4.3", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui": { - "version": "8.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/co": { - "version": "4.6.0", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/create-jest": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/create-jest/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/dedent": { - "version": "1.7.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.344", - "dev": true, - "license": "ISC" - }, - "node_modules/emittery": { - "version": "0.13.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/error-ex": { - "version": "1.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/follow-redirects": { - "version": "1.16.0", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.5", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/git-describe": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/semver": "^7.3.8", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=4.0.0" - }, - "optionalDependencies": { - "semver": "^5.6.0" - } - }, - "node_modules/git-describe/node_modules/semver": { - "version": "5.7.2", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/git-rev-sync": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "1.0.5", - "graceful-fs": "4.1.15", - "shelljs": "0.8.5" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.1.15", - "dev": true, - "license": "ISC" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.3", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/import-local": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC" - }, - "node_modules/interpret": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-haste-map/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pact": { - "version": "0.11.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@pact-foundation/pact": "^v10.0.0-beta.61 || ^10.0.2 || ^11.0.2 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", - "jest": "^24.0.0 || ^25.0.0 || ^26.0.0 || ^27.0.0 || ^28.0.0 || ^29.0.0 || ^30.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/jest-runner": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/jest-util": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.18.1", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.5", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minipass": { - "version": "7.1.3", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/node-int64": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.38", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/parse-json": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.3.5", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-from-env": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/pure-rand": { - "version": "6.1.0", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" - }, - "node_modules/react-is": { - "version": "18.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/rechoir": { - "version": "0.6.2", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.12", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/rimraf": { - "version": "6.1.3", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "glob": "^13.0.3", - "package-json-from-dist": "^1.0.1" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/balanced-match": { - "version": "4.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "5.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "13.0.6", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "10.2.5", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/semver": { - "version": "7.7.4", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "license": "ISC" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/undici-types": { - "version": "7.19.2", - "dev": true, - "license": "MIT" - }, - "node_modules/update-browserslist-db": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/v8-to-istanbul": { - "version": "9.3.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/yargs": { - "version": "17.7.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/regression/v2/jest/package.json b/regression/v2/jest/package.json deleted file mode 100644 index c322628ac..000000000 --- a/regression/v2/jest/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "pact-example-jest", - "version": "1.0.0", - "description": "Jest Pact example", - "main": "index.js", - "scripts": { - "clean": "rimraf pact", - "pretest": "npm run clean", - "test": "jest __tests__/ --runInBand", - "test:publish": "pact-broker publish pact/pacts --consumer-app-version=\"$(npx absolute-version)\" --auto-detect-version-properties --broker-base-url=https://testdemo.pactflow.io", - "lint": "npm run lint:tsc", - "lint:tsc": "echo 'Note: This example has not been migrated to TypeScript yet'" - }, - "license": "MIT", - "jest": { - "testEnvironment": "node" - }, - "devDependencies": { - "@pact-foundation/pact": "file:../../dist", - "@pact-foundation/pact-cli": "^18.0.0", - "absolute-version": "2.0.0", - "jest": "^29.7.0", - "jest-pact": "^0.11.3", - "rimraf": "^6.0.1" - }, - "dependencies": { - "axios": "^1.12.2" - } -} diff --git a/regression/v2/mocha/index.ts b/regression/v2/mocha/index.ts deleted file mode 100644 index 01c9b3e1b..000000000 --- a/regression/v2/mocha/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import axios from 'axios'; - -export const getMeDogs = (endpoint: { url: string; port: number }) => { - const { url, port } = endpoint; - - return axios.request({ - method: 'GET', - baseURL: `${url}:${port}`, - url: '/dogs', - headers: { - Accept: [ - 'application/problem+json', - 'application/json', - 'text/plain', - '*/*', - ], - }, - }); -}; - -export const getMeDog = (endpoint: { url: string; port: number }) => { - const { url, port } = endpoint; - - return axios.request({ - method: 'GET', - baseURL: `${url}:${port}`, - url: '/dogs/1', - headers: { Accept: 'application/json' }, - }); -}; diff --git a/regression/v2/mocha/test/get-dogs.spec.ts b/regression/v2/mocha/test/get-dogs.spec.ts deleted file mode 100644 index 53ba282f6..000000000 --- a/regression/v2/mocha/test/get-dogs.spec.ts +++ /dev/null @@ -1,78 +0,0 @@ -import path from 'node:path'; -import { afterAll, afterEach, beforeAll, describe, expect, it } from 'vitest'; -import { type LogLevel, PactV2 as Pact } from '@pact-foundation/pact'; -import { getMeDogs } from '../index'; - -const LOG_LEVEL = process.env.LOG_LEVEL || 'WARN'; - -describe('The Dog API', () => { - const url = 'http://127.0.0.1'; - const port = 8992; - - const provider = new Pact({ - port: port, - log: path.resolve(__dirname, '..', 'logs', 'mockserver-integration.log'), - dir: path.resolve(__dirname, '..', 'pacts'), - spec: 2, - consumer: 'MyConsumer', - provider: 'MyProvider', - logLevel: LOG_LEVEL as LogLevel, - }); - - const EXPECTED_BODY = [ - { - dog: 1, - }, - { - dog: 2, - }, - ]; - - // Setup the provider - beforeAll(() => provider.setup()); - - // Write Pact when all tests done - afterAll(() => provider.finalize()); - - // verify with Pact, and reset expectations - afterEach(() => provider.verify()); - - describe('get /dogs', () => { - beforeAll(() => { - const interaction = { - state: 'i have a list of dogs', - uponReceiving: 'a request for all dogs', - withRequest: { - method: 'GET', - path: '/dogs', - headers: { - // Accept: 'application/problem+json, application/json, text/plain, */*', // <- fails, must use array syntax ❌ - Accept: [ - 'application/problem+json', - 'application/json', - 'text/plain', - '*/*', - ], - }, - }, - willRespondWith: { - status: 200, - headers: { - 'Content-Type': 'application/json', - }, - body: EXPECTED_BODY, - }, - }; - return provider.addInteraction(interaction); - }); - - it('returns the correct response', async () => { - const urlAndPort = { - url: url, - port: port, - }; - const response = await getMeDogs(urlAndPort); - expect(response.data).toEqual(EXPECTED_BODY); - }); - }); -}); From cd579d0aa874f5b4e79cd3145dd32d327380ca4a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 04:55:09 +0000 Subject: [PATCH 04/17] Add status code matcher support (matchStatus, HTTPResponseStatusClass, StatusCodeMatcher) Agent-Logs-Url: https://github.com/pact-foundation/pact-js/sessions/5ef516cc-a979-4b12-9ecf-06f58a7622be Co-authored-by: mefellows <53900+mefellows@users.noreply.github.com> --- src/common/matchingRules.ts | 24 ++++- src/v3/ffi.ts | 16 ++- src/v3/matchers.spec.ts | 103 ++++++++++++++++++++ src/v3/matchers.ts | 30 ++++-- src/v3/types.ts | 27 ++++- src/v4/http/interactionWithPluginRequest.ts | 19 +++- src/v4/http/interactionWithRequest.spec.ts | 102 +++++++++++++++++++ src/v4/http/interactionWithRequest.ts | 19 +++- src/v4/http/types.ts | 5 +- 9 files changed, 329 insertions(+), 16 deletions(-) create mode 100644 src/v4/http/interactionWithRequest.spec.ts diff --git a/src/common/matchingRules.ts b/src/common/matchingRules.ts index 0f631a453..7caf3e2dd 100644 --- a/src/common/matchingRules.ts +++ b/src/common/matchingRules.ts @@ -1,4 +1,4 @@ -import type { Rules, Rule, Matcher } from '../v3/types'; +import type { Rules, Rule, Matcher, StatusCodeMatcher } from '../v3/types'; /** * Converts a matcher to the FFI format expected by pact-core @@ -23,6 +23,28 @@ export const convertMatcherToFFI = ( return result; }; +/** + * Converts a StatusCodeMatcher to the FFI matching rules format expected by pact-core + * @param matcher The status code matcher + * @returns The matching rules in FFI format + */ +export const convertStatusMatcherToFFI = ( + matcher: StatusCodeMatcher, +): Record => { + return { + status: { + $: { + matchers: [ + { + match: 'statusCode', + status: matcher.status, + }, + ], + }, + }, + }; +}; + /** * Validates that the rules parameter is of type Rules * @param rules The rules to validate diff --git a/src/v3/ffi.ts b/src/v3/ffi.ts index 2138219f8..ef7636a11 100644 --- a/src/v3/ffi.ts +++ b/src/v3/ffi.ts @@ -1,10 +1,16 @@ import { forEachObjIndexed } from 'ramda'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; -import type { Matcher, TemplateHeaders, V3Request, V3Response } from './types'; +import type { Matcher, StatusCodeMatcher, TemplateHeaders, V3Request, V3Response } from './types'; import * as MatchersV3 from './matchers'; +import { convertStatusMatcherToFFI } from '../common/matchingRules'; type TemplateHeaderArrayValue = string[] | Matcher[]; +const isStatusCodeMatcher = ( + status: number | StatusCodeMatcher, +): status is StatusCodeMatcher => + MatchersV3.isMatcher(status) && status['pact:matcher:type'] === 'statusCode'; + export const setRequestDetails = ( interaction: ConsumerInteraction, req: V3Request, @@ -42,7 +48,13 @@ export const setResponseDetails = ( interaction: ConsumerInteraction, res: V3Response, ): void => { - interaction.withStatus(res.status); + interaction.withStatus(MatchersV3.reify(res.status)); + + if (isStatusCodeMatcher(res.status)) { + interaction.withResponseMatchingRules( + JSON.stringify(convertStatusMatcherToFFI(res.status)), + ); + } forEachObjIndexed((v, k) => { if (Array.isArray(v)) { diff --git a/src/v3/matchers.spec.ts b/src/v3/matchers.spec.ts index 9521cd53d..8a2413cbe 100644 --- a/src/v3/matchers.spec.ts +++ b/src/v3/matchers.spec.ts @@ -746,4 +746,107 @@ describe('V3 Matchers', () => { }); }); }); + + describe('matchStatus', () => { + it('creates a StatusCodeMatcher for an HTTPResponseStatusClass', () => { + const matcher = MatchersV3.matchStatus( + 200, + MatchersV3.HTTPResponseStatusClass.Success, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'success', + value: 200, + }); + }); + + it('creates a StatusCodeMatcher for a list of status codes', () => { + const matcher = MatchersV3.matchStatus(200, [200, 201]); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: [200, 201], + value: 200, + }); + }); + + it('creates a StatusCodeMatcher for ClientError class', () => { + const matcher = MatchersV3.matchStatus( + 400, + MatchersV3.HTTPResponseStatusClass.ClientError, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'clientError', + value: 400, + }); + }); + + it('creates a StatusCodeMatcher for ServerError class', () => { + const matcher = MatchersV3.matchStatus( + 500, + MatchersV3.HTTPResponseStatusClass.ServerError, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'serverError', + value: 500, + }); + }); + + it('creates a StatusCodeMatcher for Redirect class', () => { + const matcher = MatchersV3.matchStatus( + 301, + MatchersV3.HTTPResponseStatusClass.Redirect, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'redirect', + value: 301, + }); + }); + + it('creates a StatusCodeMatcher for Information class', () => { + const matcher = MatchersV3.matchStatus( + 100, + MatchersV3.HTTPResponseStatusClass.Information, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'information', + value: 100, + }); + }); + + it('creates a StatusCodeMatcher for NonError class', () => { + const matcher = MatchersV3.matchStatus( + 200, + MatchersV3.HTTPResponseStatusClass.NonError, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'nonError', + value: 200, + }); + }); + + it('creates a StatusCodeMatcher for Error class', () => { + const matcher = MatchersV3.matchStatus( + 400, + MatchersV3.HTTPResponseStatusClass.Error, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'error', + value: 400, + }); + }); + + it('reify returns the example value from a StatusCodeMatcher', () => { + const matcher = MatchersV3.matchStatus( + 201, + MatchersV3.HTTPResponseStatusClass.Success, + ); + expect(MatchersV3.reify(matcher)).to.equal(201); + }); + }); }); diff --git a/src/v3/matchers.ts b/src/v3/matchers.ts index d282187cd..07bdde268 100644 --- a/src/v3/matchers.ts +++ b/src/v3/matchers.ts @@ -4,11 +4,13 @@ import RandExp from 'randexp'; import type { ArrayContainsMatcher, DateTimeMatcher, + HTTPResponseStatusClass, Matcher, MaxLikeMatcher, MinLikeMatcher, ProviderStateInjectedValue, RulesMatcher, + StatusCodeMatcher, V3RegexMatcher, } from './types'; @@ -88,6 +90,22 @@ export const eachValueMatches = ( // }, }); +/** + * Matches HTTP status codes either by a class (e.g. 2XX) or a list of specific codes. + * + * @param example Example status code to use in consumer tests + * @param status Allowed status codes - either an HTTPResponseStatusClass (e.g. Success for 2XX) + * or an array of specific status codes (e.g. [200, 201]) + */ +export const matchStatus = ( + example: number, + status: HTTPResponseStatusClass | number[], +): StatusCodeMatcher => ({ + 'pact:matcher:type': 'statusCode', + status, + value: example, +}); + /** * Array where each element must match the given template * @param template Template to base the comparison on @@ -551,24 +569,24 @@ export const matcherValueOrString = (obj: unknown): string => { * Recurse the object removing any underlying matching guff, returning the raw * example content. */ -export function reify(input: unknown): AnyJson { +export function reify(input: unknown): T { if (isMatcher(input)) { - return reify(input.value); + return reify(input.value); } if (Array.isArray(input)) { - return input.map(reify); + return input.map(reify) as unknown as T; } if (typeof input === 'object') { if (input === null) { - return input; + return input as unknown as T; } const objectInput = input as JsonMap; return Object.keys(objectInput).reduce((acc, propName) => { acc[propName] = reify(objectInput[propName]); return acc; - }, {}); + }, {}) as unknown as T; } if ( @@ -576,7 +594,7 @@ export function reify(input: unknown): AnyJson { typeof input === 'string' || typeof input === 'boolean' ) { - return input; + return input as unknown as T; } throw new Error( `Unable to strip matcher from a '${typeof input}', as it is not valid in a Pact description`, diff --git a/src/v3/types.ts b/src/v3/types.ts index 97c63b876..9ec49497b 100644 --- a/src/v3/types.ts +++ b/src/v3/types.ts @@ -46,10 +46,35 @@ export interface ProviderStateInjectedValue extends Matcher { expression: string; } +export interface StatusCodeMatcher extends Matcher { + status: HTTPResponseStatusClass | number[]; +} + export interface RulesMatcher extends Matcher { rules: Matcher[]; } +/** + * Enum for HTTP response status classes used with the status code matcher. + * These values correspond to the status code ranges defined in RFC 7231. + */ +export enum HTTPResponseStatusClass { + // Informational responses (100–199) + Information = 'information', + // Successful responses (200–299) + Success = 'success', + // Redirects (300–399) + Redirect = 'redirect', + // Client errors (400–499) + ClientError = 'clientError', + // Server errors (500–599) + ServerError = 'serverError', + // Non-error response (< 400) + NonError = 'nonError', + // Any error response (>= 400) + Error = 'error', +} + /** * Part of a request or response where matching rules can be applied */ @@ -150,7 +175,7 @@ export interface V3Request { } export interface V3Response { - status: number; + status: number | StatusCodeMatcher; headers?: TemplateHeaders; body?: unknown; contentType?: string; diff --git a/src/v4/http/interactionWithPluginRequest.ts b/src/v4/http/interactionWithPluginRequest.ts index f2f49764d..99ebd9070 100644 --- a/src/v4/http/interactionWithPluginRequest.ts +++ b/src/v4/http/interactionWithPluginRequest.ts @@ -10,6 +10,15 @@ import type { V4PluginResponseBuilderFunc, V4InteractionWithPluginResponse, } from './types'; +import type { StatusCodeMatcher } from '../../v3'; +import { reify } from '../../v3/matchers'; +import { convertStatusMatcherToFFI } from '../../common/matchingRules'; + +const isStatusCodeMatcher = ( + status: number | StatusCodeMatcher, +): status is StatusCodeMatcher => + typeof status === 'object' && + status['pact:matcher:type'] === 'statusCode'; export class InteractionWithPluginRequest implements V4InteractionWithPluginRequest @@ -23,10 +32,16 @@ export class InteractionWithPluginRequest ) {} willRespondWith( - status: number, + status: number | StatusCodeMatcher, builder?: V4PluginResponseBuilderFunc, ): V4InteractionWithPluginResponse { - this.interaction.withStatus(status); + this.interaction.withStatus(reify(status)); + + if (isStatusCodeMatcher(status)) { + this.interaction.withResponseMatchingRules( + JSON.stringify(convertStatusMatcherToFFI(status)), + ); + } if (typeof builder === 'function') { builder(new ResponseWithPluginBuilder(this.interaction)); diff --git a/src/v4/http/interactionWithRequest.spec.ts b/src/v4/http/interactionWithRequest.spec.ts new file mode 100644 index 000000000..93e4251e6 --- /dev/null +++ b/src/v4/http/interactionWithRequest.spec.ts @@ -0,0 +1,102 @@ +import type { ConsumerInteraction, ConsumerPact } from '@pact-foundation/pact-core'; +import * as chai from 'chai'; +import sinon from 'sinon'; +import sinonChai from 'sinon-chai'; +import { InteractionWithRequest } from './interactionWithRequest'; +import { HTTPResponseStatusClass, matchStatus } from '../../v3/matchers'; + +chai.use(sinonChai); + +const { expect } = chai; + +describe('InteractionWithRequest', () => { + let withStatus: sinon.SinonStub; + let withResponseMatchingRules: sinon.SinonStub; + let interaction: ConsumerInteraction; + let pact: ConsumerPact; + let cleanupFn: sinon.SinonStub; + + beforeEach(() => { + withStatus = sinon.stub(); + withResponseMatchingRules = sinon.stub(); + interaction = { + withStatus, + withResponseMatchingRules, + } as unknown as ConsumerInteraction; + pact = { + pactffiCreateMockServerForTransport: sinon.stub().returns(1234), + mockServerMatchedSuccessfully: sinon.stub().returns(true), + mockServerMismatches: sinon.stub().returns([]), + cleanupMockServer: sinon.stub().returns(true), + writePactFile: sinon.stub(), + cleanupPlugins: sinon.stub(), + } as unknown as ConsumerPact; + cleanupFn = sinon.stub(); + }); + + afterEach(() => { + sinon.restore(); + }); + + describe('#willRespondWith', () => { + it('calls withStatus with a plain number', () => { + const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + + req.willRespondWith(200); + + expect(withStatus).to.have.been.calledOnceWith(200); + expect(withResponseMatchingRules).to.not.have.been.called; + }); + + it('calls withStatus with the example value from a StatusCodeMatcher', () => { + const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + const matcher = matchStatus(200, HTTPResponseStatusClass.Success); + + req.willRespondWith(matcher); + + expect(withStatus).to.have.been.calledOnceWith(200); + }); + + it('calls withResponseMatchingRules with the status code matcher FFI format when given a StatusCodeMatcher', () => { + const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + const matcher = matchStatus(200, HTTPResponseStatusClass.Success); + + req.willRespondWith(matcher); + + expect(withResponseMatchingRules).to.have.been.calledOnce; + const rulesJson = JSON.parse(withResponseMatchingRules.firstCall.args[0]); + expect(rulesJson).to.deep.equal({ + status: { + $: { + matchers: [{ match: 'statusCode', status: 'success' }], + }, + }, + }); + }); + + it('calls withResponseMatchingRules with specific status codes', () => { + const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + const matcher = matchStatus(200, [200, 201]); + + req.willRespondWith(matcher); + + expect(withResponseMatchingRules).to.have.been.calledOnce; + const rulesJson = JSON.parse(withResponseMatchingRules.firstCall.args[0]); + expect(rulesJson).to.deep.equal({ + status: { + $: { + matchers: [{ match: 'statusCode', status: [200, 201] }], + }, + }, + }); + }); + + it('does not call withResponseMatchingRules for a plain number', () => { + const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + + req.willRespondWith(201); + + expect(withResponseMatchingRules).to.not.have.been.called; + }); + }); +}); diff --git a/src/v4/http/interactionWithRequest.ts b/src/v4/http/interactionWithRequest.ts index f4c3950b5..8bbf8abad 100644 --- a/src/v4/http/interactionWithRequest.ts +++ b/src/v4/http/interactionWithRequest.ts @@ -10,6 +10,15 @@ import type { V4ResponseBuilderFunc, V4InteractionWithResponse, } from './types'; +import type { StatusCodeMatcher } from '../../v3'; +import { reify } from '../../v3/matchers'; +import { convertStatusMatcherToFFI } from '../../common/matchingRules'; + +const isStatusCodeMatcher = ( + status: number | StatusCodeMatcher, +): status is StatusCodeMatcher => + typeof status === 'object' && + status['pact:matcher:type'] === 'statusCode'; export class InteractionWithRequest implements V4InteractionWithRequest { // tslint:disable:no-empty-function @@ -21,10 +30,16 @@ export class InteractionWithRequest implements V4InteractionWithRequest { ) {} willRespondWith( - status: number, + status: number | StatusCodeMatcher, builder?: V4ResponseBuilderFunc, ): V4InteractionWithResponse { - this.interaction.withStatus(status); + this.interaction.withStatus(reify(status)); + + if (isStatusCodeMatcher(status)) { + this.interaction.withResponseMatchingRules( + JSON.stringify(convertStatusMatcherToFFI(status)), + ); + } if (typeof builder === 'function') { builder(new ResponseBuilder(this.interaction)); diff --git a/src/v4/http/types.ts b/src/v4/http/types.ts index e4fd74334..8b15a499d 100644 --- a/src/v4/http/types.ts +++ b/src/v4/http/types.ts @@ -4,6 +4,7 @@ import type { Path, Rules, SpecificationVersion, + StatusCodeMatcher, TemplateHeaders, TemplateQuery, V3MockServer, @@ -92,7 +93,7 @@ export interface V4InteractionWithCompleteRequest { export interface V4InteractionWithRequest { willRespondWith( - status: number, + status: number | StatusCodeMatcher, builder?: V4ResponseBuilderFunc, ): V4InteractionWithResponse; } @@ -164,7 +165,7 @@ export interface V4InteractionWithPlugin { export interface V4InteractionWithPluginRequest { willRespondWith( - status: number, + status: number | StatusCodeMatcher, builder?: V4PluginResponseBuilderFunc, ): V4InteractionWithPluginResponse; } From c3164a5d7196eb67d277536fb2501e368a2649a7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 04:57:33 +0000 Subject: [PATCH 05/17] Refactor: extract isStatusCodeMatcher to shared utility, add type constraint to reify Agent-Logs-Url: https://github.com/pact-foundation/pact-js/sessions/5ef516cc-a979-4b12-9ecf-06f58a7622be Co-authored-by: mefellows <53900+mefellows@users.noreply.github.com> --- src/v3/ffi.ts | 9 ++------- src/v3/matchers.ts | 10 +++++++++- src/v4/http/interactionWithPluginRequest.ts | 8 +------- src/v4/http/interactionWithRequest.ts | 8 +------- 4 files changed, 13 insertions(+), 22 deletions(-) diff --git a/src/v3/ffi.ts b/src/v3/ffi.ts index ef7636a11..1f363b81f 100644 --- a/src/v3/ffi.ts +++ b/src/v3/ffi.ts @@ -1,16 +1,11 @@ import { forEachObjIndexed } from 'ramda'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; -import type { Matcher, StatusCodeMatcher, TemplateHeaders, V3Request, V3Response } from './types'; +import type { Matcher, TemplateHeaders, V3Request, V3Response } from './types'; import * as MatchersV3 from './matchers'; import { convertStatusMatcherToFFI } from '../common/matchingRules'; type TemplateHeaderArrayValue = string[] | Matcher[]; -const isStatusCodeMatcher = ( - status: number | StatusCodeMatcher, -): status is StatusCodeMatcher => - MatchersV3.isMatcher(status) && status['pact:matcher:type'] === 'statusCode'; - export const setRequestDetails = ( interaction: ConsumerInteraction, req: V3Request, @@ -50,7 +45,7 @@ export const setResponseDetails = ( ): void => { interaction.withStatus(MatchersV3.reify(res.status)); - if (isStatusCodeMatcher(res.status)) { + if (MatchersV3.isStatusCodeMatcher(res.status)) { interaction.withResponseMatchingRules( JSON.stringify(convertStatusMatcherToFFI(res.status)), ); diff --git a/src/v3/matchers.ts b/src/v3/matchers.ts index 07bdde268..ba73009f1 100644 --- a/src/v3/matchers.ts +++ b/src/v3/matchers.ts @@ -565,11 +565,19 @@ export const matcherValueOrString = (obj: unknown): string => { return JSON.stringify(obj); }; +/** + * Type guard to check if a value is a StatusCodeMatcher. + */ +export const isStatusCodeMatcher = ( + status: number | StatusCodeMatcher, +): status is StatusCodeMatcher => + isMatcher(status) && status['pact:matcher:type'] === 'statusCode'; + /** * Recurse the object removing any underlying matching guff, returning the raw * example content. */ -export function reify(input: unknown): T { +export function reify(input: unknown): T { if (isMatcher(input)) { return reify(input.value); } diff --git a/src/v4/http/interactionWithPluginRequest.ts b/src/v4/http/interactionWithPluginRequest.ts index 99ebd9070..384ffe146 100644 --- a/src/v4/http/interactionWithPluginRequest.ts +++ b/src/v4/http/interactionWithPluginRequest.ts @@ -11,15 +11,9 @@ import type { V4InteractionWithPluginResponse, } from './types'; import type { StatusCodeMatcher } from '../../v3'; -import { reify } from '../../v3/matchers'; +import { reify, isStatusCodeMatcher } from '../../v3/matchers'; import { convertStatusMatcherToFFI } from '../../common/matchingRules'; -const isStatusCodeMatcher = ( - status: number | StatusCodeMatcher, -): status is StatusCodeMatcher => - typeof status === 'object' && - status['pact:matcher:type'] === 'statusCode'; - export class InteractionWithPluginRequest implements V4InteractionWithPluginRequest { diff --git a/src/v4/http/interactionWithRequest.ts b/src/v4/http/interactionWithRequest.ts index 8bbf8abad..2848ff359 100644 --- a/src/v4/http/interactionWithRequest.ts +++ b/src/v4/http/interactionWithRequest.ts @@ -11,15 +11,9 @@ import type { V4InteractionWithResponse, } from './types'; import type { StatusCodeMatcher } from '../../v3'; -import { reify } from '../../v3/matchers'; +import { reify, isStatusCodeMatcher } from '../../v3/matchers'; import { convertStatusMatcherToFFI } from '../../common/matchingRules'; -const isStatusCodeMatcher = ( - status: number | StatusCodeMatcher, -): status is StatusCodeMatcher => - typeof status === 'object' && - status['pact:matcher:type'] === 'statusCode'; - export class InteractionWithRequest implements V4InteractionWithRequest { // tslint:disable:no-empty-function constructor( From 63d79d891226abae7badca3b2e904d893333a315 Mon Sep 17 00:00:00 2001 From: JP-Ellis Date: Wed, 6 May 2026 14:14:12 +1000 Subject: [PATCH 06/17] chore: migrate to vitest Replace mocha with vitest for faster test running, and native TS support. Also reduce the number of dependencies by switching to vitest's own assertion library. Signed-off-by: JP-Ellis --- .mocharc.json | 7 - .nycrc | 10 - examples/graphql/package-lock.json | 2415 +++++------- examples/http/package-lock.json | 2415 +++++------- examples/matchers/package-lock.json | 2415 +++++------- examples/messages/package-lock.json | 2403 +++++------- examples/multipart/package-lock.json | 2413 +++++------- examples/plugins/package-lock.json | 2417 +++++------- examples/provider-state/package-lock.json | 2415 +++++------- examples/vitest.config.ts | 7 + examples/xml/package-lock.json | 2415 +++++------- package-lock.json | 3225 ++++++++--------- package.json | 23 +- regression/package-lock.json | 2427 +++++-------- regression/v2/serverless/package-lock.json | 2146 ++++++++++- regression/v2/serverless/package.json | 2 +- src/common/net.spec.ts | 69 +- src/common/request.spec.ts | 41 +- src/dsl/apolloGraphql.spec.ts | 11 +- src/dsl/graphql.spec.ts | 49 +- src/dsl/interaction.spec.ts | 83 +- src/dsl/matchers.spec.ts | 191 +- src/dsl/verifier/proxy/hooks.spec.ts | 31 +- src/dsl/verifier/proxy/parseBody.spec.ts | 25 +- src/dsl/verifier/proxy/proxy.spec.ts | 25 +- src/dsl/verifier/proxy/proxyRequest.spec.ts | 37 +- .../proxy/stateHandler/setupStates.spec.ts | 36 +- .../proxy/stateHandler/stateHandler.spec.ts | 38 +- src/dsl/verifier/verifier.spec.ts | 112 +- src/httpPact/ffi.spec.ts | 44 +- src/httpPact/index.spec.ts | 101 +- src/messageConsumerPact.spec.ts | 39 +- src/messageProviderPact.spec.ts | 109 +- src/pact.integration.spec.ts | 30 +- src/v3/ffi.spec.ts | 5 +- src/v3/matchers.spec.ts | 113 +- src/v3/pact.spec.ts | 77 +- src/v4/http/index.spec.ts | 70 +- src/v4/http/requestBuilder.spec.ts | 28 +- src/v4/http/requestWithPluginBuilder.spec.ts | 22 +- src/v4/http/responseBuilder.spec.ts | 28 +- src/v4/http/responseWithPluginBuilder.spec.ts | 22 +- src/xml/xmlElement.spec.ts | 82 +- tsconfig.json | 3 +- vitest.config.ts | 22 + 45 files changed, 12197 insertions(+), 16501 deletions(-) delete mode 100644 .mocharc.json delete mode 100644 .nycrc create mode 100644 examples/vitest.config.ts create mode 100644 vitest.config.ts diff --git a/.mocharc.json b/.mocharc.json deleted file mode 100644 index bdba013aa..000000000 --- a/.mocharc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "timeout": 60000, - "recursive": true, - "require": ["tsx", "source-map-support/register"], - "spec": ["src/**/*.spec.ts"], - "exit": true -} diff --git a/.nycrc b/.nycrc deleted file mode 100644 index 150d01d17..000000000 --- a/.nycrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "exclude": ["**/*.d.ts", "**/*.spec.ts"], - "extension": [".ts"], - "include": ["src/*.ts", "src/**/*.ts"], - "instrument": true, - "lines": 50, - "reporter": ["text-summary", "html", "lcov"], - "sourceMap": true, - "statements": 50 -} diff --git a/examples/graphql/package-lock.json b/examples/graphql/package-lock.json index 2ecdab9bb..2f2b3cd7b 100644 --- a/examples/graphql/package-lock.json +++ b/examples/graphql/package-lock.json @@ -36,7 +36,7 @@ "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "http-proxy": "^1.18.1", - "https-proxy-agent": "^7.0.6", + "https-proxy-agent": "^9.0.0", "js-base64": "^3.7.8", "lodash": "^4.17.21", "ramda": "^0.32.0", @@ -50,38 +50,38 @@ "@babel/preset-env": "7.29.3", "@biomejs/biome": "2.4.14", "@tsconfig/node20": "20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", "@types/express": "4.17.25", "@types/http-proxy": "1.17.17", "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", "@types/nock": "11.1.0", "@types/node": "24.12.2", "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", + "@vitest/coverage-v8": "^3.0.0", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", - "mocha": "11.7.5", "nock": "14.0.14", - "nyc": "18.0.0", - "proxyquire": "2.1.3", "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", "typedoc": "^0.28.19", - "typescript": "6.0.3" + "typescript": "6.0.3", + "vitest": "^3.0.0" }, "engines": { "node": ">=20" } }, + "../../node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "../../node_modules/@babel/cli": { "version": "7.28.6", "dev": true, @@ -1462,6 +1462,14 @@ "node": ">=6.9.0" } }, + "../../node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "../../node_modules/@biomejs/biome": { "version": "2.4.14", "dev": true, @@ -1626,89 +1634,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "../../node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/@istanbuljs/schema": { "version": "0.1.6", "dev": true, @@ -1870,6 +1795,18 @@ "node": ">=14" } }, + "../../node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "../../node_modules/@shikijs/engine-oniguruma": { "version": "3.23.0", "dev": true, @@ -1909,39 +1846,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../../node_modules/@sinonjs/fake-timers": { - "version": "15.3.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } - }, - "../../node_modules/@sinonjs/samsam": { - "version": "10.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "type-detect": "^4.1.0" - } - }, - "../../node_modules/@sinonjs/samsam/node_modules/type-detect": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/@tsconfig/node20": { "version": "20.1.9", "dev": true, @@ -1965,14 +1869,6 @@ "assertion-error": "^2.0.1" } }, - "../../node_modules/@types/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*" - } - }, "../../node_modules/@types/connect": { "version": "3.4.38", "dev": true, @@ -1986,6 +1882,11 @@ "dev": true, "license": "MIT" }, + "../../node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, "../../node_modules/@types/express": { "version": "4.17.25", "dev": true, @@ -2044,11 +1945,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@types/mocha": { - "version": "10.0.10", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/nock": { "version": "11.1.0", "dev": true, @@ -2115,28 +2011,6 @@ "@types/node": "*" } }, - "../../node_modules/@types/sinon": { - "version": "21.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "../../node_modules/@types/sinon-chai": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "../../node_modules/@types/sinonjs__fake-timers": { - "version": "15.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/stack-utils": { "version": "2.0.3", "dev": true, @@ -2147,96 +2021,321 @@ "dev": true, "license": "MIT" }, - "../../node_modules/accepts": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8": { + "version": "3.2.4", "dev": true, "license": "MIT", "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "../../node_modules/add-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/agent-base": { - "version": "7.1.4", + "../../node_modules/@vitest/coverage-v8/node_modules/balanced-match": { + "version": "4.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">= 14" + "node": "18 || 20 || >=22" } }, - "../../node_modules/aggregate-error": { - "version": "3.1.0", + "../../node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { + "version": "5.0.5", "dev": true, "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "../../node_modules/ansi-regex": { - "version": "5.0.1", + "../../node_modules/@vitest/coverage-v8/node_modules/glob": { + "version": "10.5.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/ansi-styles": { - "version": "4.3.0", + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "balanced-match": "^1.0.0" + } + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/anymatch": { - "version": "3.1.3", + "../../node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", "dev": true, - "license": "ISC", - "optional": true, + "license": "BSD-3-Clause", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "../../node_modules/append-transform": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "10.2.5", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "default-require-extensions": "^3.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/archy": { - "version": "1.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.2", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } }, - "../../node_modules/argparse": { - "version": "2.0.1", + "../../node_modules/@vitest/expect": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/@vitest/mocker": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../../node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/runner": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/snapshot": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/spy": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/utils": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/accepts": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../../node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../../node_modules/agent-base": { + "version": "7.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "../../node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../../node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../../node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "../../node_modules/argparse": { + "version": "2.0.1", "dev": true, "license": "Python-2.0" }, @@ -2261,6 +2360,21 @@ "node": ">=12" } }, + "../../node_modules/ast-v8-to-istanbul": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "../../node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/asynckit": { "version": "0.4.0", "dev": true, @@ -2392,11 +2506,6 @@ "node": ">=8" } }, - "../../node_modules/browser-stdout": { - "version": "1.3.1", - "dev": true, - "license": "ISC" - }, "../../node_modules/browserslist": { "version": "4.28.2", "dev": true, @@ -2442,32 +2551,12 @@ "node": ">= 0.8" } }, - "../../node_modules/caching-transform": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/cac": { + "version": "6.7.14", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "../../node_modules/call-bind-apply-helpers": { @@ -2540,25 +2629,6 @@ ], "license": "CC-BY-4.0" }, - "../../node_modules/chai": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "../../node_modules/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, "../../node_modules/chalk": { "version": "4.1.2", "dev": true, @@ -2611,14 +2681,6 @@ "fsevents": "~2.3.2" } }, - "../../node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "../../node_modules/cliui": { "version": "8.0.1", "dev": true, @@ -2767,11 +2829,6 @@ "node": ">=4" } }, - "../../node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/compare-func": { "version": "2.0.0", "dev": true, @@ -3195,18 +3252,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/default-require-extensions": { - "version": "3.0.1", + "../../node_modules/deep-eql": { + "version": "5.0.2", "dev": true, "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "../../node_modules/delayed-stream": { @@ -3249,14 +3300,6 @@ "node": ">=8" } }, - "../../node_modules/diff": { - "version": "7.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/dot-prop": { "version": "5.3.0", "dev": true, @@ -3428,6 +3471,11 @@ "node": ">= 0.4" } }, + "../../node_modules/es-module-lexer": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/es-object-atoms": { "version": "1.1.1", "dev": true, @@ -3453,11 +3501,6 @@ "node": ">= 0.4" } }, - "../../node_modules/es6-error": { - "version": "4.1.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/esbuild": { "version": "0.27.7", "dev": true, @@ -3519,18 +3562,14 @@ "node": ">=0.8.0" } }, - "../../node_modules/esprima": { - "version": "4.0.1", + "../../node_modules/estree-walker": { + "version": "3.0.3", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "../../node_modules/esutils": { "version": "2.0.3", "dev": true, @@ -3552,6 +3591,14 @@ "dev": true, "license": "MIT" }, + "../../node_modules/expect-type": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "../../node_modules/express": { "version": "5.2.1", "dev": true, @@ -3652,26 +3699,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/fill-keys": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../../node_modules/fill-keys/node_modules/merge-descriptors": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/fill-range": { "version": "7.1.1", "dev": true, @@ -3704,36 +3731,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "../../node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/find-up": { "version": "5.0.0", "dev": true, @@ -3749,14 +3746,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/flat": { - "version": "5.0.2", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, "../../node_modules/follow-redirects": { "version": "1.16.0", "dev": true, @@ -3852,25 +3841,6 @@ "node": ">= 0.8" } }, - "../../node_modules/fromentries": { - "version": "1.3.2", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "../../node_modules/fs-readdir-recursive": { "version": "1.1.0", "dev": true, @@ -3881,6 +3851,18 @@ "dev": true, "license": "ISC" }, + "../../node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "../../node_modules/function-bind": { "version": "1.1.2", "dev": true, @@ -3928,14 +3910,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "../../node_modules/get-pkg-repo": { "version": "4.2.1", "dev": true, @@ -3992,17 +3966,6 @@ "node": ">= 0.4" } }, - "../../node_modules/get-tsconfig": { - "version": "4.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, "../../node_modules/git-raw-commits": { "version": "3.0.0", "dev": true, @@ -4195,29 +4158,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/hasha": { - "version": "5.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "../../node_modules/hasown": { "version": "2.0.3", "dev": true, @@ -4229,14 +4169,6 @@ "node": ">= 0.4" } }, - "../../node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "../../node_modules/help-me": { "version": "5.0.0", "dev": true, @@ -4333,14 +4265,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "../../node_modules/indent-string": { "version": "4.0.0", "dev": true, @@ -4458,22 +4382,6 @@ "node": ">=8" } }, - "../../node_modules/is-object": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/is-plain-obj": { "version": "1.1.0", "dev": true, @@ -4487,17 +4395,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/is-text-path": { "version": "1.0.1", "dev": true, @@ -4509,30 +4406,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/is-windows": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "../../node_modules/isarray": { "version": "0.0.1", "dev": true, @@ -4551,59 +4424,6 @@ "node": ">=8" } }, - "../../node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.4", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-processinfo": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^6.1.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": "20 || >=22" - } - }, "../../node_modules/istanbul-lib-report": { "version": "3.0.1", "dev": true, @@ -4642,19 +4462,6 @@ "node": ">=10" } }, - "../../node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "../../node_modules/istanbul-reports": { "version": "3.2.0", "dev": true, @@ -4699,17 +4506,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/js-yaml": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "../../node_modules/jsesc": { "version": "3.1.0", "dev": true, @@ -4845,30 +4641,15 @@ "dev": true, "license": "MIT" }, - "../../node_modules/lodash.flattendeep": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, "../../node_modules/lodash.ismatch": { "version": "4.4.0", "dev": true, "license": "MIT" }, - "../../node_modules/log-symbols": { - "version": "4.1.0", + "../../node_modules/loupe": { + "version": "3.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "../../node_modules/lru-cache": { "version": "5.1.1", @@ -4883,6 +4664,24 @@ "dev": true, "license": "MIT" }, + "../../node_modules/magic-string": { + "version": "0.30.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "../../node_modules/magicast": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "../../node_modules/make-dir": { "version": "2.1.0", "dev": true, @@ -5211,141 +5010,6 @@ "node": ">=10" } }, - "../../node_modules/mocha": { - "version": "11.7.5", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^4.0.1", - "debug": "^4.3.5", - "diff": "^7.0.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^9.0.5", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "../../node_modules/mocha/node_modules/brace-expansion": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "../../node_modules/mocha/node_modules/chokidar": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/mocha/node_modules/glob": { - "version": "10.5.0", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/minimatch": { - "version": "9.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/readdirp": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../../node_modules/mocha/node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "../../node_modules/modify-values": { "version": "1.0.1", "dev": true, @@ -5354,16 +5018,28 @@ "node": ">=0.10.0" } }, - "../../node_modules/module-not-found-error": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/ms": { "version": "2.1.3", "dev": true, "license": "MIT" }, + "../../node_modules/nanoid": { + "version": "3.3.12", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "../../node_modules/negotiator": { "version": "1.0.0", "dev": true, @@ -5400,17 +5076,6 @@ "node-gyp-build-test": "build-test.js" } }, - "../../node_modules/node-preload": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/node-releases": { "version": "2.0.38", "dev": true, @@ -5475,399 +5140,134 @@ "node": ">=0.10.0" } }, - "../../node_modules/nyc": { - "version": "18.0.0", + "../../node_modules/object-inspect": { + "version": "1.13.4", "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^13.0.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^3.0.0", - "test-exclude": "^8.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/nyc/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/on-exit-leak-free": { + "version": "2.1.2", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/on-finished": { + "version": "2.4.1", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "ee-first": "1.1.1" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", + "../../node_modules/once": { + "version": "1.4.0", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrappy": "1" } }, - "../../node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", + "../../node_modules/outvariant": { + "version": "1.4.3", "dev": true, "license": "MIT" }, - "../../node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/p-locate": { + "version": "5.0.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "p-limit": "^3.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", + "../../node_modules/p-try": { + "version": "2.2.0", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "../../node_modules/nyc/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/package-json-from-dist": { + "version": "1.0.1", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "BlueOak-1.0.0" }, - "../../node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "../../node_modules/nyc/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/parseurl": { + "version": "1.3.3", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, + "license": "MIT", "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", + "../../node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "../../node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", + "../../node_modules/path-expression-matcher": { + "version": "1.5.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "dev": true, - "license": "ISC" - }, - "../../node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "../../node_modules/object-inspect": { - "version": "1.13.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/on-exit-leak-free": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../../node_modules/outvariant": { - "version": "1.4.3", - "dev": true, - "license": "MIT" - }, - "../../node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-map": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../node_modules/package-hash": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "../../node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../../node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/path-expression-matcher": { - "version": "1.5.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/path-is-absolute": { - "version": "1.0.1", + "../../node_modules/path-is-absolute": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { @@ -5935,6 +5335,19 @@ "node": ">=4" } }, + "../../node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "../../node_modules/pathval": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "../../node_modules/picocolors": { "version": "1.1.1", "dev": true, @@ -6044,102 +5457,59 @@ "dev": true, "license": "MIT" }, - "../../node_modules/pkg-dir": { - "version": "4.2.0", + "../../node_modules/postcss": { + "version": "8.5.14", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "../../node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/process-nextick-args": { + "version": "2.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "../../node_modules/pkg-dir/node_modules/locate-path": { + "../../node_modules/process-warning": { "version": "5.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "../../node_modules/propagate": { + "version": "2.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" - } - }, - "../../node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "../../node_modules/process-on-spawn": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-warning": { - "version": "5.0.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "MIT" - }, - "../../node_modules/propagate": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" + "node": ">= 8" } }, "../../node_modules/proxy-addr": { @@ -6162,16 +5532,6 @@ "node": ">=10" } }, - "../../node_modules/proxyquire": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, "../../node_modules/pump": { "version": "3.0.4", "dev": true, @@ -6237,14 +5597,6 @@ "node": ">=4" } }, - "../../node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "../../node_modules/range-parser": { "version": "1.2.1", "dev": true, @@ -6470,17 +5822,6 @@ "regjsparser": "bin/parser" } }, - "../../node_modules/release-zalgo": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "../../node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -6489,11 +5830,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/require-main-filename": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/requires-port": { "version": "1.0.0", "dev": true, @@ -6519,22 +5855,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "../../node_modules/ret": { "version": "0.2.2", "dev": true, @@ -6633,6 +5953,49 @@ "url": "https://github.com/sponsors/isaacs" } }, + "../../node_modules/rollup": { + "version": "4.60.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, "../../node_modules/router": { "version": "2.2.0", "dev": true, @@ -6728,14 +6091,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/serialize-javascript": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "../../node_modules/serve-static": { "version": "2.2.1", "dev": true, @@ -6754,11 +6109,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/setprototypeof": { "version": "1.2.0", "dev": true, @@ -6851,43 +6201,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/signal-exit": { - "version": "3.0.7", + "../../node_modules/siginfo": { + "version": "2.0.0", "dev": true, "license": "ISC" }, - "../../node_modules/sinon": { - "version": "21.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^15.3.2", - "@sinonjs/samsam": "^10.0.2", - "diff": "^8.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "../../node_modules/sinon-chai": { - "version": "4.0.1", - "dev": true, - "license": "(BSD-2-Clause OR WTFPL)", - "peerDependencies": { - "chai": "^5.0.0 || ^6.0.0", - "sinon": ">=4.0.0" - } - }, - "../../node_modules/sinon/node_modules/diff": { - "version": "8.0.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/slash": { "version": "2.0.0", "dev": true, @@ -6912,56 +6230,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../../node_modules/spawn-wrap": { - "version": "3.0.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "cross-spawn": "^7.0.6", - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../../node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/source-map-js": { + "version": "1.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "../../node_modules/spdx-correct": { @@ -7011,11 +6285,6 @@ "readable-stream": "^3.0.0" } }, - "../../node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, "../../node_modules/stack-utils": { "version": "2.0.6", "dev": true, @@ -7035,6 +6304,11 @@ "node": ">=8" } }, + "../../node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, "../../node_modules/statuses": { "version": "2.0.2", "dev": true, @@ -7043,6 +6317,11 @@ "node": ">= 0.8" } }, + "../../node_modules/std-env": { + "version": "3.10.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/strict-event-emitter": { "version": "0.5.1", "dev": true, @@ -7106,14 +6385,6 @@ "node": ">=8" } }, - "../../node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/strip-indent": { "version": "3.0.0", "dev": true, @@ -7125,17 +6396,22 @@ "node": ">=8" } }, - "../../node_modules/strip-json-comments": { - "version": "3.1.1", + "../../node_modules/strip-literal": { + "version": "3.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "js-tokens": "^9.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/antfu" } }, + "../../node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "dev": true, + "license": "MIT" + }, "../../node_modules/strnum": { "version": "2.2.3", "dev": true, @@ -7169,154 +6445,145 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/test-exclude": { - "version": "8.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^13.0.6", - "minimatch": "^10.2.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "../../node_modules/test-exclude/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/text-extensions": { + "version": "1.9.0", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=0.10" } }, - "../../node_modules/test-exclude/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/thread-stream": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "real-require": "^0.2.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=20" } }, - "../../node_modules/test-exclude/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/through": { + "version": "2.3.8", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "../../node_modules/test-exclude/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/through2/node_modules/isarray": { + "version": "1.0.0", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" + "license": "MIT" + }, + "../../node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "../../node_modules/test-exclude/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "safe-buffer": "~5.1.0" } }, - "../../node_modules/test-exclude/node_modules/path-scurry": { - "version": "2.0.2", + "../../node_modules/tinybench": { + "version": "2.9.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/tinyglobby": { + "version": "0.2.16", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "../../node_modules/text-extensions": { - "version": "1.9.0", + "../../node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "../../node_modules/thread-stream": { - "version": "4.0.0", + "../../node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" - }, "engines": { - "node": ">=20" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "../../node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2": { - "version": "2.0.5", + "../../node_modules/tinypool": { + "version": "1.1.1", "dev": true, "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "engines": { + "node": "^18.0.0 || >=20.0.0" } }, - "../../node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", + "../../node_modules/tinyrainbow": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=14.0.0" } }, - "../../node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", + "../../node_modules/tinyspy": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=14.0.0" } }, "../../node_modules/to-regex-range": { @@ -7357,32 +6624,6 @@ "dev": true, "license": "0BSD" }, - "../../node_modules/tsx": { - "version": "4.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "../../node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/type-fest": { "version": "0.18.1", "dev": true, @@ -7412,14 +6653,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "../../node_modules/typedoc": { "version": "0.28.19", "dev": true, @@ -7608,14 +6841,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "../../node_modules/validate-npm-package-license": { "version": "3.0.4", "dev": true, @@ -7633,6 +6858,224 @@ "node": ">= 0.8" } }, + "../../node_modules/vite": { + "version": "7.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "../../node_modules/vite-node": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../../node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../node_modules/vitest": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "../../node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "../../node_modules/which": { "version": "2.0.2", "dev": true, @@ -7647,21 +7090,26 @@ "node": ">= 8" } }, - "../../node_modules/which-module": { - "version": "2.0.1", + "../../node_modules/why-is-node-running": { + "version": "2.3.0", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, "../../node_modules/wordwrap": { "version": "1.0.0", "dev": true, "license": "MIT" }, - "../../node_modules/workerpool": { - "version": "9.3.4", - "dev": true, - "license": "Apache-2.0" - }, "../../node_modules/wrap-ansi": { "version": "7.0.0", "dev": true, @@ -7700,17 +7148,6 @@ "dev": true, "license": "ISC" }, - "../../node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "../../node_modules/xtend": { "version": "4.0.2", "dev": true, @@ -7771,50 +7208,6 @@ "node": ">=10" } }, - "../../node_modules/yargs-unparser": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "dev": true, diff --git a/examples/http/package-lock.json b/examples/http/package-lock.json index c164f08d7..f09f8032b 100644 --- a/examples/http/package-lock.json +++ b/examples/http/package-lock.json @@ -34,7 +34,7 @@ "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "http-proxy": "^1.18.1", - "https-proxy-agent": "^7.0.6", + "https-proxy-agent": "^9.0.0", "js-base64": "^3.7.8", "lodash": "^4.17.21", "ramda": "^0.32.0", @@ -48,38 +48,38 @@ "@babel/preset-env": "7.29.3", "@biomejs/biome": "2.4.14", "@tsconfig/node20": "20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", "@types/express": "4.17.25", "@types/http-proxy": "1.17.17", "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", "@types/nock": "11.1.0", "@types/node": "24.12.2", "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", + "@vitest/coverage-v8": "^3.0.0", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", - "mocha": "11.7.5", "nock": "14.0.14", - "nyc": "18.0.0", - "proxyquire": "2.1.3", "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", "typedoc": "^0.28.19", - "typescript": "6.0.3" + "typescript": "6.0.3", + "vitest": "^3.0.0" }, "engines": { "node": ">=20" } }, + "../../node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "../../node_modules/@babel/cli": { "version": "7.28.6", "dev": true, @@ -1460,6 +1460,14 @@ "node": ">=6.9.0" } }, + "../../node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "../../node_modules/@biomejs/biome": { "version": "2.4.14", "dev": true, @@ -1624,89 +1632,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "../../node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/@istanbuljs/schema": { "version": "0.1.6", "dev": true, @@ -1868,6 +1793,18 @@ "node": ">=14" } }, + "../../node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "../../node_modules/@shikijs/engine-oniguruma": { "version": "3.23.0", "dev": true, @@ -1907,39 +1844,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../../node_modules/@sinonjs/fake-timers": { - "version": "15.3.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } - }, - "../../node_modules/@sinonjs/samsam": { - "version": "10.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "type-detect": "^4.1.0" - } - }, - "../../node_modules/@sinonjs/samsam/node_modules/type-detect": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/@tsconfig/node20": { "version": "20.1.9", "dev": true, @@ -1963,14 +1867,6 @@ "assertion-error": "^2.0.1" } }, - "../../node_modules/@types/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*" - } - }, "../../node_modules/@types/connect": { "version": "3.4.38", "dev": true, @@ -1984,6 +1880,11 @@ "dev": true, "license": "MIT" }, + "../../node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, "../../node_modules/@types/express": { "version": "4.17.25", "dev": true, @@ -2042,11 +1943,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@types/mocha": { - "version": "10.0.10", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/nock": { "version": "11.1.0", "dev": true, @@ -2113,28 +2009,6 @@ "@types/node": "*" } }, - "../../node_modules/@types/sinon": { - "version": "21.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "../../node_modules/@types/sinon-chai": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "../../node_modules/@types/sinonjs__fake-timers": { - "version": "15.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/stack-utils": { "version": "2.0.3", "dev": true, @@ -2145,96 +2019,321 @@ "dev": true, "license": "MIT" }, - "../../node_modules/accepts": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8": { + "version": "3.2.4", "dev": true, "license": "MIT", "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "../../node_modules/add-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/agent-base": { - "version": "7.1.4", + "../../node_modules/@vitest/coverage-v8/node_modules/balanced-match": { + "version": "4.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">= 14" + "node": "18 || 20 || >=22" } }, - "../../node_modules/aggregate-error": { - "version": "3.1.0", + "../../node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { + "version": "5.0.5", "dev": true, "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "../../node_modules/ansi-regex": { - "version": "5.0.1", + "../../node_modules/@vitest/coverage-v8/node_modules/glob": { + "version": "10.5.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/ansi-styles": { - "version": "4.3.0", + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "balanced-match": "^1.0.0" + } + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/anymatch": { - "version": "3.1.3", + "../../node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", "dev": true, - "license": "ISC", - "optional": true, + "license": "BSD-3-Clause", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "../../node_modules/append-transform": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "10.2.5", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "default-require-extensions": "^3.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/archy": { - "version": "1.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.2", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } }, - "../../node_modules/argparse": { - "version": "2.0.1", + "../../node_modules/@vitest/expect": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/@vitest/mocker": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../../node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/runner": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/snapshot": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/spy": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/utils": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/accepts": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../../node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../../node_modules/agent-base": { + "version": "7.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "../../node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../../node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../../node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "../../node_modules/argparse": { + "version": "2.0.1", "dev": true, "license": "Python-2.0" }, @@ -2259,6 +2358,21 @@ "node": ">=12" } }, + "../../node_modules/ast-v8-to-istanbul": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "../../node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/asynckit": { "version": "0.4.0", "dev": true, @@ -2390,11 +2504,6 @@ "node": ">=8" } }, - "../../node_modules/browser-stdout": { - "version": "1.3.1", - "dev": true, - "license": "ISC" - }, "../../node_modules/browserslist": { "version": "4.28.2", "dev": true, @@ -2440,32 +2549,12 @@ "node": ">= 0.8" } }, - "../../node_modules/caching-transform": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/cac": { + "version": "6.7.14", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "../../node_modules/call-bind-apply-helpers": { @@ -2538,25 +2627,6 @@ ], "license": "CC-BY-4.0" }, - "../../node_modules/chai": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "../../node_modules/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, "../../node_modules/chalk": { "version": "4.1.2", "dev": true, @@ -2609,14 +2679,6 @@ "fsevents": "~2.3.2" } }, - "../../node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "../../node_modules/cliui": { "version": "8.0.1", "dev": true, @@ -2765,11 +2827,6 @@ "node": ">=4" } }, - "../../node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/compare-func": { "version": "2.0.0", "dev": true, @@ -3193,18 +3250,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/default-require-extensions": { - "version": "3.0.1", + "../../node_modules/deep-eql": { + "version": "5.0.2", "dev": true, "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "../../node_modules/delayed-stream": { @@ -3247,14 +3298,6 @@ "node": ">=8" } }, - "../../node_modules/diff": { - "version": "7.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/dot-prop": { "version": "5.3.0", "dev": true, @@ -3426,6 +3469,11 @@ "node": ">= 0.4" } }, + "../../node_modules/es-module-lexer": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/es-object-atoms": { "version": "1.1.1", "dev": true, @@ -3451,11 +3499,6 @@ "node": ">= 0.4" } }, - "../../node_modules/es6-error": { - "version": "4.1.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/esbuild": { "version": "0.27.7", "dev": true, @@ -3517,18 +3560,14 @@ "node": ">=0.8.0" } }, - "../../node_modules/esprima": { - "version": "4.0.1", + "../../node_modules/estree-walker": { + "version": "3.0.3", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "../../node_modules/esutils": { "version": "2.0.3", "dev": true, @@ -3550,6 +3589,14 @@ "dev": true, "license": "MIT" }, + "../../node_modules/expect-type": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "../../node_modules/express": { "version": "5.2.1", "dev": true, @@ -3650,26 +3697,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/fill-keys": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../../node_modules/fill-keys/node_modules/merge-descriptors": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/fill-range": { "version": "7.1.1", "dev": true, @@ -3702,36 +3729,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "../../node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/find-up": { "version": "5.0.0", "dev": true, @@ -3747,14 +3744,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/flat": { - "version": "5.0.2", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, "../../node_modules/follow-redirects": { "version": "1.16.0", "dev": true, @@ -3850,25 +3839,6 @@ "node": ">= 0.8" } }, - "../../node_modules/fromentries": { - "version": "1.3.2", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "../../node_modules/fs-readdir-recursive": { "version": "1.1.0", "dev": true, @@ -3879,6 +3849,18 @@ "dev": true, "license": "ISC" }, + "../../node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "../../node_modules/function-bind": { "version": "1.1.2", "dev": true, @@ -3926,14 +3908,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "../../node_modules/get-pkg-repo": { "version": "4.2.1", "dev": true, @@ -3990,17 +3964,6 @@ "node": ">= 0.4" } }, - "../../node_modules/get-tsconfig": { - "version": "4.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, "../../node_modules/git-raw-commits": { "version": "3.0.0", "dev": true, @@ -4193,29 +4156,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/hasha": { - "version": "5.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "../../node_modules/hasown": { "version": "2.0.3", "dev": true, @@ -4227,14 +4167,6 @@ "node": ">= 0.4" } }, - "../../node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "../../node_modules/help-me": { "version": "5.0.0", "dev": true, @@ -4331,14 +4263,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "../../node_modules/indent-string": { "version": "4.0.0", "dev": true, @@ -4456,22 +4380,6 @@ "node": ">=8" } }, - "../../node_modules/is-object": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/is-plain-obj": { "version": "1.1.0", "dev": true, @@ -4485,17 +4393,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/is-text-path": { "version": "1.0.1", "dev": true, @@ -4507,30 +4404,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/is-windows": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "../../node_modules/isarray": { "version": "0.0.1", "dev": true, @@ -4549,59 +4422,6 @@ "node": ">=8" } }, - "../../node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.4", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-processinfo": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^6.1.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": "20 || >=22" - } - }, "../../node_modules/istanbul-lib-report": { "version": "3.0.1", "dev": true, @@ -4640,19 +4460,6 @@ "node": ">=10" } }, - "../../node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "../../node_modules/istanbul-reports": { "version": "3.2.0", "dev": true, @@ -4697,17 +4504,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/js-yaml": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "../../node_modules/jsesc": { "version": "3.1.0", "dev": true, @@ -4843,30 +4639,15 @@ "dev": true, "license": "MIT" }, - "../../node_modules/lodash.flattendeep": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, "../../node_modules/lodash.ismatch": { "version": "4.4.0", "dev": true, "license": "MIT" }, - "../../node_modules/log-symbols": { - "version": "4.1.0", + "../../node_modules/loupe": { + "version": "3.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "../../node_modules/lru-cache": { "version": "5.1.1", @@ -4881,6 +4662,24 @@ "dev": true, "license": "MIT" }, + "../../node_modules/magic-string": { + "version": "0.30.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "../../node_modules/magicast": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "../../node_modules/make-dir": { "version": "2.1.0", "dev": true, @@ -5209,141 +5008,6 @@ "node": ">=10" } }, - "../../node_modules/mocha": { - "version": "11.7.5", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^4.0.1", - "debug": "^4.3.5", - "diff": "^7.0.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^9.0.5", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "../../node_modules/mocha/node_modules/brace-expansion": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "../../node_modules/mocha/node_modules/chokidar": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/mocha/node_modules/glob": { - "version": "10.5.0", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/minimatch": { - "version": "9.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/readdirp": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../../node_modules/mocha/node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "../../node_modules/modify-values": { "version": "1.0.1", "dev": true, @@ -5352,16 +5016,28 @@ "node": ">=0.10.0" } }, - "../../node_modules/module-not-found-error": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/ms": { "version": "2.1.3", "dev": true, "license": "MIT" }, + "../../node_modules/nanoid": { + "version": "3.3.12", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "../../node_modules/negotiator": { "version": "1.0.0", "dev": true, @@ -5398,17 +5074,6 @@ "node-gyp-build-test": "build-test.js" } }, - "../../node_modules/node-preload": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/node-releases": { "version": "2.0.38", "dev": true, @@ -5473,399 +5138,134 @@ "node": ">=0.10.0" } }, - "../../node_modules/nyc": { - "version": "18.0.0", + "../../node_modules/object-inspect": { + "version": "1.13.4", "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^13.0.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^3.0.0", - "test-exclude": "^8.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/nyc/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/on-exit-leak-free": { + "version": "2.1.2", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/on-finished": { + "version": "2.4.1", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "ee-first": "1.1.1" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", + "../../node_modules/once": { + "version": "1.4.0", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrappy": "1" } }, - "../../node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", + "../../node_modules/outvariant": { + "version": "1.4.3", "dev": true, "license": "MIT" }, - "../../node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/p-locate": { + "version": "5.0.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "p-limit": "^3.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", + "../../node_modules/p-try": { + "version": "2.2.0", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "../../node_modules/nyc/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/package-json-from-dist": { + "version": "1.0.1", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "BlueOak-1.0.0" }, - "../../node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "../../node_modules/nyc/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/parseurl": { + "version": "1.3.3", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, + "license": "MIT", "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", + "../../node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "../../node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", + "../../node_modules/path-expression-matcher": { + "version": "1.5.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "dev": true, - "license": "ISC" - }, - "../../node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "../../node_modules/object-inspect": { - "version": "1.13.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/on-exit-leak-free": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../../node_modules/outvariant": { - "version": "1.4.3", - "dev": true, - "license": "MIT" - }, - "../../node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-map": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../node_modules/package-hash": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "../../node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../../node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/path-expression-matcher": { - "version": "1.5.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/path-is-absolute": { - "version": "1.0.1", + "../../node_modules/path-is-absolute": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { @@ -5933,6 +5333,19 @@ "node": ">=4" } }, + "../../node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "../../node_modules/pathval": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "../../node_modules/picocolors": { "version": "1.1.1", "dev": true, @@ -6042,102 +5455,59 @@ "dev": true, "license": "MIT" }, - "../../node_modules/pkg-dir": { - "version": "4.2.0", + "../../node_modules/postcss": { + "version": "8.5.14", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "../../node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/process-nextick-args": { + "version": "2.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "../../node_modules/pkg-dir/node_modules/locate-path": { + "../../node_modules/process-warning": { "version": "5.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "../../node_modules/propagate": { + "version": "2.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" - } - }, - "../../node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "../../node_modules/process-on-spawn": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-warning": { - "version": "5.0.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "MIT" - }, - "../../node_modules/propagate": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" + "node": ">= 8" } }, "../../node_modules/proxy-addr": { @@ -6160,16 +5530,6 @@ "node": ">=10" } }, - "../../node_modules/proxyquire": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, "../../node_modules/pump": { "version": "3.0.4", "dev": true, @@ -6235,14 +5595,6 @@ "node": ">=4" } }, - "../../node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "../../node_modules/range-parser": { "version": "1.2.1", "dev": true, @@ -6468,17 +5820,6 @@ "regjsparser": "bin/parser" } }, - "../../node_modules/release-zalgo": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "../../node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -6487,11 +5828,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/require-main-filename": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/requires-port": { "version": "1.0.0", "dev": true, @@ -6517,22 +5853,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "../../node_modules/ret": { "version": "0.2.2", "dev": true, @@ -6631,6 +5951,49 @@ "url": "https://github.com/sponsors/isaacs" } }, + "../../node_modules/rollup": { + "version": "4.60.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, "../../node_modules/router": { "version": "2.2.0", "dev": true, @@ -6726,14 +6089,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/serialize-javascript": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "../../node_modules/serve-static": { "version": "2.2.1", "dev": true, @@ -6752,11 +6107,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/setprototypeof": { "version": "1.2.0", "dev": true, @@ -6849,43 +6199,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/signal-exit": { - "version": "3.0.7", + "../../node_modules/siginfo": { + "version": "2.0.0", "dev": true, "license": "ISC" }, - "../../node_modules/sinon": { - "version": "21.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^15.3.2", - "@sinonjs/samsam": "^10.0.2", - "diff": "^8.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "../../node_modules/sinon-chai": { - "version": "4.0.1", - "dev": true, - "license": "(BSD-2-Clause OR WTFPL)", - "peerDependencies": { - "chai": "^5.0.0 || ^6.0.0", - "sinon": ">=4.0.0" - } - }, - "../../node_modules/sinon/node_modules/diff": { - "version": "8.0.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/slash": { "version": "2.0.0", "dev": true, @@ -6910,56 +6228,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../../node_modules/spawn-wrap": { - "version": "3.0.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "cross-spawn": "^7.0.6", - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../../node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/source-map-js": { + "version": "1.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "../../node_modules/spdx-correct": { @@ -7009,11 +6283,6 @@ "readable-stream": "^3.0.0" } }, - "../../node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, "../../node_modules/stack-utils": { "version": "2.0.6", "dev": true, @@ -7033,6 +6302,11 @@ "node": ">=8" } }, + "../../node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, "../../node_modules/statuses": { "version": "2.0.2", "dev": true, @@ -7041,6 +6315,11 @@ "node": ">= 0.8" } }, + "../../node_modules/std-env": { + "version": "3.10.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/strict-event-emitter": { "version": "0.5.1", "dev": true, @@ -7104,14 +6383,6 @@ "node": ">=8" } }, - "../../node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/strip-indent": { "version": "3.0.0", "dev": true, @@ -7123,17 +6394,22 @@ "node": ">=8" } }, - "../../node_modules/strip-json-comments": { - "version": "3.1.1", + "../../node_modules/strip-literal": { + "version": "3.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "js-tokens": "^9.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/antfu" } }, + "../../node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "dev": true, + "license": "MIT" + }, "../../node_modules/strnum": { "version": "2.2.3", "dev": true, @@ -7167,154 +6443,145 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/test-exclude": { - "version": "8.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^13.0.6", - "minimatch": "^10.2.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "../../node_modules/test-exclude/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/text-extensions": { + "version": "1.9.0", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=0.10" } }, - "../../node_modules/test-exclude/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/thread-stream": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "real-require": "^0.2.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=20" } }, - "../../node_modules/test-exclude/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/through": { + "version": "2.3.8", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "../../node_modules/test-exclude/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/through2/node_modules/isarray": { + "version": "1.0.0", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" + "license": "MIT" + }, + "../../node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "../../node_modules/test-exclude/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "safe-buffer": "~5.1.0" } }, - "../../node_modules/test-exclude/node_modules/path-scurry": { - "version": "2.0.2", + "../../node_modules/tinybench": { + "version": "2.9.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/tinyglobby": { + "version": "0.2.16", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "../../node_modules/text-extensions": { - "version": "1.9.0", + "../../node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "../../node_modules/thread-stream": { - "version": "4.0.0", + "../../node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" - }, "engines": { - "node": ">=20" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "../../node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2": { - "version": "2.0.5", + "../../node_modules/tinypool": { + "version": "1.1.1", "dev": true, "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "engines": { + "node": "^18.0.0 || >=20.0.0" } }, - "../../node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", + "../../node_modules/tinyrainbow": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=14.0.0" } }, - "../../node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", + "../../node_modules/tinyspy": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=14.0.0" } }, "../../node_modules/to-regex-range": { @@ -7355,32 +6622,6 @@ "dev": true, "license": "0BSD" }, - "../../node_modules/tsx": { - "version": "4.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "../../node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/type-fest": { "version": "0.18.1", "dev": true, @@ -7410,14 +6651,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "../../node_modules/typedoc": { "version": "0.28.19", "dev": true, @@ -7606,14 +6839,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "../../node_modules/validate-npm-package-license": { "version": "3.0.4", "dev": true, @@ -7631,6 +6856,224 @@ "node": ">= 0.8" } }, + "../../node_modules/vite": { + "version": "7.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "../../node_modules/vite-node": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../../node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../node_modules/vitest": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "../../node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "../../node_modules/which": { "version": "2.0.2", "dev": true, @@ -7645,21 +7088,26 @@ "node": ">= 8" } }, - "../../node_modules/which-module": { - "version": "2.0.1", + "../../node_modules/why-is-node-running": { + "version": "2.3.0", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, "../../node_modules/wordwrap": { "version": "1.0.0", "dev": true, "license": "MIT" }, - "../../node_modules/workerpool": { - "version": "9.3.4", - "dev": true, - "license": "Apache-2.0" - }, "../../node_modules/wrap-ansi": { "version": "7.0.0", "dev": true, @@ -7698,17 +7146,6 @@ "dev": true, "license": "ISC" }, - "../../node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "../../node_modules/xtend": { "version": "4.0.2", "dev": true, @@ -7769,50 +7206,6 @@ "node": ">=10" } }, - "../../node_modules/yargs-unparser": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "dev": true, diff --git a/examples/matchers/package-lock.json b/examples/matchers/package-lock.json index 01e321e4a..3683d3be1 100644 --- a/examples/matchers/package-lock.json +++ b/examples/matchers/package-lock.json @@ -34,7 +34,7 @@ "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "http-proxy": "^1.18.1", - "https-proxy-agent": "^7.0.6", + "https-proxy-agent": "^9.0.0", "js-base64": "^3.7.8", "lodash": "^4.17.21", "ramda": "^0.32.0", @@ -48,38 +48,38 @@ "@babel/preset-env": "7.29.3", "@biomejs/biome": "2.4.14", "@tsconfig/node20": "20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", "@types/express": "4.17.25", "@types/http-proxy": "1.17.17", "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", "@types/nock": "11.1.0", "@types/node": "24.12.2", "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", + "@vitest/coverage-v8": "^3.0.0", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", - "mocha": "11.7.5", "nock": "14.0.14", - "nyc": "18.0.0", - "proxyquire": "2.1.3", "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", "typedoc": "^0.28.19", - "typescript": "6.0.3" + "typescript": "6.0.3", + "vitest": "^3.0.0" }, "engines": { "node": ">=20" } }, + "../../node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "../../node_modules/@babel/cli": { "version": "7.28.6", "dev": true, @@ -1460,6 +1460,14 @@ "node": ">=6.9.0" } }, + "../../node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "../../node_modules/@biomejs/biome": { "version": "2.4.14", "dev": true, @@ -1624,89 +1632,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "../../node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/@istanbuljs/schema": { "version": "0.1.6", "dev": true, @@ -1868,6 +1793,18 @@ "node": ">=14" } }, + "../../node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "../../node_modules/@shikijs/engine-oniguruma": { "version": "3.23.0", "dev": true, @@ -1907,39 +1844,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../../node_modules/@sinonjs/fake-timers": { - "version": "15.3.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } - }, - "../../node_modules/@sinonjs/samsam": { - "version": "10.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "type-detect": "^4.1.0" - } - }, - "../../node_modules/@sinonjs/samsam/node_modules/type-detect": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/@tsconfig/node20": { "version": "20.1.9", "dev": true, @@ -1963,14 +1867,6 @@ "assertion-error": "^2.0.1" } }, - "../../node_modules/@types/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*" - } - }, "../../node_modules/@types/connect": { "version": "3.4.38", "dev": true, @@ -1984,6 +1880,11 @@ "dev": true, "license": "MIT" }, + "../../node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, "../../node_modules/@types/express": { "version": "4.17.25", "dev": true, @@ -2042,11 +1943,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@types/mocha": { - "version": "10.0.10", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/nock": { "version": "11.1.0", "dev": true, @@ -2113,28 +2009,6 @@ "@types/node": "*" } }, - "../../node_modules/@types/sinon": { - "version": "21.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "../../node_modules/@types/sinon-chai": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "../../node_modules/@types/sinonjs__fake-timers": { - "version": "15.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/stack-utils": { "version": "2.0.3", "dev": true, @@ -2145,96 +2019,321 @@ "dev": true, "license": "MIT" }, - "../../node_modules/accepts": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8": { + "version": "3.2.4", "dev": true, "license": "MIT", "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "../../node_modules/add-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/agent-base": { - "version": "7.1.4", + "../../node_modules/@vitest/coverage-v8/node_modules/balanced-match": { + "version": "4.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">= 14" + "node": "18 || 20 || >=22" } }, - "../../node_modules/aggregate-error": { - "version": "3.1.0", + "../../node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { + "version": "5.0.5", "dev": true, "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "../../node_modules/ansi-regex": { - "version": "5.0.1", + "../../node_modules/@vitest/coverage-v8/node_modules/glob": { + "version": "10.5.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/ansi-styles": { - "version": "4.3.0", + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "balanced-match": "^1.0.0" + } + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/anymatch": { - "version": "3.1.3", + "../../node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", "dev": true, - "license": "ISC", - "optional": true, + "license": "BSD-3-Clause", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "../../node_modules/append-transform": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "10.2.5", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "default-require-extensions": "^3.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/archy": { - "version": "1.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.2", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } }, - "../../node_modules/argparse": { - "version": "2.0.1", + "../../node_modules/@vitest/expect": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/@vitest/mocker": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../../node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/runner": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/snapshot": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/spy": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/utils": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/accepts": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../../node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../../node_modules/agent-base": { + "version": "7.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "../../node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../../node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../../node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "../../node_modules/argparse": { + "version": "2.0.1", "dev": true, "license": "Python-2.0" }, @@ -2259,6 +2358,21 @@ "node": ">=12" } }, + "../../node_modules/ast-v8-to-istanbul": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "../../node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/asynckit": { "version": "0.4.0", "dev": true, @@ -2390,11 +2504,6 @@ "node": ">=8" } }, - "../../node_modules/browser-stdout": { - "version": "1.3.1", - "dev": true, - "license": "ISC" - }, "../../node_modules/browserslist": { "version": "4.28.2", "dev": true, @@ -2440,32 +2549,12 @@ "node": ">= 0.8" } }, - "../../node_modules/caching-transform": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/cac": { + "version": "6.7.14", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "../../node_modules/call-bind-apply-helpers": { @@ -2538,25 +2627,6 @@ ], "license": "CC-BY-4.0" }, - "../../node_modules/chai": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "../../node_modules/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, "../../node_modules/chalk": { "version": "4.1.2", "dev": true, @@ -2609,14 +2679,6 @@ "fsevents": "~2.3.2" } }, - "../../node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "../../node_modules/cliui": { "version": "8.0.1", "dev": true, @@ -2765,11 +2827,6 @@ "node": ">=4" } }, - "../../node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/compare-func": { "version": "2.0.0", "dev": true, @@ -3193,18 +3250,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/default-require-extensions": { - "version": "3.0.1", + "../../node_modules/deep-eql": { + "version": "5.0.2", "dev": true, "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "../../node_modules/delayed-stream": { @@ -3247,14 +3298,6 @@ "node": ">=8" } }, - "../../node_modules/diff": { - "version": "7.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/dot-prop": { "version": "5.3.0", "dev": true, @@ -3426,6 +3469,11 @@ "node": ">= 0.4" } }, + "../../node_modules/es-module-lexer": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/es-object-atoms": { "version": "1.1.1", "dev": true, @@ -3451,11 +3499,6 @@ "node": ">= 0.4" } }, - "../../node_modules/es6-error": { - "version": "4.1.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/esbuild": { "version": "0.27.7", "dev": true, @@ -3517,18 +3560,14 @@ "node": ">=0.8.0" } }, - "../../node_modules/esprima": { - "version": "4.0.1", + "../../node_modules/estree-walker": { + "version": "3.0.3", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "../../node_modules/esutils": { "version": "2.0.3", "dev": true, @@ -3550,6 +3589,14 @@ "dev": true, "license": "MIT" }, + "../../node_modules/expect-type": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "../../node_modules/express": { "version": "5.2.1", "dev": true, @@ -3650,26 +3697,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/fill-keys": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../../node_modules/fill-keys/node_modules/merge-descriptors": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/fill-range": { "version": "7.1.1", "dev": true, @@ -3702,36 +3729,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "../../node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/find-up": { "version": "5.0.0", "dev": true, @@ -3747,14 +3744,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/flat": { - "version": "5.0.2", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, "../../node_modules/follow-redirects": { "version": "1.16.0", "dev": true, @@ -3850,25 +3839,6 @@ "node": ">= 0.8" } }, - "../../node_modules/fromentries": { - "version": "1.3.2", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "../../node_modules/fs-readdir-recursive": { "version": "1.1.0", "dev": true, @@ -3879,6 +3849,18 @@ "dev": true, "license": "ISC" }, + "../../node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "../../node_modules/function-bind": { "version": "1.1.2", "dev": true, @@ -3926,14 +3908,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "../../node_modules/get-pkg-repo": { "version": "4.2.1", "dev": true, @@ -3990,17 +3964,6 @@ "node": ">= 0.4" } }, - "../../node_modules/get-tsconfig": { - "version": "4.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, "../../node_modules/git-raw-commits": { "version": "3.0.0", "dev": true, @@ -4193,29 +4156,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/hasha": { - "version": "5.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "../../node_modules/hasown": { "version": "2.0.3", "dev": true, @@ -4227,14 +4167,6 @@ "node": ">= 0.4" } }, - "../../node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "../../node_modules/help-me": { "version": "5.0.0", "dev": true, @@ -4331,14 +4263,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "../../node_modules/indent-string": { "version": "4.0.0", "dev": true, @@ -4456,22 +4380,6 @@ "node": ">=8" } }, - "../../node_modules/is-object": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/is-plain-obj": { "version": "1.1.0", "dev": true, @@ -4485,17 +4393,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/is-text-path": { "version": "1.0.1", "dev": true, @@ -4507,30 +4404,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/is-windows": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "../../node_modules/isarray": { "version": "0.0.1", "dev": true, @@ -4549,59 +4422,6 @@ "node": ">=8" } }, - "../../node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.4", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-processinfo": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^6.1.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": "20 || >=22" - } - }, "../../node_modules/istanbul-lib-report": { "version": "3.0.1", "dev": true, @@ -4640,19 +4460,6 @@ "node": ">=10" } }, - "../../node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "../../node_modules/istanbul-reports": { "version": "3.2.0", "dev": true, @@ -4697,17 +4504,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/js-yaml": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "../../node_modules/jsesc": { "version": "3.1.0", "dev": true, @@ -4843,30 +4639,15 @@ "dev": true, "license": "MIT" }, - "../../node_modules/lodash.flattendeep": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, "../../node_modules/lodash.ismatch": { "version": "4.4.0", "dev": true, "license": "MIT" }, - "../../node_modules/log-symbols": { - "version": "4.1.0", + "../../node_modules/loupe": { + "version": "3.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "../../node_modules/lru-cache": { "version": "5.1.1", @@ -4881,6 +4662,24 @@ "dev": true, "license": "MIT" }, + "../../node_modules/magic-string": { + "version": "0.30.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "../../node_modules/magicast": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "../../node_modules/make-dir": { "version": "2.1.0", "dev": true, @@ -5209,141 +5008,6 @@ "node": ">=10" } }, - "../../node_modules/mocha": { - "version": "11.7.5", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^4.0.1", - "debug": "^4.3.5", - "diff": "^7.0.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^9.0.5", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "../../node_modules/mocha/node_modules/brace-expansion": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "../../node_modules/mocha/node_modules/chokidar": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/mocha/node_modules/glob": { - "version": "10.5.0", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/minimatch": { - "version": "9.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/readdirp": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../../node_modules/mocha/node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "../../node_modules/modify-values": { "version": "1.0.1", "dev": true, @@ -5352,16 +5016,28 @@ "node": ">=0.10.0" } }, - "../../node_modules/module-not-found-error": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/ms": { "version": "2.1.3", "dev": true, "license": "MIT" }, + "../../node_modules/nanoid": { + "version": "3.3.12", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "../../node_modules/negotiator": { "version": "1.0.0", "dev": true, @@ -5398,17 +5074,6 @@ "node-gyp-build-test": "build-test.js" } }, - "../../node_modules/node-preload": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/node-releases": { "version": "2.0.38", "dev": true, @@ -5473,399 +5138,134 @@ "node": ">=0.10.0" } }, - "../../node_modules/nyc": { - "version": "18.0.0", + "../../node_modules/object-inspect": { + "version": "1.13.4", "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^13.0.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^3.0.0", - "test-exclude": "^8.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/nyc/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/on-exit-leak-free": { + "version": "2.1.2", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/on-finished": { + "version": "2.4.1", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "ee-first": "1.1.1" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", + "../../node_modules/once": { + "version": "1.4.0", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrappy": "1" } }, - "../../node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", + "../../node_modules/outvariant": { + "version": "1.4.3", "dev": true, "license": "MIT" }, - "../../node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/p-locate": { + "version": "5.0.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "p-limit": "^3.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", + "../../node_modules/p-try": { + "version": "2.2.0", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "../../node_modules/nyc/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/package-json-from-dist": { + "version": "1.0.1", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "BlueOak-1.0.0" }, - "../../node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "../../node_modules/nyc/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/parseurl": { + "version": "1.3.3", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, + "license": "MIT", "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", + "../../node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "../../node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", + "../../node_modules/path-expression-matcher": { + "version": "1.5.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "dev": true, - "license": "ISC" - }, - "../../node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "../../node_modules/object-inspect": { - "version": "1.13.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/on-exit-leak-free": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../../node_modules/outvariant": { - "version": "1.4.3", - "dev": true, - "license": "MIT" - }, - "../../node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-map": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../node_modules/package-hash": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "../../node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../../node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/path-expression-matcher": { - "version": "1.5.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/path-is-absolute": { - "version": "1.0.1", + "../../node_modules/path-is-absolute": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { @@ -5933,6 +5333,19 @@ "node": ">=4" } }, + "../../node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "../../node_modules/pathval": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "../../node_modules/picocolors": { "version": "1.1.1", "dev": true, @@ -6042,102 +5455,59 @@ "dev": true, "license": "MIT" }, - "../../node_modules/pkg-dir": { - "version": "4.2.0", + "../../node_modules/postcss": { + "version": "8.5.14", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "../../node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/process-nextick-args": { + "version": "2.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "../../node_modules/pkg-dir/node_modules/locate-path": { + "../../node_modules/process-warning": { "version": "5.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "../../node_modules/propagate": { + "version": "2.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" - } - }, - "../../node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "../../node_modules/process-on-spawn": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-warning": { - "version": "5.0.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "MIT" - }, - "../../node_modules/propagate": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" + "node": ">= 8" } }, "../../node_modules/proxy-addr": { @@ -6160,16 +5530,6 @@ "node": ">=10" } }, - "../../node_modules/proxyquire": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, "../../node_modules/pump": { "version": "3.0.4", "dev": true, @@ -6235,14 +5595,6 @@ "node": ">=4" } }, - "../../node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "../../node_modules/range-parser": { "version": "1.2.1", "dev": true, @@ -6468,17 +5820,6 @@ "regjsparser": "bin/parser" } }, - "../../node_modules/release-zalgo": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "../../node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -6487,11 +5828,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/require-main-filename": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/requires-port": { "version": "1.0.0", "dev": true, @@ -6517,22 +5853,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "../../node_modules/ret": { "version": "0.2.2", "dev": true, @@ -6631,6 +5951,49 @@ "url": "https://github.com/sponsors/isaacs" } }, + "../../node_modules/rollup": { + "version": "4.60.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, "../../node_modules/router": { "version": "2.2.0", "dev": true, @@ -6726,14 +6089,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/serialize-javascript": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "../../node_modules/serve-static": { "version": "2.2.1", "dev": true, @@ -6752,11 +6107,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/setprototypeof": { "version": "1.2.0", "dev": true, @@ -6849,43 +6199,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/signal-exit": { - "version": "3.0.7", + "../../node_modules/siginfo": { + "version": "2.0.0", "dev": true, "license": "ISC" }, - "../../node_modules/sinon": { - "version": "21.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^15.3.2", - "@sinonjs/samsam": "^10.0.2", - "diff": "^8.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "../../node_modules/sinon-chai": { - "version": "4.0.1", - "dev": true, - "license": "(BSD-2-Clause OR WTFPL)", - "peerDependencies": { - "chai": "^5.0.0 || ^6.0.0", - "sinon": ">=4.0.0" - } - }, - "../../node_modules/sinon/node_modules/diff": { - "version": "8.0.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/slash": { "version": "2.0.0", "dev": true, @@ -6910,56 +6228,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../../node_modules/spawn-wrap": { - "version": "3.0.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "cross-spawn": "^7.0.6", - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../../node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/source-map-js": { + "version": "1.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "../../node_modules/spdx-correct": { @@ -7009,11 +6283,6 @@ "readable-stream": "^3.0.0" } }, - "../../node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, "../../node_modules/stack-utils": { "version": "2.0.6", "dev": true, @@ -7033,6 +6302,11 @@ "node": ">=8" } }, + "../../node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, "../../node_modules/statuses": { "version": "2.0.2", "dev": true, @@ -7041,6 +6315,11 @@ "node": ">= 0.8" } }, + "../../node_modules/std-env": { + "version": "3.10.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/strict-event-emitter": { "version": "0.5.1", "dev": true, @@ -7104,14 +6383,6 @@ "node": ">=8" } }, - "../../node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/strip-indent": { "version": "3.0.0", "dev": true, @@ -7123,17 +6394,22 @@ "node": ">=8" } }, - "../../node_modules/strip-json-comments": { - "version": "3.1.1", + "../../node_modules/strip-literal": { + "version": "3.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "js-tokens": "^9.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/antfu" } }, + "../../node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "dev": true, + "license": "MIT" + }, "../../node_modules/strnum": { "version": "2.2.3", "dev": true, @@ -7167,154 +6443,145 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/test-exclude": { - "version": "8.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^13.0.6", - "minimatch": "^10.2.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "../../node_modules/test-exclude/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/text-extensions": { + "version": "1.9.0", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=0.10" } }, - "../../node_modules/test-exclude/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/thread-stream": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "real-require": "^0.2.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=20" } }, - "../../node_modules/test-exclude/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/through": { + "version": "2.3.8", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "../../node_modules/test-exclude/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/through2/node_modules/isarray": { + "version": "1.0.0", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" + "license": "MIT" + }, + "../../node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "../../node_modules/test-exclude/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "safe-buffer": "~5.1.0" } }, - "../../node_modules/test-exclude/node_modules/path-scurry": { - "version": "2.0.2", + "../../node_modules/tinybench": { + "version": "2.9.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/tinyglobby": { + "version": "0.2.16", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "../../node_modules/text-extensions": { - "version": "1.9.0", + "../../node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "../../node_modules/thread-stream": { - "version": "4.0.0", + "../../node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" - }, "engines": { - "node": ">=20" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "../../node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2": { - "version": "2.0.5", + "../../node_modules/tinypool": { + "version": "1.1.1", "dev": true, "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "engines": { + "node": "^18.0.0 || >=20.0.0" } }, - "../../node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", + "../../node_modules/tinyrainbow": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=14.0.0" } }, - "../../node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", + "../../node_modules/tinyspy": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=14.0.0" } }, "../../node_modules/to-regex-range": { @@ -7355,32 +6622,6 @@ "dev": true, "license": "0BSD" }, - "../../node_modules/tsx": { - "version": "4.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "../../node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/type-fest": { "version": "0.18.1", "dev": true, @@ -7410,14 +6651,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "../../node_modules/typedoc": { "version": "0.28.19", "dev": true, @@ -7606,14 +6839,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "../../node_modules/validate-npm-package-license": { "version": "3.0.4", "dev": true, @@ -7631,6 +6856,224 @@ "node": ">= 0.8" } }, + "../../node_modules/vite": { + "version": "7.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "../../node_modules/vite-node": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../../node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../node_modules/vitest": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "../../node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "../../node_modules/which": { "version": "2.0.2", "dev": true, @@ -7645,21 +7088,26 @@ "node": ">= 8" } }, - "../../node_modules/which-module": { - "version": "2.0.1", + "../../node_modules/why-is-node-running": { + "version": "2.3.0", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, "../../node_modules/wordwrap": { "version": "1.0.0", "dev": true, "license": "MIT" }, - "../../node_modules/workerpool": { - "version": "9.3.4", - "dev": true, - "license": "Apache-2.0" - }, "../../node_modules/wrap-ansi": { "version": "7.0.0", "dev": true, @@ -7698,17 +7146,6 @@ "dev": true, "license": "ISC" }, - "../../node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "../../node_modules/xtend": { "version": "4.0.2", "dev": true, @@ -7769,50 +7206,6 @@ "node": ">=10" } }, - "../../node_modules/yargs-unparser": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "dev": true, diff --git a/examples/messages/package-lock.json b/examples/messages/package-lock.json index cdc97d95c..06e4ac9e9 100644 --- a/examples/messages/package-lock.json +++ b/examples/messages/package-lock.json @@ -31,7 +31,7 @@ "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "http-proxy": "^1.18.1", - "https-proxy-agent": "^7.0.6", + "https-proxy-agent": "^9.0.0", "js-base64": "^3.7.8", "lodash": "^4.17.21", "ramda": "^0.32.0", @@ -45,38 +45,38 @@ "@babel/preset-env": "7.29.3", "@biomejs/biome": "2.4.14", "@tsconfig/node20": "20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", "@types/express": "4.17.25", "@types/http-proxy": "1.17.17", "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", "@types/nock": "11.1.0", "@types/node": "24.12.2", "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", + "@vitest/coverage-v8": "^3.0.0", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", - "mocha": "11.7.5", "nock": "14.0.14", - "nyc": "18.0.0", - "proxyquire": "2.1.3", "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", "typedoc": "^0.28.19", - "typescript": "6.0.3" + "typescript": "6.0.3", + "vitest": "^3.0.0" }, "engines": { "node": ">=20" } }, + "../../node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "../../node_modules/@babel/cli": { "version": "7.28.6", "dev": true, @@ -1457,6 +1457,14 @@ "node": ">=6.9.0" } }, + "../../node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "../../node_modules/@biomejs/biome": { "version": "2.4.14", "dev": true, @@ -1621,89 +1629,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "../../node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/@istanbuljs/schema": { "version": "0.1.6", "dev": true, @@ -1865,6 +1790,18 @@ "node": ">=14" } }, + "../../node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "../../node_modules/@shikijs/engine-oniguruma": { "version": "3.23.0", "dev": true, @@ -1904,39 +1841,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../../node_modules/@sinonjs/fake-timers": { - "version": "15.3.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } - }, - "../../node_modules/@sinonjs/samsam": { - "version": "10.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "type-detect": "^4.1.0" - } - }, - "../../node_modules/@sinonjs/samsam/node_modules/type-detect": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/@tsconfig/node20": { "version": "20.1.9", "dev": true, @@ -1960,14 +1864,6 @@ "assertion-error": "^2.0.1" } }, - "../../node_modules/@types/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*" - } - }, "../../node_modules/@types/connect": { "version": "3.4.38", "dev": true, @@ -1981,6 +1877,11 @@ "dev": true, "license": "MIT" }, + "../../node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, "../../node_modules/@types/express": { "version": "4.17.25", "dev": true, @@ -2039,11 +1940,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@types/mocha": { - "version": "10.0.10", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/nock": { "version": "11.1.0", "dev": true, @@ -2110,28 +2006,6 @@ "@types/node": "*" } }, - "../../node_modules/@types/sinon": { - "version": "21.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "../../node_modules/@types/sinon-chai": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "../../node_modules/@types/sinonjs__fake-timers": { - "version": "15.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/stack-utils": { "version": "2.0.3", "dev": true, @@ -2142,96 +2016,321 @@ "dev": true, "license": "MIT" }, - "../../node_modules/accepts": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8": { + "version": "3.2.4", "dev": true, "license": "MIT", "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "../../node_modules/add-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/agent-base": { - "version": "7.1.4", + "../../node_modules/@vitest/coverage-v8/node_modules/balanced-match": { + "version": "4.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">= 14" + "node": "18 || 20 || >=22" } }, - "../../node_modules/aggregate-error": { - "version": "3.1.0", + "../../node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { + "version": "5.0.5", "dev": true, "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "../../node_modules/ansi-regex": { - "version": "5.0.1", + "../../node_modules/@vitest/coverage-v8/node_modules/glob": { + "version": "10.5.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/ansi-styles": { - "version": "4.3.0", + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "balanced-match": "^1.0.0" + } + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/anymatch": { - "version": "3.1.3", + "../../node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", "dev": true, - "license": "ISC", - "optional": true, + "license": "BSD-3-Clause", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "../../node_modules/append-transform": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "10.2.5", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "default-require-extensions": "^3.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/archy": { - "version": "1.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.2", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } }, - "../../node_modules/argparse": { - "version": "2.0.1", + "../../node_modules/@vitest/expect": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/@vitest/mocker": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../../node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/runner": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/snapshot": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/spy": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/utils": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/accepts": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../../node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../../node_modules/agent-base": { + "version": "7.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "../../node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../../node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../../node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "../../node_modules/argparse": { + "version": "2.0.1", "dev": true, "license": "Python-2.0" }, @@ -2256,6 +2355,21 @@ "node": ">=12" } }, + "../../node_modules/ast-v8-to-istanbul": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "../../node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/asynckit": { "version": "0.4.0", "dev": true, @@ -2387,11 +2501,6 @@ "node": ">=8" } }, - "../../node_modules/browser-stdout": { - "version": "1.3.1", - "dev": true, - "license": "ISC" - }, "../../node_modules/browserslist": { "version": "4.28.2", "dev": true, @@ -2437,32 +2546,12 @@ "node": ">= 0.8" } }, - "../../node_modules/caching-transform": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/cac": { + "version": "6.7.14", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "../../node_modules/call-bind-apply-helpers": { @@ -2535,25 +2624,6 @@ ], "license": "CC-BY-4.0" }, - "../../node_modules/chai": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "../../node_modules/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, "../../node_modules/chalk": { "version": "4.1.2", "dev": true, @@ -2606,14 +2676,6 @@ "fsevents": "~2.3.2" } }, - "../../node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "../../node_modules/cliui": { "version": "8.0.1", "dev": true, @@ -2762,11 +2824,6 @@ "node": ">=4" } }, - "../../node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/compare-func": { "version": "2.0.0", "dev": true, @@ -3190,18 +3247,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/default-require-extensions": { - "version": "3.0.1", + "../../node_modules/deep-eql": { + "version": "5.0.2", "dev": true, "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "../../node_modules/delayed-stream": { @@ -3244,14 +3295,6 @@ "node": ">=8" } }, - "../../node_modules/diff": { - "version": "7.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/dot-prop": { "version": "5.3.0", "dev": true, @@ -3423,6 +3466,11 @@ "node": ">= 0.4" } }, + "../../node_modules/es-module-lexer": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/es-object-atoms": { "version": "1.1.1", "dev": true, @@ -3448,11 +3496,6 @@ "node": ">= 0.4" } }, - "../../node_modules/es6-error": { - "version": "4.1.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/esbuild": { "version": "0.27.7", "dev": true, @@ -3514,16 +3557,12 @@ "node": ">=0.8.0" } }, - "../../node_modules/esprima": { - "version": "4.0.1", + "../../node_modules/estree-walker": { + "version": "3.0.3", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" } }, "../../node_modules/esutils": { @@ -3547,6 +3586,14 @@ "dev": true, "license": "MIT" }, + "../../node_modules/expect-type": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "../../node_modules/express": { "version": "5.2.1", "dev": true, @@ -3647,26 +3694,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/fill-keys": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../../node_modules/fill-keys/node_modules/merge-descriptors": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/fill-range": { "version": "7.1.1", "dev": true, @@ -3699,36 +3726,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "../../node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/find-up": { "version": "5.0.0", "dev": true, @@ -3744,14 +3741,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/flat": { - "version": "5.0.2", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, "../../node_modules/follow-redirects": { "version": "1.16.0", "dev": true, @@ -3847,25 +3836,6 @@ "node": ">= 0.8" } }, - "../../node_modules/fromentries": { - "version": "1.3.2", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "../../node_modules/fs-readdir-recursive": { "version": "1.1.0", "dev": true, @@ -3876,6 +3846,18 @@ "dev": true, "license": "ISC" }, + "../../node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "../../node_modules/function-bind": { "version": "1.1.2", "dev": true, @@ -3923,14 +3905,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "../../node_modules/get-pkg-repo": { "version": "4.2.1", "dev": true, @@ -3987,17 +3961,6 @@ "node": ">= 0.4" } }, - "../../node_modules/get-tsconfig": { - "version": "4.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, "../../node_modules/git-raw-commits": { "version": "3.0.0", "dev": true, @@ -4190,29 +4153,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/hasha": { - "version": "5.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "../../node_modules/hasown": { "version": "2.0.3", "dev": true, @@ -4224,14 +4164,6 @@ "node": ">= 0.4" } }, - "../../node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "../../node_modules/help-me": { "version": "5.0.0", "dev": true, @@ -4328,14 +4260,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "../../node_modules/indent-string": { "version": "4.0.0", "dev": true, @@ -4453,22 +4377,6 @@ "node": ">=8" } }, - "../../node_modules/is-object": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/is-plain-obj": { "version": "1.1.0", "dev": true, @@ -4482,17 +4390,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/is-text-path": { "version": "1.0.1", "dev": true, @@ -4504,30 +4401,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/is-windows": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "../../node_modules/isarray": { "version": "0.0.1", "dev": true, @@ -4546,59 +4419,6 @@ "node": ">=8" } }, - "../../node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.4", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-processinfo": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^6.1.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": "20 || >=22" - } - }, "../../node_modules/istanbul-lib-report": { "version": "3.0.1", "dev": true, @@ -4637,19 +4457,6 @@ "node": ">=10" } }, - "../../node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "../../node_modules/istanbul-reports": { "version": "3.2.0", "dev": true, @@ -4694,17 +4501,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/js-yaml": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "../../node_modules/jsesc": { "version": "3.1.0", "dev": true, @@ -4840,30 +4636,15 @@ "dev": true, "license": "MIT" }, - "../../node_modules/lodash.flattendeep": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, "../../node_modules/lodash.ismatch": { "version": "4.4.0", "dev": true, "license": "MIT" }, - "../../node_modules/log-symbols": { - "version": "4.1.0", + "../../node_modules/loupe": { + "version": "3.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "../../node_modules/lru-cache": { "version": "5.1.1", @@ -4878,6 +4659,24 @@ "dev": true, "license": "MIT" }, + "../../node_modules/magic-string": { + "version": "0.30.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "../../node_modules/magicast": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "../../node_modules/make-dir": { "version": "2.1.0", "dev": true, @@ -5206,159 +5005,36 @@ "node": ">=10" } }, - "../../node_modules/mocha": { - "version": "11.7.5", + "../../node_modules/modify-values": { + "version": "1.0.1", "dev": true, "license": "MIT", - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^4.0.1", - "debug": "^4.3.5", - "diff": "^7.0.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^9.0.5", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "../../node_modules/mocha/node_modules/brace-expansion": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "node": ">=0.10.0" } }, - "../../node_modules/mocha/node_modules/chokidar": { - "version": "4.0.3", + "../../node_modules/ms": { + "version": "2.1.3", "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } + "license": "MIT" }, - "../../node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", + "../../node_modules/nanoid": { + "version": "3.3.12", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/mocha/node_modules/glob": { - "version": "10.5.0", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/minimatch": { - "version": "9.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/readdirp": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" + "nanoid": "bin/nanoid.cjs" }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../../node_modules/mocha/node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "../../node_modules/modify-values": { - "version": "1.0.1", - "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "../../node_modules/module-not-found-error": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "../../node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, "../../node_modules/negotiator": { "version": "1.0.0", "dev": true, @@ -5395,17 +5071,6 @@ "node-gyp-build-test": "build-test.js" } }, - "../../node_modules/node-preload": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/node-releases": { "version": "2.0.38", "dev": true, @@ -5470,415 +5135,150 @@ "node": ">=0.10.0" } }, - "../../node_modules/nyc": { - "version": "18.0.0", + "../../node_modules/object-inspect": { + "version": "1.13.4", "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^13.0.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^3.0.0", - "test-exclude": "^8.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/nyc/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/on-exit-leak-free": { + "version": "2.1.2", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/on-finished": { + "version": "2.4.1", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "ee-first": "1.1.1" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", + "../../node_modules/once": { + "version": "1.4.0", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrappy": "1" } }, - "../../node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", + "../../node_modules/outvariant": { + "version": "1.4.3", "dev": true, "license": "MIT" }, - "../../node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/p-locate": { + "version": "5.0.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "p-limit": "^3.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", + "../../node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../../node_modules/package-json-from-dist": { + "version": "1.0.1", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "../../node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "../../node_modules/nyc/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/parseurl": { + "version": "1.3.3", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/path-expression-matcher": { + "version": "1.5.0", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", + "../../node_modules/path-is-absolute": { + "version": "1.0.1", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "../../node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", + "../../node_modules/path-key": { + "version": "3.1.1", "dev": true, "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { "node": ">=8" } }, - "../../node_modules/nyc/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "dev": true, - "license": "ISC" - }, - "../../node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "../../node_modules/object-inspect": { - "version": "1.13.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/on-exit-leak-free": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../../node_modules/outvariant": { - "version": "1.4.3", - "dev": true, - "license": "MIT" - }, - "../../node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-map": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../node_modules/package-hash": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "../../node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../../node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/path-expression-matcher": { - "version": "1.5.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../../node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/path-parse": { - "version": "1.0.7", + "../../node_modules/path-parse": { + "version": "1.0.7", "dev": true, "license": "MIT" }, @@ -5930,6 +5330,19 @@ "node": ">=4" } }, + "../../node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "../../node_modules/pathval": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "../../node_modules/picocolors": { "version": "1.1.1", "dev": true, @@ -6039,82 +5452,39 @@ "dev": true, "license": "MIT" }, - "../../node_modules/pkg-dir": { - "version": "4.2.0", + "../../node_modules/postcss": { + "version": "8.5.14", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "../../node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/process-nextick-args": { + "version": "2.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "../../node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "../../node_modules/process-on-spawn": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-warning": { + "../../node_modules/process-warning": { "version": "5.0.0", "dev": true, "funding": [ @@ -6157,16 +5527,6 @@ "node": ">=10" } }, - "../../node_modules/proxyquire": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, "../../node_modules/pump": { "version": "3.0.4", "dev": true, @@ -6232,14 +5592,6 @@ "node": ">=4" } }, - "../../node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "../../node_modules/range-parser": { "version": "1.2.1", "dev": true, @@ -6465,17 +5817,6 @@ "regjsparser": "bin/parser" } }, - "../../node_modules/release-zalgo": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "../../node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -6484,11 +5825,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/require-main-filename": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/requires-port": { "version": "1.0.0", "dev": true, @@ -6514,22 +5850,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "../../node_modules/ret": { "version": "0.2.2", "dev": true, @@ -6628,6 +5948,49 @@ "url": "https://github.com/sponsors/isaacs" } }, + "../../node_modules/rollup": { + "version": "4.60.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, "../../node_modules/router": { "version": "2.2.0", "dev": true, @@ -6723,14 +6086,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/serialize-javascript": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "../../node_modules/serve-static": { "version": "2.2.1", "dev": true, @@ -6749,11 +6104,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/setprototypeof": { "version": "1.2.0", "dev": true, @@ -6846,43 +6196,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/signal-exit": { - "version": "3.0.7", + "../../node_modules/siginfo": { + "version": "2.0.0", "dev": true, "license": "ISC" }, - "../../node_modules/sinon": { - "version": "21.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^15.3.2", - "@sinonjs/samsam": "^10.0.2", - "diff": "^8.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "../../node_modules/sinon-chai": { - "version": "4.0.1", - "dev": true, - "license": "(BSD-2-Clause OR WTFPL)", - "peerDependencies": { - "chai": "^5.0.0 || ^6.0.0", - "sinon": ">=4.0.0" - } - }, - "../../node_modules/sinon/node_modules/diff": { - "version": "8.0.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/slash": { "version": "2.0.0", "dev": true, @@ -6907,56 +6225,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../../node_modules/spawn-wrap": { - "version": "3.0.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "cross-spawn": "^7.0.6", - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../../node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/source-map-js": { + "version": "1.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "../../node_modules/spdx-correct": { @@ -7006,11 +6280,6 @@ "readable-stream": "^3.0.0" } }, - "../../node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, "../../node_modules/stack-utils": { "version": "2.0.6", "dev": true, @@ -7030,6 +6299,11 @@ "node": ">=8" } }, + "../../node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, "../../node_modules/statuses": { "version": "2.0.2", "dev": true, @@ -7038,6 +6312,11 @@ "node": ">= 0.8" } }, + "../../node_modules/std-env": { + "version": "3.10.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/strict-event-emitter": { "version": "0.5.1", "dev": true, @@ -7101,14 +6380,6 @@ "node": ">=8" } }, - "../../node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/strip-indent": { "version": "3.0.0", "dev": true, @@ -7120,17 +6391,22 @@ "node": ">=8" } }, - "../../node_modules/strip-json-comments": { - "version": "3.1.1", + "../../node_modules/strip-literal": { + "version": "3.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "js-tokens": "^9.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/antfu" } }, + "../../node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "dev": true, + "license": "MIT" + }, "../../node_modules/strnum": { "version": "2.2.3", "dev": true, @@ -7164,154 +6440,145 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/test-exclude": { - "version": "8.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^13.0.6", - "minimatch": "^10.2.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "../../node_modules/test-exclude/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/text-extensions": { + "version": "1.9.0", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=0.10" } }, - "../../node_modules/test-exclude/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/thread-stream": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "real-require": "^0.2.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=20" } }, - "../../node_modules/test-exclude/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/through": { + "version": "2.3.8", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "../../node_modules/test-exclude/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/through2/node_modules/isarray": { + "version": "1.0.0", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "MIT" }, - "../../node_modules/test-exclude/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "../../node_modules/test-exclude/node_modules/path-scurry": { - "version": "2.0.2", + "../../node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "safe-buffer": "~5.1.0" + } + }, + "../../node_modules/tinybench": { + "version": "2.9.0", + "dev": true, + "license": "MIT" + }, + "../../node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/tinyglobby": { + "version": "0.2.16", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "../../node_modules/text-extensions": { - "version": "1.9.0", + "../../node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "../../node_modules/thread-stream": { - "version": "4.0.0", + "../../node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" - }, "engines": { - "node": ">=20" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "../../node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2": { - "version": "2.0.5", + "../../node_modules/tinypool": { + "version": "1.1.1", "dev": true, "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "engines": { + "node": "^18.0.0 || >=20.0.0" } }, - "../../node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", + "../../node_modules/tinyrainbow": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=14.0.0" } }, - "../../node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", + "../../node_modules/tinyspy": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=14.0.0" } }, "../../node_modules/to-regex-range": { @@ -7352,32 +6619,6 @@ "dev": true, "license": "0BSD" }, - "../../node_modules/tsx": { - "version": "4.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "../../node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/type-fest": { "version": "0.18.1", "dev": true, @@ -7407,14 +6648,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "../../node_modules/typedoc": { "version": "0.28.19", "dev": true, @@ -7603,14 +6836,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "../../node_modules/validate-npm-package-license": { "version": "3.0.4", "dev": true, @@ -7628,6 +6853,224 @@ "node": ">= 0.8" } }, + "../../node_modules/vite": { + "version": "7.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "../../node_modules/vite-node": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../../node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../node_modules/vitest": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "../../node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "../../node_modules/which": { "version": "2.0.2", "dev": true, @@ -7642,21 +7085,26 @@ "node": ">= 8" } }, - "../../node_modules/which-module": { - "version": "2.0.1", + "../../node_modules/why-is-node-running": { + "version": "2.3.0", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, "../../node_modules/wordwrap": { "version": "1.0.0", "dev": true, "license": "MIT" }, - "../../node_modules/workerpool": { - "version": "9.3.4", - "dev": true, - "license": "Apache-2.0" - }, "../../node_modules/wrap-ansi": { "version": "7.0.0", "dev": true, @@ -7695,17 +7143,6 @@ "dev": true, "license": "ISC" }, - "../../node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "../../node_modules/xtend": { "version": "4.0.2", "dev": true, @@ -7766,50 +7203,6 @@ "node": ">=10" } }, - "../../node_modules/yargs-unparser": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "dev": true, diff --git a/examples/multipart/package-lock.json b/examples/multipart/package-lock.json index ba1251ab2..6c81f4acf 100644 --- a/examples/multipart/package-lock.json +++ b/examples/multipart/package-lock.json @@ -37,7 +37,7 @@ "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "http-proxy": "^1.18.1", - "https-proxy-agent": "^7.0.6", + "https-proxy-agent": "^9.0.0", "js-base64": "^3.7.8", "lodash": "^4.17.21", "ramda": "^0.32.0", @@ -51,38 +51,38 @@ "@babel/preset-env": "7.29.3", "@biomejs/biome": "2.4.14", "@tsconfig/node20": "20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", "@types/express": "4.17.25", "@types/http-proxy": "1.17.17", "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", "@types/nock": "11.1.0", "@types/node": "24.12.2", "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", + "@vitest/coverage-v8": "^3.0.0", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", - "mocha": "11.7.5", "nock": "14.0.14", - "nyc": "18.0.0", - "proxyquire": "2.1.3", "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", "typedoc": "^0.28.19", - "typescript": "6.0.3" + "typescript": "6.0.3", + "vitest": "^3.0.0" }, "engines": { "node": ">=20" } }, + "../../node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "../../node_modules/@babel/cli": { "version": "7.28.6", "dev": true, @@ -1463,6 +1463,14 @@ "node": ">=6.9.0" } }, + "../../node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "../../node_modules/@biomejs/biome": { "version": "2.4.14", "dev": true, @@ -1627,89 +1635,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "../../node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/@istanbuljs/schema": { "version": "0.1.6", "dev": true, @@ -1871,6 +1796,18 @@ "node": ">=14" } }, + "../../node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "../../node_modules/@shikijs/engine-oniguruma": { "version": "3.23.0", "dev": true, @@ -1910,39 +1847,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../../node_modules/@sinonjs/fake-timers": { - "version": "15.3.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } - }, - "../../node_modules/@sinonjs/samsam": { - "version": "10.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "type-detect": "^4.1.0" - } - }, - "../../node_modules/@sinonjs/samsam/node_modules/type-detect": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/@tsconfig/node20": { "version": "20.1.9", "dev": true, @@ -1966,14 +1870,6 @@ "assertion-error": "^2.0.1" } }, - "../../node_modules/@types/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*" - } - }, "../../node_modules/@types/connect": { "version": "3.4.38", "dev": true, @@ -1987,6 +1883,11 @@ "dev": true, "license": "MIT" }, + "../../node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, "../../node_modules/@types/express": { "version": "4.17.25", "dev": true, @@ -2045,11 +1946,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@types/mocha": { - "version": "10.0.10", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/nock": { "version": "11.1.0", "dev": true, @@ -2116,28 +2012,6 @@ "@types/node": "*" } }, - "../../node_modules/@types/sinon": { - "version": "21.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "../../node_modules/@types/sinon-chai": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "../../node_modules/@types/sinonjs__fake-timers": { - "version": "15.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/stack-utils": { "version": "2.0.3", "dev": true, @@ -2148,96 +2022,321 @@ "dev": true, "license": "MIT" }, - "../../node_modules/accepts": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8": { + "version": "3.2.4", "dev": true, "license": "MIT", "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "../../node_modules/add-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/agent-base": { - "version": "7.1.4", + "../../node_modules/@vitest/coverage-v8/node_modules/balanced-match": { + "version": "4.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">= 14" + "node": "18 || 20 || >=22" } }, - "../../node_modules/aggregate-error": { - "version": "3.1.0", + "../../node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { + "version": "5.0.5", "dev": true, "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "../../node_modules/ansi-regex": { - "version": "5.0.1", + "../../node_modules/@vitest/coverage-v8/node_modules/glob": { + "version": "10.5.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/ansi-styles": { - "version": "4.3.0", + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "balanced-match": "^1.0.0" + } + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/anymatch": { - "version": "3.1.3", + "../../node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", "dev": true, - "license": "ISC", - "optional": true, + "license": "BSD-3-Clause", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "../../node_modules/append-transform": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "10.2.5", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "default-require-extensions": "^3.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/archy": { - "version": "1.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.2", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } }, - "../../node_modules/argparse": { - "version": "2.0.1", + "../../node_modules/@vitest/expect": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/@vitest/mocker": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../../node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/runner": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/snapshot": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/spy": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/utils": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/accepts": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../../node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../../node_modules/agent-base": { + "version": "7.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "../../node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../../node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../../node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "../../node_modules/argparse": { + "version": "2.0.1", "dev": true, "license": "Python-2.0" }, @@ -2262,6 +2361,21 @@ "node": ">=12" } }, + "../../node_modules/ast-v8-to-istanbul": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "../../node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/asynckit": { "version": "0.4.0", "dev": true, @@ -2393,11 +2507,6 @@ "node": ">=8" } }, - "../../node_modules/browser-stdout": { - "version": "1.3.1", - "dev": true, - "license": "ISC" - }, "../../node_modules/browserslist": { "version": "4.28.2", "dev": true, @@ -2443,32 +2552,12 @@ "node": ">= 0.8" } }, - "../../node_modules/caching-transform": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/cac": { + "version": "6.7.14", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "../../node_modules/call-bind-apply-helpers": { @@ -2541,25 +2630,6 @@ ], "license": "CC-BY-4.0" }, - "../../node_modules/chai": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "../../node_modules/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, "../../node_modules/chalk": { "version": "4.1.2", "dev": true, @@ -2612,14 +2682,6 @@ "fsevents": "~2.3.2" } }, - "../../node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "../../node_modules/cliui": { "version": "8.0.1", "dev": true, @@ -2768,11 +2830,6 @@ "node": ">=4" } }, - "../../node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/compare-func": { "version": "2.0.0", "dev": true, @@ -3196,18 +3253,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/default-require-extensions": { - "version": "3.0.1", + "../../node_modules/deep-eql": { + "version": "5.0.2", "dev": true, "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "../../node_modules/delayed-stream": { @@ -3250,14 +3301,6 @@ "node": ">=8" } }, - "../../node_modules/diff": { - "version": "7.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/dot-prop": { "version": "5.3.0", "dev": true, @@ -3429,6 +3472,11 @@ "node": ">= 0.4" } }, + "../../node_modules/es-module-lexer": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/es-object-atoms": { "version": "1.1.1", "dev": true, @@ -3454,11 +3502,6 @@ "node": ">= 0.4" } }, - "../../node_modules/es6-error": { - "version": "4.1.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/esbuild": { "version": "0.27.7", "dev": true, @@ -3520,17 +3563,13 @@ "node": ">=0.8.0" } }, - "../../node_modules/esprima": { - "version": "4.0.1", + "../../node_modules/estree-walker": { + "version": "3.0.3", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } }, "../../node_modules/esutils": { "version": "2.0.3", @@ -3553,6 +3592,14 @@ "dev": true, "license": "MIT" }, + "../../node_modules/expect-type": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "../../node_modules/express": { "version": "5.2.1", "dev": true, @@ -3653,26 +3700,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/fill-keys": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../../node_modules/fill-keys/node_modules/merge-descriptors": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/fill-range": { "version": "7.1.1", "dev": true, @@ -3705,36 +3732,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "../../node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/find-up": { "version": "5.0.0", "dev": true, @@ -3750,14 +3747,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/flat": { - "version": "5.0.2", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, "../../node_modules/follow-redirects": { "version": "1.16.0", "dev": true, @@ -3853,25 +3842,6 @@ "node": ">= 0.8" } }, - "../../node_modules/fromentries": { - "version": "1.3.2", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "../../node_modules/fs-readdir-recursive": { "version": "1.1.0", "dev": true, @@ -3882,6 +3852,18 @@ "dev": true, "license": "ISC" }, + "../../node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "../../node_modules/function-bind": { "version": "1.1.2", "dev": true, @@ -3929,14 +3911,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "../../node_modules/get-pkg-repo": { "version": "4.2.1", "dev": true, @@ -3993,17 +3967,6 @@ "node": ">= 0.4" } }, - "../../node_modules/get-tsconfig": { - "version": "4.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, "../../node_modules/git-raw-commits": { "version": "3.0.0", "dev": true, @@ -4196,29 +4159,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/hasha": { - "version": "5.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "../../node_modules/hasown": { "version": "2.0.3", "dev": true, @@ -4230,14 +4170,6 @@ "node": ">= 0.4" } }, - "../../node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "../../node_modules/help-me": { "version": "5.0.0", "dev": true, @@ -4334,14 +4266,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "../../node_modules/indent-string": { "version": "4.0.0", "dev": true, @@ -4459,22 +4383,6 @@ "node": ">=8" } }, - "../../node_modules/is-object": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/is-plain-obj": { "version": "1.1.0", "dev": true, @@ -4488,17 +4396,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/is-text-path": { "version": "1.0.1", "dev": true, @@ -4510,30 +4407,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/is-windows": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "../../node_modules/isarray": { "version": "0.0.1", "dev": true, @@ -4552,59 +4425,6 @@ "node": ">=8" } }, - "../../node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.4", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-processinfo": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^6.1.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": "20 || >=22" - } - }, "../../node_modules/istanbul-lib-report": { "version": "3.0.1", "dev": true, @@ -4643,19 +4463,6 @@ "node": ">=10" } }, - "../../node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "../../node_modules/istanbul-reports": { "version": "3.2.0", "dev": true, @@ -4700,17 +4507,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/js-yaml": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "../../node_modules/jsesc": { "version": "3.1.0", "dev": true, @@ -4846,30 +4642,15 @@ "dev": true, "license": "MIT" }, - "../../node_modules/lodash.flattendeep": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, "../../node_modules/lodash.ismatch": { "version": "4.4.0", "dev": true, "license": "MIT" }, - "../../node_modules/log-symbols": { - "version": "4.1.0", + "../../node_modules/loupe": { + "version": "3.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "../../node_modules/lru-cache": { "version": "5.1.1", @@ -4884,6 +4665,24 @@ "dev": true, "license": "MIT" }, + "../../node_modules/magic-string": { + "version": "0.30.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "../../node_modules/magicast": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "../../node_modules/make-dir": { "version": "2.1.0", "dev": true, @@ -5212,141 +5011,6 @@ "node": ">=10" } }, - "../../node_modules/mocha": { - "version": "11.7.5", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^4.0.1", - "debug": "^4.3.5", - "diff": "^7.0.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^9.0.5", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "../../node_modules/mocha/node_modules/brace-expansion": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "../../node_modules/mocha/node_modules/chokidar": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/mocha/node_modules/glob": { - "version": "10.5.0", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/minimatch": { - "version": "9.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/readdirp": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../../node_modules/mocha/node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "../../node_modules/modify-values": { "version": "1.0.1", "dev": true, @@ -5355,16 +5019,28 @@ "node": ">=0.10.0" } }, - "../../node_modules/module-not-found-error": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/ms": { "version": "2.1.3", "dev": true, "license": "MIT" }, + "../../node_modules/nanoid": { + "version": "3.3.12", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "../../node_modules/negotiator": { "version": "1.0.0", "dev": true, @@ -5401,17 +5077,6 @@ "node-gyp-build-test": "build-test.js" } }, - "../../node_modules/node-preload": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/node-releases": { "version": "2.0.38", "dev": true, @@ -5476,399 +5141,134 @@ "node": ">=0.10.0" } }, - "../../node_modules/nyc": { - "version": "18.0.0", + "../../node_modules/object-inspect": { + "version": "1.13.4", "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^13.0.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^3.0.0", - "test-exclude": "^8.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/nyc/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/on-exit-leak-free": { + "version": "2.1.2", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/on-finished": { + "version": "2.4.1", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "ee-first": "1.1.1" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", + "../../node_modules/once": { + "version": "1.4.0", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrappy": "1" } }, - "../../node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", + "../../node_modules/outvariant": { + "version": "1.4.3", "dev": true, "license": "MIT" }, - "../../node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/p-locate": { + "version": "5.0.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "p-limit": "^3.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", + "../../node_modules/p-try": { + "version": "2.2.0", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "../../node_modules/nyc/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/package-json-from-dist": { + "version": "1.0.1", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "BlueOak-1.0.0" }, - "../../node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "../../node_modules/nyc/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/parseurl": { + "version": "1.3.3", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, + "license": "MIT", "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", + "../../node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "../../node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", + "../../node_modules/path-expression-matcher": { + "version": "1.5.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "dev": true, - "license": "ISC" - }, - "../../node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "../../node_modules/object-inspect": { - "version": "1.13.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/on-exit-leak-free": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../../node_modules/outvariant": { - "version": "1.4.3", - "dev": true, - "license": "MIT" - }, - "../../node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-map": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../node_modules/package-hash": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "../../node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../../node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/path-expression-matcher": { - "version": "1.5.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/path-is-absolute": { - "version": "1.0.1", + "../../node_modules/path-is-absolute": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { @@ -5936,6 +5336,19 @@ "node": ">=4" } }, + "../../node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "../../node_modules/pathval": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "../../node_modules/picocolors": { "version": "1.1.1", "dev": true, @@ -6045,102 +5458,59 @@ "dev": true, "license": "MIT" }, - "../../node_modules/pkg-dir": { - "version": "4.2.0", + "../../node_modules/postcss": { + "version": "8.5.14", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "../../node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/process-nextick-args": { + "version": "2.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "../../node_modules/pkg-dir/node_modules/locate-path": { + "../../node_modules/process-warning": { "version": "5.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "../../node_modules/propagate": { + "version": "2.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" - } - }, - "../../node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "../../node_modules/process-on-spawn": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-warning": { - "version": "5.0.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "MIT" - }, - "../../node_modules/propagate": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" + "node": ">= 8" } }, "../../node_modules/proxy-addr": { @@ -6163,16 +5533,6 @@ "node": ">=10" } }, - "../../node_modules/proxyquire": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, "../../node_modules/pump": { "version": "3.0.4", "dev": true, @@ -6238,14 +5598,6 @@ "node": ">=4" } }, - "../../node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "../../node_modules/range-parser": { "version": "1.2.1", "dev": true, @@ -6471,17 +5823,6 @@ "regjsparser": "bin/parser" } }, - "../../node_modules/release-zalgo": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "../../node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -6490,11 +5831,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/require-main-filename": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/requires-port": { "version": "1.0.0", "dev": true, @@ -6520,22 +5856,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "../../node_modules/ret": { "version": "0.2.2", "dev": true, @@ -6634,6 +5954,49 @@ "url": "https://github.com/sponsors/isaacs" } }, + "../../node_modules/rollup": { + "version": "4.60.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, "../../node_modules/router": { "version": "2.2.0", "dev": true, @@ -6729,14 +6092,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/serialize-javascript": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "../../node_modules/serve-static": { "version": "2.2.1", "dev": true, @@ -6755,11 +6110,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/setprototypeof": { "version": "1.2.0", "dev": true, @@ -6852,43 +6202,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/signal-exit": { - "version": "3.0.7", + "../../node_modules/siginfo": { + "version": "2.0.0", "dev": true, "license": "ISC" }, - "../../node_modules/sinon": { - "version": "21.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^15.3.2", - "@sinonjs/samsam": "^10.0.2", - "diff": "^8.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "../../node_modules/sinon-chai": { - "version": "4.0.1", - "dev": true, - "license": "(BSD-2-Clause OR WTFPL)", - "peerDependencies": { - "chai": "^5.0.0 || ^6.0.0", - "sinon": ">=4.0.0" - } - }, - "../../node_modules/sinon/node_modules/diff": { - "version": "8.0.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/slash": { "version": "2.0.0", "dev": true, @@ -6913,56 +6231,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../../node_modules/spawn-wrap": { - "version": "3.0.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "cross-spawn": "^7.0.6", - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../../node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/source-map-js": { + "version": "1.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "../../node_modules/spdx-correct": { @@ -7012,11 +6286,6 @@ "readable-stream": "^3.0.0" } }, - "../../node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, "../../node_modules/stack-utils": { "version": "2.0.6", "dev": true, @@ -7036,6 +6305,11 @@ "node": ">=8" } }, + "../../node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, "../../node_modules/statuses": { "version": "2.0.2", "dev": true, @@ -7044,6 +6318,11 @@ "node": ">= 0.8" } }, + "../../node_modules/std-env": { + "version": "3.10.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/strict-event-emitter": { "version": "0.5.1", "dev": true, @@ -7107,14 +6386,6 @@ "node": ">=8" } }, - "../../node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/strip-indent": { "version": "3.0.0", "dev": true, @@ -7126,17 +6397,22 @@ "node": ">=8" } }, - "../../node_modules/strip-json-comments": { - "version": "3.1.1", + "../../node_modules/strip-literal": { + "version": "3.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "js-tokens": "^9.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/antfu" } }, + "../../node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "dev": true, + "license": "MIT" + }, "../../node_modules/strnum": { "version": "2.2.3", "dev": true, @@ -7170,154 +6446,145 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/test-exclude": { - "version": "8.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^13.0.6", - "minimatch": "^10.2.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "../../node_modules/test-exclude/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/text-extensions": { + "version": "1.9.0", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=0.10" } }, - "../../node_modules/test-exclude/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/thread-stream": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "real-require": "^0.2.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=20" } }, - "../../node_modules/test-exclude/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/through": { + "version": "2.3.8", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "../../node_modules/test-exclude/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/through2/node_modules/isarray": { + "version": "1.0.0", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" + "license": "MIT" + }, + "../../node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "../../node_modules/test-exclude/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "safe-buffer": "~5.1.0" } }, - "../../node_modules/test-exclude/node_modules/path-scurry": { - "version": "2.0.2", + "../../node_modules/tinybench": { + "version": "2.9.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/tinyglobby": { + "version": "0.2.16", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "../../node_modules/text-extensions": { - "version": "1.9.0", + "../../node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "../../node_modules/thread-stream": { - "version": "4.0.0", + "../../node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" - }, "engines": { - "node": ">=20" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "../../node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2": { - "version": "2.0.5", + "../../node_modules/tinypool": { + "version": "1.1.1", "dev": true, "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "engines": { + "node": "^18.0.0 || >=20.0.0" } }, - "../../node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", + "../../node_modules/tinyrainbow": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=14.0.0" } }, - "../../node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", + "../../node_modules/tinyspy": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=14.0.0" } }, "../../node_modules/to-regex-range": { @@ -7358,32 +6625,6 @@ "dev": true, "license": "0BSD" }, - "../../node_modules/tsx": { - "version": "4.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "../../node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/type-fest": { "version": "0.18.1", "dev": true, @@ -7413,14 +6654,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "../../node_modules/typedoc": { "version": "0.28.19", "dev": true, @@ -7609,14 +6842,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "../../node_modules/validate-npm-package-license": { "version": "3.0.4", "dev": true, @@ -7634,6 +6859,224 @@ "node": ">= 0.8" } }, + "../../node_modules/vite": { + "version": "7.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "../../node_modules/vite-node": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../../node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../node_modules/vitest": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "../../node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "../../node_modules/which": { "version": "2.0.2", "dev": true, @@ -7648,21 +7091,26 @@ "node": ">= 8" } }, - "../../node_modules/which-module": { - "version": "2.0.1", + "../../node_modules/why-is-node-running": { + "version": "2.3.0", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, "../../node_modules/wordwrap": { "version": "1.0.0", "dev": true, "license": "MIT" }, - "../../node_modules/workerpool": { - "version": "9.3.4", - "dev": true, - "license": "Apache-2.0" - }, "../../node_modules/wrap-ansi": { "version": "7.0.0", "dev": true, @@ -7701,17 +7149,6 @@ "dev": true, "license": "ISC" }, - "../../node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "../../node_modules/xtend": { "version": "4.0.2", "dev": true, @@ -7772,50 +7209,6 @@ "node": ">=10" } }, - "../../node_modules/yargs-unparser": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "dev": true, diff --git a/examples/plugins/package-lock.json b/examples/plugins/package-lock.json index f380a8976..2ca772721 100644 --- a/examples/plugins/package-lock.json +++ b/examples/plugins/package-lock.json @@ -35,7 +35,7 @@ "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "http-proxy": "^1.18.1", - "https-proxy-agent": "^7.0.6", + "https-proxy-agent": "^9.0.0", "js-base64": "^3.7.8", "lodash": "^4.17.21", "ramda": "^0.32.0", @@ -49,38 +49,38 @@ "@babel/preset-env": "7.29.3", "@biomejs/biome": "2.4.14", "@tsconfig/node20": "20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", "@types/express": "4.17.25", "@types/http-proxy": "1.17.17", "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", "@types/nock": "11.1.0", "@types/node": "24.12.2", "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", + "@vitest/coverage-v8": "^3.0.0", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", - "mocha": "11.7.5", "nock": "14.0.14", - "nyc": "18.0.0", - "proxyquire": "2.1.3", "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", "typedoc": "^0.28.19", - "typescript": "6.0.3" + "typescript": "6.0.3", + "vitest": "^3.0.0" }, "engines": { "node": ">=20" } }, + "../../node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "../../node_modules/@babel/cli": { "version": "7.28.6", "dev": true, @@ -1461,6 +1461,14 @@ "node": ">=6.9.0" } }, + "../../node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "../../node_modules/@biomejs/biome": { "version": "2.4.14", "dev": true, @@ -1625,89 +1633,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "../../node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/@istanbuljs/schema": { "version": "0.1.6", "dev": true, @@ -1869,6 +1794,18 @@ "node": ">=14" } }, + "../../node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "../../node_modules/@shikijs/engine-oniguruma": { "version": "3.23.0", "dev": true, @@ -1908,39 +1845,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../../node_modules/@sinonjs/fake-timers": { - "version": "15.3.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } - }, - "../../node_modules/@sinonjs/samsam": { - "version": "10.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "type-detect": "^4.1.0" - } - }, - "../../node_modules/@sinonjs/samsam/node_modules/type-detect": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/@tsconfig/node20": { "version": "20.1.9", "dev": true, @@ -1964,14 +1868,6 @@ "assertion-error": "^2.0.1" } }, - "../../node_modules/@types/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*" - } - }, "../../node_modules/@types/connect": { "version": "3.4.38", "dev": true, @@ -1985,6 +1881,11 @@ "dev": true, "license": "MIT" }, + "../../node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, "../../node_modules/@types/express": { "version": "4.17.25", "dev": true, @@ -2043,11 +1944,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@types/mocha": { - "version": "10.0.10", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/nock": { "version": "11.1.0", "dev": true, @@ -2114,28 +2010,6 @@ "@types/node": "*" } }, - "../../node_modules/@types/sinon": { - "version": "21.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "../../node_modules/@types/sinon-chai": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "../../node_modules/@types/sinonjs__fake-timers": { - "version": "15.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/stack-utils": { "version": "2.0.3", "dev": true, @@ -2146,96 +2020,321 @@ "dev": true, "license": "MIT" }, - "../../node_modules/accepts": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8": { + "version": "3.2.4", "dev": true, "license": "MIT", "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "../../node_modules/add-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/agent-base": { - "version": "7.1.4", + "../../node_modules/@vitest/coverage-v8/node_modules/balanced-match": { + "version": "4.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">= 14" + "node": "18 || 20 || >=22" } }, - "../../node_modules/aggregate-error": { - "version": "3.1.0", + "../../node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { + "version": "5.0.5", "dev": true, "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "../../node_modules/ansi-regex": { - "version": "5.0.1", + "../../node_modules/@vitest/coverage-v8/node_modules/glob": { + "version": "10.5.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/ansi-styles": { - "version": "4.3.0", + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "balanced-match": "^1.0.0" + } + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/anymatch": { - "version": "3.1.3", + "../../node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", "dev": true, - "license": "ISC", - "optional": true, + "license": "BSD-3-Clause", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "../../node_modules/append-transform": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "10.2.5", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "default-require-extensions": "^3.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/archy": { - "version": "1.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.2", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } }, - "../../node_modules/argparse": { - "version": "2.0.1", + "../../node_modules/@vitest/expect": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/@vitest/mocker": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../../node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/runner": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/snapshot": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/spy": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/utils": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/accepts": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../../node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../../node_modules/agent-base": { + "version": "7.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "../../node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../../node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../../node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "../../node_modules/argparse": { + "version": "2.0.1", "dev": true, "license": "Python-2.0" }, @@ -2260,6 +2359,21 @@ "node": ">=12" } }, + "../../node_modules/ast-v8-to-istanbul": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "../../node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/asynckit": { "version": "0.4.0", "dev": true, @@ -2391,11 +2505,6 @@ "node": ">=8" } }, - "../../node_modules/browser-stdout": { - "version": "1.3.1", - "dev": true, - "license": "ISC" - }, "../../node_modules/browserslist": { "version": "4.28.2", "dev": true, @@ -2441,32 +2550,12 @@ "node": ">= 0.8" } }, - "../../node_modules/caching-transform": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/cac": { + "version": "6.7.14", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "../../node_modules/call-bind-apply-helpers": { @@ -2539,25 +2628,6 @@ ], "license": "CC-BY-4.0" }, - "../../node_modules/chai": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "../../node_modules/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, "../../node_modules/chalk": { "version": "4.1.2", "dev": true, @@ -2610,14 +2680,6 @@ "fsevents": "~2.3.2" } }, - "../../node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "../../node_modules/cliui": { "version": "8.0.1", "dev": true, @@ -2766,11 +2828,6 @@ "node": ">=4" } }, - "../../node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/compare-func": { "version": "2.0.0", "dev": true, @@ -3194,18 +3251,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/default-require-extensions": { - "version": "3.0.1", + "../../node_modules/deep-eql": { + "version": "5.0.2", "dev": true, "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "../../node_modules/delayed-stream": { @@ -3248,14 +3299,6 @@ "node": ">=8" } }, - "../../node_modules/diff": { - "version": "7.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/dot-prop": { "version": "5.3.0", "dev": true, @@ -3427,6 +3470,11 @@ "node": ">= 0.4" } }, + "../../node_modules/es-module-lexer": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/es-object-atoms": { "version": "1.1.1", "dev": true, @@ -3452,11 +3500,6 @@ "node": ">= 0.4" } }, - "../../node_modules/es6-error": { - "version": "4.1.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/esbuild": { "version": "0.27.7", "dev": true, @@ -3518,18 +3561,14 @@ "node": ">=0.8.0" } }, - "../../node_modules/esprima": { - "version": "4.0.1", + "../../node_modules/estree-walker": { + "version": "3.0.3", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "../../node_modules/esutils": { "version": "2.0.3", "dev": true, @@ -3551,6 +3590,14 @@ "dev": true, "license": "MIT" }, + "../../node_modules/expect-type": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "../../node_modules/express": { "version": "5.2.1", "dev": true, @@ -3651,26 +3698,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/fill-keys": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../../node_modules/fill-keys/node_modules/merge-descriptors": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/fill-range": { "version": "7.1.1", "dev": true, @@ -3703,36 +3730,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "../../node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/find-up": { "version": "5.0.0", "dev": true, @@ -3748,14 +3745,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/flat": { - "version": "5.0.2", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, "../../node_modules/follow-redirects": { "version": "1.16.0", "dev": true, @@ -3851,25 +3840,6 @@ "node": ">= 0.8" } }, - "../../node_modules/fromentries": { - "version": "1.3.2", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "../../node_modules/fs-readdir-recursive": { "version": "1.1.0", "dev": true, @@ -3880,6 +3850,18 @@ "dev": true, "license": "ISC" }, + "../../node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "../../node_modules/function-bind": { "version": "1.1.2", "dev": true, @@ -3927,14 +3909,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "../../node_modules/get-pkg-repo": { "version": "4.2.1", "dev": true, @@ -3991,17 +3965,6 @@ "node": ">= 0.4" } }, - "../../node_modules/get-tsconfig": { - "version": "4.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, "../../node_modules/git-raw-commits": { "version": "3.0.0", "dev": true, @@ -4194,29 +4157,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/hasha": { - "version": "5.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "../../node_modules/hasown": { "version": "2.0.3", "dev": true, @@ -4228,14 +4168,6 @@ "node": ">= 0.4" } }, - "../../node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "../../node_modules/help-me": { "version": "5.0.0", "dev": true, @@ -4332,14 +4264,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "../../node_modules/indent-string": { "version": "4.0.0", "dev": true, @@ -4457,22 +4381,6 @@ "node": ">=8" } }, - "../../node_modules/is-object": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/is-plain-obj": { "version": "1.1.0", "dev": true, @@ -4486,17 +4394,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/is-text-path": { "version": "1.0.1", "dev": true, @@ -4508,30 +4405,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/is-windows": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "../../node_modules/isarray": { "version": "0.0.1", "dev": true, @@ -4550,59 +4423,6 @@ "node": ">=8" } }, - "../../node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.4", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-processinfo": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^6.1.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": "20 || >=22" - } - }, "../../node_modules/istanbul-lib-report": { "version": "3.0.1", "dev": true, @@ -4641,19 +4461,6 @@ "node": ">=10" } }, - "../../node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "../../node_modules/istanbul-reports": { "version": "3.2.0", "dev": true, @@ -4698,17 +4505,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/js-yaml": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "../../node_modules/jsesc": { "version": "3.1.0", "dev": true, @@ -4844,30 +4640,15 @@ "dev": true, "license": "MIT" }, - "../../node_modules/lodash.flattendeep": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, "../../node_modules/lodash.ismatch": { "version": "4.4.0", "dev": true, "license": "MIT" }, - "../../node_modules/log-symbols": { - "version": "4.1.0", + "../../node_modules/loupe": { + "version": "3.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "../../node_modules/lru-cache": { "version": "5.1.1", @@ -4882,6 +4663,24 @@ "dev": true, "license": "MIT" }, + "../../node_modules/magic-string": { + "version": "0.30.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "../../node_modules/magicast": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "../../node_modules/make-dir": { "version": "2.1.0", "dev": true, @@ -5210,141 +5009,6 @@ "node": ">=10" } }, - "../../node_modules/mocha": { - "version": "11.7.5", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^4.0.1", - "debug": "^4.3.5", - "diff": "^7.0.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^9.0.5", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "../../node_modules/mocha/node_modules/brace-expansion": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "../../node_modules/mocha/node_modules/chokidar": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/mocha/node_modules/glob": { - "version": "10.5.0", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/minimatch": { - "version": "9.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/readdirp": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../../node_modules/mocha/node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "../../node_modules/modify-values": { "version": "1.0.1", "dev": true, @@ -5353,16 +5017,28 @@ "node": ">=0.10.0" } }, - "../../node_modules/module-not-found-error": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/ms": { "version": "2.1.3", "dev": true, "license": "MIT" }, + "../../node_modules/nanoid": { + "version": "3.3.12", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "../../node_modules/negotiator": { "version": "1.0.0", "dev": true, @@ -5399,17 +5075,6 @@ "node-gyp-build-test": "build-test.js" } }, - "../../node_modules/node-preload": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/node-releases": { "version": "2.0.38", "dev": true, @@ -5474,399 +5139,134 @@ "node": ">=0.10.0" } }, - "../../node_modules/nyc": { - "version": "18.0.0", + "../../node_modules/object-inspect": { + "version": "1.13.4", "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^13.0.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^3.0.0", - "test-exclude": "^8.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/nyc/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/on-exit-leak-free": { + "version": "2.1.2", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/on-finished": { + "version": "2.4.1", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "ee-first": "1.1.1" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", + "../../node_modules/once": { + "version": "1.4.0", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrappy": "1" } }, - "../../node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", + "../../node_modules/outvariant": { + "version": "1.4.3", "dev": true, "license": "MIT" }, - "../../node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/p-locate": { + "version": "5.0.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "p-limit": "^3.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", + "../../node_modules/p-try": { + "version": "2.2.0", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "../../node_modules/nyc/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/package-json-from-dist": { + "version": "1.0.1", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "BlueOak-1.0.0" }, - "../../node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "../../node_modules/nyc/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/parseurl": { + "version": "1.3.3", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, + "license": "MIT", "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", + "../../node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "../../node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", + "../../node_modules/path-expression-matcher": { + "version": "1.5.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "dev": true, - "license": "ISC" - }, - "../../node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "../../node_modules/object-inspect": { - "version": "1.13.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/on-exit-leak-free": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../../node_modules/outvariant": { - "version": "1.4.3", - "dev": true, - "license": "MIT" - }, - "../../node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-map": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../node_modules/package-hash": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "../../node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../../node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/path-expression-matcher": { - "version": "1.5.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/path-is-absolute": { - "version": "1.0.1", + "../../node_modules/path-is-absolute": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { @@ -5934,6 +5334,19 @@ "node": ">=4" } }, + "../../node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "../../node_modules/pathval": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "../../node_modules/picocolors": { "version": "1.1.1", "dev": true, @@ -6043,102 +5456,59 @@ "dev": true, "license": "MIT" }, - "../../node_modules/pkg-dir": { - "version": "4.2.0", + "../../node_modules/postcss": { + "version": "8.5.14", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "../../node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/process-nextick-args": { + "version": "2.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "../../node_modules/pkg-dir/node_modules/locate-path": { + "../../node_modules/process-warning": { "version": "5.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "../../node_modules/propagate": { + "version": "2.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" - } - }, - "../../node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "../../node_modules/process-on-spawn": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-warning": { - "version": "5.0.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "MIT" - }, - "../../node_modules/propagate": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" + "node": ">= 8" } }, "../../node_modules/proxy-addr": { @@ -6161,16 +5531,6 @@ "node": ">=10" } }, - "../../node_modules/proxyquire": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, "../../node_modules/pump": { "version": "3.0.4", "dev": true, @@ -6236,14 +5596,6 @@ "node": ">=4" } }, - "../../node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "../../node_modules/range-parser": { "version": "1.2.1", "dev": true, @@ -6469,17 +5821,6 @@ "regjsparser": "bin/parser" } }, - "../../node_modules/release-zalgo": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "../../node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -6488,11 +5829,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/require-main-filename": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/requires-port": { "version": "1.0.0", "dev": true, @@ -6518,22 +5854,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "../../node_modules/ret": { "version": "0.2.2", "dev": true, @@ -6632,6 +5952,49 @@ "url": "https://github.com/sponsors/isaacs" } }, + "../../node_modules/rollup": { + "version": "4.60.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, "../../node_modules/router": { "version": "2.2.0", "dev": true, @@ -6727,14 +6090,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/serialize-javascript": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "../../node_modules/serve-static": { "version": "2.2.1", "dev": true, @@ -6753,11 +6108,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/setprototypeof": { "version": "1.2.0", "dev": true, @@ -6850,43 +6200,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/signal-exit": { - "version": "3.0.7", + "../../node_modules/siginfo": { + "version": "2.0.0", "dev": true, "license": "ISC" }, - "../../node_modules/sinon": { - "version": "21.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^15.3.2", - "@sinonjs/samsam": "^10.0.2", - "diff": "^8.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "../../node_modules/sinon-chai": { - "version": "4.0.1", - "dev": true, - "license": "(BSD-2-Clause OR WTFPL)", - "peerDependencies": { - "chai": "^5.0.0 || ^6.0.0", - "sinon": ">=4.0.0" - } - }, - "../../node_modules/sinon/node_modules/diff": { - "version": "8.0.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/slash": { "version": "2.0.0", "dev": true, @@ -6911,56 +6229,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../../node_modules/spawn-wrap": { - "version": "3.0.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "cross-spawn": "^7.0.6", - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../../node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/source-map-js": { + "version": "1.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "../../node_modules/spdx-correct": { @@ -7010,11 +6284,6 @@ "readable-stream": "^3.0.0" } }, - "../../node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, "../../node_modules/stack-utils": { "version": "2.0.6", "dev": true, @@ -7034,6 +6303,11 @@ "node": ">=8" } }, + "../../node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, "../../node_modules/statuses": { "version": "2.0.2", "dev": true, @@ -7042,6 +6316,11 @@ "node": ">= 0.8" } }, + "../../node_modules/std-env": { + "version": "3.10.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/strict-event-emitter": { "version": "0.5.1", "dev": true, @@ -7105,14 +6384,6 @@ "node": ">=8" } }, - "../../node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/strip-indent": { "version": "3.0.0", "dev": true, @@ -7124,17 +6395,22 @@ "node": ">=8" } }, - "../../node_modules/strip-json-comments": { - "version": "3.1.1", + "../../node_modules/strip-literal": { + "version": "3.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "js-tokens": "^9.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/antfu" } }, + "../../node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "dev": true, + "license": "MIT" + }, "../../node_modules/strnum": { "version": "2.2.3", "dev": true, @@ -7168,154 +6444,145 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/test-exclude": { - "version": "8.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^13.0.6", - "minimatch": "^10.2.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "../../node_modules/test-exclude/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/text-extensions": { + "version": "1.9.0", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=0.10" } }, - "../../node_modules/test-exclude/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/thread-stream": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "real-require": "^0.2.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=20" } }, - "../../node_modules/test-exclude/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/through": { + "version": "2.3.8", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "../../node_modules/test-exclude/node_modules/lru-cache": { - "version": "11.3.6", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" + "../../node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../../node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "../../node_modules/test-exclude/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "safe-buffer": "~5.1.0" } }, - "../../node_modules/test-exclude/node_modules/path-scurry": { - "version": "2.0.2", + "../../node_modules/tinybench": { + "version": "2.9.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/tinyglobby": { + "version": "0.2.16", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "../../node_modules/text-extensions": { - "version": "1.9.0", + "../../node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "../../node_modules/thread-stream": { - "version": "4.0.0", + "../../node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" - }, "engines": { - "node": ">=20" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "../../node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2": { - "version": "2.0.5", + "../../node_modules/tinypool": { + "version": "1.1.1", "dev": true, "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "engines": { + "node": "^18.0.0 || >=20.0.0" } }, - "../../node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", + "../../node_modules/tinyrainbow": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=14.0.0" } }, - "../../node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", + "../../node_modules/tinyspy": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=14.0.0" } }, "../../node_modules/to-regex-range": { @@ -7356,32 +6623,6 @@ "dev": true, "license": "0BSD" }, - "../../node_modules/tsx": { - "version": "4.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "../../node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/type-fest": { "version": "0.18.1", "dev": true, @@ -7411,14 +6652,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "../../node_modules/typedoc": { "version": "0.28.19", "dev": true, @@ -7607,14 +6840,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "../../node_modules/validate-npm-package-license": { "version": "3.0.4", "dev": true, @@ -7632,6 +6857,224 @@ "node": ">= 0.8" } }, + "../../node_modules/vite": { + "version": "7.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "../../node_modules/vite-node": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../../node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../node_modules/vitest": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "../../node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "../../node_modules/which": { "version": "2.0.2", "dev": true, @@ -7646,21 +7089,26 @@ "node": ">= 8" } }, - "../../node_modules/which-module": { - "version": "2.0.1", + "../../node_modules/why-is-node-running": { + "version": "2.3.0", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, "../../node_modules/wordwrap": { "version": "1.0.0", "dev": true, "license": "MIT" }, - "../../node_modules/workerpool": { - "version": "9.3.4", - "dev": true, - "license": "Apache-2.0" - }, "../../node_modules/wrap-ansi": { "version": "7.0.0", "dev": true, @@ -7699,17 +7147,6 @@ "dev": true, "license": "ISC" }, - "../../node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "../../node_modules/xtend": { "version": "4.0.2", "dev": true, @@ -7770,50 +7207,6 @@ "node": ">=10" } }, - "../../node_modules/yargs-unparser": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "dev": true, diff --git a/examples/provider-state/package-lock.json b/examples/provider-state/package-lock.json index 993d097cf..cb542969d 100644 --- a/examples/provider-state/package-lock.json +++ b/examples/provider-state/package-lock.json @@ -34,7 +34,7 @@ "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "http-proxy": "^1.18.1", - "https-proxy-agent": "^7.0.6", + "https-proxy-agent": "^9.0.0", "js-base64": "^3.7.8", "lodash": "^4.17.21", "ramda": "^0.32.0", @@ -48,38 +48,38 @@ "@babel/preset-env": "7.29.3", "@biomejs/biome": "2.4.14", "@tsconfig/node20": "20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", "@types/express": "4.17.25", "@types/http-proxy": "1.17.17", "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", "@types/nock": "11.1.0", "@types/node": "24.12.2", "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", + "@vitest/coverage-v8": "^3.0.0", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", - "mocha": "11.7.5", "nock": "14.0.14", - "nyc": "18.0.0", - "proxyquire": "2.1.3", "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", "typedoc": "^0.28.19", - "typescript": "6.0.3" + "typescript": "6.0.3", + "vitest": "^3.0.0" }, "engines": { "node": ">=20" } }, + "../../node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "../../node_modules/@babel/cli": { "version": "7.28.6", "dev": true, @@ -1460,6 +1460,14 @@ "node": ">=6.9.0" } }, + "../../node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "../../node_modules/@biomejs/biome": { "version": "2.4.14", "dev": true, @@ -1624,89 +1632,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "../../node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/@istanbuljs/schema": { "version": "0.1.6", "dev": true, @@ -1868,6 +1793,18 @@ "node": ">=14" } }, + "../../node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "../../node_modules/@shikijs/engine-oniguruma": { "version": "3.23.0", "dev": true, @@ -1907,39 +1844,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../../node_modules/@sinonjs/fake-timers": { - "version": "15.3.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } - }, - "../../node_modules/@sinonjs/samsam": { - "version": "10.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "type-detect": "^4.1.0" - } - }, - "../../node_modules/@sinonjs/samsam/node_modules/type-detect": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/@tsconfig/node20": { "version": "20.1.9", "dev": true, @@ -1963,14 +1867,6 @@ "assertion-error": "^2.0.1" } }, - "../../node_modules/@types/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*" - } - }, "../../node_modules/@types/connect": { "version": "3.4.38", "dev": true, @@ -1984,6 +1880,11 @@ "dev": true, "license": "MIT" }, + "../../node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, "../../node_modules/@types/express": { "version": "4.17.25", "dev": true, @@ -2042,11 +1943,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@types/mocha": { - "version": "10.0.10", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/nock": { "version": "11.1.0", "dev": true, @@ -2113,28 +2009,6 @@ "@types/node": "*" } }, - "../../node_modules/@types/sinon": { - "version": "21.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "../../node_modules/@types/sinon-chai": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "../../node_modules/@types/sinonjs__fake-timers": { - "version": "15.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/stack-utils": { "version": "2.0.3", "dev": true, @@ -2145,96 +2019,321 @@ "dev": true, "license": "MIT" }, - "../../node_modules/accepts": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8": { + "version": "3.2.4", "dev": true, "license": "MIT", "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "../../node_modules/add-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/agent-base": { - "version": "7.1.4", + "../../node_modules/@vitest/coverage-v8/node_modules/balanced-match": { + "version": "4.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">= 14" + "node": "18 || 20 || >=22" } }, - "../../node_modules/aggregate-error": { - "version": "3.1.0", + "../../node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { + "version": "5.0.5", "dev": true, "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "../../node_modules/ansi-regex": { - "version": "5.0.1", + "../../node_modules/@vitest/coverage-v8/node_modules/glob": { + "version": "10.5.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/ansi-styles": { - "version": "4.3.0", + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "balanced-match": "^1.0.0" + } + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/anymatch": { - "version": "3.1.3", + "../../node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", "dev": true, - "license": "ISC", - "optional": true, + "license": "BSD-3-Clause", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "../../node_modules/append-transform": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "10.2.5", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "default-require-extensions": "^3.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/archy": { - "version": "1.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.2", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } }, - "../../node_modules/argparse": { - "version": "2.0.1", + "../../node_modules/@vitest/expect": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/@vitest/mocker": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../../node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/runner": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/snapshot": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/spy": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/utils": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/accepts": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../../node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../../node_modules/agent-base": { + "version": "7.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "../../node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../../node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../../node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "../../node_modules/argparse": { + "version": "2.0.1", "dev": true, "license": "Python-2.0" }, @@ -2259,6 +2358,21 @@ "node": ">=12" } }, + "../../node_modules/ast-v8-to-istanbul": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "../../node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/asynckit": { "version": "0.4.0", "dev": true, @@ -2390,11 +2504,6 @@ "node": ">=8" } }, - "../../node_modules/browser-stdout": { - "version": "1.3.1", - "dev": true, - "license": "ISC" - }, "../../node_modules/browserslist": { "version": "4.28.2", "dev": true, @@ -2440,32 +2549,12 @@ "node": ">= 0.8" } }, - "../../node_modules/caching-transform": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/cac": { + "version": "6.7.14", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "../../node_modules/call-bind-apply-helpers": { @@ -2538,25 +2627,6 @@ ], "license": "CC-BY-4.0" }, - "../../node_modules/chai": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "../../node_modules/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, "../../node_modules/chalk": { "version": "4.1.2", "dev": true, @@ -2609,14 +2679,6 @@ "fsevents": "~2.3.2" } }, - "../../node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "../../node_modules/cliui": { "version": "8.0.1", "dev": true, @@ -2765,11 +2827,6 @@ "node": ">=4" } }, - "../../node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/compare-func": { "version": "2.0.0", "dev": true, @@ -3193,18 +3250,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/default-require-extensions": { - "version": "3.0.1", + "../../node_modules/deep-eql": { + "version": "5.0.2", "dev": true, "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "../../node_modules/delayed-stream": { @@ -3247,14 +3298,6 @@ "node": ">=8" } }, - "../../node_modules/diff": { - "version": "7.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/dot-prop": { "version": "5.3.0", "dev": true, @@ -3426,6 +3469,11 @@ "node": ">= 0.4" } }, + "../../node_modules/es-module-lexer": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/es-object-atoms": { "version": "1.1.1", "dev": true, @@ -3451,11 +3499,6 @@ "node": ">= 0.4" } }, - "../../node_modules/es6-error": { - "version": "4.1.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/esbuild": { "version": "0.27.7", "dev": true, @@ -3517,18 +3560,14 @@ "node": ">=0.8.0" } }, - "../../node_modules/esprima": { - "version": "4.0.1", + "../../node_modules/estree-walker": { + "version": "3.0.3", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "../../node_modules/esutils": { "version": "2.0.3", "dev": true, @@ -3550,6 +3589,14 @@ "dev": true, "license": "MIT" }, + "../../node_modules/expect-type": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "../../node_modules/express": { "version": "5.2.1", "dev": true, @@ -3650,26 +3697,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/fill-keys": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../../node_modules/fill-keys/node_modules/merge-descriptors": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/fill-range": { "version": "7.1.1", "dev": true, @@ -3702,36 +3729,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "../../node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/find-up": { "version": "5.0.0", "dev": true, @@ -3747,14 +3744,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/flat": { - "version": "5.0.2", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, "../../node_modules/follow-redirects": { "version": "1.16.0", "dev": true, @@ -3850,25 +3839,6 @@ "node": ">= 0.8" } }, - "../../node_modules/fromentries": { - "version": "1.3.2", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "../../node_modules/fs-readdir-recursive": { "version": "1.1.0", "dev": true, @@ -3879,6 +3849,18 @@ "dev": true, "license": "ISC" }, + "../../node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "../../node_modules/function-bind": { "version": "1.1.2", "dev": true, @@ -3926,14 +3908,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "../../node_modules/get-pkg-repo": { "version": "4.2.1", "dev": true, @@ -3990,17 +3964,6 @@ "node": ">= 0.4" } }, - "../../node_modules/get-tsconfig": { - "version": "4.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, "../../node_modules/git-raw-commits": { "version": "3.0.0", "dev": true, @@ -4193,29 +4156,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/hasha": { - "version": "5.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "../../node_modules/hasown": { "version": "2.0.3", "dev": true, @@ -4227,14 +4167,6 @@ "node": ">= 0.4" } }, - "../../node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "../../node_modules/help-me": { "version": "5.0.0", "dev": true, @@ -4331,14 +4263,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "../../node_modules/indent-string": { "version": "4.0.0", "dev": true, @@ -4456,22 +4380,6 @@ "node": ">=8" } }, - "../../node_modules/is-object": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/is-plain-obj": { "version": "1.1.0", "dev": true, @@ -4485,17 +4393,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/is-text-path": { "version": "1.0.1", "dev": true, @@ -4507,30 +4404,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/is-windows": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "../../node_modules/isarray": { "version": "0.0.1", "dev": true, @@ -4549,59 +4422,6 @@ "node": ">=8" } }, - "../../node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.4", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-processinfo": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^6.1.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": "20 || >=22" - } - }, "../../node_modules/istanbul-lib-report": { "version": "3.0.1", "dev": true, @@ -4640,19 +4460,6 @@ "node": ">=10" } }, - "../../node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "../../node_modules/istanbul-reports": { "version": "3.2.0", "dev": true, @@ -4697,17 +4504,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/js-yaml": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "../../node_modules/jsesc": { "version": "3.1.0", "dev": true, @@ -4843,30 +4639,15 @@ "dev": true, "license": "MIT" }, - "../../node_modules/lodash.flattendeep": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, "../../node_modules/lodash.ismatch": { "version": "4.4.0", "dev": true, "license": "MIT" }, - "../../node_modules/log-symbols": { - "version": "4.1.0", + "../../node_modules/loupe": { + "version": "3.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "../../node_modules/lru-cache": { "version": "5.1.1", @@ -4881,6 +4662,24 @@ "dev": true, "license": "MIT" }, + "../../node_modules/magic-string": { + "version": "0.30.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "../../node_modules/magicast": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "../../node_modules/make-dir": { "version": "2.1.0", "dev": true, @@ -5209,141 +5008,6 @@ "node": ">=10" } }, - "../../node_modules/mocha": { - "version": "11.7.5", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^4.0.1", - "debug": "^4.3.5", - "diff": "^7.0.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^9.0.5", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "../../node_modules/mocha/node_modules/brace-expansion": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "../../node_modules/mocha/node_modules/chokidar": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/mocha/node_modules/glob": { - "version": "10.5.0", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/minimatch": { - "version": "9.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/readdirp": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../../node_modules/mocha/node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "../../node_modules/modify-values": { "version": "1.0.1", "dev": true, @@ -5352,16 +5016,28 @@ "node": ">=0.10.0" } }, - "../../node_modules/module-not-found-error": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/ms": { "version": "2.1.3", "dev": true, "license": "MIT" }, + "../../node_modules/nanoid": { + "version": "3.3.12", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "../../node_modules/negotiator": { "version": "1.0.0", "dev": true, @@ -5398,17 +5074,6 @@ "node-gyp-build-test": "build-test.js" } }, - "../../node_modules/node-preload": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/node-releases": { "version": "2.0.38", "dev": true, @@ -5473,399 +5138,134 @@ "node": ">=0.10.0" } }, - "../../node_modules/nyc": { - "version": "18.0.0", + "../../node_modules/object-inspect": { + "version": "1.13.4", "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^13.0.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^3.0.0", - "test-exclude": "^8.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/nyc/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/on-exit-leak-free": { + "version": "2.1.2", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/on-finished": { + "version": "2.4.1", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "ee-first": "1.1.1" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", + "../../node_modules/once": { + "version": "1.4.0", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrappy": "1" } }, - "../../node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", + "../../node_modules/outvariant": { + "version": "1.4.3", "dev": true, "license": "MIT" }, - "../../node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/p-locate": { + "version": "5.0.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "p-limit": "^3.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", + "../../node_modules/p-try": { + "version": "2.2.0", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "../../node_modules/nyc/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/package-json-from-dist": { + "version": "1.0.1", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "BlueOak-1.0.0" }, - "../../node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "../../node_modules/nyc/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/parseurl": { + "version": "1.3.3", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, + "license": "MIT", "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", + "../../node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "../../node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", + "../../node_modules/path-expression-matcher": { + "version": "1.5.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "dev": true, - "license": "ISC" - }, - "../../node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "../../node_modules/object-inspect": { - "version": "1.13.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/on-exit-leak-free": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../../node_modules/outvariant": { - "version": "1.4.3", - "dev": true, - "license": "MIT" - }, - "../../node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-map": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../node_modules/package-hash": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "../../node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../../node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/path-expression-matcher": { - "version": "1.5.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/path-is-absolute": { - "version": "1.0.1", + "../../node_modules/path-is-absolute": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { @@ -5933,6 +5333,19 @@ "node": ">=4" } }, + "../../node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "../../node_modules/pathval": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "../../node_modules/picocolors": { "version": "1.1.1", "dev": true, @@ -6042,102 +5455,59 @@ "dev": true, "license": "MIT" }, - "../../node_modules/pkg-dir": { - "version": "4.2.0", + "../../node_modules/postcss": { + "version": "8.5.14", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "../../node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/process-nextick-args": { + "version": "2.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "../../node_modules/pkg-dir/node_modules/locate-path": { + "../../node_modules/process-warning": { "version": "5.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "../../node_modules/propagate": { + "version": "2.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" - } - }, - "../../node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "../../node_modules/process-on-spawn": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-warning": { - "version": "5.0.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "MIT" - }, - "../../node_modules/propagate": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" + "node": ">= 8" } }, "../../node_modules/proxy-addr": { @@ -6160,16 +5530,6 @@ "node": ">=10" } }, - "../../node_modules/proxyquire": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, "../../node_modules/pump": { "version": "3.0.4", "dev": true, @@ -6235,14 +5595,6 @@ "node": ">=4" } }, - "../../node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "../../node_modules/range-parser": { "version": "1.2.1", "dev": true, @@ -6468,17 +5820,6 @@ "regjsparser": "bin/parser" } }, - "../../node_modules/release-zalgo": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "../../node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -6487,11 +5828,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/require-main-filename": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/requires-port": { "version": "1.0.0", "dev": true, @@ -6517,22 +5853,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "../../node_modules/ret": { "version": "0.2.2", "dev": true, @@ -6631,6 +5951,49 @@ "url": "https://github.com/sponsors/isaacs" } }, + "../../node_modules/rollup": { + "version": "4.60.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, "../../node_modules/router": { "version": "2.2.0", "dev": true, @@ -6726,14 +6089,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/serialize-javascript": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "../../node_modules/serve-static": { "version": "2.2.1", "dev": true, @@ -6752,11 +6107,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/setprototypeof": { "version": "1.2.0", "dev": true, @@ -6849,43 +6199,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/signal-exit": { - "version": "3.0.7", + "../../node_modules/siginfo": { + "version": "2.0.0", "dev": true, "license": "ISC" }, - "../../node_modules/sinon": { - "version": "21.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^15.3.2", - "@sinonjs/samsam": "^10.0.2", - "diff": "^8.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "../../node_modules/sinon-chai": { - "version": "4.0.1", - "dev": true, - "license": "(BSD-2-Clause OR WTFPL)", - "peerDependencies": { - "chai": "^5.0.0 || ^6.0.0", - "sinon": ">=4.0.0" - } - }, - "../../node_modules/sinon/node_modules/diff": { - "version": "8.0.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/slash": { "version": "2.0.0", "dev": true, @@ -6910,56 +6228,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../../node_modules/spawn-wrap": { - "version": "3.0.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "cross-spawn": "^7.0.6", - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../../node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/source-map-js": { + "version": "1.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "../../node_modules/spdx-correct": { @@ -7009,11 +6283,6 @@ "readable-stream": "^3.0.0" } }, - "../../node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, "../../node_modules/stack-utils": { "version": "2.0.6", "dev": true, @@ -7033,6 +6302,11 @@ "node": ">=8" } }, + "../../node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, "../../node_modules/statuses": { "version": "2.0.2", "dev": true, @@ -7041,6 +6315,11 @@ "node": ">= 0.8" } }, + "../../node_modules/std-env": { + "version": "3.10.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/strict-event-emitter": { "version": "0.5.1", "dev": true, @@ -7104,14 +6383,6 @@ "node": ">=8" } }, - "../../node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/strip-indent": { "version": "3.0.0", "dev": true, @@ -7123,17 +6394,22 @@ "node": ">=8" } }, - "../../node_modules/strip-json-comments": { - "version": "3.1.1", + "../../node_modules/strip-literal": { + "version": "3.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "js-tokens": "^9.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/antfu" } }, + "../../node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "dev": true, + "license": "MIT" + }, "../../node_modules/strnum": { "version": "2.2.3", "dev": true, @@ -7167,154 +6443,145 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/test-exclude": { - "version": "8.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^13.0.6", - "minimatch": "^10.2.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "../../node_modules/test-exclude/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/text-extensions": { + "version": "1.9.0", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=0.10" } }, - "../../node_modules/test-exclude/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/thread-stream": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "real-require": "^0.2.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=20" } }, - "../../node_modules/test-exclude/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/through": { + "version": "2.3.8", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "../../node_modules/test-exclude/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/through2/node_modules/isarray": { + "version": "1.0.0", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" + "license": "MIT" + }, + "../../node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "../../node_modules/test-exclude/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "safe-buffer": "~5.1.0" } }, - "../../node_modules/test-exclude/node_modules/path-scurry": { - "version": "2.0.2", + "../../node_modules/tinybench": { + "version": "2.9.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/tinyglobby": { + "version": "0.2.16", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "../../node_modules/text-extensions": { - "version": "1.9.0", + "../../node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "../../node_modules/thread-stream": { - "version": "4.0.0", + "../../node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" - }, "engines": { - "node": ">=20" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "../../node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2": { - "version": "2.0.5", + "../../node_modules/tinypool": { + "version": "1.1.1", "dev": true, "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "engines": { + "node": "^18.0.0 || >=20.0.0" } }, - "../../node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", + "../../node_modules/tinyrainbow": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=14.0.0" } }, - "../../node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", + "../../node_modules/tinyspy": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=14.0.0" } }, "../../node_modules/to-regex-range": { @@ -7355,32 +6622,6 @@ "dev": true, "license": "0BSD" }, - "../../node_modules/tsx": { - "version": "4.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "../../node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/type-fest": { "version": "0.18.1", "dev": true, @@ -7410,14 +6651,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "../../node_modules/typedoc": { "version": "0.28.19", "dev": true, @@ -7606,14 +6839,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "../../node_modules/validate-npm-package-license": { "version": "3.0.4", "dev": true, @@ -7631,6 +6856,224 @@ "node": ">= 0.8" } }, + "../../node_modules/vite": { + "version": "7.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "../../node_modules/vite-node": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../../node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../node_modules/vitest": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "../../node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "../../node_modules/which": { "version": "2.0.2", "dev": true, @@ -7645,21 +7088,26 @@ "node": ">= 8" } }, - "../../node_modules/which-module": { - "version": "2.0.1", + "../../node_modules/why-is-node-running": { + "version": "2.3.0", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, "../../node_modules/wordwrap": { "version": "1.0.0", "dev": true, "license": "MIT" }, - "../../node_modules/workerpool": { - "version": "9.3.4", - "dev": true, - "license": "Apache-2.0" - }, "../../node_modules/wrap-ansi": { "version": "7.0.0", "dev": true, @@ -7698,17 +7146,6 @@ "dev": true, "license": "ISC" }, - "../../node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "../../node_modules/xtend": { "version": "4.0.2", "dev": true, @@ -7769,50 +7206,6 @@ "node": ">=10" } }, - "../../node_modules/yargs-unparser": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "dev": true, diff --git a/examples/vitest.config.ts b/examples/vitest.config.ts new file mode 100644 index 000000000..def43d4d3 --- /dev/null +++ b/examples/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + testTimeout: 60000, + }, +}); diff --git a/examples/xml/package-lock.json b/examples/xml/package-lock.json index 48daca30f..14f48ac0f 100644 --- a/examples/xml/package-lock.json +++ b/examples/xml/package-lock.json @@ -35,7 +35,7 @@ "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "http-proxy": "^1.18.1", - "https-proxy-agent": "^7.0.6", + "https-proxy-agent": "^9.0.0", "js-base64": "^3.7.8", "lodash": "^4.17.21", "ramda": "^0.32.0", @@ -49,38 +49,38 @@ "@babel/preset-env": "7.29.3", "@biomejs/biome": "2.4.14", "@tsconfig/node20": "20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", "@types/express": "4.17.25", "@types/http-proxy": "1.17.17", "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", "@types/nock": "11.1.0", "@types/node": "24.12.2", "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", + "@vitest/coverage-v8": "^3.0.0", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", - "mocha": "11.7.5", "nock": "14.0.14", - "nyc": "18.0.0", - "proxyquire": "2.1.3", "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", "typedoc": "^0.28.19", - "typescript": "6.0.3" + "typescript": "6.0.3", + "vitest": "^3.0.0" }, "engines": { "node": ">=20" } }, + "../../node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "../../node_modules/@babel/cli": { "version": "7.28.6", "dev": true, @@ -1461,6 +1461,14 @@ "node": ">=6.9.0" } }, + "../../node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "../../node_modules/@biomejs/biome": { "version": "2.4.14", "dev": true, @@ -1625,89 +1633,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "../../node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/@istanbuljs/schema": { "version": "0.1.6", "dev": true, @@ -1869,6 +1794,18 @@ "node": ">=14" } }, + "../../node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "../../node_modules/@shikijs/engine-oniguruma": { "version": "3.23.0", "dev": true, @@ -1908,39 +1845,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../../node_modules/@sinonjs/fake-timers": { - "version": "15.3.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } - }, - "../../node_modules/@sinonjs/samsam": { - "version": "10.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "type-detect": "^4.1.0" - } - }, - "../../node_modules/@sinonjs/samsam/node_modules/type-detect": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/@tsconfig/node20": { "version": "20.1.9", "dev": true, @@ -1964,14 +1868,6 @@ "assertion-error": "^2.0.1" } }, - "../../node_modules/@types/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*" - } - }, "../../node_modules/@types/connect": { "version": "3.4.38", "dev": true, @@ -1985,6 +1881,11 @@ "dev": true, "license": "MIT" }, + "../../node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, "../../node_modules/@types/express": { "version": "4.17.25", "dev": true, @@ -2043,11 +1944,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/@types/mocha": { - "version": "10.0.10", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/nock": { "version": "11.1.0", "dev": true, @@ -2114,28 +2010,6 @@ "@types/node": "*" } }, - "../../node_modules/@types/sinon": { - "version": "21.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "../../node_modules/@types/sinon-chai": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "../../node_modules/@types/sinonjs__fake-timers": { - "version": "15.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/@types/stack-utils": { "version": "2.0.3", "dev": true, @@ -2146,96 +2020,321 @@ "dev": true, "license": "MIT" }, - "../../node_modules/accepts": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8": { + "version": "3.2.4", "dev": true, "license": "MIT", "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "../../node_modules/add-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/agent-base": { - "version": "7.1.4", + "../../node_modules/@vitest/coverage-v8/node_modules/balanced-match": { + "version": "4.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">= 14" + "node": "18 || 20 || >=22" } }, - "../../node_modules/aggregate-error": { - "version": "3.1.0", + "../../node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { + "version": "5.0.5", "dev": true, "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "../../node_modules/ansi-regex": { - "version": "5.0.1", + "../../node_modules/@vitest/coverage-v8/node_modules/glob": { + "version": "10.5.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/ansi-styles": { - "version": "4.3.0", + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "balanced-match": "^1.0.0" + } + }, + "../../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/anymatch": { - "version": "3.1.3", + "../../node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", "dev": true, - "license": "ISC", - "optional": true, + "license": "BSD-3-Clause", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "../../node_modules/append-transform": { - "version": "2.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "10.2.5", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "default-require-extensions": "^3.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../../node_modules/archy": { - "version": "1.0.0", + "../../node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.2", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } }, - "../../node_modules/argparse": { - "version": "2.0.1", + "../../node_modules/@vitest/expect": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/@vitest/mocker": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../../node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/runner": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/snapshot": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/spy": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/@vitest/utils": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/accepts": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../../node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../../node_modules/agent-base": { + "version": "7.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "../../node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../../node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../../node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "../../node_modules/argparse": { + "version": "2.0.1", "dev": true, "license": "Python-2.0" }, @@ -2260,6 +2359,21 @@ "node": ">=12" } }, + "../../node_modules/ast-v8-to-istanbul": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "../../node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/asynckit": { "version": "0.4.0", "dev": true, @@ -2391,11 +2505,6 @@ "node": ">=8" } }, - "../../node_modules/browser-stdout": { - "version": "1.3.1", - "dev": true, - "license": "ISC" - }, "../../node_modules/browserslist": { "version": "4.28.2", "dev": true, @@ -2441,32 +2550,12 @@ "node": ">= 0.8" } }, - "../../node_modules/caching-transform": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/cac": { + "version": "6.7.14", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "../../node_modules/call-bind-apply-helpers": { @@ -2539,25 +2628,6 @@ ], "license": "CC-BY-4.0" }, - "../../node_modules/chai": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "../../node_modules/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, "../../node_modules/chalk": { "version": "4.1.2", "dev": true, @@ -2610,14 +2680,6 @@ "fsevents": "~2.3.2" } }, - "../../node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "../../node_modules/cliui": { "version": "8.0.1", "dev": true, @@ -2766,11 +2828,6 @@ "node": ">=4" } }, - "../../node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/compare-func": { "version": "2.0.0", "dev": true, @@ -3194,18 +3251,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/default-require-extensions": { - "version": "3.0.1", + "../../node_modules/deep-eql": { + "version": "5.0.2", "dev": true, "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "../../node_modules/delayed-stream": { @@ -3248,14 +3299,6 @@ "node": ">=8" } }, - "../../node_modules/diff": { - "version": "7.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/dot-prop": { "version": "5.3.0", "dev": true, @@ -3427,6 +3470,11 @@ "node": ">= 0.4" } }, + "../../node_modules/es-module-lexer": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/es-object-atoms": { "version": "1.1.1", "dev": true, @@ -3452,11 +3500,6 @@ "node": ">= 0.4" } }, - "../../node_modules/es6-error": { - "version": "4.1.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/esbuild": { "version": "0.27.7", "dev": true, @@ -3518,18 +3561,14 @@ "node": ">=0.8.0" } }, - "../../node_modules/esprima": { - "version": "4.0.1", + "../../node_modules/estree-walker": { + "version": "3.0.3", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "../../node_modules/esutils": { "version": "2.0.3", "dev": true, @@ -3551,6 +3590,14 @@ "dev": true, "license": "MIT" }, + "../../node_modules/expect-type": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "../../node_modules/express": { "version": "5.2.1", "dev": true, @@ -3651,26 +3698,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/fill-keys": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../../node_modules/fill-keys/node_modules/merge-descriptors": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/fill-range": { "version": "7.1.1", "dev": true, @@ -3703,36 +3730,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "../../node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/find-up": { "version": "5.0.0", "dev": true, @@ -3748,14 +3745,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/flat": { - "version": "5.0.2", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, "../../node_modules/follow-redirects": { "version": "1.16.0", "dev": true, @@ -3851,25 +3840,6 @@ "node": ">= 0.8" } }, - "../../node_modules/fromentries": { - "version": "1.3.2", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "../../node_modules/fs-readdir-recursive": { "version": "1.1.0", "dev": true, @@ -3880,6 +3850,18 @@ "dev": true, "license": "ISC" }, + "../../node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "../../node_modules/function-bind": { "version": "1.1.2", "dev": true, @@ -3927,14 +3909,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "../../node_modules/get-pkg-repo": { "version": "4.2.1", "dev": true, @@ -3991,17 +3965,6 @@ "node": ">= 0.4" } }, - "../../node_modules/get-tsconfig": { - "version": "4.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, "../../node_modules/git-raw-commits": { "version": "3.0.0", "dev": true, @@ -4194,29 +4157,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/hasha": { - "version": "5.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "../../node_modules/hasown": { "version": "2.0.3", "dev": true, @@ -4228,14 +4168,6 @@ "node": ">= 0.4" } }, - "../../node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "../../node_modules/help-me": { "version": "5.0.0", "dev": true, @@ -4332,14 +4264,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "../../node_modules/indent-string": { "version": "4.0.0", "dev": true, @@ -4457,22 +4381,6 @@ "node": ">=8" } }, - "../../node_modules/is-object": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/is-plain-obj": { "version": "1.1.0", "dev": true, @@ -4486,17 +4394,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../../node_modules/is-text-path": { "version": "1.0.1", "dev": true, @@ -4508,30 +4405,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/is-windows": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "../../node_modules/isarray": { "version": "0.0.1", "dev": true, @@ -4550,59 +4423,6 @@ "node": ">=8" } }, - "../../node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.4", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/istanbul-lib-processinfo": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^6.1.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": "20 || >=22" - } - }, "../../node_modules/istanbul-lib-report": { "version": "3.0.1", "dev": true, @@ -4641,19 +4461,6 @@ "node": ">=10" } }, - "../../node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "../../node_modules/istanbul-reports": { "version": "3.2.0", "dev": true, @@ -4698,17 +4505,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/js-yaml": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "../../node_modules/jsesc": { "version": "3.1.0", "dev": true, @@ -4844,30 +4640,15 @@ "dev": true, "license": "MIT" }, - "../../node_modules/lodash.flattendeep": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, "../../node_modules/lodash.ismatch": { "version": "4.4.0", "dev": true, "license": "MIT" }, - "../../node_modules/log-symbols": { - "version": "4.1.0", + "../../node_modules/loupe": { + "version": "3.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "../../node_modules/lru-cache": { "version": "5.1.1", @@ -4882,6 +4663,24 @@ "dev": true, "license": "MIT" }, + "../../node_modules/magic-string": { + "version": "0.30.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "../../node_modules/magicast": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "../../node_modules/make-dir": { "version": "2.1.0", "dev": true, @@ -5210,141 +5009,6 @@ "node": ">=10" } }, - "../../node_modules/mocha": { - "version": "11.7.5", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^4.0.1", - "debug": "^4.3.5", - "diff": "^7.0.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^9.0.5", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "../../node_modules/mocha/node_modules/brace-expansion": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "../../node_modules/mocha/node_modules/chokidar": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/mocha/node_modules/glob": { - "version": "10.5.0", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/minimatch": { - "version": "9.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/mocha/node_modules/readdirp": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "../../node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../../node_modules/mocha/node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "../../node_modules/modify-values": { "version": "1.0.1", "dev": true, @@ -5353,16 +5017,28 @@ "node": ">=0.10.0" } }, - "../../node_modules/module-not-found-error": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../../node_modules/ms": { "version": "2.1.3", "dev": true, "license": "MIT" }, + "../../node_modules/nanoid": { + "version": "3.3.12", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "../../node_modules/negotiator": { "version": "1.0.0", "dev": true, @@ -5399,17 +5075,6 @@ "node-gyp-build-test": "build-test.js" } }, - "../../node_modules/node-preload": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "../../node_modules/node-releases": { "version": "2.0.38", "dev": true, @@ -5474,399 +5139,134 @@ "node": ">=0.10.0" } }, - "../../node_modules/nyc": { - "version": "18.0.0", + "../../node_modules/object-inspect": { + "version": "1.13.4", "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^13.0.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^3.0.0", - "test-exclude": "^8.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/nyc/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/on-exit-leak-free": { + "version": "2.1.2", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/on-finished": { + "version": "2.4.1", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "ee-first": "1.1.1" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", + "../../node_modules/once": { + "version": "1.4.0", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrappy": "1" } }, - "../../node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", + "../../node_modules/outvariant": { + "version": "1.4.3", "dev": true, "license": "MIT" }, - "../../node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/p-locate": { + "version": "5.0.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "p-limit": "^3.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "../../node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", + "../../node_modules/p-try": { + "version": "2.2.0", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "../../node_modules/nyc/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/package-json-from-dist": { + "version": "1.0.1", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "BlueOak-1.0.0" }, - "../../node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "../../node_modules/nyc/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/parseurl": { + "version": "1.3.3", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, + "license": "MIT", "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8" } }, - "../../node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", + "../../node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "../../node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", + "../../node_modules/path-expression-matcher": { + "version": "1.5.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "../../node_modules/nyc/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "dev": true, - "license": "ISC" - }, - "../../node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "../../node_modules/object-inspect": { - "version": "1.13.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../../node_modules/on-exit-leak-free": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../../node_modules/outvariant": { - "version": "1.4.3", - "dev": true, - "license": "MIT" - }, - "../../node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/p-map": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../../node_modules/package-hash": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "../../node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../../node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../../node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/path-expression-matcher": { - "version": "1.5.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../../node_modules/path-is-absolute": { - "version": "1.0.1", + "../../node_modules/path-is-absolute": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { @@ -5934,6 +5334,19 @@ "node": ">=4" } }, + "../../node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "../../node_modules/pathval": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "../../node_modules/picocolors": { "version": "1.1.1", "dev": true, @@ -6043,102 +5456,59 @@ "dev": true, "license": "MIT" }, - "../../node_modules/pkg-dir": { - "version": "4.2.0", + "../../node_modules/postcss": { + "version": "8.5.14", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "../../node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", + "../../node_modules/process-nextick-args": { + "version": "2.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "../../node_modules/pkg-dir/node_modules/locate-path": { + "../../node_modules/process-warning": { "version": "5.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "../../node_modules/propagate": { + "version": "2.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" - } - }, - "../../node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "../../node_modules/process-on-spawn": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/process-warning": { - "version": "5.0.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "MIT" - }, - "../../node_modules/propagate": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" + "node": ">= 8" } }, "../../node_modules/proxy-addr": { @@ -6161,16 +5531,6 @@ "node": ">=10" } }, - "../../node_modules/proxyquire": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, "../../node_modules/pump": { "version": "3.0.4", "dev": true, @@ -6236,14 +5596,6 @@ "node": ">=4" } }, - "../../node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "../../node_modules/range-parser": { "version": "1.2.1", "dev": true, @@ -6469,17 +5821,6 @@ "regjsparser": "bin/parser" } }, - "../../node_modules/release-zalgo": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "../../node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -6488,11 +5829,6 @@ "node": ">=0.10.0" } }, - "../../node_modules/require-main-filename": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/requires-port": { "version": "1.0.0", "dev": true, @@ -6518,22 +5854,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../../node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "../../node_modules/ret": { "version": "0.2.2", "dev": true, @@ -6632,6 +5952,49 @@ "url": "https://github.com/sponsors/isaacs" } }, + "../../node_modules/rollup": { + "version": "4.60.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, "../../node_modules/router": { "version": "2.2.0", "dev": true, @@ -6727,14 +6090,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/serialize-javascript": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "../../node_modules/serve-static": { "version": "2.2.1", "dev": true, @@ -6753,11 +6108,6 @@ "url": "https://opencollective.com/express" } }, - "../../node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../../node_modules/setprototypeof": { "version": "1.2.0", "dev": true, @@ -6850,43 +6200,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/signal-exit": { - "version": "3.0.7", + "../../node_modules/siginfo": { + "version": "2.0.0", "dev": true, "license": "ISC" }, - "../../node_modules/sinon": { - "version": "21.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^15.3.2", - "@sinonjs/samsam": "^10.0.2", - "diff": "^8.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "../../node_modules/sinon-chai": { - "version": "4.0.1", - "dev": true, - "license": "(BSD-2-Clause OR WTFPL)", - "peerDependencies": { - "chai": "^5.0.0 || ^6.0.0", - "sinon": ">=4.0.0" - } - }, - "../../node_modules/sinon/node_modules/diff": { - "version": "8.0.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../../node_modules/slash": { "version": "2.0.0", "dev": true, @@ -6911,56 +6229,12 @@ "node": ">=0.10.0" } }, - "../../node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../../node_modules/spawn-wrap": { - "version": "3.0.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "cross-spawn": "^7.0.6", - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../../node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../../node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", + "../../node_modules/source-map-js": { + "version": "1.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "../../node_modules/spdx-correct": { @@ -7010,11 +6284,6 @@ "readable-stream": "^3.0.0" } }, - "../../node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, "../../node_modules/stack-utils": { "version": "2.0.6", "dev": true, @@ -7034,6 +6303,11 @@ "node": ">=8" } }, + "../../node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, "../../node_modules/statuses": { "version": "2.0.2", "dev": true, @@ -7042,6 +6316,11 @@ "node": ">= 0.8" } }, + "../../node_modules/std-env": { + "version": "3.10.0", + "dev": true, + "license": "MIT" + }, "../../node_modules/strict-event-emitter": { "version": "0.5.1", "dev": true, @@ -7105,14 +6384,6 @@ "node": ">=8" } }, - "../../node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/strip-indent": { "version": "3.0.0", "dev": true, @@ -7124,17 +6395,22 @@ "node": ">=8" } }, - "../../node_modules/strip-json-comments": { - "version": "3.1.1", + "../../node_modules/strip-literal": { + "version": "3.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "js-tokens": "^9.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/antfu" } }, + "../../node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "dev": true, + "license": "MIT" + }, "../../node_modules/strnum": { "version": "2.2.3", "dev": true, @@ -7168,154 +6444,145 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../../node_modules/test-exclude": { - "version": "8.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^13.0.6", - "minimatch": "^10.2.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "../../node_modules/test-exclude/node_modules/balanced-match": { - "version": "4.0.4", + "../../node_modules/text-extensions": { + "version": "1.9.0", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=0.10" } }, - "../../node_modules/test-exclude/node_modules/brace-expansion": { - "version": "5.0.5", + "../../node_modules/thread-stream": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "real-require": "^0.2.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=20" } }, - "../../node_modules/test-exclude/node_modules/glob": { - "version": "13.0.6", + "../../node_modules/through": { + "version": "2.3.8", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2": { + "version": "2.0.5", + "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "../../node_modules/test-exclude/node_modules/lru-cache": { - "version": "11.3.6", + "../../node_modules/through2/node_modules/isarray": { + "version": "1.0.0", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" + "license": "MIT" + }, + "../../node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "../../node_modules/test-exclude/node_modules/minimatch": { - "version": "10.2.5", + "../../node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "safe-buffer": "~5.1.0" } }, - "../../node_modules/test-exclude/node_modules/path-scurry": { - "version": "2.0.2", + "../../node_modules/tinybench": { + "version": "2.9.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "../../node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../../node_modules/tinyglobby": { + "version": "0.2.16", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "../../node_modules/text-extensions": { - "version": "1.9.0", + "../../node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "../../node_modules/thread-stream": { - "version": "4.0.0", + "../../node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" - }, "engines": { - "node": ">=20" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "../../node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2": { - "version": "2.0.5", + "../../node_modules/tinypool": { + "version": "1.1.1", "dev": true, "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "engines": { + "node": "^18.0.0 || >=20.0.0" } }, - "../../node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", + "../../node_modules/tinyrainbow": { + "version": "2.0.0", "dev": true, "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">=14.0.0" } }, - "../../node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "../../node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", + "../../node_modules/tinyspy": { + "version": "4.0.4", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=14.0.0" } }, "../../node_modules/to-regex-range": { @@ -7356,32 +6623,6 @@ "dev": true, "license": "0BSD" }, - "../../node_modules/tsx": { - "version": "4.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "../../node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../../node_modules/type-fest": { "version": "0.18.1", "dev": true, @@ -7411,14 +6652,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "../../node_modules/typedoc": { "version": "0.28.19", "dev": true, @@ -7607,14 +6840,6 @@ "dev": true, "license": "MIT" }, - "../../node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "../../node_modules/validate-npm-package-license": { "version": "3.0.4", "dev": true, @@ -7632,6 +6857,224 @@ "node": ">= 0.8" } }, + "../../node_modules/vite": { + "version": "7.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "../../node_modules/vite-node": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../../node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../node_modules/vitest": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "../../node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "../../node_modules/which": { "version": "2.0.2", "dev": true, @@ -7646,21 +7089,26 @@ "node": ">= 8" } }, - "../../node_modules/which-module": { - "version": "2.0.1", + "../../node_modules/why-is-node-running": { + "version": "2.3.0", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, "../../node_modules/wordwrap": { "version": "1.0.0", "dev": true, "license": "MIT" }, - "../../node_modules/workerpool": { - "version": "9.3.4", - "dev": true, - "license": "Apache-2.0" - }, "../../node_modules/wrap-ansi": { "version": "7.0.0", "dev": true, @@ -7699,17 +7147,6 @@ "dev": true, "license": "ISC" }, - "../../node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "../../node_modules/xtend": { "version": "4.0.2", "dev": true, @@ -7770,50 +7207,6 @@ "node": ">=10" } }, - "../../node_modules/yargs-unparser": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../../node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../../node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "dev": true, diff --git a/package-lock.json b/package-lock.json index 16770ff34..11848fae5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,38 +31,40 @@ "@babel/preset-env": "7.29.3", "@biomejs/biome": "2.4.14", "@tsconfig/node20": "20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", "@types/express": "4.17.25", "@types/http-proxy": "1.17.17", "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", "@types/nock": "11.1.0", "@types/node": "24.12.2", "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", + "@vitest/coverage-v8": "^3.0.0", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", - "mocha": "11.7.5", "nock": "14.0.14", - "nyc": "18.0.0", - "proxyquire": "2.1.3", "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", "typedoc": "^0.28.19", - "typescript": "6.0.3" + "typescript": "6.0.3", + "vitest": "^3.0.0" }, "engines": { "node": ">=20" } }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/cli": { "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.28.6.tgz", @@ -1625,6 +1627,16 @@ "node": ">=6.9.0" } }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@biomejs/biome": { "version": "2.4.14", "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.4.14.tgz", @@ -2369,103 +2381,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@istanbuljs/schema": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", @@ -2746,133 +2661,471 @@ "node": ">=14" } }, - "node_modules/@shikijs/engine-oniguruma": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.23.0.tgz", - "integrity": "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.3.tgz", + "integrity": "sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/types": "3.23.0", - "@shikijs/vscode-textmate": "^10.0.2" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@shikijs/langs": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.23.0.tgz", - "integrity": "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==", + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.3.tgz", + "integrity": "sha512-xw3xtkDApIOGayehp2+Rz4zimfkaX65r4t47iy+ymQB2G4iJCBBfj0ogVg5jpvjpn8UWn/+q9tprxleYeNp3Hw==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/types": "3.23.0" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@shikijs/themes": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.23.0.tgz", - "integrity": "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==", + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.3.tgz", + "integrity": "sha512-vo6Y5Qfpx7/5EaamIwi0WqW2+zfiusVihKatLvtN1VFVy3D13uERk/6gZLU1UiHRL6fDXqj/ELIeVRGnvcTE1g==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/types": "3.23.0" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@shikijs/types": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.23.0.tgz", - "integrity": "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==", + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.3.tgz", + "integrity": "sha512-D+0QGcZhBzTN82weOnsSlY7V7+RMmPuF1CkbxyMAGE8+ZHeUjyb76ZiWmBlCu//AQQONvxcqRbwZTajZKqjuOw==", + "cpu": [ + "x64" + ], "dev": true, "license": "MIT", - "dependencies": { - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" - } - }, - "node_modules/@shikijs/vscode-textmate": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", - "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", - "dev": true, - "license": "MIT" + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.3.tgz", + "integrity": "sha512-6HnvHCT7fDyj6R0Ph7A6x8dQS/S38MClRWeDLqc0MdfWkxjiu1HSDYrdPhqSILzjTIC/pnXbbJbo+ft+gy/9hQ==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@sinonjs/fake-timers": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.3.2.tgz", - "integrity": "sha512-mrn35Jl2pCpns+mE3HaZa1yPN5EYCRgiMI+135COjr2hr8Cls9DXqIZ57vZe2cz7y2XVSq92tcs6kGQcT1J8Rw==", + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.3.tgz", + "integrity": "sha512-KHLgC3WKlUYW3ShFKnnosZDOJ0xjg9zp7au3sIm2bs/tGBeC2ipmvRh/N7JKi0t9Ue20C0dpEshi8WUubg+cnA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/@sinonjs/samsam": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-10.0.2.tgz", - "integrity": "sha512-8lVwD1Df1BmzoaOLhMcGGcz/Jyr5QY2KSB75/YK1QgKzoabTeLdIVyhXNZK9ojfSKSdirbXqdbsXXqP9/Ve8+A==", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.3.tgz", + "integrity": "sha512-DV6fJoxEYWJOvaZIsok7KrYl0tPvga5OZ2yvKHNNYyk/2roMLqQAbGhr78EQ5YhHpnhLKJD3S1WFusAkmUuV5g==", + "cpu": [ + "arm" + ], "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "type-detect": "^4.1.0" - } + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@sinonjs/samsam/node_modules/type-detect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", - "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.3.tgz", + "integrity": "sha512-mQKoJAzvuOs6F+TZybQO4GOTSMUu7v0WdxEk24krQ/uUxXoPTtHjuaUuPmFhtBcM4K0ons8nrE3JyhTuCFtT/w==", + "cpu": [ + "arm" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "engines": { - "node": ">=4" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@tsconfig/node20": { - "version": "20.1.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.9.tgz", - "integrity": "sha512-IjlTv1RsvnPtUcjTqtVsZExKVq+KQx4g5pCP5tI7rAs6Xesl2qFwSz/tPDBC4JajkL/MlezBu3gPUwqRHl+RIg==", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.3.tgz", + "integrity": "sha512-Whjj2qoiJ6+OOJMGptTYazaJvjOJm+iKHpXQM1P3LzGjt7Ff++Tp7nH4N8J/BUA7R9IHfDyx4DJIflifwnbmIA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT" + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.3.tgz", + "integrity": "sha512-4YTNHKqGng5+yiZt3mg77nmyuCfmNfX4fPmyUapBcIk+BdwSwmCWGXOUxhXbBEkFHtoN5boLj/5NON+u5QC9tg==", + "cpu": [ + "arm64" + ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/chai": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.3.tgz", + "integrity": "sha512-SU3kNlhkpI4UqlUc2VXPGK9o886ZsSeGfMAX2ba2b8DKmMXq4AL7KUrkSWVbb7koVqx41Yczx6dx5PNargIrEA==", + "cpu": [ + "loong64" + ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", - "dependencies": { - "@types/deep-eql": "*", - "assertion-error": "^2.0.1" + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.3.tgz", + "integrity": "sha512-6lDLl5h4TXpB1mTf2rQWnAk/LcXrx9vBfu/DT5TIPhvMhRWaZ5MxkIc8u4lJAmBo6klTe1ywXIUHFjylW505sg==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.3.tgz", + "integrity": "sha512-BMo8bOw8evlup/8G+cj5xWtPyp93xPdyoSN16Zy90Q2QZ0ZYRhCt6ZJSwbrRzG9HApFabjwj2p25TUPDWrhzqQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.3.tgz", + "integrity": "sha512-E0L8X1dZN1/Rph+5VPF6Xj2G7JJvMACVXtamTJIDrVI44Y3K+G8gQaMEAavbqCGTa16InptiVrX6eM6pmJ+7qA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.3.tgz", + "integrity": "sha512-oZJ/WHaVfHUiRAtmTAeo3DcevNsVvH8mbvodjZy7D5QKvCefO371SiKRpxoDcCxB3PTRTLayWBkvmDQKTcX/sw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.3.tgz", + "integrity": "sha512-Dhbyh7j9FybM3YaTgaHmVALwA8AkUwTPccyCQ79TG9AJUsMQqgN1DDEZNr4+QUfwiWvLDumW5vdwzoeUF+TNxQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.3.tgz", + "integrity": "sha512-cJd1X5XhHHlltkaypz1UcWLA8AcoIi1aWhsvaWDskD1oz2eKCypnqvTQ8ykMNI0RSmm7NkTdSqSSD7zM0xa6Ig==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.3.tgz", + "integrity": "sha512-DAZDBHQfG2oQuhY7mc6I3/qB4LU2fQCjRvxbDwd/Jdvb9fypP4IJ4qmtu6lNjes6B531AI8cg1aKC2di97bUxA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.3.tgz", + "integrity": "sha512-cRxsE8c13mZOh3vP+wLDxpQBRrOHDIGOWyDL93Sy0Ga8y515fBcC2pjUfFwUe5T7tqvTvWbCpg1URM/AXdWIXA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.3.tgz", + "integrity": "sha512-QaWcIgRxqEdQdhJqW4DJctsH6HCmo5vHxY0krHSX4jMtOqfzC+dqDGuHM87bu4H8JBeibWx7jFz+h6/4C8wA5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.3.tgz", + "integrity": "sha512-AaXwSvUi3QIPtroAUw1t5yHGIyqKEXwH54WUocFolZhpGDruJcs8c+xPNDRn4XiQsS7MEwnYsHW2l0MBLDMkWg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.3.tgz", + "integrity": "sha512-65LAKM/bAWDqKNEelHlcHvm2V+Vfb8C6INFxQXRHCvaVN1rJfwr4NvdP4FyzUaLqWfaCGaadf6UbTm8xJeYfEg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.3.tgz", + "integrity": "sha512-EEM2gyhBF5MFnI6vMKdX1LAosE627RGBzIoGMdLloPZkXrUN0Ckqgr2Qi8+J3zip/8NVVro3/FjB+tjhZUgUHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.3.tgz", + "integrity": "sha512-E5Eb5H/DpxaoXH++Qkv28RcUJboMopmdDUALBczvHMf7hNIxaDZqwY5lK12UK1BHacSmvupoEWGu+n993Z0y1A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.3.tgz", + "integrity": "sha512-hPt/bgL5cE+Qp+/TPHBqptcAgPzgj46mPcg/16zNUmbQk0j+mOEQV/+Lqu8QRtDV3Ek95Q6FeFITpuhl6OTsAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.23.0.tgz", + "integrity": "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0", + "@shikijs/vscode-textmate": "^10.0.2" } }, - "node_modules/@types/chai-as-promised": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-8.0.2.tgz", - "integrity": "sha512-meQ1wDr1K5KRCSvG2lX7n7/5wf70BeptTKst0axGvnN6zqaVpRqegoIbugiAPSqOW9K9aL8gDVrm7a2LXOtn2Q==", + "node_modules/@shikijs/langs": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.23.0.tgz", + "integrity": "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0" + } + }, + "node_modules/@shikijs/themes": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.23.0.tgz", + "integrity": "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "3.23.0" + } + }, + "node_modules/@shikijs/types": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.23.0.tgz", + "integrity": "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node20": { + "version": "20.1.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.9.tgz", + "integrity": "sha512-IjlTv1RsvnPtUcjTqtVsZExKVq+KQx4g5pCP5tI7rAs6Xesl2qFwSz/tPDBC4JajkL/MlezBu3gPUwqRHl+RIg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "dev": true, "license": "MIT", "dependencies": { - "@types/chai": "*" + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" } }, "node_modules/@types/connect": { @@ -2892,6 +3145,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/express": { "version": "4.17.25", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", @@ -2966,13 +3226,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/mocha": { - "version": "10.0.10", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", - "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/nock": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/@types/nock/-/nock-11.1.0.tgz", @@ -3058,48 +3311,310 @@ "@types/node": "*" } }, - "node_modules/@types/sinon": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-21.0.1.tgz", - "integrity": "sha512-5yoJSqLbjH8T9V2bksgRayuhpZy+723/z6wBOR+Soe4ZlXC0eW8Na71TeaZPUWDQvM7LYKa9UGFc6LRqxiR5fQ==", + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } + "license": "MIT" }, - "node_modules/@types/sinon-chai": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-4.0.0.tgz", - "integrity": "sha512-Uar+qk3TmeFsUWCwtqRNqNUE7vf34+MCJiQJR5M2rd4nCbhtE8RgTiHwN/mVwbfCjhmO6DiOel/MgzHkRMJJFg==", + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitest/coverage-v8": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", + "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", "dev": true, "license": "MIT", "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-15.0.1.tgz", - "integrity": "sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w==", + "node_modules/@vitest/coverage-v8/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "node_modules/@vitest/coverage-v8/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, + "node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz", + "integrity": "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@vitest/expect": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", + "integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz", + "integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz", + "integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/accepts": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", @@ -3129,20 +3644,6 @@ "node": ">= 20" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -3183,26 +3684,6 @@ "node": ">= 8" } }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true, - "license": "MIT" - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -3237,6 +3718,25 @@ "node": ">=12" } }, + "node_modules/ast-v8-to-istanbul": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.12.tgz", + "integrity": "sha512-BRRC8VRZY2R4Z4lFIL35MwNXmwVqBityvOIwETtsCSwvjl0IdgFsy9NhdaA6j74nUdtJJlIypeRhpDam19Wq3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true, + "license": "MIT" + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3388,13 +3888,6 @@ "node": ">=8" } }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true, - "license": "ISC" - }, "node_modules/browserslist": { "version": "4.28.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", @@ -3445,36 +3938,14 @@ "node": ">= 0.8" } }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/call-bind-apply-helpers": { @@ -3555,29 +4026,6 @@ ], "license": "CC-BY-4.0" }, - "node_modules/chai": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/chai-as-promised": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-8.0.2.tgz", - "integrity": "sha512-1GadL+sEJVLzDjcawPM4kjfnL+p/9vrxiEUonowKOAzvVg0PixJUdtuDzdkDeQhK3zfOE76GqGkZIQ7/Adcrqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3636,16 +4084,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -3818,13 +4256,6 @@ "node": ">=4" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "license": "MIT" - }, "node_modules/compare-func": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", @@ -4319,20 +4750,14 @@ "node": ">=0.10.0" } }, - "node_modules/default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/delayed-stream": { @@ -4382,16 +4807,6 @@ "node": ">=8" } }, - "node_modules/diff": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz", - "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -4594,6 +5009,13 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -4621,13 +5043,6 @@ "node": ">= 0.4" } }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, - "license": "MIT" - }, "node_modules/esbuild": { "version": "0.27.7", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", @@ -4696,18 +5111,14 @@ "node": ">=0.8.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" } }, "node_modules/esutils": { @@ -4735,6 +5146,16 @@ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "license": "MIT" }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/express": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", @@ -4844,30 +5265,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fill-keys": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", - "integrity": "sha512-tcgI872xXjwFF4xgQmLxi76GnwJG3g/3isB1l4/G5Z4zrbddGpBjqZCO9oEAcB5wX0Hj/5iQB3toxfO7in1hHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-keys/node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -4903,40 +5300,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -4954,16 +5317,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, "node_modules/follow-redirects": { "version": "1.16.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", @@ -5069,27 +5422,6 @@ "node": ">= 0.8" } }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/fs-readdir-recursive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", @@ -5172,16 +5504,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/get-pkg-repo": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", @@ -5245,19 +5567,6 @@ "node": ">= 0.4" } }, - "node_modules/get-tsconfig": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", - "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, "node_modules/git-raw-commits": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", @@ -5479,33 +5788,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "node_modules/hasown": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", @@ -5518,16 +5800,6 @@ "node": ">= 0.4" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "node_modules/help-me": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", @@ -5637,16 +5909,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -5791,26 +6053,6 @@ "node": ">=8" } }, - "node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", @@ -5827,19 +6069,6 @@ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", "license": "MIT" }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", @@ -5853,36 +6082,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -5907,67 +6106,6 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-3.0.0.tgz", - "integrity": "sha512-P7nLXRRlo7Sqinty6lNa7+4o9jBUYGpqtejqCOZKfgXlRoxY/QArflcB86YO500Ahj4pDJEG34JjMRbQgePLnQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^6.1.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": "20 || >=22" - } - }, "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", @@ -6012,21 +6150,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/istanbul-reports": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", @@ -6079,19 +6202,6 @@ "dev": true, "license": "MIT" }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -6258,36 +6368,19 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.ismatch": { + "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", "dev": true, "license": "MIT" }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "node_modules/lru-cache": { "version": "5.1.1", @@ -6306,6 +6399,28 @@ "dev": true, "license": "MIT" }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -6688,160 +6803,6 @@ "node": ">=10" } }, - "node_modules/mocha": { - "version": "11.7.5", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.7.5.tgz", - "integrity": "sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^4.0.1", - "debug": "^4.3.5", - "diff": "^7.0.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^9.0.5", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", - "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/modify-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", @@ -6852,19 +6813,31 @@ "node": ">=0.10.0" } }, - "node_modules/module-not-found-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", - "integrity": "sha512-pEk4ECWQXV6z2zjhRZUongnLJNUeGQJ3w6OQ5ctGwD+i5o93qjRQUk2Rt6VdNeu3sEP0AB4LcfvdebpxBRVr4g==", - "dev": true, - "license": "MIT" - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/negotiator": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", @@ -6882,396 +6855,107 @@ "license": "MIT" }, "node_modules/nock": { - "version": "14.0.14", - "resolved": "https://registry.npmjs.org/nock/-/nock-14.0.14.tgz", - "integrity": "sha512-PKk7tex0O3RRXUZC5XDKJ9yM3rYRPS13myduT85VIIYDBnib42Fpxoe6KxRSzqB4iL2NDxkcJ2yiskZ18hGLEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@mswjs/interceptors": "^0.41.0", - "json-stringify-safe": "^5.0.1", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">=18.20.0 <20 || >=20.12.1" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", - "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", - "license": "MIT", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-releases": { - "version": "2.0.38", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz", - "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", - "dev": true, - "license": "ISC", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" - } - }, - "node_modules/noms/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/noms/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nyc": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-18.0.0.tgz", - "integrity": "sha512-G5UyHinFkB1BxqGTrmZdB6uIYH0+v7ZnVssuflUDi+J+RhKWyAhRT1RCehBSI6jLFLuUUgFDyLt49mUtdO1XeQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^13.0.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^3.0.0", - "test-exclude": "^8.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/nyc/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/nyc/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/lru-cache": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.6.tgz", - "integrity": "sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nyc/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "14.0.14", + "resolved": "https://registry.npmjs.org/nock/-/nock-14.0.14.tgz", + "integrity": "sha512-PKk7tex0O3RRXUZC5XDKJ9yM3rYRPS13myduT85VIIYDBnib42Fpxoe6KxRSzqB4iL2NDxkcJ2yiskZ18hGLEQ==", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "@mswjs/interceptors": "^0.41.0", + "json-stringify-safe": "^5.0.1", + "propagate": "^2.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18.20.0 <20 || >=20.12.1" } }, - "node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, - "node_modules/nyc/node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "node_modules/node-releases": { + "version": "2.0.38", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz", + "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "dev": true, + "license": "ISC", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" } }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/noms/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" } }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "node_modules/noms/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=6" + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/object-inspect": { @@ -7355,19 +7039,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -7378,22 +7049,6 @@ "node": ">=6" } }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -7534,6 +7189,23 @@ "node": ">=4" } }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -7656,73 +7328,33 @@ "integrity": "sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==", "license": "MIT" }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/postcss": { + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, "node_modules/process-nextick-args": { @@ -7732,19 +7364,6 @@ "dev": true, "license": "MIT" }, - "node_modules/process-on-spawn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.1.0.tgz", - "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/process-warning": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", @@ -7793,18 +7412,6 @@ "node": ">=10" } }, - "node_modules/proxyquire": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.1.3.tgz", - "integrity": "sha512-BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, "node_modules/pump": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", @@ -7879,16 +7486,6 @@ "node": ">=4" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -8155,19 +7752,6 @@ "regjsparser": "bin/parser" } }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -8178,13 +7762,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true, - "license": "ISC" - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -8207,30 +7784,10 @@ "resolve": "bin/resolve" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "license": "MIT", + "node": ">= 0.4" + }, "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/ret": { @@ -8346,6 +7903,51 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.3.tgz", + "integrity": "sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, "node_modules/router": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", @@ -8450,16 +8052,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/serve-static": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", @@ -8479,13 +8071,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true, - "license": "ISC" - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -8587,51 +8172,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true, "license": "ISC" }, - "node_modules/sinon": { - "version": "21.1.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-21.1.2.tgz", - "integrity": "sha512-FS6mN+/bx7e2ajpXkEmOcWB6xBzWiuNoAQT18/+a20SS4U7FSYl8Ms7N6VTUxN/1JAjkx7aXp+THMC8xdpp0gA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^15.3.2", - "@sinonjs/samsam": "^10.0.2", - "diff": "^8.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "node_modules/sinon-chai": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-4.0.1.tgz", - "integrity": "sha512-xMKEEV3cYHC1G+boyr7QEqi80gHznYsxVdC9CdjP5JnCWz/jPGuXQzJz3PtBcb0CcHAxar15Y5sjLBoAs6a0yA==", - "dev": true, - "license": "(BSD-2-Clause OR WTFPL)", - "peerDependencies": { - "chai": "^5.0.0 || ^6.0.0", - "sinon": ">=4.0.0" - } - }, - "node_modules/sinon/node_modules/diff": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", - "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", @@ -8661,64 +8208,14 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spawn-wrap": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-3.0.0.tgz", - "integrity": "sha512-z+s5vv4KzFPJVddGab0xX2n7kQPGMdNUX5l9T8EJqsXdKTWpcxmAqWHpsgHEXoC1taGBCc7b79bi62M5kdbrxQ==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "cross-spawn": "^7.0.6", - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/spdx-correct": { @@ -8780,13 +8277,6 @@ "readable-stream": "^3.0.0" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -8808,6 +8298,13 @@ "node": ">=8" } }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, "node_modules/statuses": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", @@ -8817,6 +8314,13 @@ "node": ">= 0.8" } }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, "node_modules/strict-event-emitter": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", @@ -8892,16 +8396,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -8915,19 +8409,26 @@ "node": ">=8" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/strip-literal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "js-tokens": "^9.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/antfu" } }, + "node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, "node_modules/strnum": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.3.tgz", @@ -8966,183 +8467,176 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/test-exclude": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-8.0.0.tgz", - "integrity": "sha512-ZOffsNrXYggvU1mDGHk54I96r26P8SyMjO5slMKSc7+IWmtB/MQKnEC2fP51imB3/pT6YK5cT5E8f+Dd9KdyOQ==", + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^13.0.6", - "minimatch": "^10.2.2" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">=0.10" } }, - "node_modules/test-exclude/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, + "node_modules/thread-stream": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-4.0.0.tgz", + "integrity": "sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==", "license": "MIT", + "dependencies": { + "real-require": "^0.2.0" + }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=20" } }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "node_modules/test-exclude/node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/test-exclude/node_modules/lru-cache": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.6.tgz", - "integrity": "sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==", + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "MIT" }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "safe-buffer": "~5.1.0" } }, - "node_modules/test-exclude/node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10" - } - }, - "node_modules/thread-stream": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-4.0.0.tgz", - "integrity": "sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==", - "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" + "node": ">=12.0.0" }, - "engines": { - "node": ">=20" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true, - "license": "MIT" + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", "dev": true, "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": "^18.0.0 || >=20.0.0" } }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/tinyspy": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", "dev": true, "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=14.0.0" } }, "node_modules/to-regex-range": { @@ -9191,36 +8685,6 @@ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, - "node_modules/tsx": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", - "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", @@ -9255,16 +8719,6 @@ "dev": true, "license": "MIT" }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "node_modules/typedoc": { "version": "0.28.19", "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.19.tgz", @@ -9487,17 +8941,6 @@ "dev": true, "license": "MIT" }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -9518,6 +8961,238 @@ "node": ">= 0.8" } }, + "node_modules/vite": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.2.tgz", + "integrity": "sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", + "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vitest": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -9534,12 +9209,22 @@ "node": ">= 8" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, "node_modules/wordwrap": { "version": "1.0.0", @@ -9548,13 +9233,6 @@ "dev": true, "license": "MIT" }, - "node_modules/workerpool": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz", - "integrity": "sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -9598,19 +9276,6 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -9683,58 +9348,6 @@ "node": ">=10" } }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", diff --git a/package.json b/package.json index 030f73c55..8073822d9 100644 --- a/package.json +++ b/package.json @@ -20,10 +20,9 @@ "check": "npm run format && npm run lint", "check:fix": "npm run format:fix && npm run lint:fix", "release": "commit-and-tag-version", - "test": "mocha", - "test:regression": "npm --prefix regression run test", - "coverage": "nyc npm run test", "pretest": "npm run install-plugins", + "test": "vitest run", + "test:regression": "npm --prefix regression run test", "docker:alpine:build": "docker build --build-arg NODE_VERSION=${NODE_VERSION:-current} -f Dockerfile.alpine -t pact-js:alpine .", "docker:debian:run": "docker run -e LOG_LEVEL=${LOG_LEVEL:-info} -e GIT_REF=${GIT_REF:-test} -e GITHUB_ACTIONS=${GITHUB_ACTIONS:-false} -e SKIP_EXAMPLES=${SKIP_EXAMPLES:-''} -e PACT_BROKER_BASE_URL -e PACT_BROKER_TOKEN -w /home -v $(pwd):/home --rm pact-js:debian", "docker:alpine:attach": "docker run -e PACT_BROKER_BASE_URL -e PACT_BROKER_TOKEN -w /home -v $(pwd):/home --entrypoint /bin/bash --rm -it pact-js:alpine", @@ -126,33 +125,21 @@ "@babel/preset-env": "7.29.3", "@biomejs/biome": "2.4.14", "@tsconfig/node20": "20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", "@types/express": "4.17.25", "@types/http-proxy": "1.17.17", "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", "@types/nock": "11.1.0", "@types/node": "24.12.2", "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", + "@vitest/coverage-v8": "^3.0.0", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", - "mocha": "11.7.5", "nock": "14.0.14", - "nyc": "18.0.0", - "proxyquire": "2.1.3", "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", "typedoc": "^0.28.19", - "typescript": "6.0.3" + "typescript": "6.0.3", + "vitest": "^3.0.0" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/regression/package-lock.json b/regression/package-lock.json index b477b12b9..fe39a8fcd 100644 --- a/regression/package-lock.json +++ b/regression/package-lock.json @@ -47,7 +47,7 @@ "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "http-proxy": "^1.18.1", - "https-proxy-agent": "^7.0.6", + "https-proxy-agent": "^9.0.0", "js-base64": "^3.7.8", "lodash": "^4.17.21", "ramda": "^0.32.0", @@ -61,38 +61,38 @@ "@babel/preset-env": "7.29.3", "@biomejs/biome": "2.4.14", "@tsconfig/node20": "20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", "@types/express": "4.17.25", "@types/http-proxy": "1.17.17", "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", "@types/nock": "11.1.0", "@types/node": "24.12.2", "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", + "@vitest/coverage-v8": "^3.0.0", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", - "mocha": "11.7.5", "nock": "14.0.14", - "nyc": "18.0.0", - "proxyquire": "2.1.3", "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", "typedoc": "^0.28.19", - "typescript": "6.0.3" + "typescript": "6.0.3", + "vitest": "^3.0.0" }, "engines": { "node": ">=20" } }, + "../node_modules/@ampproject/remapping": { + "version": "2.3.0", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "../node_modules/@babel/cli": { "version": "7.28.6", "dev": true, @@ -1473,6 +1473,14 @@ "node": ">=6.9.0" } }, + "../node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "../node_modules/@biomejs/biome": { "version": "2.4.14", "dev": true, @@ -1637,89 +1645,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "../node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "../node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "../node_modules/@istanbuljs/schema": { "version": "0.1.6", "dev": true, @@ -1881,6 +1806,18 @@ "node": ">=14" } }, + "../node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, "../node_modules/@shikijs/engine-oniguruma": { "version": "3.23.0", "dev": true, @@ -1920,39 +1857,6 @@ "dev": true, "license": "MIT" }, - "../node_modules/@sinonjs/commons": { - "version": "3.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../node_modules/@sinonjs/fake-timers": { - "version": "15.3.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1" - } - }, - "../node_modules/@sinonjs/samsam": { - "version": "10.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "type-detect": "^4.1.0" - } - }, - "../node_modules/@sinonjs/samsam/node_modules/type-detect": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../node_modules/@tsconfig/node20": { "version": "20.1.9", "dev": true, @@ -1976,14 +1880,6 @@ "assertion-error": "^2.0.1" } }, - "../node_modules/@types/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*" - } - }, "../node_modules/@types/connect": { "version": "3.4.38", "dev": true, @@ -1997,6 +1893,11 @@ "dev": true, "license": "MIT" }, + "../node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, "../node_modules/@types/express": { "version": "4.17.25", "dev": true, @@ -2055,11 +1956,6 @@ "dev": true, "license": "MIT" }, - "../node_modules/@types/mocha": { - "version": "10.0.10", - "dev": true, - "license": "MIT" - }, "../node_modules/@types/nock": { "version": "11.1.0", "dev": true, @@ -2126,28 +2022,6 @@ "@types/node": "*" } }, - "../node_modules/@types/sinon": { - "version": "21.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "../node_modules/@types/sinon-chai": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "../node_modules/@types/sinonjs__fake-timers": { - "version": "15.0.1", - "dev": true, - "license": "MIT" - }, "../node_modules/@types/stack-utils": { "version": "2.0.3", "dev": true, @@ -2158,96 +2032,321 @@ "dev": true, "license": "MIT" }, - "../node_modules/accepts": { - "version": "2.0.0", + "../node_modules/@vitest/coverage-v8": { + "version": "3.2.4", "dev": true, "license": "MIT", "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" }, - "engines": { - "node": ">= 0.6" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "../node_modules/add-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../node_modules/agent-base": { - "version": "7.1.4", + "../node_modules/@vitest/coverage-v8/node_modules/balanced-match": { + "version": "4.0.4", "dev": true, "license": "MIT", "engines": { - "node": ">= 14" + "node": "18 || 20 || >=22" } }, - "../node_modules/aggregate-error": { - "version": "3.1.0", + "../node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { + "version": "5.0.5", "dev": true, "license": "MIT", "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "balanced-match": "^4.0.2" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" } }, - "../node_modules/ansi-regex": { - "version": "5.0.1", + "../node_modules/@vitest/coverage-v8/node_modules/glob": { + "version": "10.5.0", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../node_modules/ansi-styles": { - "version": "4.3.0", + "../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "balanced-match": "^1.0.0" + } + }, + "../node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "../node_modules/anymatch": { - "version": "3.1.3", + "../node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", "dev": true, - "license": "ISC", - "optional": true, + "license": "BSD-3-Clause", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "../node_modules/append-transform": { - "version": "2.0.0", + "../node_modules/@vitest/coverage-v8/node_modules/minimatch": { + "version": "10.2.5", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "default-require-extensions": "^3.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": ">=8" + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "../node_modules/archy": { - "version": "1.0.0", + "../node_modules/@vitest/coverage-v8/node_modules/test-exclude": { + "version": "7.0.2", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } }, - "../node_modules/argparse": { - "version": "2.0.1", + "../node_modules/@vitest/expect": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../node_modules/@vitest/mocker": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../node_modules/@vitest/runner": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../node_modules/@vitest/snapshot": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../node_modules/@vitest/spy": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../node_modules/@vitest/utils": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../node_modules/accepts": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../node_modules/add-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "../node_modules/agent-base": { + "version": "7.1.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "../node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "../node_modules/anymatch": { + "version": "3.1.3", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "../node_modules/argparse": { + "version": "2.0.1", "dev": true, "license": "Python-2.0" }, @@ -2272,6 +2371,21 @@ "node": ">=12" } }, + "../node_modules/ast-v8-to-istanbul": { + "version": "0.3.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "../node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "10.0.0", + "dev": true, + "license": "MIT" + }, "../node_modules/asynckit": { "version": "0.4.0", "dev": true, @@ -2403,11 +2517,6 @@ "node": ">=8" } }, - "../node_modules/browser-stdout": { - "version": "1.3.1", - "dev": true, - "license": "ISC" - }, "../node_modules/browserslist": { "version": "4.28.2", "dev": true, @@ -2453,32 +2562,12 @@ "node": ">= 0.8" } }, - "../node_modules/caching-transform": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", + "../node_modules/cac": { + "version": "6.7.14", "dev": true, "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "../node_modules/call-bind-apply-helpers": { @@ -2551,25 +2640,6 @@ ], "license": "CC-BY-4.0" }, - "../node_modules/chai": { - "version": "6.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "../node_modules/chai-as-promised": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "check-error": "^2.1.1" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 7" - } - }, "../node_modules/chalk": { "version": "4.1.2", "dev": true, @@ -2622,14 +2692,6 @@ "fsevents": "~2.3.2" } }, - "../node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "../node_modules/cliui": { "version": "8.0.1", "dev": true, @@ -2778,11 +2840,6 @@ "node": ">=4" } }, - "../node_modules/commondir": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "../node_modules/compare-func": { "version": "2.0.0", "dev": true, @@ -3206,18 +3263,12 @@ "node": ">=0.10.0" } }, - "../node_modules/default-require-extensions": { - "version": "3.0.1", + "../node_modules/deep-eql": { + "version": "5.0.2", "dev": true, "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "../node_modules/delayed-stream": { @@ -3260,14 +3311,6 @@ "node": ">=8" } }, - "../node_modules/diff": { - "version": "7.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../node_modules/dot-prop": { "version": "5.3.0", "dev": true, @@ -3439,6 +3482,11 @@ "node": ">= 0.4" } }, + "../node_modules/es-module-lexer": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, "../node_modules/es-object-atoms": { "version": "1.1.1", "dev": true, @@ -3464,11 +3512,6 @@ "node": ">= 0.4" } }, - "../node_modules/es6-error": { - "version": "4.1.1", - "dev": true, - "license": "MIT" - }, "../node_modules/esbuild": { "version": "0.27.7", "dev": true, @@ -3530,18 +3573,14 @@ "node": ">=0.8.0" } }, - "../node_modules/esprima": { - "version": "4.0.1", + "../node_modules/estree-walker": { + "version": "3.0.3", "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "../node_modules/esutils": { "version": "2.0.3", "dev": true, @@ -3563,6 +3602,14 @@ "dev": true, "license": "MIT" }, + "../node_modules/expect-type": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "../node_modules/express": { "version": "5.2.1", "dev": true, @@ -3663,26 +3710,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../node_modules/fill-keys": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-object": "~1.0.1", - "merge-descriptors": "~1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../node_modules/fill-keys/node_modules/merge-descriptors": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../node_modules/fill-range": { "version": "7.1.1", "dev": true, @@ -3715,36 +3742,6 @@ "url": "https://opencollective.com/express" } }, - "../node_modules/find-cache-dir": { - "version": "3.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "../node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../node_modules/find-up": { "version": "5.0.0", "dev": true, @@ -3760,14 +3757,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "../node_modules/flat": { - "version": "5.0.2", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, "../node_modules/follow-redirects": { "version": "1.16.0", "dev": true, @@ -3863,25 +3852,6 @@ "node": ">= 0.8" } }, - "../node_modules/fromentries": { - "version": "1.3.2", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "../node_modules/fs-readdir-recursive": { "version": "1.1.0", "dev": true, @@ -3892,6 +3862,18 @@ "dev": true, "license": "ISC" }, + "../node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "../node_modules/function-bind": { "version": "1.1.2", "dev": true, @@ -3939,14 +3921,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "../node_modules/get-pkg-repo": { "version": "4.2.1", "dev": true, @@ -4003,17 +3977,6 @@ "node": ">= 0.4" } }, - "../node_modules/get-tsconfig": { - "version": "4.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, "../node_modules/git-raw-commits": { "version": "3.0.0", "dev": true, @@ -4206,29 +4169,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../node_modules/hasha": { - "version": "5.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, "../node_modules/hasown": { "version": "2.0.3", "dev": true, @@ -4240,14 +4180,6 @@ "node": ">= 0.4" } }, - "../node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, "../node_modules/help-me": { "version": "5.0.0", "dev": true, @@ -4344,14 +4276,6 @@ "url": "https://opencollective.com/express" } }, - "../node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "../node_modules/indent-string": { "version": "4.0.0", "dev": true, @@ -4469,22 +4393,6 @@ "node": ">=8" } }, - "../node_modules/is-object": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../node_modules/is-plain-obj": { "version": "1.1.0", "dev": true, @@ -4498,17 +4406,6 @@ "dev": true, "license": "MIT" }, - "../node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "../node_modules/is-text-path": { "version": "1.0.1", "dev": true, @@ -4520,30 +4417,6 @@ "node": ">=0.10.0" } }, - "../node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "../node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../node_modules/is-windows": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "../node_modules/isarray": { "version": "0.0.1", "dev": true, @@ -4562,59 +4435,6 @@ "node": ">=8" } }, - "../node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "../node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.4", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../node_modules/istanbul-lib-processinfo": { - "version": "3.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^6.1.3", - "uuid": "^8.3.2" - }, - "engines": { - "node": "20 || >=22" - } - }, "../node_modules/istanbul-lib-report": { "version": "3.0.1", "dev": true, @@ -4653,19 +4473,6 @@ "node": ">=10" } }, - "../node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, "../node_modules/istanbul-reports": { "version": "3.2.0", "dev": true, @@ -4710,17 +4517,6 @@ "dev": true, "license": "MIT" }, - "../node_modules/js-yaml": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "../node_modules/jsesc": { "version": "3.1.0", "dev": true, @@ -4856,30 +4652,15 @@ "dev": true, "license": "MIT" }, - "../node_modules/lodash.flattendeep": { - "version": "4.4.0", - "dev": true, - "license": "MIT" - }, "../node_modules/lodash.ismatch": { "version": "4.4.0", "dev": true, "license": "MIT" }, - "../node_modules/log-symbols": { - "version": "4.1.0", + "../node_modules/loupe": { + "version": "3.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "../node_modules/lru-cache": { "version": "5.1.1", @@ -4894,6 +4675,24 @@ "dev": true, "license": "MIT" }, + "../node_modules/magic-string": { + "version": "0.30.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "../node_modules/magicast": { + "version": "0.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "../node_modules/make-dir": { "version": "2.1.0", "dev": true, @@ -5222,159 +5021,36 @@ "node": ">=10" } }, - "../node_modules/mocha": { - "version": "11.7.5", + "../node_modules/modify-values": { + "version": "1.0.1", "dev": true, "license": "MIT", - "dependencies": { - "browser-stdout": "^1.3.1", - "chokidar": "^4.0.1", - "debug": "^4.3.5", - "diff": "^7.0.0", - "escape-string-regexp": "^4.0.0", - "find-up": "^5.0.0", - "glob": "^10.4.5", - "he": "^1.2.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "log-symbols": "^4.1.0", - "minimatch": "^9.0.5", - "ms": "^2.1.3", - "picocolors": "^1.1.1", - "serialize-javascript": "^6.0.2", - "strip-json-comments": "^3.1.1", - "supports-color": "^8.1.1", - "workerpool": "^9.2.0", - "yargs": "^17.7.2", - "yargs-parser": "^21.1.1", - "yargs-unparser": "^2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "../node_modules/mocha/node_modules/brace-expansion": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "node": ">=0.10.0" } }, - "../node_modules/mocha/node_modules/chokidar": { - "version": "4.0.3", + "../node_modules/ms": { + "version": "2.1.3", "dev": true, - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } + "license": "MIT" }, - "../node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", + "../node_modules/nanoid": { + "version": "3.3.12", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../node_modules/mocha/node_modules/glob": { - "version": "10.5.0", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../node_modules/mocha/node_modules/minimatch": { - "version": "9.0.9", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../node_modules/mocha/node_modules/readdirp": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "../node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" + "nanoid": "bin/nanoid.cjs" }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../node_modules/mocha/node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "../node_modules/modify-values": { - "version": "1.0.1", - "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "../node_modules/module-not-found-error": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "../node_modules/ms": { - "version": "2.1.3", - "dev": true, - "license": "MIT" - }, "../node_modules/negotiator": { "version": "1.0.0", "dev": true, @@ -5411,17 +5087,6 @@ "node-gyp-build-test": "build-test.js" } }, - "../node_modules/node-preload": { - "version": "0.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "../node_modules/node-releases": { "version": "2.0.38", "dev": true, @@ -5486,399 +5151,134 @@ "node": ">=0.10.0" } }, - "../node_modules/nyc": { - "version": "18.0.0", + "../node_modules/object-inspect": { + "version": "1.13.4", "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^13.0.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "spawn-wrap": "^3.0.0", - "test-exclude": "^8.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "../node_modules/nyc/node_modules/balanced-match": { - "version": "4.0.4", + "../node_modules/on-exit-leak-free": { + "version": "2.1.2", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=14.0.0" } }, - "../node_modules/nyc/node_modules/brace-expansion": { - "version": "5.0.5", + "../node_modules/on-finished": { + "version": "2.4.1", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" + "ee-first": "1.1.1" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">= 0.8" } }, - "../node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", + "../node_modules/once": { + "version": "1.4.0", "dev": true, "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "wrappy": "1" } }, - "../node_modules/nyc/node_modules/convert-source-map": { - "version": "1.9.0", + "../node_modules/outvariant": { + "version": "1.4.3", "dev": true, "license": "MIT" }, - "../node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", + "../node_modules/p-limit": { + "version": "3.1.0", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "../node_modules/nyc/node_modules/glob": { - "version": "13.0.6", + "../node_modules/p-locate": { + "version": "5.0.0", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "p-limit": "^3.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "../node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", + "../node_modules/p-try": { + "version": "2.2.0", "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "../node_modules/nyc/node_modules/lru-cache": { - "version": "11.3.6", + "../node_modules/package-json-from-dist": { + "version": "1.0.1", "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } + "license": "BlueOak-1.0.0" }, - "../node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", + "../node_modules/parse-json": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "../node_modules/nyc/node_modules/minimatch": { - "version": "10.2.5", + "../node_modules/parseurl": { + "version": "1.3.3", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, + "license": "MIT", "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 0.8" } }, - "../node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", + "../node_modules/path-exists": { + "version": "4.0.0", "dev": true, "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "../node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", + "../node_modules/path-expression-matcher": { + "version": "1.5.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, - "../node_modules/nyc/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "dev": true, - "license": "ISC" - }, - "../node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "../node_modules/object-inspect": { - "version": "1.13.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../node_modules/on-exit-leak-free": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../node_modules/on-finished": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../node_modules/outvariant": { - "version": "1.4.3", - "dev": true, - "license": "MIT" - }, - "../node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../node_modules/p-map": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../node_modules/package-hash": { - "version": "4.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/package-json-from-dist": { - "version": "1.0.1", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "../node_modules/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../node_modules/parseurl": { - "version": "1.3.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../node_modules/path-expression-matcher": { - "version": "1.5.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - } - ], - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "../node_modules/path-is-absolute": { - "version": "1.0.1", + "../node_modules/path-is-absolute": { + "version": "1.0.1", "dev": true, "license": "MIT", "engines": { @@ -5946,6 +5346,19 @@ "node": ">=4" } }, + "../node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "../node_modules/pathval": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "../node_modules/picocolors": { "version": "1.1.1", "dev": true, @@ -6055,102 +5468,59 @@ "dev": true, "license": "MIT" }, - "../node_modules/pkg-dir": { - "version": "4.2.0", + "../node_modules/postcss": { + "version": "8.5.14", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "../node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", + "../node_modules/process-nextick-args": { + "version": "2.0.1", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "../node_modules/pkg-dir/node_modules/locate-path": { + "../node_modules/process-warning": { "version": "5.0.0", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, + "../node_modules/propagate": { + "version": "2.0.1", + "dev": true, "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" - } - }, - "../node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/process-nextick-args": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "../node_modules/process-on-spawn": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/process-warning": { - "version": "5.0.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "MIT" - }, - "../node_modules/propagate": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" + "node": ">= 8" } }, "../node_modules/proxy-addr": { @@ -6173,16 +5543,6 @@ "node": ">=10" } }, - "../node_modules/proxyquire": { - "version": "2.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-keys": "^1.0.2", - "module-not-found-error": "^1.0.1", - "resolve": "^1.11.1" - } - }, "../node_modules/pump": { "version": "3.0.4", "dev": true, @@ -6248,14 +5608,6 @@ "node": ">=4" } }, - "../node_modules/randombytes": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "../node_modules/range-parser": { "version": "1.2.1", "dev": true, @@ -6481,17 +5833,6 @@ "regjsparser": "bin/parser" } }, - "../node_modules/release-zalgo": { - "version": "1.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, "../node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -6500,11 +5841,6 @@ "node": ">=0.10.0" } }, - "../node_modules/require-main-filename": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../node_modules/requires-port": { "version": "1.0.0", "dev": true, @@ -6530,22 +5866,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "../node_modules/ret": { "version": "0.2.2", "dev": true, @@ -6644,6 +5964,49 @@ "url": "https://github.com/sponsors/isaacs" } }, + "../node_modules/rollup": { + "version": "4.60.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, "../node_modules/router": { "version": "2.2.0", "dev": true, @@ -6739,14 +6102,6 @@ "url": "https://opencollective.com/express" } }, - "../node_modules/serialize-javascript": { - "version": "6.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "../node_modules/serve-static": { "version": "2.2.1", "dev": true, @@ -6765,11 +6120,6 @@ "url": "https://opencollective.com/express" } }, - "../node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "../node_modules/setprototypeof": { "version": "1.2.0", "dev": true, @@ -6862,43 +6212,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../node_modules/signal-exit": { - "version": "3.0.7", + "../node_modules/siginfo": { + "version": "2.0.0", "dev": true, "license": "ISC" }, - "../node_modules/sinon": { - "version": "21.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.1", - "@sinonjs/fake-timers": "^15.3.2", - "@sinonjs/samsam": "^10.0.2", - "diff": "^8.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "../node_modules/sinon-chai": { - "version": "4.0.1", - "dev": true, - "license": "(BSD-2-Clause OR WTFPL)", - "peerDependencies": { - "chai": "^5.0.0 || ^6.0.0", - "sinon": ">=4.0.0" - } - }, - "../node_modules/sinon/node_modules/diff": { - "version": "8.0.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, "../node_modules/slash": { "version": "2.0.0", "dev": true, @@ -6923,56 +6241,12 @@ "node": ">=0.10.0" } }, - "../node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../node_modules/spawn-wrap": { - "version": "3.0.0", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "cross-spawn": "^7.0.6", - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^6.1.3", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "../node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", + "../node_modules/source-map-js": { + "version": "1.2.1", "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "../node_modules/spdx-correct": { @@ -7022,11 +6296,6 @@ "readable-stream": "^3.0.0" } }, - "../node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, "../node_modules/stack-utils": { "version": "2.0.6", "dev": true, @@ -7046,6 +6315,11 @@ "node": ">=8" } }, + "../node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, "../node_modules/statuses": { "version": "2.0.2", "dev": true, @@ -7054,6 +6328,11 @@ "node": ">= 0.8" } }, + "../node_modules/std-env": { + "version": "3.10.0", + "dev": true, + "license": "MIT" + }, "../node_modules/strict-event-emitter": { "version": "0.5.1", "dev": true, @@ -7117,14 +6396,6 @@ "node": ">=8" } }, - "../node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../node_modules/strip-indent": { "version": "3.0.0", "dev": true, @@ -7136,17 +6407,22 @@ "node": ">=8" } }, - "../node_modules/strip-json-comments": { - "version": "3.1.1", + "../node_modules/strip-literal": { + "version": "3.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" + "dependencies": { + "js-tokens": "^9.0.1" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/antfu" } }, + "../node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "dev": true, + "license": "MIT" + }, "../node_modules/strnum": { "version": "2.2.3", "dev": true, @@ -7180,105 +6456,20 @@ "url": "https://github.com/sponsors/ljharb" } }, - "../node_modules/test-exclude": { - "version": "8.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^13.0.6", - "minimatch": "^10.2.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "../node_modules/test-exclude/node_modules/balanced-match": { - "version": "4.0.4", + "../node_modules/text-extensions": { + "version": "1.9.0", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": ">=0.10" } }, - "../node_modules/test-exclude/node_modules/brace-expansion": { - "version": "5.0.5", + "../node_modules/thread-stream": { + "version": "4.0.0", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "../node_modules/test-exclude/node_modules/glob": { - "version": "13.0.6", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../node_modules/test-exclude/node_modules/lru-cache": { - "version": "11.3.6", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "../node_modules/test-exclude/node_modules/minimatch": { - "version": "10.2.5", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../node_modules/test-exclude/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../node_modules/text-extensions": { - "version": "1.9.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "../node_modules/thread-stream": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "real-require": "^0.2.0" + "real-require": "^0.2.0" }, "engines": { "node": ">=20" @@ -7330,6 +6521,82 @@ "safe-buffer": "~5.1.0" } }, + "../node_modules/tinybench": { + "version": "2.9.0", + "dev": true, + "license": "MIT" + }, + "../node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../node_modules/tinyglobby": { + "version": "0.2.16", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "../node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../node_modules/tinypool": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "../node_modules/tinyrainbow": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "../node_modules/tinyspy": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "../node_modules/to-regex-range": { "version": "5.0.1", "dev": true, @@ -7368,32 +6635,6 @@ "dev": true, "license": "0BSD" }, - "../node_modules/tsx": { - "version": "4.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.27.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "../node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "../node_modules/type-fest": { "version": "0.18.1", "dev": true, @@ -7423,14 +6664,6 @@ "dev": true, "license": "MIT" }, - "../node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, "../node_modules/typedoc": { "version": "0.28.19", "dev": true, @@ -7619,14 +6852,6 @@ "dev": true, "license": "MIT" }, - "../node_modules/uuid": { - "version": "8.3.2", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "../node_modules/validate-npm-package-license": { "version": "3.0.4", "dev": true, @@ -7644,6 +6869,224 @@ "node": ">= 0.8" } }, + "../node_modules/vite": { + "version": "7.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "../node_modules/vite-node": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../node_modules/vitest": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "../node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "../node_modules/which": { "version": "2.0.2", "dev": true, @@ -7658,21 +7101,26 @@ "node": ">= 8" } }, - "../node_modules/which-module": { - "version": "2.0.1", + "../node_modules/why-is-node-running": { + "version": "2.3.0", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } }, "../node_modules/wordwrap": { "version": "1.0.0", "dev": true, "license": "MIT" }, - "../node_modules/workerpool": { - "version": "9.3.4", - "dev": true, - "license": "Apache-2.0" - }, "../node_modules/wrap-ansi": { "version": "7.0.0", "dev": true, @@ -7711,17 +7159,6 @@ "dev": true, "license": "ISC" }, - "../node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, "../node_modules/xtend": { "version": "4.0.2", "dev": true, @@ -7782,50 +7219,6 @@ "node": ">=10" } }, - "../node_modules/yargs-unparser": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../node_modules/yargs-unparser/node_modules/decamelize": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "../node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "dev": true, @@ -8303,8 +7696,6 @@ }, "node_modules/@nodable/entities": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==", "dev": true, "funding": [ { @@ -8739,8 +8130,6 @@ }, "node_modules/@types/node": { "version": "24.12.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz", - "integrity": "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==", "dev": true, "license": "MIT", "dependencies": { @@ -8930,8 +8319,6 @@ }, "node_modules/apollo-cache-inmemory": { "version": "1.6.6", - "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz", - "integrity": "sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A==", "dev": true, "license": "MIT", "dependencies": { @@ -8989,8 +8376,6 @@ }, "node_modules/apollo-link-http": { "version": "1.5.17", - "resolved": "https://registry.npmjs.org/apollo-link-http/-/apollo-link-http-1.5.17.tgz", - "integrity": "sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg==", "dev": true, "license": "MIT", "dependencies": { @@ -9456,9 +8841,7 @@ "license": "MIT" }, "node_modules/fast-xml-builder": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.8.tgz", - "integrity": "sha512-sDVBc2gg8pSKvcbE8rBmOyjSGQf0AdsbqvHeIOv3D/uYNoV4eCReQXyDF8Pdv8+m1FHazACypSz2hR7O2S1LLw==", + "version": "1.1.9", "dev": true, "funding": [ { @@ -9473,8 +8856,6 @@ }, "node_modules/fast-xml-parser": { "version": "5.7.3", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.7.3.tgz", - "integrity": "sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg==", "dev": true, "funding": [ { @@ -9704,8 +9085,6 @@ }, "node_modules/graphql-tag": { "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", "dev": true, "license": "MIT", "dependencies": { @@ -9720,8 +9099,6 @@ }, "node_modules/graphql-tag/node_modules/tslib": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, "license": "0BSD" }, @@ -10018,8 +9395,6 @@ }, "node_modules/path-expression-matcher": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz", - "integrity": "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==", "dev": true, "funding": [ { @@ -10133,8 +9508,6 @@ }, "node_modules/ramda": { "version": "0.32.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.32.0.tgz", - "integrity": "sha512-GQWAHhxhxWBWA8oIBr1XahFVjQ9Fic6MK9ikijfd4TZHfE2+urfk+irVlR5VOn48uwMgM+loRRBJd6Yjsbc0zQ==", "dev": true, "license": "MIT", "funding": { @@ -10477,8 +9850,6 @@ }, "node_modules/strnum": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.3.tgz", - "integrity": "sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==", "dev": true, "funding": [ { @@ -10617,8 +9988,6 @@ }, "node_modules/undici-types": { "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "dev": true, "license": "MIT" }, diff --git a/regression/v2/serverless/package-lock.json b/regression/v2/serverless/package-lock.json index 1ba2ca856..ed0a25883 100644 --- a/regression/v2/serverless/package-lock.json +++ b/regression/v2/serverless/package-lock.json @@ -12,7 +12,7 @@ "aws-sdk": "^2.1354.0" }, "devDependencies": { - "@pact-foundation/pact": "file:../../dist", + "@pact-foundation/pact": "file:../..", "@pact-foundation/pact-cli": "^18.0.0", "absolute-version": "2.0.0", "mocha": "^10.0.0", @@ -20,70 +20,1935 @@ "serverless": "^4.0.0" } }, - "../../../dist": { + "../..": { + "name": "pact-js-regression", + "dev": true, + "dependencies": { + "eyes": "^0.1.8" + }, + "devDependencies": { + "@pact-foundation/pact": "file:..", + "@tsconfig/node20": "20.1.9", + "@types/node": "^24.0.0", + "apollo-boost": "0.4.9", + "apollo-cache-inmemory": "1.6.6", + "apollo-link-http": "1.5.17", + "axios": "^1.12.0", + "body-parser": "^2.2.0", + "cors": "^2.8.5", + "express": "^5.1.0", + "fast-xml-parser": "^5.0.0", + "form-data": "^4.0.0", + "graphql": "^15.8.0", + "graphql-http": "^1.22.0", + "graphql-tag": "2.12.6", + "node-fetch": "^2.7.0", + "ramda": "^0.32.0", + "rimraf": "^6.0.0", + "superagent": "^10.2.0", + "typescript": "^6.0.0", + "vitest": "^3.0.0", + "xml": "^1.0.1" + } + }, + "../../..": { "name": "@pact-foundation/pact", - "version": "16.3.1", - "extraneous": true, + "version": "16.4.0", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@pact-foundation/pact-core": "^19.2.0", + "axios": "^1.12.2", + "body-parser": "^2.2.0", + "chalk": "4.1.2", + "express": "^5.1.0", + "graphql": "^16.11.0", + "graphql-tag": "^2.12.6", + "http-proxy": "^1.18.1", + "https-proxy-agent": "^9.0.0", + "js-base64": "^3.7.8", + "lodash": "^4.17.21", + "ramda": "^0.32.0", + "randexp": "^0.5.3", + "router": "^2.2.0", + "stack-utils": "^2.0.6" + }, + "devDependencies": { + "@babel/cli": "7.28.6", + "@babel/core": "7.29.0", + "@babel/preset-env": "7.29.3", + "@biomejs/biome": "2.4.14", + "@tsconfig/node20": "20.1.9", + "@types/express": "4.17.25", + "@types/http-proxy": "1.17.17", + "@types/lodash": "4.17.24", + "@types/nock": "11.1.0", + "@types/node": "24.12.2", + "@types/ramda": "0.31.1", + "@types/stack-utils": "2.0.3", + "@vitest/coverage-v8": "^3.0.0", + "commit-and-tag-version": "12.7.1", + "copyfiles": "2.4.1", + "nock": "14.0.14", + "rimraf": "6.1.3", + "typedoc": "^0.28.19", + "typescript": "6.0.3", + "vitest": "^3.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "../../../node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "../../../node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/@nodable/entities": { + "version": "2.1.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/nodable" + } + ], + "license": "MIT" + }, + "../../../node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "../../../node_modules/@tsconfig/node20": { + "version": "20.1.9", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/@types/chai": { + "version": "5.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "../../../node_modules/@types/deep-eql": { + "version": "4.0.2", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/@types/estree": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/@types/node": { + "version": "24.12.2", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "../../../node_modules/@vitest/expect": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../../node_modules/@vitest/expect/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../../node_modules/@vitest/mocker": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.2.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "../../../node_modules/@vitest/pretty-format": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../../node_modules/@vitest/runner": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.2.4", + "pathe": "^2.0.3", + "strip-literal": "^3.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../../node_modules/@vitest/snapshot": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../../node_modules/@vitest/spy": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^4.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../../node_modules/@vitest/utils": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.2.4", + "loupe": "^3.1.4", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../../node_modules/accepts": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../../../node_modules/assertion-error": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "../../../node_modules/asynckit": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/axios": { + "version": "1.16.0", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" + } + }, + "../../../node_modules/body-parser": { + "version": "2.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.3", + "http-errors": "^2.0.0", + "iconv-lite": "^0.7.0", + "on-finished": "^2.4.1", + "qs": "^6.14.1", + "raw-body": "^3.0.1", + "type-is": "^2.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "../../../node_modules/bytes": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "../../../node_modules/cac": { + "version": "6.7.14", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "../../../node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "../../../node_modules/call-bound": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/check-error": { + "version": "2.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "../../../node_modules/combined-stream": { + "version": "1.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "../../../node_modules/content-disposition": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "../../../node_modules/content-type": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "../../../node_modules/cookie": { + "version": "0.7.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "../../../node_modules/cookie-signature": { + "version": "1.2.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "../../../node_modules/debug": { + "version": "4.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "../../../node_modules/deep-eql": { + "version": "5.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "../../../node_modules/delayed-stream": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "../../../node_modules/depd": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "../../../node_modules/dunder-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "../../../node_modules/ee-first": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/encodeurl": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "../../../node_modules/es-define-property": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "../../../node_modules/es-errors": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "../../../node_modules/es-module-lexer": { + "version": "1.7.0", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/es-object-atoms": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "../../../node_modules/es-set-tostringtag": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "../../../node_modules/esbuild": { + "version": "0.27.7", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "../../../node_modules/escape-html": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/estree-walker": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "../../../node_modules/etag": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "../../../node_modules/expect-type": { + "version": "1.3.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "../../../node_modules/express": { + "version": "5.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "../../../node_modules/fast-xml-builder": { + "version": "1.1.7", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "path-expression-matcher": "^1.1.3" + } + }, + "../../../node_modules/fast-xml-parser": { + "version": "5.7.2", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "@nodable/entities": "^2.1.0", + "fast-xml-builder": "^1.1.5", + "path-expression-matcher": "^1.5.0", + "strnum": "^2.2.3" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "../../../node_modules/finalhandler": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "../../../node_modules/follow-redirects": { + "version": "1.16.0", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "../../../node_modules/form-data": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "../../../node_modules/form-data/node_modules/mime-db": { + "version": "1.52.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "../../../node_modules/form-data/node_modules/mime-types": { + "version": "2.1.35", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "../../../node_modules/forwarded": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "../../../node_modules/fresh": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "../../../node_modules/fsevents": { + "version": "2.3.3", + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "../../../node_modules/function-bind": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/get-intrinsic": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/get-proto": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "../../../node_modules/gopd": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/graphql": { + "version": "16.13.2", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "../../../node_modules/graphql-tag": { + "version": "2.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "../../../node_modules/has-symbols": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/has-tostringtag": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/hasown": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "../../../node_modules/http-errors": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "../../../node_modules/iconv-lite": { + "version": "0.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "../../../node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "license": "ISC" + }, + "../../../node_modules/ipaddr.js": { + "version": "1.9.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "../../../node_modules/is-promise": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/loupe": { + "version": "3.2.1", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/magic-string": { + "version": "0.30.21", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "../../../node_modules/math-intrinsics": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "../../../node_modules/media-typer": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "../../../node_modules/merge-descriptors": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "../../../node_modules/mime-db": { + "version": "1.54.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "../../../node_modules/mime-types": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "../../../node_modules/minipass": { + "version": "7.1.3", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "../../../node_modules/ms": { + "version": "2.1.3", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/nanoid": { + "version": "3.3.12", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "../../../node_modules/negotiator": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "../../../node_modules/object-inspect": { + "version": "1.13.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/on-finished": { + "version": "2.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "../../../node_modules/once": { + "version": "1.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "../../../node_modules/package-json-from-dist": { + "version": "1.0.1", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "../../../node_modules/parseurl": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "../../../node_modules/path-expression-matcher": { + "version": "1.5.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "../../../node_modules/path-to-regexp": { + "version": "8.4.2", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "../../../node_modules/pathe": { + "version": "2.0.3", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/pathval": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "../../../node_modules/picocolors": { + "version": "1.1.1", + "dev": true, + "license": "ISC" + }, + "../../../node_modules/postcss": { + "version": "8.5.14", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "../../../node_modules/proxy-addr": { + "version": "2.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "../../../node_modules/proxy-from-env": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "../../../node_modules/qs": { + "version": "6.15.1", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/ramda": { + "version": "0.32.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "../../../node_modules/range-parser": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "../../../node_modules/raw-body": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "../../../node_modules/rimraf": { + "version": "6.1.3", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "glob": "^13.0.3", + "package-json-from-dist": "^1.0.1" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../../../node_modules/rimraf/node_modules/balanced-match": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "../../../node_modules/rimraf/node_modules/brace-expansion": { + "version": "5.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "../../../node_modules/rimraf/node_modules/glob": { + "version": "13.0.6", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../../../node_modules/rimraf/node_modules/lru-cache": { + "version": "11.3.6", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, + "../../../node_modules/rimraf/node_modules/minimatch": { + "version": "10.2.5", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../../../node_modules/rimraf/node_modules/path-scurry": { + "version": "2.0.2", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "../../../node_modules/rollup": { + "version": "4.60.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, + "../../../node_modules/router": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "../../../node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/send": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "../../../node_modules/serve-static": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "../../../node_modules/setprototypeof": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, + "../../../node_modules/side-channel": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/side-channel-list": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/side-channel-map": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/side-channel-weakmap": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "../../../node_modules/siginfo": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, + "../../../node_modules/source-map-js": { + "version": "1.2.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "../../../node_modules/stackback": { + "version": "0.0.2", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/statuses": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "../../../node_modules/std-env": { + "version": "3.10.0", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/strip-literal": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "../../../node_modules/strip-literal/node_modules/js-tokens": { + "version": "9.0.1", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/strnum": { + "version": "2.2.3", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, + "../../../node_modules/tinybench": { + "version": "2.9.0", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/tinyexec": { + "version": "0.3.2", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/tinyglobby": { + "version": "0.2.16", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "../../../node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../../../node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../../node_modules/tinypool": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "../../../node_modules/tinyrainbow": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "../../../node_modules/tinyspy": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "../../../node_modules/toidentifier": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "../../../node_modules/tslib": { + "version": "2.8.1", + "dev": true, + "license": "0BSD" + }, + "../../../node_modules/type-is": { + "version": "2.0.1", + "dev": true, "license": "MIT", "dependencies": { - "@pact-foundation/pact-core": "^19.1.0", - "axios": "^1.12.2", - "body-parser": "^2.2.0", - "chalk": "4.1.2", - "express": "^5.1.0", - "graphql": "^16.11.0", - "graphql-tag": "^2.12.6", - "http-proxy": "^1.18.1", - "https-proxy-agent": "^7.0.6", - "js-base64": "^3.7.8", - "lodash": "^4.17.21", - "ramda": "^0.32.0", - "randexp": "^0.5.3", - "router": "^2.2.0", - "stack-utils": "^2.0.6" + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" }, - "devDependencies": { - "@babel/cli": "7.28.6", - "@babel/core": "7.29.0", - "@babel/preset-env": "7.29.2", - "@biomejs/biome": "^2.4.13", - "@tsconfig/node20": "^20.1.9", - "@types/chai": "5.2.3", - "@types/chai-as-promised": "8.0.2", - "@types/express": "4.17.25", - "@types/http-proxy": "1.17.17", - "@types/lodash": "4.17.24", - "@types/mocha": "10.0.10", - "@types/nock": "11.1.0", - "@types/node": "24.12.2", - "@types/ramda": "0.31.1", - "@types/sinon": "21.0.1", - "@types/sinon-chai": "4.0.0", - "@types/stack-utils": "2.0.3", - "chai": "6.2.2", - "chai-as-promised": "8.0.2", - "commit-and-tag-version": "12.7.1", - "copyfiles": "2.4.1", - "mocha": "11.7.5", - "nock": "14.0.13", - "nyc": "18.0.0", - "proxyquire": "2.1.3", - "rimraf": "6.1.3", - "sinon": "21.1.2", - "sinon-chai": "4.0.1", - "source-map-support": "0.5.21", - "tsx": "4.21.0", - "typescript": "6.0.3" + "engines": { + "node": ">= 0.6" + } + }, + "../../../node_modules/typescript": { + "version": "6.0.3", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=20" + "node": ">=14.17" + } + }, + "../../../node_modules/undici-types": { + "version": "7.16.0", + "dev": true, + "license": "MIT" + }, + "../../../node_modules/unpipe": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "../../../node_modules/vary": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "../../../node_modules/vite": { + "version": "7.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "../../../node_modules/vite-node": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.1", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "../../../node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "../../../node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../../node_modules/vitest": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/chai": "^5.2.2", + "@vitest/expect": "3.2.4", + "@vitest/mocker": "3.2.4", + "@vitest/pretty-format": "^3.2.4", + "@vitest/runner": "3.2.4", + "@vitest/snapshot": "3.2.4", + "@vitest/spy": "3.2.4", + "@vitest/utils": "3.2.4", + "chai": "^5.2.0", + "debug": "^4.4.1", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.14", + "tinypool": "^1.1.1", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", + "vite-node": "3.2.4", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.2.4", + "@vitest/ui": "3.2.4", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "../../../node_modules/vitest/node_modules/chai": { + "version": "5.3.3", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "../../../node_modules/vitest/node_modules/picomatch": { + "version": "4.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "../../../node_modules/why-is-node-running": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" } }, - "../../dist": { - "dev": true + "../../../node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "license": "ISC" }, "node_modules/@pact-foundation/pact": { - "resolved": "../../dist", + "resolved": "../..", "link": true }, "node_modules/@pact-foundation/pact-cli": { @@ -203,8 +2068,6 @@ }, "node_modules/absolute-version": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/absolute-version/-/absolute-version-2.0.0.tgz", - "integrity": "sha512-egwIhHiqtIjI3mboE/kzWw139pa+KwsV+hdJsgtHcnCnpsySehufVV6yB6+x8qc6UrYx9JiZeFoLMLJY6T/RNA==", "dev": true, "license": "MIT", "dependencies": { @@ -478,22 +2341,6 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/color-convert": { "version": "2.0.1", "dev": true, @@ -683,10 +2530,7 @@ }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, "license": "MIT", "optional": true, "os": [ @@ -949,11 +2793,11 @@ } }, "node_modules/is-core-module": { - "version": "2.16.1", + "version": "2.16.2", "dev": true, "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "hasown": "^2.0.3" }, "engines": { "node": ">= 0.4" @@ -1014,6 +2858,14 @@ "node": ">=0.12.0" } }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-regex": { "version": "1.2.1", "license": "MIT", @@ -1183,22 +3035,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/mocha/node_modules/yargs": { "version": "16.2.0", "dev": true, @@ -1304,6 +3140,10 @@ "node": ">= 0.4" } }, + "node_modules/punycode": { + "version": "1.3.2", + "license": "MIT" + }, "node_modules/querystring": { "version": "0.2.0", "engines": { @@ -1479,11 +3319,8 @@ }, "node_modules/serverless": { "version": "4.35.0", - "resolved": "https://registry.npmjs.org/serverless/-/serverless-4.35.0.tgz", - "integrity": "sha512-FuBk7Eva0qT6BwFgC/GtqVlsmZaZheoxZV//CWcw7DM30Gi1HW+OuipMBzt0tSmd7/QbgMSc0tULOYKiRE+uvQ==", "dev": true, "hasInstallScript": true, - "hasShrinkwrap": true, "dependencies": { "rimraf": "5.0.10", "undici": "6.25.0" @@ -1498,8 +3335,6 @@ }, "node_modules/serverless/node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "license": "ISC", "dependencies": { @@ -1516,8 +3351,6 @@ }, "node_modules/serverless/node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, "license": "MIT", "optional": true, @@ -1527,8 +3360,6 @@ }, "node_modules/serverless/node_modules/ansi-regex": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", "engines": { @@ -1540,8 +3371,6 @@ }, "node_modules/serverless/node_modules/ansi-styles": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -1553,15 +3382,11 @@ }, "node_modules/serverless/node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/brace-expansion": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", "dev": true, "license": "MIT", "dependencies": { @@ -1570,8 +3395,6 @@ }, "node_modules/serverless/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1583,15 +3406,11 @@ }, "node_modules/serverless/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/cross-spawn": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -1605,22 +3424,16 @@ }, "node_modules/serverless/node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/foreground-child": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, "license": "ISC", "dependencies": { @@ -1636,9 +3449,6 @@ }, "node_modules/serverless/node_modules/glob": { "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { @@ -1658,8 +3468,6 @@ }, "node_modules/serverless/node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "license": "MIT", "engines": { @@ -1668,15 +3476,11 @@ }, "node_modules/serverless/node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, "license": "ISC" }, "node_modules/serverless/node_modules/jackspeak": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -1691,15 +3495,11 @@ }, "node_modules/serverless/node_modules/lru-cache": { "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, "node_modules/serverless/node_modules/minimatch": { "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { @@ -1714,8 +3514,6 @@ }, "node_modules/serverless/node_modules/minipass": { "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -1724,15 +3522,11 @@ }, "node_modules/serverless/node_modules/package-json-from-dist": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, "license": "BlueOak-1.0.0" }, "node_modules/serverless/node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { @@ -1741,8 +3535,6 @@ }, "node_modules/serverless/node_modules/path-scurry": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -1758,8 +3550,6 @@ }, "node_modules/serverless/node_modules/rimraf": { "version": "5.0.10", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", - "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", "dev": true, "license": "ISC", "dependencies": { @@ -1774,8 +3564,6 @@ }, "node_modules/serverless/node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { @@ -1787,8 +3575,6 @@ }, "node_modules/serverless/node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { @@ -1797,8 +3583,6 @@ }, "node_modules/serverless/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", "engines": { @@ -1810,8 +3594,6 @@ }, "node_modules/serverless/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", "dependencies": { @@ -1829,8 +3611,6 @@ "node_modules/serverless/node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { @@ -1844,8 +3624,6 @@ }, "node_modules/serverless/node_modules/string-width-cjs/node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -1854,15 +3632,11 @@ }, "node_modules/serverless/node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -1874,8 +3648,6 @@ }, "node_modules/serverless/node_modules/strip-ansi": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { @@ -1891,8 +3663,6 @@ "node_modules/serverless/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -1904,8 +3674,6 @@ }, "node_modules/serverless/node_modules/strip-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -1914,8 +3682,6 @@ }, "node_modules/serverless/node_modules/undici": { "version": "6.25.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.25.0.tgz", - "integrity": "sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==", "dev": true, "license": "MIT", "engines": { @@ -1924,8 +3690,6 @@ }, "node_modules/serverless/node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", "dependencies": { @@ -1940,8 +3704,6 @@ }, "node_modules/serverless/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1959,8 +3721,6 @@ "node_modules/serverless/node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1977,8 +3737,6 @@ }, "node_modules/serverless/node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -1987,8 +3745,6 @@ }, "node_modules/serverless/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -2003,15 +3759,11 @@ }, "node_modules/serverless/node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { @@ -2025,8 +3777,6 @@ }, "node_modules/serverless/node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -2185,10 +3935,6 @@ "querystring": "0.2.0" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "license": "MIT" - }, "node_modules/util": { "version": "0.12.5", "license": "MIT", @@ -2231,6 +3977,22 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "dev": true, @@ -2301,14 +4063,6 @@ "node": ">=10" } }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", "dev": true, diff --git a/regression/v2/serverless/package.json b/regression/v2/serverless/package.json index c668c5169..38dcef2d9 100644 --- a/regression/v2/serverless/package.json +++ b/regression/v2/serverless/package.json @@ -21,7 +21,7 @@ "lint:tsc": "echo 'Note: This example has not been migrated to TypeScript yet'" }, "devDependencies": { - "@pact-foundation/pact": "file:../../dist", + "@pact-foundation/pact": "file:../..", "@pact-foundation/pact-cli": "^18.0.0", "absolute-version": "2.0.0", "mocha": "^10.0.0", diff --git a/src/common/net.spec.ts b/src/common/net.spec.ts index 4580e65e8..651f66bfe 100644 --- a/src/common/net.spec.ts +++ b/src/common/net.spec.ts @@ -1,13 +1,7 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; import nodeNet from 'node:net'; import { isPortAvailable } from './net'; import logger from './logger'; -const { expect } = chai; - -chai.use(chaiAsPromised); - describe('Net', () => { const port = 4567; const defaultHost = '0.0.0.0'; @@ -27,47 +21,42 @@ describe('Net', () => { }); describe('#isPortAvailable', () => { - context('when the port is not allowed to be bound', () => { - it('returns a rejected promise', () => - expect(isPortAvailable(specialPort, defaultHost)).to.eventually.be - .rejected); + describe('when the port is not allowed to be bound', () => { + it('returns a rejected promise', async () => { + await expect( + isPortAvailable(specialPort, defaultHost), + ).rejects.toBeDefined(); + }); }); - context('when the port is available', () => { - it('returns a fulfilled promise', () => - expect(isPortAvailable(port, defaultHost)).to.eventually.be.fulfilled); + describe('when the port is available', () => { + it('returns a fulfilled promise', async () => { + await isPortAvailable(port, defaultHost); + }); }); - context('when the port is unavailable', () => { - it('returns a rejected promise', () => { - let server: nodeNet.Server; - return createServer(port) - .then((s) => { - server = s; - return expect(isPortAvailable(port, defaultHost)).to.eventually.be - .rejected; - }) - .finally( - () => - new Promise((resolve) => server?.close(() => resolve())), - ); + describe('when the port is unavailable', () => { + it('returns a rejected promise', async () => { + const server = await createServer(port); + try { + await expect( + isPortAvailable(port, defaultHost), + ).rejects.toBeDefined(); + } finally { + await new Promise((resolve) => server?.close(() => resolve())); + } }); }); - context('when a single host is unavailable', () => { - it('returns a fulfilled promise', () => { - let server: nodeNet.Server; - return createServer(port, '::1') - .then((s) => { - server = s; - // this should work as the `127.0.0.1` is NOT `::1` - return expect(isPortAvailable(port, '127.0.0.1')).to.eventually.be - .fulfilled; - }) - .finally( - () => - new Promise((resolve) => server?.close(() => resolve())), - ); + describe('when a single host is unavailable', () => { + it('returns a fulfilled promise', async () => { + const server = await createServer(port, '::1'); + try { + // this should work as the `127.0.0.1` is NOT `::1` + await isPortAvailable(port, '127.0.0.1'); + } finally { + await new Promise((resolve) => server?.close(() => resolve())); + } }); }); }); diff --git a/src/common/request.spec.ts b/src/common/request.spec.ts index 00b9f8353..398e73355 100644 --- a/src/common/request.spec.ts +++ b/src/common/request.spec.ts @@ -1,12 +1,6 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; import nock from 'nock'; import { HTTPMethods, Request } from './request'; -chai.use(chaiAsPromised); - -const { expect } = chai; - describe('Request', () => { let request: Request; const port = 1024 + Math.floor(Math.random() * 5000); @@ -17,54 +11,47 @@ describe('Request', () => { request = new Request(); }); - context('#send', () => { + describe('#send', () => { afterEach(() => nock.cleanAll()); describe('Promise', () => { - it('returns a promise', () => { + it('returns a promise', async () => { nock(url).get('/').reply(200); const r = request.send(HTTPMethods.GET, url); - return Promise.all([ - expect(r).is.ok, - expect(r.then).is.ok, - expect(r.then).is.a('function'), - expect(r).to.be.fulfilled, - ]); + expect(r).toBeTruthy(); + expect(r.then).toBeTruthy(); + expect(r.then).toBeTypeOf('function'); + await r; }); - it('resolves when request succeeds with response body', () => { + it('resolves when request succeeds with response body', async () => { const body = 'body'; nock(url).get('/').reply(200, body); - const p = request.send(HTTPMethods.GET, url); - return Promise.all([ - expect(p).to.be.fulfilled, - expect(p).to.eventually.be.equal(body), - ]); + await expect(request.send(HTTPMethods.GET, url)).resolves.toBe(body); }); - it('rejects when request fails with error message', () => { + it('rejects when request fails with error message', async () => { const error = 'error'; nock(url).get('/').reply(400, error); - const p = request.send(HTTPMethods.GET, url); - return expect(p).to.be.rejectedWith(error); + await expect(request.send(HTTPMethods.GET, url)).rejects.toThrow(error); }); }); describe('Headers', () => { - it('sends Pact headers are sent with every request', () => { + it('sends Pact headers are sent with every request', async () => { nock(url) .matchHeader('X-Pact-Mock-Service', 'true') .get('/') .reply(200); - return expect(request.send(HTTPMethods.GET, url)).to.be.fulfilled; + await request.send(HTTPMethods.GET, url); }); }); describe('SSL', () => { - it('ignores self signed certificate errors', () => { + it('ignores self signed certificate errors', async () => { nock(urlSecure) .matchHeader('X-Pact-Mock-Service', 'true') .get('/') .reply(200); - return expect(request.send(HTTPMethods.GET, urlSecure)).to.be.fulfilled; + await request.send(HTTPMethods.GET, urlSecure); }); }); }); diff --git a/src/dsl/apolloGraphql.spec.ts b/src/dsl/apolloGraphql.spec.ts index e8a0f8c32..f7706f427 100644 --- a/src/dsl/apolloGraphql.spec.ts +++ b/src/dsl/apolloGraphql.spec.ts @@ -1,10 +1,5 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; import { ApolloGraphQLInteraction } from './apolloGraphql'; -chai.use(chaiAsPromised); -const { expect } = chai; - describe('ApolloGraphQLInteraction', () => { let interaction: ApolloGraphQLInteraction; @@ -32,7 +27,7 @@ describe('ApolloGraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(json.request.body.variables).to.deep.eq({ foo: 'bar' }); + expect(json.request.body.variables).toEqual({ foo: 'bar' }); }); }); @@ -52,7 +47,7 @@ describe('ApolloGraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(json.request.body).to.have.property('variables'); + expect(json.request.body).toHaveProperty('variables'); }); }); }); @@ -73,7 +68,7 @@ describe('ApolloGraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(json.request.body).to.have.property('operationName'); + expect(json.request.body).toHaveProperty('operationName'); }); }); }); diff --git a/src/dsl/graphql.spec.ts b/src/dsl/graphql.spec.ts index 0e97fae54..43283f0e3 100644 --- a/src/dsl/graphql.spec.ts +++ b/src/dsl/graphql.spec.ts @@ -1,11 +1,6 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; import { GraphQLInteraction } from './graphql'; import { isMatcher } from './matchers'; -chai.use(chaiAsPromised); -const { expect } = chai; - describe('GraphQLInteraction', () => { let interaction: GraphQLInteraction; @@ -30,13 +25,13 @@ describe('GraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(json.request.body.operationName).to.eq('query'); + expect(json.request.body.operationName).toBe('query'); }); }); describe('when given an invalid operation', () => { it('fails with an error', () => { - expect(interaction.withOperation.bind('aoeu')).to.throw(Error); + expect(interaction.withOperation.bind('aoeu')).toThrow(Error); }); }); @@ -56,7 +51,7 @@ describe('GraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(json.request.body.operationName).to.eq(null); + expect(json.request.body.operationName).toBeNull(); }); }); }); @@ -81,7 +76,7 @@ describe('GraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(json.request.body.variables).to.deep.eq({ foo: 'bar' }); + expect(json.request.body.variables).toEqual({ foo: 'bar' }); }); }); @@ -101,7 +96,7 @@ describe('GraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(json.request.body).to.not.have.property('variables'); + expect(json.request.body).not.toHaveProperty('variables'); }); }); @@ -122,7 +117,7 @@ describe('GraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(json.request.body).to.have.property('variables'); + expect(json.request.body).toHaveProperty('variables'); }); }); }); @@ -148,7 +143,7 @@ describe('GraphQLInteraction', () => { describe('when given an empty query', () => { it('fails with an error', () => { // biome-ignore lint/suspicious/noExplicitAny: deliberately passing null to test error handling on invalid input - expect(() => interaction.withQuery(null as any)).to.throw(); + expect(() => interaction.withQuery(null as any)).toThrow(); }); }); @@ -156,7 +151,7 @@ describe('GraphQLInteraction', () => { it('fails with an error', () => { expect(() => interaction.withQuery('{ not properly terminated'), - ).to.throw(Error); + ).toThrow(Error); }); }); @@ -178,12 +173,12 @@ describe('GraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(isMatcher(json.request.body.query)).to.eq(true); + expect(isMatcher(json.request.body.query)).toBe(true); const r = new RegExp(json.request.body.query.regex, 'g'); const lotsOfWhitespace = `{ hello }`; - expect(r.test(lotsOfWhitespace)).to.eq(true); + expect(r.test(lotsOfWhitespace)).toBe(true); }); }); @@ -200,27 +195,27 @@ describe('GraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(isMatcher(json.request.body.query)).to.eq(true); + expect(isMatcher(json.request.body.query)).toBe(true); const r = new RegExp(json.request.body.query.regex, 'g'); const lotsOfWhitespace = `{ Hello(id: $id) { name } }`; - expect(r.test(lotsOfWhitespace)).to.eq(true); + expect(r.test(lotsOfWhitespace)).toBe(true); }); }); }); }); describe('#json', () => { - context('when query is empty', () => { + describe('when query is empty', () => { it('fails with an error', () => { - expect(() => interaction.json()).to.throw(); + expect(() => interaction.json()).toThrow(); }); }); - context('when description is empty', () => { + describe('when description is empty', () => { it('fails with an error', () => { interaction.withQuery('{ hello }'); - return expect(() => interaction.json()).to.throw(); + return expect(() => interaction.json()).toThrow(); }); }); @@ -239,12 +234,12 @@ describe('GraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(json.request.body).to.not.have.property('operationName'); + expect(json.request.body).not.toHaveProperty('operationName'); }); }); }); - context('when given a valid query', () => { + describe('when given a valid query', () => { it('marshals the query to JSON', () => { interaction.uponReceiving('a request'); interaction.withRequest({ @@ -260,12 +255,12 @@ describe('GraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(isMatcher(json.request.body.query)).to.eq(true); - expect(json.request.body.query.getValue()).to.eq('{ hello }'); + expect(isMatcher(json.request.body.query)).toBe(true); + expect(json.request.body.query.getValue()).toBe('{ hello }'); }); }); - context('headers are not duplicated', () => { + describe('headers are not duplicated', () => { describe('headers are properly cased', () => { it('content-type header is properly cased', () => { interaction.uponReceiving('a request'); @@ -282,7 +277,7 @@ describe('GraphQLInteraction', () => { // biome-ignore lint/suspicious/noExplicitAny: body sub-properties (query/variables/operationName) are typed as AnyTemplate and need runtime assertions const json: any = interaction.json(); - expect(json.request.headers).to.deep.eq({ + expect(json.request.headers).toEqual({ 'Content-Type': 'application/json', }); }); diff --git a/src/dsl/interaction.spec.ts b/src/dsl/interaction.spec.ts index bcae22a44..59ff09d72 100644 --- a/src/dsl/interaction.spec.ts +++ b/src/dsl/interaction.spec.ts @@ -1,5 +1,3 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; import { HTTPMethods } from '../common/request'; import { Interaction, @@ -9,9 +7,6 @@ import { } from './interaction'; import { eachLike, term } from './matchers'; -chai.use(chaiAsPromised); -const { expect } = chai; - describe('Interaction', () => { describe('#given', () => { it('creates Interaction with provider state', () => { @@ -19,7 +14,7 @@ describe('Interaction', () => { .uponReceiving('r') .given('provider state'); - expect(actual.state).to.eql({ + expect(actual.state).toEqual({ description: 'r', providerState: 'provider state', }); @@ -28,12 +23,12 @@ describe('Interaction', () => { describe('without provider state', () => { it('creates Interaction when blank', () => { const actual = new Interaction().uponReceiving('r').given('').state; - expect(actual).to.eql({ description: 'r' }); + expect(actual).toEqual({ description: 'r' }); }); it('creates Interaction when nothing is passed', () => { const actual = new Interaction().uponReceiving('r').state; - expect(actual).to.eql({ description: 'r' }); + expect(actual).toEqual({ description: 'r' }); }); }); }); @@ -42,15 +37,14 @@ describe('Interaction', () => { const interaction = new Interaction(); it('throws error when no description provided', () => { - expect(interaction.uponReceiving).to.throw( - Error, + expect(interaction.uponReceiving).toThrow( 'You must provide a description for the interaction.', ); }); it('has a state with description', () => { interaction.uponReceiving('an interaction description'); - expect(interaction.state).to.eql({ + expect(interaction.state).toEqual({ description: 'an interaction description', }); }); @@ -65,7 +59,7 @@ describe('Interaction', () => { interaction, {} as unknown as RequestOptions, ), - ).to.throw(Error, 'You must provide an HTTP method.'); + ).toThrow('You must provide an HTTP method.'); }); it('throws error when an invalid method is provided', () => { @@ -73,8 +67,7 @@ describe('Interaction', () => { interaction.withRequest.bind(interaction, { method: 'FOO', } as unknown as RequestOptions), - ).to.throw( - Error, + ).toThrow( 'You must provide a valid HTTP method: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, COPY, LOCK, MKCOL, MOVE, PROPFIND, PROPPATCH, UNLOCK, REPORT.', ); }); @@ -84,7 +77,7 @@ describe('Interaction', () => { interaction.withRequest.bind(interaction, { path: '/', } as unknown as RequestOptions), - ).to.throw(Error, 'You must provide an HTTP method.'); + ).toThrow('You must provide an HTTP method.'); }); it('throws error when path is not provided', () => { @@ -92,7 +85,7 @@ describe('Interaction', () => { interaction.withRequest.bind(interaction, { method: HTTPMethods.GET, } as unknown as RequestOptions), - ).to.throw(Error, 'You must provide a path.'); + ).toThrow('You must provide a path.'); }); it('throws error when query object is not a string', () => { @@ -102,7 +95,7 @@ describe('Interaction', () => { path: '/', query: { string: false, query: 'false' }, } as unknown as RequestOptions), - ).to.throw(Error, 'Query must only contain strings.'); + ).toThrow('Query must only contain strings.'); }); describe('with only mandatory params', () => { @@ -111,12 +104,15 @@ describe('Interaction', () => { .withRequest({ method: HTTPMethods.GET, path: '/search' }).state; it('has a state containing only the given keys', () => { - expect(actual).to.have.property('request'); - expect(actual.request).to.have.keys('method', 'path'); + expect(actual).toHaveProperty('request'); + expect(actual.request).toHaveProperty('method'); + expect(actual.request).toHaveProperty('path'); }); it('request has no other keys', () => { - expect(actual.request).to.not.have.keys('query', 'headers', 'body'); + expect(actual.request).not.toHaveProperty('query'); + expect(actual.request).not.toHaveProperty('headers'); + expect(actual.request).not.toHaveProperty('body'); }); }); @@ -130,14 +126,12 @@ describe('Interaction', () => { }).state; it('has a full state all available keys', () => { - expect(actual).to.have.property('request'); - expect(actual.request).to.have.keys( - 'method', - 'path', - 'query', - 'headers', - 'body', - ); + expect(actual).toHaveProperty('request'); + expect(actual.request).toHaveProperty('method'); + expect(actual.request).toHaveProperty('path'); + expect(actual.request).toHaveProperty('query'); + expect(actual.request).toHaveProperty('headers'); + expect(actual.request).toHaveProperty('body'); }); }); @@ -158,7 +152,7 @@ describe('Interaction', () => { expect( new Interaction().uponReceiving('request').withRequest(request).state .request, - ).to.have.any.keys('query'); + ).toHaveProperty('query'); }); it('is passed with matcher as the value', () => { @@ -168,7 +162,7 @@ describe('Interaction', () => { expect( new Interaction().uponReceiving('request').withRequest(request).state .request, - ).to.have.any.keys('query'); + ).toHaveProperty('query'); }); it('is passed with object', () => { @@ -178,7 +172,7 @@ describe('Interaction', () => { expect( new Interaction().uponReceiving('request').withRequest(request).state .request, - ).to.have.any.keys('query'); + ).toHaveProperty('query'); }); it('is passed with array', () => { @@ -188,7 +182,7 @@ describe('Interaction', () => { expect( new Interaction().uponReceiving('request').withRequest(request).state .request?.query, - ).to.deep.eq({ id: ['1', '2'] }); + ).toEqual({ id: ['1', '2'] }); }); }); @@ -200,7 +194,7 @@ describe('Interaction', () => { path: '/path', }).state; - expect(actual.request).to.have.any.keys('body'); + expect(actual.request).toHaveProperty('body'); }); it('is not included when explicitly set to undefined', () => { @@ -210,7 +204,7 @@ describe('Interaction', () => { path: '/path', } as unknown as RequestOptions).state; - expect(actual.request).not.to.have.any.keys('body'); + expect(actual.request).not.toHaveProperty('body'); }); }); }); @@ -228,7 +222,7 @@ describe('Interaction', () => { interaction, {} as unknown as ResponseOptions, ), - ).to.throw(Error, 'You must provide a status code.'); + ).toThrow('You must provide a status code.'); }); it('throws error when status is blank', () => { @@ -236,7 +230,7 @@ describe('Interaction', () => { interaction.willRespondWith.bind(interaction, { status: '', } as unknown as ResponseOptions), - ).to.throw(Error, 'You must provide a status code.'); + ).toThrow('You must provide a status code.'); }); describe('with only mandatory params', () => { @@ -249,12 +243,13 @@ describe('Interaction', () => { }); it('has a state compacted with only present keys', () => { - expect(actual).to.have.property('response'); - expect(actual.response).to.have.keys('status'); + expect(actual).toHaveProperty('response'); + expect(actual.response).toHaveProperty('status'); }); it('request has no other keys', () => { - expect(actual.response).to.not.have.keys('headers', 'body'); + expect(actual.response).not.toHaveProperty('headers'); + expect(actual.response).not.toHaveProperty('body'); }); }); @@ -272,8 +267,10 @@ describe('Interaction', () => { }); it('has a full state all available keys', () => { - expect(actual).to.have.property('response'); - expect(actual.response).to.have.keys('status', 'headers', 'body'); + expect(actual).toHaveProperty('response'); + expect(actual.response).toHaveProperty('status'); + expect(actual.response).toHaveProperty('headers'); + expect(actual.response).toHaveProperty('body'); }); }); @@ -285,7 +282,7 @@ describe('Interaction', () => { }); const actual = interaction.state; - expect(actual.response).to.have.any.keys('body'); + expect(actual.response).toHaveProperty('body'); }); it('is not included when explicitly set to undefined', () => { @@ -295,7 +292,7 @@ describe('Interaction', () => { } as unknown as ResponseOptions); const actual = interaction.state; - expect(actual.response).not.to.have.any.keys('body'); + expect(actual.response).not.toHaveProperty('body'); }); }); }); diff --git a/src/dsl/matchers.spec.ts b/src/dsl/matchers.spec.ts index 2c8ea927e..0cd742915 100644 --- a/src/dsl/matchers.spec.ts +++ b/src/dsl/matchers.spec.ts @@ -1,4 +1,3 @@ -import { expect } from 'chai'; import { boolean, decimal, @@ -120,15 +119,13 @@ describe('Matcher', () => { describe('when given a valid regex', () => { describe('and a matching example', () => { it('returns true', () => { - expect(validateExample('2010-01-01', ISO8601_DATE_FORMAT)).to.eql( - true, - ); + expect(validateExample('2010-01-01', ISO8601_DATE_FORMAT)).toBe(true); }); }); describe('and a failing example', () => { it('returns false', () => { - expect(validateExample('not a date', ISO8601_DATE_FORMAT)).to.eql( + expect(validateExample('not a date', ISO8601_DATE_FORMAT)).toBe( false, ); }); @@ -139,7 +136,7 @@ describe('Matcher', () => { it('returns an error', () => { expect(() => { validateExample('', 'abc('); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -158,7 +155,7 @@ describe('Matcher', () => { matcher: '\\w+', }); - expect(JSON.stringify(match)).to.deep.include(JSON.stringify(expected)); + expect(JSON.stringify(match)).toContain(JSON.stringify(expected)); }); }); @@ -170,16 +167,16 @@ describe('Matcher', () => { describe('when no term is provided', () => { it('throws an Error', () => { - expect(createTheTerm.call({}, undefined)).to.throw(Error); + expect(createTheTerm.call({}, undefined)).toThrow(Error); }); }); describe('when an invalid term is provided', () => { it('throws an Error', () => { - expect(createTheTerm({})).to.throw(Error); - expect(createTheTerm('')).to.throw(Error); - expect(createTheTerm({ value: 'foo' })).to.throw(Error); - expect(createTheTerm({ matcher: '\\w+' })).to.throw(Error); + expect(createTheTerm({})).toThrow(Error); + expect(createTheTerm('')).toThrow(Error); + expect(createTheTerm({ value: 'foo' })).toThrow(Error); + expect(createTheTerm({ matcher: '\\w+' })).toThrow(Error); }); }); }); @@ -191,7 +188,7 @@ describe('Matcher', () => { generate: 'abc', matcher: ISO8601_DATE_FORMAT, }); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -205,7 +202,7 @@ describe('Matcher', () => { }; const match = somethingLike('myspecialvalue'); - expect(JSON.stringify(match)).to.deep.include(JSON.stringify(expected)); + expect(JSON.stringify(match)).toContain(JSON.stringify(expected)); }); }); @@ -217,14 +214,14 @@ describe('Matcher', () => { describe('when no value is provided', () => { it('`throws an Error', () => { - expect(createTheValue.call({}, undefined)).to.throw(Error); + expect(createTheValue.call({}, undefined)).toThrow(Error); }); }); describe('when an invalid value is provided', () => { it('throws an Error', () => { - expect(createTheValue(undefined)).to.throw(Error); - expect(createTheValue(() => {})).to.throw(Error); + expect(createTheValue(undefined)).toThrow(Error); + expect(createTheValue(() => {})).toThrow(Error); }); }); }); @@ -240,7 +237,7 @@ describe('Matcher', () => { }; const match = eachLike(null, { min: 1 }); - expect(JSON.stringify(match)).to.deep.include(JSON.stringify(expected)); + expect(JSON.stringify(match)).toContain(JSON.stringify(expected)); }); }); @@ -253,7 +250,7 @@ describe('Matcher', () => { }; const match = eachLike({ a: 1 }, { min: 1 }); - expect(JSON.stringify(match)).to.deep.include(JSON.stringify(expected)); + expect(JSON.stringify(match)).toContain(JSON.stringify(expected)); }); }); @@ -261,7 +258,7 @@ describe('Matcher', () => { it('throws an Error message', () => { expect(() => { eachLike({ a: 1 }, { min: 0 }); - }).to.throw(Error); + }).toThrow(Error); }); }); @@ -274,7 +271,7 @@ describe('Matcher', () => { }; const match = eachLike([1, 2, 3], { min: 1 }); - expect(JSON.stringify(match)).to.deep.include(JSON.stringify(expected)); + expect(JSON.stringify(match)).toContain(JSON.stringify(expected)); }); }); @@ -287,7 +284,7 @@ describe('Matcher', () => { }; const match = eachLike('test', { min: 1 }); - expect(JSON.stringify(match)).to.deep.include(JSON.stringify(expected)); + expect(JSON.stringify(match)).toContain(JSON.stringify(expected)); }); }); @@ -308,9 +305,7 @@ describe('Matcher', () => { }; const match = eachLike({ id: somethingLike(10) }, { min: 1 }); - expect(JSON.stringify(match)).to.deep.include( - JSON.stringify(expected), - ); + expect(JSON.stringify(match)).toContain(JSON.stringify(expected)); }); }); @@ -342,9 +337,7 @@ describe('Matcher', () => { // - expect(JSON.stringify(match)).to.deep.include( - JSON.stringify(expected), - ); + expect(JSON.stringify(match)).toContain(JSON.stringify(expected)); }); }); @@ -363,9 +356,7 @@ describe('Matcher', () => { }; const match = eachLike(eachLike('blue', { min: 1 }), { min: 1 }); - expect(JSON.stringify(match)).to.deep.include( - JSON.stringify(expected), - ); + expect(JSON.stringify(match)).toContain(JSON.stringify(expected)); }); }); @@ -436,7 +427,7 @@ describe('Matcher', () => { { min: 1 }, ); - expect(JSON.parse(JSON.stringify(match))).to.deep.include( + expect(JSON.parse(JSON.stringify(match))).toMatchObject( JSON.parse(JSON.stringify(expected)), ); }); @@ -452,7 +443,7 @@ describe('Matcher', () => { }; const match = eachLike({ a: 1 }); - expect(JSON.stringify(match)).to.deep.include(JSON.stringify(expected)); + expect(JSON.stringify(match)).toContain(JSON.stringify(expected)); }); }); @@ -465,7 +456,7 @@ describe('Matcher', () => { }; const match = eachLike({ a: 1 }, { min: 3 }); - expect(JSON.stringify(match)).to.deep.include(JSON.stringify(expected)); + expect(JSON.stringify(match)).toContain(JSON.stringify(expected)); }); }); }); @@ -473,10 +464,10 @@ describe('Matcher', () => { describe('#email', () => { describe('when given a valid Email address', () => { it('creates a valid matcher', () => { - expect(email('hello@world.com')).to.be.an('object'); - expect(email('hello@world.com.au')).to.be.an('object'); - expect(email('hello@a.co')).to.be.an('object'); - expect(email()).to.be.an('object'); + expect(email('hello@world.com')).toBeTypeOf('object'); + expect(email('hello@world.com.au')).toBeTypeOf('object'); + expect(email('hello@a.co')).toBeTypeOf('object'); + expect(email()).toBeTypeOf('object'); }); }); @@ -484,7 +475,7 @@ describe('Matcher', () => { it('returns an error', () => { expect(() => { email('hello.world.c'); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -492,8 +483,10 @@ describe('Matcher', () => { describe('#uuid', () => { describe('when given a valid UUID', () => { it('creates a valid matcher', () => { - expect(uuid('ce118b6e-d8e1-11e7-9296-cec278b6b50a')).to.be.an('object'); - expect(uuid()).to.be.an('object'); + expect(uuid('ce118b6e-d8e1-11e7-9296-cec278b6b50a')).toBeTypeOf( + 'object', + ); + expect(uuid()).toBeTypeOf('object'); }); }); @@ -501,7 +494,7 @@ describe('Matcher', () => { it('returns an error', () => { expect(() => { uuid('abc'); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -509,8 +502,8 @@ describe('Matcher', () => { describe('#ipv4Address', () => { describe('when given a valid ipv4Address', () => { it('creates a valid matcher', () => { - expect(ipv4Address('127.0.0.1')).to.be.an('object'); - expect(ipv4Address()).to.be.an('object'); + expect(ipv4Address('127.0.0.1')).toBeTypeOf('object'); + expect(ipv4Address()).toBeTypeOf('object'); }); }); @@ -518,7 +511,7 @@ describe('Matcher', () => { it('returns an error', () => { expect(() => { ipv4Address('abc'); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -526,11 +519,11 @@ describe('Matcher', () => { describe('#ipv6Address', () => { describe('when given a valid ipv6Address', () => { it('creates a valid matcher', () => { - expect(ipv6Address('::1')).to.be.an('object'); - expect(ipv6Address('2001:0db8:85a3:0000:0000:8a2e:0370:7334')).to.be.an( - 'object', - ); - expect(ipv6Address()).to.be.an('object'); + expect(ipv6Address('::1')).toBeTypeOf('object'); + expect( + ipv6Address('2001:0db8:85a3:0000:0000:8a2e:0370:7334'), + ).toBeTypeOf('object'); + expect(ipv6Address()).toBeTypeOf('object'); }); }); @@ -538,7 +531,7 @@ describe('Matcher', () => { it('returns an error', () => { expect(() => { ipv6Address('abc'); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -546,8 +539,8 @@ describe('Matcher', () => { describe('#hexadecimal', () => { describe('when given a valid hexadecimal', () => { it('creates a valid matcher', () => { - expect(hexadecimal('6F')).to.be.an('object'); - expect(hexadecimal()).to.be.an('object'); + expect(hexadecimal('6F')).toBeTypeOf('object'); + expect(hexadecimal()).toBeTypeOf('object'); }); }); @@ -555,7 +548,7 @@ describe('Matcher', () => { it('returns an error', () => { expect(() => { hexadecimal('x1'); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -563,18 +556,18 @@ describe('Matcher', () => { describe('#boolean', () => { describe('when used it should create a JSON object', () => { it('creates a valid matcher', () => { - expect(boolean()).to.be.an('object'); - expect(boolean().value).to.equal(true); + expect(boolean()).toBeTypeOf('object'); + expect(boolean().value).toBe(true); }); it('sets value=false', () => { - expect(boolean(false)).to.be.an('object'); - expect(boolean(false).value).to.equal(false); + expect(boolean(false)).toBeTypeOf('object'); + expect(boolean(false).value).toBe(false); }); it('sets value=true', () => { - expect(boolean(true)).to.be.an('object'); - expect(boolean(true).value).to.equal(true); + expect(boolean(true)).toBeTypeOf('object'); + expect(boolean(true).value).toBe(true); }); }); }); @@ -582,9 +575,9 @@ describe('Matcher', () => { describe('#string', () => { describe('when given a valid string', () => { it('creates a valid matcher', () => { - expect(string('test')).to.be.an('object'); - expect(string()).to.be.an('object'); - expect(string('test').value).to.equal('test'); + expect(string('test')).toBeTypeOf('object'); + expect(string()).toBeTypeOf('object'); + expect(string('test').value).toBe('test'); }); }); }); @@ -592,9 +585,9 @@ describe('Matcher', () => { describe('#decimal', () => { describe('when given a valid decimal', () => { it('creates a valid matcher', () => { - expect(decimal(10.1)).to.be.an('object'); - expect(decimal()).to.be.an('object'); - expect(decimal(0.0).value).to.equal(0.0); + expect(decimal(10.1)).toBeTypeOf('object'); + expect(decimal()).toBeTypeOf('object'); + expect(decimal(0.0).value).toBe(0.0); }); }); }); @@ -602,9 +595,9 @@ describe('Matcher', () => { describe('#integer', () => { describe('when given a valid integer', () => { it('creates a valid matcher', () => { - expect(integer(10)).to.be.an('object'); - expect(integer()).to.be.an('object'); - expect(integer(0).value).to.equal(0); + expect(integer(10)).toBeTypeOf('object'); + expect(integer()).toBeTypeOf('object'); + expect(integer(0).value).toBe(0); }); }); }); @@ -613,10 +606,10 @@ describe('Matcher', () => { describe('#rfc1123Timestamp', () => { describe('when given a valid rfc1123Timestamp', () => { it('creates a valid matcher', () => { - expect(rfc1123Timestamp('Mon, 31 Oct 2016 15:21:41 -0400')).to.be.an( - 'object', - ); - expect(rfc1123Timestamp()).to.be.an('object'); + expect( + rfc1123Timestamp('Mon, 31 Oct 2016 15:21:41 -0400'), + ).toBeTypeOf('object'); + expect(rfc1123Timestamp()).toBeTypeOf('object'); }); }); @@ -624,7 +617,7 @@ describe('Matcher', () => { it('returns an error', () => { expect(() => { rfc1123Timestamp('abc'); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -632,8 +625,8 @@ describe('Matcher', () => { describe('#iso8601Time', () => { describe('when given a valid iso8601Time', () => { it('creates a valid matcher', () => { - expect(iso8601Time('T22:44:30.652Z')).to.be.an('object'); - expect(iso8601Time()).to.be.an('object'); + expect(iso8601Time('T22:44:30.652Z')).toBeTypeOf('object'); + expect(iso8601Time()).toBeTypeOf('object'); }); }); @@ -641,7 +634,7 @@ describe('Matcher', () => { it('returns an error', () => { expect(() => { iso8601Time('abc'); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -649,8 +642,8 @@ describe('Matcher', () => { describe('#iso8601Date', () => { describe('when given a valid iso8601Date', () => { it('creates a valid matcher', () => { - expect(iso8601Date('2017-12-05')).to.be.an('object'); - expect(iso8601Date()).to.be.an('object'); + expect(iso8601Date('2017-12-05')).toBeTypeOf('object'); + expect(iso8601Date()).toBeTypeOf('object'); }); }); @@ -658,7 +651,7 @@ describe('Matcher', () => { it('returns an error', () => { expect(() => { iso8601Date('abc'); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -666,10 +659,10 @@ describe('Matcher', () => { describe('#iso8601DateTime', () => { describe('when given a valid iso8601DateTime', () => { it('creates a valid matcher', () => { - expect(iso8601DateTime('2015-08-06T16:53:10+01:00')).to.be.an( + expect(iso8601DateTime('2015-08-06T16:53:10+01:00')).toBeTypeOf( 'object', ); - expect(iso8601DateTime()).to.be.an('object'); + expect(iso8601DateTime()).toBeTypeOf('object'); }); }); @@ -677,7 +670,7 @@ describe('Matcher', () => { it('returns an error', () => { expect(() => { iso8601DateTime('abc'); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -687,17 +680,17 @@ describe('Matcher', () => { it('creates a valid matcher', () => { expect( iso8601DateTimeWithMillis('2015-08-06T16:53:10.123+01:00'), - ).to.be.an('object'); + ).toBeTypeOf('object'); expect( iso8601DateTimeWithMillis('2015-08-06T16:53:10.537357Z'), - ).to.be.an('object'); - expect(iso8601DateTimeWithMillis('2020-12-10T09:01:29.06Z')).to.be.an( - 'object', - ); - expect(iso8601DateTimeWithMillis('2020-12-10T09:01:29.1Z')).to.be.an( - 'object', - ); - expect(iso8601DateTimeWithMillis()).to.be.an('object'); + ).toBeTypeOf('object'); + expect( + iso8601DateTimeWithMillis('2020-12-10T09:01:29.06Z'), + ).toBeTypeOf('object'); + expect( + iso8601DateTimeWithMillis('2020-12-10T09:01:29.1Z'), + ).toBeTypeOf('object'); + expect(iso8601DateTimeWithMillis()).toBeTypeOf('object'); }); }); @@ -705,7 +698,7 @@ describe('Matcher', () => { it('returns an error', () => { expect(() => { iso8601DateTimeWithMillis('abc'); - }).to.throw(Error); + }).toThrow(Error); }); }); }); @@ -723,7 +716,7 @@ describe('Matcher', () => { }; it('returns just that object', () => { - expect(extractPayload(object)).to.deep.equal(object); + expect(extractPayload(object)).toEqual(object); }); }); @@ -740,7 +733,7 @@ describe('Matcher', () => { }; it('returns just that object', () => { - expect(extractPayload(object)).to.deep.equal(object); + expect(extractPayload(object)).toEqual(object); }); }); @@ -772,7 +765,7 @@ describe('Matcher', () => { }; it('returns without matching guff', () => { - expect(extractPayload(someMatchers)).to.deep.equal(expected); + expect(extractPayload(someMatchers)).toEqual(expected); }); }); @@ -785,8 +778,8 @@ describe('Matcher', () => { matcher: '\\w+', }); - expect(isMatcher(matcher)).to.eq(true); - expect(extractPayload(matcher)).to.eql(expected); + expect(isMatcher(matcher)).toBe(true); + expect(extractPayload(matcher)).toEqual(expected); }); }); @@ -847,7 +840,7 @@ describe('Matcher', () => { }, }; - expect(extractPayload(o)).to.deep.equal(expected); + expect(extractPayload(o)).toEqual(expected); }); }); }); diff --git a/src/dsl/verifier/proxy/hooks.spec.ts b/src/dsl/verifier/proxy/hooks.spec.ts index fff355a17..95f508656 100644 --- a/src/dsl/verifier/proxy/hooks.spec.ts +++ b/src/dsl/verifier/proxy/hooks.spec.ts @@ -1,5 +1,4 @@ -import { expect } from 'chai'; -import { stub } from 'sinon'; +import { vi } from 'vitest'; import type { RequestHandler } from 'express'; import { @@ -37,11 +36,15 @@ const doRequest = async ( }; describe('Verifier', () => { + afterEach(() => { + vi.restoreAllMocks(); + }); + describe('#registerBeforeHook', () => { describe('when the state setup routine is called multiple times before the next teardown', () => { it('it executes the beforeEach hook only once', async () => { const hooksState: HooksState = { setupCounter: 0 }; - const hook = stub().resolves(); + const hook = vi.fn().mockResolvedValue(undefined); const hookHandler = registerBeforeHook(hook, hooksState); await doRequest('setup', hooksState, hookHandler); @@ -49,7 +52,7 @@ describe('Verifier', () => { await doRequest('teardown', hooksState); await doRequest('teardown', hooksState); - expect(hook).to.be.calledOnce; + expect(hook).toHaveBeenCalledOnce(); }); }); }); @@ -58,7 +61,7 @@ describe('Verifier', () => { describe('when the state teardown routine is called multiple times before the next setup', () => { it('it executes the afterEach hook only once', async () => { const hooksState: HooksState = { setupCounter: 0 }; - const hook = stub().resolves(); + const hook = vi.fn().mockResolvedValue(undefined); const hookHandler = registerAfterHook(hook, hooksState); await doRequest('setup', hooksState); @@ -66,7 +69,7 @@ describe('Verifier', () => { await doRequest('teardown', hooksState, hookHandler); await doRequest('teardown', hooksState, hookHandler); - expect(hook).to.be.calledOnce; + expect(hook).toHaveBeenCalledOnce(); }); }); }); @@ -75,8 +78,8 @@ describe('Verifier', () => { describe('when the state teardown routine is called multiple times before the next setup', () => { it('it executes the beforeEach and afterEach hooks only once', async () => { const hooksState: HooksState = { setupCounter: 0 }; - const beforeHook = stub().resolves(); - const afterHook = stub().resolves(); + const beforeHook = vi.fn().mockResolvedValue(undefined); + const afterHook = vi.fn().mockResolvedValue(undefined); const beforeHookHandler = registerBeforeHook(beforeHook, hooksState); const afterHookHandler = registerAfterHook(afterHook, hooksState); @@ -85,16 +88,16 @@ describe('Verifier', () => { await doRequest('teardown', hooksState, afterHookHandler); await doRequest('teardown', hooksState, afterHookHandler); - expect(beforeHook).to.be.calledOnce; - expect(afterHook).to.be.calledOnce; + expect(beforeHook).toHaveBeenCalledOnce(); + expect(afterHook).toHaveBeenCalledOnce(); }); }); describe('when multiple interactions are executed', () => { it('it executes the beforeEach and afterEach hooks once for each interaction', async () => { const hooksState: HooksState = { setupCounter: 0 }; - const beforeHook = stub().resolves(); - const afterHook = stub().resolves(); + const beforeHook = vi.fn().mockResolvedValue(undefined); + const afterHook = vi.fn().mockResolvedValue(undefined); const beforeHookHandler = registerBeforeHook(beforeHook, hooksState); const afterHookHandler = registerAfterHook(afterHook, hooksState); @@ -116,8 +119,8 @@ describe('Verifier', () => { await doRequest('teardown', hooksState, afterHookHandler); await doRequest('teardown', hooksState, afterHookHandler); - expect(beforeHook).to.be.calledThrice; - expect(afterHook).to.be.calledThrice; + expect(beforeHook).toHaveBeenCalledTimes(3); + expect(afterHook).toHaveBeenCalledTimes(3); }); }); }); diff --git a/src/dsl/verifier/proxy/parseBody.spec.ts b/src/dsl/verifier/proxy/parseBody.spec.ts index 2a9a89f30..2bfeffc0b 100644 --- a/src/dsl/verifier/proxy/parseBody.spec.ts +++ b/src/dsl/verifier/proxy/parseBody.spec.ts @@ -1,12 +1,5 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; - import { parseBody } from './parseBody'; -chai.use(chaiAsPromised); - -const { expect } = chai; - describe('Verifier', () => { describe('#parseBody', () => { describe('when request body exists', () => { @@ -17,8 +10,8 @@ describe('Verifier', () => { const body = parseBody(req); - expect(body).to.be.instanceOf(Buffer); - expect(body.toString()).to.eq('foo'); + expect(body).toBeInstanceOf(Buffer); + expect(body.toString()).toBe('foo'); }); it('it returns a buffer of the request body object', async () => { @@ -27,8 +20,8 @@ describe('Verifier', () => { const body = parseBody(req); - expect(body).to.be.instanceOf(Buffer); - expect(body.toString()).to.eq(JSON.stringify(req.body)); + expect(body).toBeInstanceOf(Buffer); + expect(body.toString()).toBe(JSON.stringify(req.body)); }); it('it returns a buffer for an empty JSON object body', async () => { @@ -37,8 +30,8 @@ describe('Verifier', () => { const body = parseBody(req); - expect(body).to.be.instanceOf(Buffer); - expect(body.toString()).to.eq('{}'); + expect(body).toBeInstanceOf(Buffer); + expect(body.toString()).toBe('{}'); }); }); @@ -49,9 +42,9 @@ describe('Verifier', () => { const body = parseBody(req); - expect(body).to.be.instanceOf(Buffer); - expect(body).to.not.have.length; - expect(body.toString()).to.be.empty; + expect(body).toBeInstanceOf(Buffer); + expect(body).toHaveLength(0); + expect(body.toString()).toBe(''); }); }); }); diff --git a/src/dsl/verifier/proxy/proxy.spec.ts b/src/dsl/verifier/proxy/proxy.spec.ts index 839209541..fc2009a95 100644 --- a/src/dsl/verifier/proxy/proxy.spec.ts +++ b/src/dsl/verifier/proxy/proxy.spec.ts @@ -1,14 +1,7 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; - import type * as http from 'node:http'; import { waitForServerReady } from './proxy'; -chai.use(chaiAsPromised); - -const { expect } = chai; - // Little function to mock out an Event Emitter const fakeServer = (event: string) => ({ on: (registeredEvent: string, cb: () => void) => { @@ -19,19 +12,17 @@ const fakeServer = (event: string) => ({ }); describe('#waitForServerReady', () => { - context('when the server starts successfully', () => { - it('returns a successful promise', () => { - const res = waitForServerReady(fakeServer('listening') as http.Server); - - return expect(res).to.eventually.be.fulfilled; + describe('when the server starts successfully', () => { + it('returns a successful promise', async () => { + await waitForServerReady(fakeServer('listening') as http.Server); }); }); - context('when the server fails to start', () => { - it('returns an error', () => { - const res = waitForServerReady(fakeServer('error') as http.Server); - - return expect(res).to.eventually.be.rejected; + describe('when the server fails to start', () => { + it('returns an error', async () => { + await expect( + waitForServerReady(fakeServer('error') as http.Server), + ).rejects.toBeDefined(); }); }); }); diff --git a/src/dsl/verifier/proxy/proxyRequest.spec.ts b/src/dsl/verifier/proxy/proxyRequest.spec.ts index effdb7832..f6525cecb 100644 --- a/src/dsl/verifier/proxy/proxyRequest.spec.ts +++ b/src/dsl/verifier/proxy/proxyRequest.spec.ts @@ -1,60 +1,57 @@ -import * as chai from 'chai'; import { Readable } from 'node:stream'; import type { ProxyOptions } from './types'; import { toServerOptions as toServerOptionsAct } from './proxyRequest'; -const { expect } = chai; - describe('#toServerOptions', () => { const toServerOptions = (opts: ProxyOptions = {}, req?: { body: unknown }) => // biome-ignore lint/suspicious/noExplicitAny: minimal request mock object to satisfy the type parameter toServerOptionsAct(opts, req ?? ({} as any)); - context('changeOrigin', () => { + describe('changeOrigin', () => { it('forwards option', () => { const res = toServerOptions({ changeOrigin: true }); - expect(res.changeOrigin).to.be.true; + expect(res.changeOrigin).toBe(true); }); it('is false by default', () => { const res = toServerOptions(); - expect(res.changeOrigin).to.be.false; + expect(res.changeOrigin).toBe(false); }); }); - context('secure', () => { + describe('secure', () => { it('is true when validating ssl', () => { const res = toServerOptions({ validateSSL: true }); - expect(res.secure).to.be.true; + expect(res.secure).toBe(true); }); it('is false by default', () => { const res = toServerOptions(); - expect(res.secure).to.be.false; + expect(res.secure).toBe(false); }); }); - context('target', () => { + describe('target', () => { it('uses providerBaseUrl', () => { const expectedTarget = 'http://test.com'; const res = toServerOptions({ providerBaseUrl: expectedTarget }); - expect(res.target).to.eq(expectedTarget); + expect(res.target).toBe(expectedTarget); }); it('uses loopback address by default', () => { const res = toServerOptions(); - expect(res.target).to.eq('http://127.0.0.1/'); + expect(res.target).toBe('http://127.0.0.1/'); }); }); - context('agent', () => { + describe('agent', () => { const initialEnv = { ...process.env }; afterEach(() => { @@ -64,7 +61,7 @@ describe('#toServerOptions', () => { it('uses no agent by default', () => { const res = toServerOptions(); - expect(res.agent).to.be.undefined; + expect(res.agent).toBeUndefined(); }); it('uses HTTPS_PROXY', () => { @@ -73,7 +70,7 @@ describe('#toServerOptions', () => { const res = toServerOptions(); - expect(res.agent?.proxy?.toString()).to.eq(expectedProxy); + expect(res.agent?.proxy?.toString()).toBe(expectedProxy); }); it('uses HTTP_PROXY', () => { @@ -82,7 +79,7 @@ describe('#toServerOptions', () => { const res = toServerOptions(); - expect(res.agent?.proxy?.toString()).to.eq(expectedProxy); + expect(res.agent?.proxy?.toString()).toBe(expectedProxy); }); it('prefers HTTPS_PROXY to HTTP_PROXY', () => { @@ -92,21 +89,21 @@ describe('#toServerOptions', () => { const res = toServerOptions(); - expect(res.agent?.proxy?.toString()).to.eq(expectedProxy); + expect(res.agent?.proxy?.toString()).toBe(expectedProxy); }); }); - context('buffer', () => { + describe('buffer', () => { it('provides readable of body', () => { const res = toServerOptions({}, { body: 'a' }); - expect(res.buffer).to.be.instanceOf(Readable); + expect(res.buffer).toBeInstanceOf(Readable); }); it('provides readable when body is undefined', () => { const res = toServerOptions(); - expect(res.buffer).to.be.instanceOf(Readable); + expect(res.buffer).toBeInstanceOf(Readable); }); }); }); diff --git a/src/dsl/verifier/proxy/stateHandler/setupStates.spec.ts b/src/dsl/verifier/proxy/stateHandler/setupStates.spec.ts index 30498dd72..c4551d470 100644 --- a/src/dsl/verifier/proxy/stateHandler/setupStates.spec.ts +++ b/src/dsl/verifier/proxy/stateHandler/setupStates.spec.ts @@ -1,6 +1,4 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; -import sinon from 'sinon'; +import { vi } from 'vitest'; import logger from '../../../../common/logger'; import type { ProxyOptions, ProviderState } from '../types'; @@ -8,10 +6,6 @@ import type { ProxyOptions, ProviderState } from '../types'; import { setupStates } from './setupStates'; import type { JsonMap } from '../../../../common/jsonTypes'; -chai.use(chaiAsPromised); - -const { expect } = chai; - describe('#setupStates', () => { const state: ProviderState = { state: 'thing exists', @@ -62,6 +56,10 @@ describe('#setupStates', () => { teardown = false; }); + afterEach(() => { + vi.restoreAllMocks(); + }); + describe('when there are provider states on the pact', () => { describe('and there are handlers associated with those states', () => { describe('that return provider state injected values', () => { @@ -74,8 +72,8 @@ describe('#setupStates', () => { }; const res = await setupStates(state, opts); - expect(res).to.have.property('data', true); - expect(executed).to.be.true; + expect(res).toHaveProperty('data', true); + expect(executed).toBe(true); }); }); @@ -83,7 +81,7 @@ describe('#setupStates', () => { it('executes the handler and returns an empty Promise', async () => { await setupStates(state, opts); - expect(executed).to.be.true; + expect(executed).toBe(true); }); }); @@ -91,9 +89,9 @@ describe('#setupStates', () => { it('executes the lifecycle specific handler and returns any provider state injected values', async () => { const res = await setupStates(state2, opts); - expect(res).to.eq(state2.params); - expect(setup).to.be.true; - expect(teardown).to.be.false; + expect(res).toBe(state2.params); + expect(setup).toBe(true); + expect(teardown).toBe(false); setup = false; const res2 = await setupStates( @@ -104,21 +102,21 @@ describe('#setupStates', () => { opts, ); - expect(res2).to.eq(state2.params); - expect(teardown).to.be.true; - expect(setup).to.be.false; + expect(res2).toBe(state2.params); + expect(teardown).toBe(true); + expect(setup).toBe(false); }); }); }); describe('and there are no handlers associated with those states', () => { it('does not execute the handler and returns an empty Promise', async () => { - const spy = sinon.spy(logger, 'warn'); + const spy = vi.spyOn(logger, 'warn'); delete opts.stateHandlers; await setupStates(state, opts); - expect(spy.callCount).to.eql(1); - expect(executed).to.be.false; + expect(spy).toHaveBeenCalledTimes(1); + expect(executed).toBe(false); }); }); }); diff --git a/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts b/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts index ff5c32fd7..5bc637644 100644 --- a/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts +++ b/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts @@ -1,16 +1,10 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; +import { vi } from 'vitest'; import type express from 'express'; -import sinon from 'sinon'; import { createProxyStateHandler } from './stateHandler'; import type { ProxyOptions, StateHandlers } from '../types'; -chai.use(chaiAsPromised); - -const { expect } = chai; - describe('#createProxyStateHandler', () => { const state = { state: 'thing exists', @@ -28,7 +22,11 @@ describe('#createProxyStateHandler', () => { json: (data: unknown) => data, }; - context('when valid state handlers are provided', () => { + afterEach(() => { + vi.restoreAllMocks(); + }); + + describe('when valid state handlers are provided', () => { it('returns a 200', async () => { const stateHandlers = { 'thing exists': () => Promise.resolve(), @@ -37,18 +35,16 @@ describe('#createProxyStateHandler', () => { const h = createProxyStateHandler({ stateHandlers, } as ProxyOptions); - return expect( - h( - { - body: state, - } as express.Request, - mockResponse as express.Response, - ), - ).to.eventually.be.fulfilled; + await h( + { + body: state, + } as express.Request, + mockResponse as express.Response, + ); }); }); - context('when there is a problem with a state handler', () => { + describe('when there is a problem with a state handler', () => { const badStateHandlers: StateHandlers = { 'thing exists': { setup: () => Promise.reject(new Error('bad')), @@ -56,7 +52,7 @@ describe('#createProxyStateHandler', () => { }; it('returns a 200 and logs an error', async () => { - const spy = sinon.spy(console, 'log'); + const spy = vi.spyOn(console, 'log'); const h = createProxyStateHandler({ stateHandlers: badStateHandlers, } as ProxyOptions); @@ -67,9 +63,9 @@ describe('#createProxyStateHandler', () => { mockResponse as express.Response, ); - expect(res).to.eql(200); - expect(spy.callCount).to.eql(3); - expect(spy.getCall(0).args[0]).to.include( + expect(res).toBe(200); + expect(spy).toHaveBeenCalledTimes(3); + expect(spy.mock.calls[0][0]).toContain( "Error executing state handler for state 'thing exists' on 'setup'.", ); }); diff --git a/src/dsl/verifier/verifier.spec.ts b/src/dsl/verifier/verifier.spec.ts index 5da00a80d..48e9af5aa 100644 --- a/src/dsl/verifier/verifier.spec.ts +++ b/src/dsl/verifier/verifier.spec.ts @@ -1,24 +1,34 @@ -import proxyquire from 'proxyquire'; -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; -import sinon from 'sinon'; +import { vi } from 'vitest'; import type { Server } from 'node:http'; import serviceFactory, { type LogLevel } from '@pact-foundation/pact-core'; import logger from '../../common/logger'; - +import { Verifier } from './verifier'; import type { VerifierOptions } from './types'; -chai.use(chaiAsPromised); +const mockState = vi.hoisted(() => ({ executed: false })); -const { expect } = chai; +vi.mock('./proxy', () => ({ + createProxy: () => + ({ + close: () => { + mockState.executed = true; + }, + address: () => ({ + port: 1234, + family: 'https', + address: 'mock.server.example.com', + }), + }) as unknown as Server, + waitForServerReady: () => Promise.resolve(), +})); describe('Verifier', () => { afterEach(() => { - sinon.restore(); + vi.restoreAllMocks(); + mockState.executed = false; }); - let executed: boolean; const state = 'thing exists'; const providerBaseUrl = 'http://not.exists'; const opts: VerifierOptions = { @@ -28,83 +38,61 @@ describe('Verifier', () => { }, stateHandlers: { [state]: () => { - executed = true; return Promise.resolve(); }, }, }; - // Mock the module and replace the proxy - const { Verifier } = proxyquire('./verifier', { - './proxy': { - createProxy: () => - ({ - close: (): Server => { - executed = true; - return {} as Server; - }, - address: () => ({ - port: 1234, - family: 'https', - address: 'mock.server.example.com', - }), - }) as Server, - - waitForServerReady: () => Promise.resolve(), - }, - }); - - let v: typeof Verifier; + let v: Verifier; describe('#constructor', () => { describe('when given configuration', () => { it('sets the configuration on the object', () => { v = new Verifier(opts); - expect(v).to.have.deep.property('config').includes({ - providerBaseUrl, - }); - expect(v).to.have.nested.property('config.stateHandlers'); - expect(v).to.have.nested.property('config.requestFilter'); + expect(v).toHaveProperty('config.providerBaseUrl', providerBaseUrl); + expect(v).toHaveProperty('config.stateHandlers'); + expect(v).toHaveProperty('config.requestFilter'); }); }); }); describe('options handling', () => { - let spy: sinon.SinonSpy; + // biome-ignore lint/suspicious/noExplicitAny: spy type varies by method signature + let spy: any; beforeEach(() => { - spy = sinon.spy(serviceFactory, 'logLevel'); + spy = vi.spyOn(serviceFactory, 'logLevel'); }); - context('when logLevel is provided', () => { + describe('when logLevel is provided', () => { it('sets the log level on pact node', () => { v = new Verifier({ ...opts, logLevel: 'debug', }); - expect(spy.callCount).to.eql(1); + expect(spy).toHaveBeenCalledTimes(1); }); }); - context('when logLevel is not provided', () => { + describe('when logLevel is not provided', () => { it('does not modify the log setting', () => { const { ...rest } = opts; v = new Verifier({ ...rest, }); - expect(spy.callCount).to.eql(0); + expect(spy).toHaveBeenCalledTimes(0); }); }); - context('when a deprecated field is provided', () => { + describe('when a deprecated field is provided', () => { it('logs a warning', () => { - spy = sinon.spy(logger, 'warn'); + spy = vi.spyOn(logger, 'warn'); v = new Verifier({ ...opts, providerStatesSetupUrl: 'http://foo.com', }); - expect(spy.callCount).to.eql(1); + expect(spy).toHaveBeenCalledTimes(1); }); }); }); @@ -116,40 +104,36 @@ describe('Verifier', () => { it('fails with an error', () => expect( () => new Verifier(undefined as unknown as VerifierOptions), - ).to.throw()); + ).toThrow()); }); describe('when the verifier has been configured', () => { beforeEach(() => { v = new Verifier({ ...opts, logLevel: 'trace' as LogLevel }); }); - context('and the verification runs successfully', () => { - it('closes the server and returns the result', () => { - sinon - // biome-ignore lint/suspicious/noExplicitAny: stubbing private method for test isolation - .stub(v, 'runProviderVerification' as any) - .returns(Promise.resolve('done')); + describe('and the verification runs successfully', () => { + it('closes the server and returns the result', async () => { + vi.spyOn(v as any, 'runProviderVerification').mockReturnValue( + Promise.resolve('done'), + ); const res = v.verifyProvider(); - return expect(res).to.eventually.be.fulfilled.then(() => { - expect(executed).to.be.true; - }); + await res; + expect(mockState.executed).toBe(true); }); }); - context('and the verification fails', () => { - it('closes the server and returns the result', () => { - sinon - // biome-ignore lint/suspicious/noExplicitAny: stubbing private method for test isolation - .stub(v, 'runProviderVerification' as any) - .returns(() => Promise.reject(new Error('error'))); + describe('and the verification fails', () => { + it('closes the server and returns the result', async () => { + vi.spyOn(v as any, 'runProviderVerification').mockReturnValue(() => + Promise.reject(new Error('error')), + ); const res = v.verifyProvider(); - return expect(res).to.eventually.be.rejected.then(() => { - expect(executed).to.be.true; - }); + await expect(res).rejects.toThrow(); + expect(mockState.executed).toBe(true); }); }); }); diff --git a/src/httpPact/ffi.spec.ts b/src/httpPact/ffi.spec.ts index 77b7b07fd..b2b36422f 100644 --- a/src/httpPact/ffi.spec.ts +++ b/src/httpPact/ffi.spec.ts @@ -1,22 +1,14 @@ +import { vi } from 'vitest'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; -import sinon from 'sinon'; -import sinonChai from 'sinon-chai'; import { contentTypeFromHeaders, setQuery } from './ffi'; -chai.use(sinonChai); -chai.use(chaiAsPromised); - -const { expect } = chai; - describe('Pact FFI', () => { describe('#contentTypeFromHeaders', () => { ['content-type', 'Content-Type', 'CONTent-TYPE'].forEach((t) => { describe(`when the "${t}" header is set`, () => { it('detects the content type from the header', () => { const headers = { [t]: 'some-mime-type' }; - expect(contentTypeFromHeaders(headers, 'application/json')).to.eq( + expect(contentTypeFromHeaders(headers, 'application/json')).toBe( 'some-mime-type', ); }); @@ -25,7 +17,7 @@ describe('Pact FFI', () => { describe(`when the no content-type header is set`, () => { it('uses a default', () => { - expect(contentTypeFromHeaders({}, 'application/json')).to.eq( + expect(contentTypeFromHeaders({}, 'application/json')).toBe( 'application/json', ); }); @@ -35,53 +27,53 @@ describe('Pact FFI', () => { describe('#setQuery', () => { describe('with array values', () => { it('calls the query ffi function for each value', () => { - const queryMock = sinon.stub(); + const queryMock = vi.fn(); const interaction = { withQuery: queryMock, - } as unknown as ConsumerInteraction; // TODO replace with proper mock + } as unknown as ConsumerInteraction; const query = { foo: ['bar', 'baz'], }; setQuery(interaction, query); - expect(queryMock.calledTwice); - expect(queryMock.calledWith('foo', 0, 'bar')); - expect(queryMock.calledWith('foo', 1, 'baz')); + expect(queryMock).toHaveBeenCalledTimes(2); + expect(queryMock).toHaveBeenCalledWith('foo', 0, 'bar'); + expect(queryMock).toHaveBeenCalledWith('foo', 1, 'baz'); }); }); describe('with single values', () => { it('calls the query ffi function for each value', () => { - const queryMock = sinon.stub(); + const queryMock = vi.fn(); const interaction = { withQuery: queryMock, - } as unknown as ConsumerInteraction; // TODO replace with proper mock + } as unknown as ConsumerInteraction; const query = { foo: 'bar', }; setQuery(interaction, query); - expect(queryMock.calledOnce); - expect(queryMock.calledWith('foo', 0, 'bar')); + expect(queryMock).toHaveBeenCalledOnce(); + expect(queryMock).toHaveBeenCalledWith('foo', 0, 'bar'); }); }); describe('with array and single values', () => { it('calls the query ffi function for each value', () => { - const queryMock = sinon.stub(); + const queryMock = vi.fn(); const interaction = { withQuery: queryMock, - } as unknown as ConsumerInteraction; // TODO replace with proper mock + } as unknown as ConsumerInteraction; const query = { foo: 'bar', baz: ['bat', 'foo'], }; setQuery(interaction, query); - expect(queryMock.calledThrice); - expect(queryMock.calledWith('foo', 0, 'bar')); - expect(queryMock.calledWith('baz', 0, 'bat')); - expect(queryMock.calledWith('baz', 1, 'foo')); + expect(queryMock).toHaveBeenCalledTimes(3); + expect(queryMock).toHaveBeenCalledWith('foo', 0, 'bar'); + expect(queryMock).toHaveBeenCalledWith('baz', 0, 'bat'); + expect(queryMock).toHaveBeenCalledWith('baz', 1, 'foo'); }); }); }); diff --git a/src/httpPact/index.spec.ts b/src/httpPact/index.spec.ts index b7e10534c..335eeb05c 100644 --- a/src/httpPact/index.spec.ts +++ b/src/httpPact/index.spec.ts @@ -1,7 +1,4 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; -import sinon from 'sinon'; -import sinonChai from 'sinon-chai'; +import { vi } from 'vitest'; import type { ConsumerInteraction, ConsumerPact, @@ -10,11 +7,6 @@ import type { PactV2Options, PactV2OptionsComplete } from '../dsl/options'; import { Pact } from '.'; import type { MockService } from '../dsl/mockService'; -chai.use(sinonChai); -chai.use(chaiAsPromised); - -const { expect } = chai; - describe('Pact', () => { const fullOpts = { consumer: 'A', @@ -29,20 +21,20 @@ describe('Pact', () => { } as PactV2OptionsComplete; afterEach(() => { - sinon.restore(); + vi.restoreAllMocks(); }); describe('#constructor', () => { it('throws Error when consumer not provided', () => { expect(() => { new Pact({ consumer: '', provider: 'provider' }); - }).to.throw(Error, 'You must specify a Consumer for this pact.'); + }).toThrow('You must specify a Consumer for this pact.'); }); it('throws Error when provider not provided', () => { expect(() => { new Pact({ consumer: 'someconsumer', provider: '' }); - }).to.throw(Error, 'You must specify a Provider for this pact.'); + }).toThrow('You must specify a Provider for this pact.'); }); }); @@ -54,18 +46,18 @@ describe('Pact', () => { it('merges options with sensible defaults', () => { const opts = Pact.createOptionsWithDefaults(constructorOpts); - expect(opts.consumer).to.eq('A'); - expect(opts.provider).to.eq('B'); - expect(opts.cors).to.eq(false); - expect(opts.host).to.eq('127.0.0.1'); - expect(opts.logLevel).to.eq('info'); - expect(opts.spec).to.eq(2); - expect(opts.dir).not.to.be.empty; - expect(opts.log).not.to.be.empty; - expect(opts.pactfileWriteMode).to.eq('merge'); - expect(opts.ssl).to.eq(false); - expect(opts.sslcert).to.eq(undefined); - expect(opts.sslkey).to.eq(undefined); + expect(opts.consumer).toBe('A'); + expect(opts.provider).toBe('B'); + expect(opts.cors).toBe(false); + expect(opts.host).toBe('127.0.0.1'); + expect(opts.logLevel).toBe('info'); + expect(opts.spec).toBe(2); + expect(opts.dir).toBeTruthy(); + expect(opts.log).toBeTruthy(); + expect(opts.pactfileWriteMode).toBe('merge'); + expect(opts.ssl).toBe(false); + expect(opts.sslcert).toBeUndefined(); + expect(opts.sslkey).toBeUndefined(); }); }); @@ -75,7 +67,7 @@ describe('Pact', () => { const p: Pact = new Pact(fullOpts); await p.setup(); - expect(p.mockService).to.deep.equal({ + expect(p.mockService).toEqual({ baseUrl: 'http://127.0.0.1:1234', pactDetails: { pactfile_write_mode: 'merge', @@ -87,11 +79,11 @@ describe('Pact', () => { }); }); - it('returns the current configuration', () => { + it('returns the current configuration', async () => { // biome-ignore lint/suspicious/noExplicitAny: accessing internal setup() method not in public type const p: any = new Pact(fullOpts); - return expect(p.setup()).to.eventually.include({ + await expect(p.setup()).resolves.toMatchObject({ consumer: 'A', provider: 'B', port: 1234, @@ -106,18 +98,16 @@ describe('Pact', () => { }); describe('when a port is given', () => { - it('checks if the port is available', () => { + it('checks if the port is available', async () => { // biome-ignore lint/suspicious/noExplicitAny: accessing internal setup() method not in public type const p: any = new Pact(fullOpts); - return expect(p.setup()) - .to.eventually.have.property('port') - .eq(fullOpts.port); + await expect(p.setup()).resolves.toHaveProperty('port', fullOpts.port); }); }); describe('when no port is given', () => { - it('finds a free port', () => { + it('finds a free port', async () => { const opts = { ...fullOpts, port: undefined, @@ -125,8 +115,9 @@ describe('Pact', () => { // biome-ignore lint/suspicious/noExplicitAny: accessing internal setup() method not in public type const p: any = new Pact(opts); - return expect(p.setup()).to.eventually.have.property('port').not - .undefined; + await expect(p.setup()).resolves.toMatchObject({ + port: expect.anything(), + }); }); }); }); @@ -137,19 +128,19 @@ describe('Pact', () => { // the rust core, to ensure the API remains backwards compatible it('sets the correct request and response details on the FFI and starts the mock server', () => { const p: Pact = new Pact(fullOpts); - const uponReceiving = sinon.stub().returns(true); - const given = sinon.stub().returns(true); - const withRequest = sinon.stub().returns(true); - const withRequestBody = sinon.stub().returns(true); - const withRequestHeader = sinon.stub().returns(true); - const withQuery = sinon.stub().returns(true); - const withResponseBody = sinon.stub().returns(true); - const withResponseHeader = sinon.stub().returns(true); - const withStatus = sinon.stub().returns(true); - const createMockServer = sinon.stub().returns(1234); + const uponReceiving = vi.fn().mockReturnValue(true); + const given = vi.fn().mockReturnValue(true); + const withRequest = vi.fn().mockReturnValue(true); + const withRequestBody = vi.fn().mockReturnValue(true); + const withRequestHeader = vi.fn().mockReturnValue(true); + const withQuery = vi.fn().mockReturnValue(true); + const withResponseBody = vi.fn().mockReturnValue(true); + const withResponseHeader = vi.fn().mockReturnValue(true); + const withStatus = vi.fn().mockReturnValue(true); + const createMockServer = vi.fn().mockReturnValue(1234); const pactMock: ConsumerPact = { createMockServer, - } as unknown as ConsumerPact; // TODO replace with proper mock + } as unknown as ConsumerPact; const interactionMock: ConsumerInteraction = { uponReceiving, given, @@ -160,7 +151,7 @@ describe('Pact', () => { withResponseBody, withResponseHeader, withStatus, - } as unknown as ConsumerInteraction; // TODO replace with proper mock + } as unknown as ConsumerInteraction; // @ts-expect-error TODO refactor the class to remove the need for this p.pact = pactMock; // @ts-expect-error: TODO refactor the class to remove the need for this @@ -193,17 +184,17 @@ describe('Pact', () => { }, }); - expect(uponReceiving.calledOnce).to.be.true; - expect(given.calledOnce).to.be.true; - expect(withRequest.calledOnce).to.be.true; - expect(withQuery.calledTwice).to.be.true; - expect(withRequestHeader.calledTwice).to.be.true; - expect(withRequestBody.calledOnce).to.be.true; - expect(withResponseBody.calledOnce).to.be.true; - expect(withResponseHeader.calledTwice).to.be.true; + expect(uponReceiving).toHaveBeenCalledOnce(); + expect(given).toHaveBeenCalledOnce(); + expect(withRequest).toHaveBeenCalledOnce(); + expect(withQuery).toHaveBeenCalledTimes(2); + expect(withRequestHeader).toHaveBeenCalledTimes(2); + expect(withRequestBody).toHaveBeenCalledOnce(); + expect(withResponseBody).toHaveBeenCalledOnce(); + expect(withResponseHeader).toHaveBeenCalledTimes(2); // Pact mock server started - expect(createMockServer.called).to.be.true; + expect(createMockServer).toHaveBeenCalled(); }); }); }); diff --git a/src/messageConsumerPact.spec.ts b/src/messageConsumerPact.spec.ts index 1ec81c86b..0535b04f9 100644 --- a/src/messageConsumerPact.spec.ts +++ b/src/messageConsumerPact.spec.ts @@ -1,6 +1,3 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; -import sinonChai from 'sinon-chai'; import { MessageConsumerPact, synchronousBodyHandler, @@ -8,11 +5,6 @@ import { } from './messageConsumerPact'; import type { ConcreteMessage } from './dsl/message'; -chai.use(sinonChai); -chai.use(chaiAsPromised); - -const { expect } = chai; - describe('MessageConsumer', () => { let consumer: MessageConsumerPact; @@ -31,8 +23,8 @@ describe('MessageConsumer', () => { describe('#constructor', () => { it('creates a Consumer when all mandatory parameters are provided', () => { - expect(consumer).to.be.a('object'); - expect(consumer).to.respondTo('verify'); + expect(consumer).toBeTypeOf('object'); + expect(typeof consumer.verify).toBe('function'); }); }); @@ -41,7 +33,7 @@ describe('MessageConsumer', () => { it('it should throw an error', () => { expect(() => { consumer.expectsToReceive(''); - }).to.throw(Error); + }).toThrow(Error); }); }); @@ -49,7 +41,7 @@ describe('MessageConsumer', () => { it('it should throw an error', () => { expect(() => { consumer.withContent({}); - }).to.throw(Error); + }).toThrow(Error); }); }); @@ -57,14 +49,14 @@ describe('MessageConsumer', () => { it('it should throw an error', () => { expect(() => { consumer.withMetadata({}); - }).to.throw(Error); + }).toThrow(Error); }); }); }); describe('#verify', () => { describe('when given a valid handler and message', () => { - it('verifies the consumer message', () => { + it('verifies the consumer message', async () => { const stubbedConsumer = new MessageConsumerPact({ consumer: 'myconsumer', provider: 'myprovider', @@ -83,8 +75,7 @@ describe('MessageConsumer', () => { .withContent({ foo: 'bar' }) .withMetadata({ baz: 'bat' }); - return expect(stubbedConsumer.verify(() => Promise.resolve('yay!'))).to - .eventually.be.fulfilled; + await stubbedConsumer.verify(() => Promise.resolve('yay!')); }); }); }); @@ -92,44 +83,44 @@ describe('MessageConsumer', () => { describe('handler transformers', () => { describe('#asynchronousbodyHandler', () => { describe('when given a function that succeeds', () => { - it('returns a Handler object that returns a completed promise', () => { + it('returns a Handler object that returns a completed promise', async () => { const failFn = () => Promise.resolve('yay!'); const hFn = asynchronousBodyHandler(failFn); - return expect(hFn(testMessage)).to.eventually.be.fulfilled; + await hFn(testMessage); }); }); describe('when given a function that throws an Exception', () => { - it('returns a Handler object that returns a rejected promise', () => { + it('returns a Handler object that returns a rejected promise', async () => { const failFn = () => Promise.reject(new Error('fail')); const hFn = asynchronousBodyHandler(failFn); - return expect(hFn(testMessage)).to.eventually.be.rejected; + await expect(hFn(testMessage)).rejects.toThrow(); }); }); }); describe('#synchronousbodyHandler', () => { describe('when given a function that succeeds', () => { - it('returns a Handler object that returns a completed promise', () => { + it('returns a Handler object that returns a completed promise', async () => { const failFn = () => { /* do nothing! */ }; const hFn = synchronousBodyHandler(failFn); - return expect(hFn(testMessage)).to.eventually.be.fulfilled; + await hFn(testMessage); }); }); describe('when given a function that throws an Exception', () => { - it('returns a Handler object that returns a rejected promise', () => { + it('returns a Handler object that returns a rejected promise', async () => { const failFn = () => { throw new Error('fail'); }; const hFn = synchronousBodyHandler(failFn); - return expect(hFn(testMessage)).to.eventually.be.rejected; + await expect(hFn(testMessage)).rejects.toThrow(); }); }); }); diff --git a/src/messageProviderPact.spec.ts b/src/messageProviderPact.spec.ts index 02d29f819..feef0c8bc 100644 --- a/src/messageProviderPact.spec.ts +++ b/src/messageProviderPact.spec.ts @@ -1,6 +1,3 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; -import sinonChai from 'sinon-chai'; import express from 'express'; import http from 'node:http'; import type { Message } from './dsl/message'; @@ -10,11 +7,6 @@ import { waitForServerReady, } from './messageProviderPact'; -chai.use(sinonChai); -chai.use(chaiAsPromised); - -const { expect } = chai; - describe('MessageProvider', () => { let provider: MessageProviderPact; const successfulRequest = 'successfulRequest'; @@ -55,8 +47,8 @@ describe('MessageProvider', () => { describe('#constructor', () => { it('creates a Provider when all mandatory parameters are provided', () => { - expect(provider).to.be.a('object'); - expect(provider).to.respondTo('verify'); + expect(provider).toBeTypeOf('object'); + expect(typeof provider.verify).toBe('function'); }); it('creates a Provider with default log level if not specified', () => { @@ -64,113 +56,116 @@ describe('MessageProvider', () => { messageProviders: {}, provider: 'myprovider', }); - expect(provider).to.be.a('object'); - expect(provider).to.respondTo('verify'); + expect(provider).toBeTypeOf('object'); + expect(typeof provider.verify).toBe('function'); }); }); describe('#setupVerificationHandler', () => { describe('when their is a valid setup', () => { - it('creates a valid express handler', (done) => { - const setupVerificationHandler = - // biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage - (provider as any).setupVerificationHandler.bind(provider)(); - const req = { body: successfulMessage }; - const res = { - json: () => done(), // Expect a response - }; - - setupVerificationHandler(req, res); + it('creates a valid express handler', () => { + return new Promise((resolve) => { + const setupVerificationHandler = + // biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage + (provider as any).setupVerificationHandler.bind(provider)(); + const req = { body: successfulMessage }; + const res = { + json: () => resolve(), + }; + + setupVerificationHandler(req, res); + }); }); }); describe('when their is an invalid setup', () => { - it('creates a valid express handler that rejects the message', (done) => { - const setupVerificationHandler = - // biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage - (provider as any).setupVerificationHandler.bind(provider)(); - const req = { body: nonExistentMessage }; - const res = { - status: (status: number) => { - expect(status).to.eq(500); - - return { - send: () => done(), // Expect the status to be called with 500 - }; - }, - }; - - setupVerificationHandler(req, res); + it('creates a valid express handler that rejects the message', () => { + return new Promise((resolve) => { + const setupVerificationHandler = + // biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage + (provider as any).setupVerificationHandler.bind(provider)(); + const req = { body: nonExistentMessage }; + const res = { + status: (status: number) => { + expect(status).toBe(500); + + return { + send: () => resolve(), + }; + }, + }; + + setupVerificationHandler(req, res); + }); }); }); }); describe('#findHandler', () => { describe('when given a handler that exists', () => { - it('returns a Handler object', () => { + it('returns a Handler object', async () => { // biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage const findHandler = (provider as any).findHandler.bind(provider); - return expect(findHandler(successfulMessage)).to.eventually.be.a( + await expect(findHandler(successfulMessage)).resolves.toBeTypeOf( 'function', ); }); }); describe('when given a handler that does not exist', () => { - it('returns a failed promise', () => { + it('returns a failed promise', async () => { // biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage const findHandler = (provider as any).findHandler.bind(provider); - return expect(findHandler('doesnotexist')).to.eventually.be.rejected; + await expect(findHandler('doesnotexist')).rejects.toBeDefined(); }); }); }); describe('#setupStates', () => { describe('when given a handler that exists', () => { - it('returns values of all resolved handlers', () => { + it('returns values of all resolved handlers', async () => { // biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage const setupStates = (provider as any).setupStates.bind(provider); - return expect(setupStates(successfulMessage)).to.eventually.deep.equal([ - 'yay', - ]); + await expect(setupStates(successfulMessage)).resolves.toEqual(['yay']); }); - it('passes params to the handler', () => { + it('passes params to the handler', async () => { // biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage const setupStates = (provider as any).setupStates.bind(provider); - return expect( + await expect( setupStates({ providerStates: [ { name: 'some state with params', params: { foo: 'bar' } }, ], }), - ).to.eventually.deep.equal([ + ).resolves.toEqual([ 'name: some state with params, params: {"foo":"bar"}', ]); }); }); describe('when given a state that does not have a handler', () => { - it('returns an empty promise', () => { + it('returns an empty promise', async () => { provider = new MessageProviderPact({ messageProviders: {}, provider: 'myprovider', }); // biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage const findStateHandler = (provider as any).setupStates.bind(provider); - return expect( - findStateHandler(unsuccessfulMessage), - ).to.eventually.deep.equal([]); + await expect(findStateHandler(unsuccessfulMessage)).resolves.toEqual( + [], + ); }); }); }); describe('#waitForServerReady', () => { describe('when the http server starts up', () => { - it('returns a resolved promise', () => { + it('returns a resolved promise', async () => { const server = http.createServer(() => {}).listen(); - return expect(waitForServerReady(server)).to.eventually.be.fulfilled; + await waitForServerReady(server); + server.close(); }); }); }); @@ -180,7 +175,7 @@ describe('MessageProvider', () => { it('returns a resolved promise', () => { const app = express(); - expect(setupProxyServer(app)).to.be.an.instanceOf(http.Server); + expect(setupProxyServer(app)).toBeInstanceOf(http.Server); }); }); }); @@ -190,7 +185,7 @@ describe('MessageProvider', () => { const setupProxyApplication = // biome-ignore lint/suspicious/noExplicitAny: accessing private method for test coverage (provider as any).setupProxyApplication.bind(provider); - expect(setupProxyApplication().listen).to.be.a('function'); + expect(setupProxyApplication().listen).toBeTypeOf('function'); }); }); }); diff --git a/src/pact.integration.spec.ts b/src/pact.integration.spec.ts index e5009927c..c1cb070e4 100644 --- a/src/pact.integration.spec.ts +++ b/src/pact.integration.spec.ts @@ -1,6 +1,3 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; -import sinonChai from 'sinon-chai'; import axios from 'axios'; import fs = require('node:fs'); import net = require('node:net'); @@ -9,11 +6,6 @@ import path = require('node:path'); import { PactV4 } from './v4'; import { MatchersV3 } from './v3'; -const { expect } = chai; - -chai.use(sinonChai); -chai.use(chaiAsPromised); - describe('V4 Pact', () => { let pact: PactV4; const pactFilePath = path.resolve( @@ -36,7 +28,7 @@ describe('V4 Pact', () => { expect( matches, `expected exactly one interaction for "${description}"`, - ).to.have.lengthOf(1); + ).toHaveLength(1); const [interaction] = matches; @@ -51,9 +43,9 @@ describe('V4 Pact', () => { ): void => { const comments = interaction.comments as Record; - expect(comments.reason).to.equal(reason); - expect(comments.text).to.include(textComment); - expect(comments.testname).to.equal(testName); + expect(comments.reason).toBe(reason); + expect(comments.text).toContain(textComment); + expect(comments.testname).toBe(testName); }; const expectReferenceToEqual = ( @@ -68,7 +60,7 @@ describe('V4 Pact', () => { Record >; - expect(references[group][name]).to.equal(value); + expect(references[group][name]).toBe(value); }; beforeEach(() => { @@ -163,7 +155,7 @@ describe('V4 Pact', () => { const interaction = interactionByDescription(description); - expect(interaction.pending).to.equal(true); + expect(interaction.pending).toBe(true); expectCommentsToContain( interaction, 'covered by HTTP metadata test', @@ -212,7 +204,7 @@ describe('V4 Pact', () => { }) .executeTest(async (server) => { const response = await axios.get(server.url); - expect(response.data).to.deep.equal({ foo: 'bar' }); + expect(response.data).toEqual({ foo: 'bar' }); })); it('supports regex matcher for request content-type with optional charset', () => @@ -263,7 +255,7 @@ describe('V4 Pact', () => { const interaction = interactionByDescription(description); - expect(interaction.pending).to.equal(true); + expect(interaction.pending).toBe(true); expectCommentsToContain( interaction, 'covered by async metadata test', @@ -323,7 +315,7 @@ describe('V4 Pact', () => { const interaction = interactionByDescription(description); - expect(interaction.pending).to.equal(true); + expect(interaction.pending).toBe(true); expectCommentsToContain( interaction, 'covered by sync metadata test', @@ -396,7 +388,7 @@ describe('V4 Pact', () => { url: '/matt', }) .then((res) => { - expect(parseMattMessage(res.data)).to.eq('world'); + expect(parseMattMessage(res.data)).toBe('world'); }), ); }); @@ -447,7 +439,7 @@ describe('V4 Pact', () => { HOST, tc.port, ); - expect(message).to.eq('tcpworld'); + expect(message).toBe('tcpworld'); }); }); }); diff --git a/src/v3/ffi.spec.ts b/src/v3/ffi.spec.ts index 8d137d480..8fbbaafef 100644 --- a/src/v3/ffi.spec.ts +++ b/src/v3/ffi.spec.ts @@ -1,9 +1,6 @@ -import * as chai from 'chai'; import { contentTypeFromHeaders } from './ffi'; import { regex } from './matchers'; -const { expect } = chai; - describe('V3 Pact FFI', () => { describe('#contentTypeFromHeaders', () => { it('uses matcher example value when content-type header is a matcher', () => { @@ -14,7 +11,7 @@ describe('V3 Pact FFI', () => { ), }; - expect(contentTypeFromHeaders(headers, 'application/json')).to.eq( + expect(contentTypeFromHeaders(headers, 'application/json')).toBe( 'application/json', ); }); diff --git a/src/v3/matchers.spec.ts b/src/v3/matchers.spec.ts index 9521cd53d..f6b074aa8 100644 --- a/src/v3/matchers.spec.ts +++ b/src/v3/matchers.spec.ts @@ -1,8 +1,5 @@ -import * as chai from 'chai'; import * as MatchersV3 from './matchers'; -const { expect } = chai; - describe('V3 Matchers', () => { it('compiles with nested examples from issue 1054', () => { interface Foo { @@ -33,7 +30,7 @@ describe('V3 Matchers', () => { const result = MatchersV3.like({ a: 'b', }); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'type', value: { a: 'b', @@ -47,7 +44,7 @@ describe('V3 Matchers', () => { const result = MatchersV3.eachKeyLike('004', { id: '004', }); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'values', value: { '004': { @@ -64,7 +61,7 @@ describe('V3 Matchers', () => { const result = MatchersV3.eachLike({ a: 'b', }); - expect(result).to.deep.equal({ + expect(result).toEqual({ min: 1, 'pact:matcher:type': 'type', value: [ @@ -84,7 +81,7 @@ describe('V3 Matchers', () => { }, 3, ); - expect(result).to.deep.equal({ + expect(result).toEqual({ min: 3, 'pact:matcher:type': 'type', value: [ @@ -109,7 +106,7 @@ describe('V3 Matchers', () => { const result = MatchersV3.atLeastOneLike({ a: 'b', }); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'type', min: 1, value: [ @@ -129,7 +126,7 @@ describe('V3 Matchers', () => { }, 4, ); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'type', min: 1, value: [{ a: 'b' }, { a: 'b' }, { a: 'b' }, { a: 'b' }], @@ -147,7 +144,7 @@ describe('V3 Matchers', () => { }, 2, ); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'type', min: 2, value: [{ a: 'b' }, { a: 'b' }], @@ -164,7 +161,7 @@ describe('V3 Matchers', () => { 2, 4, ); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'type', min: 2, value: [{ a: 'b' }, { a: 'b' }, { a: 'b' }, { a: 'b' }], @@ -173,7 +170,7 @@ describe('V3 Matchers', () => { }); it('throws an error if the number of examples is less than the minimum', () => { - expect(() => MatchersV3.atLeastLike({ a: 'b' }, 4, 2)).to.throw( + expect(() => MatchersV3.atLeastLike({ a: 'b' }, 4, 2)).toThrow( 'atLeastLike has a minimum of 4 but 2 elements were requested. Make sure the count is greater than or equal to the min.', ); }); @@ -188,7 +185,7 @@ describe('V3 Matchers', () => { }, 2, ); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'type', max: 2, value: [{ a: 'b' }], @@ -205,7 +202,7 @@ describe('V3 Matchers', () => { 4, 4, ); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'type', max: 4, value: [{ a: 'b' }, { a: 'b' }, { a: 'b' }, { a: 'b' }], @@ -214,7 +211,7 @@ describe('V3 Matchers', () => { }); it('throws an error if the number of examples is more than the maximum', () => { - expect(() => MatchersV3.atMostLike({ a: 'b' }, 2, 4)).to.throw( + expect(() => MatchersV3.atMostLike({ a: 'b' }, 2, 4)).toThrow( 'atMostLike has a maximum of 2 but 4 elements where requested. Make sure the count is less than or equal to the max.', ); }); @@ -230,7 +227,7 @@ describe('V3 Matchers', () => { 2, 4, ); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'type', min: 2, max: 4, @@ -249,7 +246,7 @@ describe('V3 Matchers', () => { 4, 3, ); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'type', min: 2, max: 4, @@ -261,7 +258,7 @@ describe('V3 Matchers', () => { it('throws an error if the number of examples is less than the minimum', () => { expect(() => MatchersV3.constrainedArrayLike({ a: 'b' }, 4, 6, 2), - ).to.throw( + ).toThrow( 'constrainedArrayLike has a minimum of 4 but 2 elements where requested. Make sure the count is greater than or equal to the min.', ); }); @@ -269,7 +266,7 @@ describe('V3 Matchers', () => { it('throws an error if the number of examples is more than the maximum', () => { expect(() => MatchersV3.constrainedArrayLike({ a: 'b' }, 4, 6, 8), - ).to.throw( + ).toThrow( 'constrainedArrayLike has a maximum of 6 but 8 elements where requested. Make sure the count is less than or equal to the max.', ); }); @@ -278,7 +275,7 @@ describe('V3 Matchers', () => { describe('#integer', () => { it('returns a JSON representation of an integer matcher', () => { const result = MatchersV3.integer(100); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'integer', value: 100, }); @@ -287,7 +284,7 @@ describe('V3 Matchers', () => { describe('when the example is zero', () => { it('returns a JSON representation of an integer matcher', () => { const result = MatchersV3.integer(0); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'integer', value: 0, }); @@ -297,7 +294,7 @@ describe('V3 Matchers', () => { describe('when no example is given', () => { it('also includes a random integer generator', () => { const result = MatchersV3.integer(); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'integer', 'pact:generator:type': 'RandomInt', value: 101, @@ -309,7 +306,7 @@ describe('V3 Matchers', () => { describe('#decimal', () => { it('returns a JSON representation of an decimal matcher', () => { const result = MatchersV3.decimal(100.3); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'decimal', value: 100.3, }); @@ -318,7 +315,7 @@ describe('V3 Matchers', () => { describe('when the example is zero', () => { it('returns a JSON representation of an integer matcher', () => { const result = MatchersV3.decimal(0.0); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'decimal', value: 0.0, }); @@ -328,7 +325,7 @@ describe('V3 Matchers', () => { describe('when no example is given', () => { it('also includes a random decimal generator', () => { const result = MatchersV3.decimal(); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'decimal', 'pact:generator:type': 'RandomDecimal', value: 12.34, @@ -340,7 +337,7 @@ describe('V3 Matchers', () => { describe('#number', () => { it('returns a JSON representation of an number matcher', () => { const result = MatchersV3.number(100.3); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'number', value: 100.3, }); @@ -349,7 +346,7 @@ describe('V3 Matchers', () => { describe('when no example is given', () => { it('also includes a random integer generator', () => { const result = MatchersV3.number(); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'number', 'pact:generator:type': 'RandomInt', value: 1234, @@ -361,7 +358,7 @@ describe('V3 Matchers', () => { describe('#boolean', () => { it('returns a JSON representation of a like matcher', () => { const result = MatchersV3.boolean(true); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'type', value: true, }); @@ -371,7 +368,7 @@ describe('V3 Matchers', () => { describe('#string', () => { it('returns a JSON representation of a like matcher', () => { const result = MatchersV3.string('true'); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'type', value: 'true', }); @@ -381,7 +378,7 @@ describe('V3 Matchers', () => { describe('#regex', () => { it('returns a JSON representation of a regex matcher', () => { const result = MatchersV3.regex('\\d+', '1234'); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'regex', regex: '\\d+', value: '1234', @@ -391,7 +388,7 @@ describe('V3 Matchers', () => { describe('when given a regular expression', () => { it('returns a JSON representation of a regex matcher', () => { const result = MatchersV3.regex(/\d+/, '1234'); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'regex', regex: '\\d+', value: '1234', @@ -403,7 +400,7 @@ describe('V3 Matchers', () => { describe('#equal', () => { it('returns a JSON representation of an equality matcher', () => { const result = MatchersV3.equal('true'); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'equality', value: 'true', }); @@ -417,7 +414,7 @@ describe('V3 Matchers', () => { "yyyy-MM-dd'T'HH:mm:ss.SSSX", '2016-02-11T09:46:56.023Z', ); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'timestamp', format: "yyyy-MM-dd'T'HH:mm:ss.SSSX", value: '2016-02-11T09:46:56.023Z', @@ -429,7 +426,7 @@ describe('V3 Matchers', () => { it('throws an error', () => { expect(() => MatchersV3.datetime("yyyy-MM-dd'T'HH:mm:ss.SSSX", ''), - ).to.throw('you must provide an example datetime'); + ).toThrow('you must provide an example datetime'); }); }); }); @@ -438,7 +435,7 @@ describe('V3 Matchers', () => { describe('when an example is given', () => { it('returns a JSON representation of a time matcher', () => { const result = MatchersV3.time('HH:mm:ss', '09:46:56'); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'time', format: 'HH:mm:ss', value: '09:46:56', @@ -448,7 +445,7 @@ describe('V3 Matchers', () => { describe('when example is an empty string', () => { it('throws an error', () => { - expect(() => MatchersV3.time('HH:mm:ss', '')).to.throw( + expect(() => MatchersV3.time('HH:mm:ss', '')).toThrow( 'you must provide an example time', ); }); @@ -459,7 +456,7 @@ describe('V3 Matchers', () => { describe('when an example is given', () => { it('returns a JSON representation of a date matcher', () => { const result = MatchersV3.date('yyyy-MM-dd', '2016-02-11'); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'date', format: 'yyyy-MM-dd', value: '2016-02-11', @@ -469,7 +466,7 @@ describe('V3 Matchers', () => { describe('when example is an empty string', () => { it('throws an error', () => { - expect(() => MatchersV3.date('yyyy-MM-dd', '')).to.throw( + expect(() => MatchersV3.date('yyyy-MM-dd', '')).toThrow( 'you must provide an example date', ); }); @@ -479,7 +476,7 @@ describe('V3 Matchers', () => { describe('#includes', () => { it('returns a JSON representation of an include matcher', () => { const result = MatchersV3.includes('true'); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'include', value: 'true', }); @@ -489,7 +486,7 @@ describe('V3 Matchers', () => { describe('#nullValue', () => { it('returns a JSON representation of an null matcher', () => { const result = MatchersV3.nullValue(); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'null', value: null, }); @@ -504,7 +501,7 @@ describe('V3 Matchers', () => { 'posts', 'latest', ]); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'regex', regex: '.*(\\/users\\/1234\\/posts\\/latest)$', value: 'http://localhost:8080/users/1234/posts/latest', @@ -519,7 +516,7 @@ describe('V3 Matchers', () => { 'posts', 'latest', ]); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'regex', regex: '.*(\\/users\\/\\d+\\/posts\\/latest)$', value: 'http://localhost:8080/users/1234/posts/latest', @@ -535,11 +532,11 @@ describe('V3 Matchers', () => { 'posts', 'latest', ]); - expect(result).to.deep.contain({ + expect(result).toMatchObject({ 'pact:matcher:type': 'regex', regex: '.*(\\/users\\/\\d+\\/posts\\/latest)$', }); - expect(result.value).to.match(/\/users\/\d+\/posts\/latest$/); + expect(result.value).toMatch(/\/users\/\d+\/posts\/latest$/); }); }); @@ -551,7 +548,7 @@ describe('V3 Matchers', () => { 'posts', 'latest', ]); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'regex', 'pact:generator:type': 'MockServerURL', regex: '.*(\\/users\\/\\d+\\/posts\\/latest)$', @@ -565,7 +562,7 @@ describe('V3 Matchers', () => { describe('#uuid', () => { it('returns a JSON representation of an regex matcher for UUIDs', () => { const result = MatchersV3.uuid('ba4bd1bc-5556-11eb-9286-d71bc5b507be'); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'regex', regex: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', value: 'ba4bd1bc-5556-11eb-9286-d71bc5b507be', @@ -573,16 +570,16 @@ describe('V3 Matchers', () => { }); it('throws an exception if the example value does not match the UUID regex', () => { - expect(() => MatchersV3.uuid('not a uuid')).to.throw(); - expect(() => MatchersV3.uuid('ba4bd1bc-5556-11eb-9286')).to.throw(); + expect(() => MatchersV3.uuid('not a uuid')).toThrow(); + expect(() => MatchersV3.uuid('ba4bd1bc-5556-11eb-9286')).toThrow(); expect(() => MatchersV3.uuid('ba4bd1bc-5556-11eb-9286-d71bc5b507be-1234'), - ).to.throw(); + ).toThrow(); }); it('if no example is provided, it sets up a generator', () => { const result = MatchersV3.uuid(); - expect(result).to.deep.equal({ + expect(result).toEqual({ 'pact:matcher:type': 'regex', 'pact:generator:type': 'Uuid', regex: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', @@ -594,7 +591,7 @@ describe('V3 Matchers', () => { describe('#reify', () => { describe('when given an object with no matchers', () => { const object = { - value: 'data', // field name of value should not be only determination of isMatcher() + value: 'data', more: 'strings', an: ['array'], someObject: { @@ -604,7 +601,7 @@ describe('V3 Matchers', () => { }; it('returns just that object', () => { - expect(MatchersV3.reify(object)).to.deep.equal(object); + expect(MatchersV3.reify(object)).toEqual(object); }); }); @@ -621,7 +618,7 @@ describe('V3 Matchers', () => { }; it('returns just that object', () => { - expect(MatchersV3.reify(object)).to.deep.equal(object); + expect(MatchersV3.reify(object)).toEqual(object); }); }); @@ -655,7 +652,7 @@ describe('V3 Matchers', () => { }; it('returns without matching guff', () => { - expect(MatchersV3.reify(someMatchers)).to.deep.equal(expected); + expect(MatchersV3.reify(someMatchers)).toEqual(expected); }); }); @@ -665,8 +662,8 @@ describe('V3 Matchers', () => { const matcher = MatchersV3.regex('\\w+', 'myawesomeword'); - expect(MatchersV3.isMatcher(matcher)).to.eq(true); - expect(MatchersV3.reify(matcher)).to.eql(expected); + expect(MatchersV3.isMatcher(matcher)).toBe(true); + expect(MatchersV3.reify(matcher)).toEqual(expected); }); }); @@ -727,7 +724,7 @@ describe('V3 Matchers', () => { }, }; - expect(MatchersV3.reify(o)).to.deep.equal(expected); + expect(MatchersV3.reify(o)).toEqual(expected); }); }); @@ -739,7 +736,7 @@ describe('V3 Matchers', () => { }); const result = MatchersV3.reify(resultMatcher); - expect(result).to.deep.equal({ + expect(result).toEqual({ a: 'b', c: [{ value: '1', a: 'b', aa: 'bb' }], }); diff --git a/src/v3/pact.spec.ts b/src/v3/pact.spec.ts index a19c19a36..be0c72238 100644 --- a/src/v3/pact.spec.ts +++ b/src/v3/pact.spec.ts @@ -1,32 +1,24 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; -import sinon from 'sinon'; -import sinonChai from 'sinon-chai'; +import { vi } from 'vitest'; import type { ConsumerPact } from '@pact-foundation/pact-core'; import { PactV3 } from './pact'; -chai.use(sinonChai); -chai.use(chaiAsPromised); - -const { expect } = chai; - describe('PactV3', () => { afterEach(() => { - sinon.restore(); + vi.restoreAllMocks(); }); describe('#executeTest', () => { const buildPactMock = (port: number): ConsumerPact => { return { - addMetadata: sinon.stub().returns(true), - newInteraction: sinon.stub(), - pactffiCreateMockServerForTransport: sinon.stub().returns(port), - mockServerMatchedSuccessfully: sinon.stub().returns(true), - mockServerMismatches: sinon.stub().returns([]), - cleanupMockServer: sinon.stub().returns(true), - writePactFile: sinon.stub(), - cleanupPlugins: sinon.stub(), - addPlugin: sinon.stub(), + addMetadata: vi.fn().mockReturnValue(true), + newInteraction: vi.fn(), + pactffiCreateMockServerForTransport: vi.fn().mockReturnValue(port), + mockServerMatchedSuccessfully: vi.fn().mockReturnValue(true), + mockServerMismatches: vi.fn().mockReturnValue([]), + cleanupMockServer: vi.fn().mockReturnValue(true), + writePactFile: vi.fn(), + cleanupPlugins: vi.fn(), + addPlugin: vi.fn(), } as unknown as ConsumerPact; }; @@ -39,14 +31,11 @@ describe('PactV3', () => { await p.executeTest(async () => Promise.resolve()); - expect( - (pactMock.pactffiCreateMockServerForTransport as sinon.SinonStub) - .calledOnce, - ).to.be.true; - const [, , config] = ( - pactMock.pactffiCreateMockServerForTransport as sinon.SinonStub - ).firstCall.args; - expect(JSON.parse(config)).to.deep.equal({ corsPreflight: true }); + // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast + const stub = pactMock.pactffiCreateMockServerForTransport as any; + expect(stub).toHaveBeenCalledOnce(); + const [, , config] = stub.mock.calls[0]; + expect(JSON.parse(config)).toEqual({ corsPreflight: true }); }); it('passes corsPreflight: true when cors is explicitly true', async () => { @@ -57,10 +46,10 @@ describe('PactV3', () => { await p.executeTest(async () => Promise.resolve()); - const [, , config] = ( - pactMock.pactffiCreateMockServerForTransport as sinon.SinonStub - ).firstCall.args; - expect(JSON.parse(config)).to.deep.equal({ corsPreflight: true }); + // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast + const stub = pactMock.pactffiCreateMockServerForTransport as any; + const [, , config] = stub.mock.calls[0]; + expect(JSON.parse(config)).toEqual({ corsPreflight: true }); }); it('passes corsPreflight: false when cors is explicitly false', async () => { @@ -71,10 +60,10 @@ describe('PactV3', () => { await p.executeTest(async () => Promise.resolve()); - const [, , config] = ( - pactMock.pactffiCreateMockServerForTransport as sinon.SinonStub - ).firstCall.args; - expect(JSON.parse(config)).to.deep.equal({ corsPreflight: false }); + // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast + const stub = pactMock.pactffiCreateMockServerForTransport as any; + const [, , config] = stub.mock.calls[0]; + expect(JSON.parse(config)).toEqual({ corsPreflight: false }); }); }); @@ -87,10 +76,10 @@ describe('PactV3', () => { await p.executeTest(async () => Promise.resolve()); - const [, transport] = ( - pactMock.pactffiCreateMockServerForTransport as sinon.SinonStub - ).firstCall.args; - expect(transport).to.eq('http'); + // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast + const stub = pactMock.pactffiCreateMockServerForTransport as any; + const [, transport] = stub.mock.calls[0]; + expect(transport).toBe('http'); }); it('uses https scheme when tls is true', async () => { @@ -101,10 +90,10 @@ describe('PactV3', () => { await p.executeTest(async () => Promise.resolve()); - const [, transport] = ( - pactMock.pactffiCreateMockServerForTransport as sinon.SinonStub - ).firstCall.args; - expect(transport).to.eq('https'); + // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast + const stub = pactMock.pactffiCreateMockServerForTransport as any; + const [, transport] = stub.mock.calls[0]; + expect(transport).toBe('https'); }); }); @@ -117,7 +106,7 @@ describe('PactV3', () => { await expect( p.executeTest(async () => Promise.resolve()), - ).to.be.rejectedWith('Failed to start mock server'); + ).rejects.toThrow('Failed to start mock server'); }); }); }); diff --git a/src/v4/http/index.spec.ts b/src/v4/http/index.spec.ts index e30cf91a3..f98477d48 100644 --- a/src/v4/http/index.spec.ts +++ b/src/v4/http/index.spec.ts @@ -1,30 +1,22 @@ -import * as chai from 'chai'; -import chaiAsPromised from 'chai-as-promised'; -import sinon from 'sinon'; -import sinonChai from 'sinon-chai'; +import { vi } from 'vitest'; import type { ConsumerPact } from '@pact-foundation/pact-core'; import { executeTest } from '.'; import type { PactV4Options } from './types'; -chai.use(sinonChai); -chai.use(chaiAsPromised); - -const { expect } = chai; - describe('V4 HTTP executeTest', () => { afterEach(() => { - sinon.restore(); + vi.restoreAllMocks(); }); const buildPactMock = (port: number): ConsumerPact => { return { - pactffiCreateMockServerForTransport: sinon.stub().returns(port), - mockServerMatchedSuccessfully: sinon.stub().returns(true), - mockServerMismatches: sinon.stub().returns([]), - cleanupMockServer: sinon.stub().returns(true), - writePactFile: sinon.stub(), - cleanupPlugins: sinon.stub(), - addPlugin: sinon.stub(), + pactffiCreateMockServerForTransport: vi.fn().mockReturnValue(port), + mockServerMatchedSuccessfully: vi.fn().mockReturnValue(true), + mockServerMismatches: vi.fn().mockReturnValue([]), + cleanupMockServer: vi.fn().mockReturnValue(true), + writePactFile: vi.fn(), + cleanupPlugins: vi.fn(), + addPlugin: vi.fn(), } as unknown as ConsumerPact; }; @@ -41,11 +33,11 @@ describe('V4 HTTP executeTest', () => { () => {}, ); - const stub = - pactMock.pactffiCreateMockServerForTransport as sinon.SinonStub; - expect(stub.calledOnce).to.be.true; - const [, , config] = stub.firstCall.args; - expect(JSON.parse(config)).to.deep.equal({ corsPreflight: true }); + // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast + const stub = pactMock.pactffiCreateMockServerForTransport as any; + expect(stub).toHaveBeenCalledOnce(); + const [, , config] = stub.mock.calls[0]; + expect(JSON.parse(config)).toEqual({ corsPreflight: true }); }); it('passes corsPreflight: true when cors is explicitly true', async () => { @@ -58,10 +50,10 @@ describe('V4 HTTP executeTest', () => { () => {}, ); - const stub = - pactMock.pactffiCreateMockServerForTransport as sinon.SinonStub; - const [, , config] = stub.firstCall.args; - expect(JSON.parse(config)).to.deep.equal({ corsPreflight: true }); + // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast + const stub = pactMock.pactffiCreateMockServerForTransport as any; + const [, , config] = stub.mock.calls[0]; + expect(JSON.parse(config)).toEqual({ corsPreflight: true }); }); it('passes corsPreflight: false when cors is explicitly false', async () => { @@ -74,10 +66,10 @@ describe('V4 HTTP executeTest', () => { () => {}, ); - const stub = - pactMock.pactffiCreateMockServerForTransport as sinon.SinonStub; - const [, , config] = stub.firstCall.args; - expect(JSON.parse(config)).to.deep.equal({ corsPreflight: false }); + // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast + const stub = pactMock.pactffiCreateMockServerForTransport as any; + const [, , config] = stub.mock.calls[0]; + expect(JSON.parse(config)).toEqual({ corsPreflight: false }); }); }); @@ -92,10 +84,10 @@ describe('V4 HTTP executeTest', () => { () => {}, ); - const stub = - pactMock.pactffiCreateMockServerForTransport as sinon.SinonStub; - const [, transport] = stub.firstCall.args; - expect(transport).to.eq('http'); + // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast + const stub = pactMock.pactffiCreateMockServerForTransport as any; + const [, transport] = stub.mock.calls[0]; + expect(transport).toBe('http'); }); it('uses https scheme when tls is true', async () => { @@ -108,10 +100,10 @@ describe('V4 HTTP executeTest', () => { () => {}, ); - const stub = - pactMock.pactffiCreateMockServerForTransport as sinon.SinonStub; - const [, transport] = stub.firstCall.args; - expect(transport).to.eq('https'); + // biome-ignore lint/suspicious/noExplicitAny: accessing vitest mock internals after ConsumerPact cast + const stub = pactMock.pactffiCreateMockServerForTransport as any; + const [, transport] = stub.mock.calls[0]; + expect(transport).toBe('https'); }); }); @@ -126,7 +118,7 @@ describe('V4 HTTP executeTest', () => { async () => Promise.resolve(), () => {}, ), - ).to.be.rejectedWith('Failed to start mock server'); + ).rejects.toThrow('Failed to start mock server'); }); }); }); diff --git a/src/v4/http/requestBuilder.spec.ts b/src/v4/http/requestBuilder.spec.ts index db288999a..60fa0cf46 100644 --- a/src/v4/http/requestBuilder.spec.ts +++ b/src/v4/http/requestBuilder.spec.ts @@ -1,27 +1,21 @@ +import { vi } from 'vitest'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; -import * as chai from 'chai'; -import sinon from 'sinon'; -import sinonChai from 'sinon-chai'; import { XmlBuilder } from '../../v4'; import { RequestBuilder } from './requestBuilder'; -chai.use(sinonChai); - -const { expect } = chai; - describe('V4 RequestBuilder', () => { - let withRequestBody: sinon.SinonStub; + let withRequestBody: ReturnType; let interaction: ConsumerInteraction; let builder: RequestBuilder; beforeEach(() => { - withRequestBody = sinon.stub(); + withRequestBody = vi.fn(); interaction = { withRequestBody } as unknown as ConsumerInteraction; builder = new RequestBuilder(interaction); }); afterEach(() => { - sinon.restore(); + vi.restoreAllMocks(); }); describe('#xmlBody', () => { @@ -32,10 +26,8 @@ describe('V4 RequestBuilder', () => { builder.xmlBody(body); - expect(withRequestBody).to.have.been.calledOnceWith( - body, - 'application/xml', - ); + expect(withRequestBody).toHaveBeenCalledOnce(); + expect(withRequestBody).toHaveBeenCalledWith(body, 'application/xml'); }); it('supports XmlBuilder with matchers', () => { @@ -45,10 +37,8 @@ describe('V4 RequestBuilder', () => { builder.xmlBody(body); - expect(withRequestBody).to.have.been.calledOnceWith( - body, - 'application/xml', - ); + expect(withRequestBody).toHaveBeenCalledOnce(); + expect(withRequestBody).toHaveBeenCalledWith(body, 'application/xml'); }); it('returns the builder for chaining', () => { @@ -56,7 +46,7 @@ describe('V4 RequestBuilder', () => { const result = builder.xmlBody(body); - expect(result).to.equal(builder); + expect(result).toBe(builder); }); }); }); diff --git a/src/v4/http/requestWithPluginBuilder.spec.ts b/src/v4/http/requestWithPluginBuilder.spec.ts index 411ceced6..27a0ccca4 100644 --- a/src/v4/http/requestWithPluginBuilder.spec.ts +++ b/src/v4/http/requestWithPluginBuilder.spec.ts @@ -1,27 +1,21 @@ +import { vi } from 'vitest'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; -import * as chai from 'chai'; -import sinon from 'sinon'; -import sinonChai from 'sinon-chai'; import { XmlBuilder } from '../../v4'; import { RequestWithPluginBuilder } from './requestWithPluginBuilder'; -chai.use(sinonChai); - -const { expect } = chai; - describe('V4 RequestWithPluginBuilder', () => { - let withRequestBody: sinon.SinonStub; + let withRequestBody: ReturnType; let interaction: ConsumerInteraction; let builder: RequestWithPluginBuilder; beforeEach(() => { - withRequestBody = sinon.stub(); + withRequestBody = vi.fn(); interaction = { withRequestBody } as unknown as ConsumerInteraction; builder = new RequestWithPluginBuilder(interaction); }); afterEach(() => { - sinon.restore(); + vi.restoreAllMocks(); }); describe('#xmlBody', () => { @@ -32,10 +26,8 @@ describe('V4 RequestWithPluginBuilder', () => { builder.xmlBody(body); - expect(withRequestBody).to.have.been.calledOnceWith( - body, - 'application/xml', - ); + expect(withRequestBody).toHaveBeenCalledOnce(); + expect(withRequestBody).toHaveBeenCalledWith(body, 'application/xml'); }); it('returns a V4RequestWithPluginBuilder for chaining', () => { @@ -43,7 +35,7 @@ describe('V4 RequestWithPluginBuilder', () => { const result = builder.xmlBody(body); - expect(result).to.equal(builder); + expect(result).toBe(builder); }); }); }); diff --git a/src/v4/http/responseBuilder.spec.ts b/src/v4/http/responseBuilder.spec.ts index 4bd3e3b0f..d3eb0cd8e 100644 --- a/src/v4/http/responseBuilder.spec.ts +++ b/src/v4/http/responseBuilder.spec.ts @@ -1,27 +1,21 @@ +import { vi } from 'vitest'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; -import * as chai from 'chai'; -import sinon from 'sinon'; -import sinonChai from 'sinon-chai'; import { XmlBuilder } from '../../v4'; import { ResponseBuilder } from './responseBuilder'; -chai.use(sinonChai); - -const { expect } = chai; - describe('V4 ResponseBuilder', () => { - let withResponseBody: sinon.SinonStub; + let withResponseBody: ReturnType; let interaction: ConsumerInteraction; let builder: ResponseBuilder; beforeEach(() => { - withResponseBody = sinon.stub(); + withResponseBody = vi.fn(); interaction = { withResponseBody } as unknown as ConsumerInteraction; builder = new ResponseBuilder(interaction); }); afterEach(() => { - sinon.restore(); + vi.restoreAllMocks(); }); describe('#xmlBody', () => { @@ -32,10 +26,8 @@ describe('V4 ResponseBuilder', () => { builder.xmlBody(body); - expect(withResponseBody).to.have.been.calledOnceWith( - body, - 'application/xml', - ); + expect(withResponseBody).toHaveBeenCalledOnce(); + expect(withResponseBody).toHaveBeenCalledWith(body, 'application/xml'); }); it('supports XmlBuilder with matchers', () => { @@ -45,10 +37,8 @@ describe('V4 ResponseBuilder', () => { builder.xmlBody(body); - expect(withResponseBody).to.have.been.calledOnceWith( - body, - 'application/xml', - ); + expect(withResponseBody).toHaveBeenCalledOnce(); + expect(withResponseBody).toHaveBeenCalledWith(body, 'application/xml'); }); it('returns the builder for chaining', () => { @@ -56,7 +46,7 @@ describe('V4 ResponseBuilder', () => { const result = builder.xmlBody(body); - expect(result).to.equal(builder); + expect(result).toBe(builder); }); }); }); diff --git a/src/v4/http/responseWithPluginBuilder.spec.ts b/src/v4/http/responseWithPluginBuilder.spec.ts index 95f710257..95a5851b0 100644 --- a/src/v4/http/responseWithPluginBuilder.spec.ts +++ b/src/v4/http/responseWithPluginBuilder.spec.ts @@ -1,27 +1,21 @@ +import { vi } from 'vitest'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; -import * as chai from 'chai'; -import sinon from 'sinon'; -import sinonChai from 'sinon-chai'; import { XmlBuilder } from '../../v4'; import { ResponseWithPluginBuilder } from './responseWithPluginBuilder'; -chai.use(sinonChai); - -const { expect } = chai; - describe('V4 ResponseWithPluginBuilder', () => { - let withResponseBody: sinon.SinonStub; + let withResponseBody: ReturnType; let interaction: ConsumerInteraction; let builder: ResponseWithPluginBuilder; beforeEach(() => { - withResponseBody = sinon.stub(); + withResponseBody = vi.fn(); interaction = { withResponseBody } as unknown as ConsumerInteraction; builder = new ResponseWithPluginBuilder(interaction); }); afterEach(() => { - sinon.restore(); + vi.restoreAllMocks(); }); describe('#xmlBody', () => { @@ -32,10 +26,8 @@ describe('V4 ResponseWithPluginBuilder', () => { builder.xmlBody(body); - expect(withResponseBody).to.have.been.calledOnceWith( - body, - 'application/xml', - ); + expect(withResponseBody).toHaveBeenCalledOnce(); + expect(withResponseBody).toHaveBeenCalledWith(body, 'application/xml'); }); it('returns the builder for chaining', () => { @@ -43,7 +35,7 @@ describe('V4 ResponseWithPluginBuilder', () => { const result = builder.xmlBody(body); - expect(result).to.equal(builder); + expect(result).toBe(builder); }); }); }); diff --git a/src/xml/xmlElement.spec.ts b/src/xml/xmlElement.spec.ts index 6339df020..1fa30814c 100644 --- a/src/xml/xmlElement.spec.ts +++ b/src/xml/xmlElement.spec.ts @@ -1,39 +1,37 @@ -import * as chai from 'chai'; -import { describe } from 'mocha'; import { XmlText } from './xmlText'; import { XmlElement } from './xmlElement'; import * as MatchersV3 from '../v3/matchers'; import type { Matcher } from '../v3/types'; -const { expect } = chai; - describe('xml element', () => { describe('appendText', () => { it('can be called with a string', () => { const xml = new XmlElement('my name') .appendText('some string') .appendText('second string'); - expect(xml, 'XML element').to.have.property('name'); - expect(xml.name, 'name of XML element').to.equal('my name'); + expect(xml, 'XML element').toHaveProperty('name'); + expect(xml.name, 'name of XML element').toBe('my name'); - expect(xml, 'XML element').to.have.property('children'); - expect(xml.children, 'children of XML element').to.be.lengthOf(2); + expect(xml, 'XML element').toHaveProperty('children'); + expect(xml.children, 'children of XML element').toHaveLength(2); expect( xml.children[0], 'type of first child of XML element', - ).to.be.instanceOf(XmlText); - expect(xml.children[0], 'first child of XML element').to.have.property( + ).toBeInstanceOf(XmlText); + expect(xml.children[0], 'first child of XML element').toHaveProperty( 'content', ); expect( (xml.children[0] as XmlText).content, 'content of first child', - ).to.equal('some string'); - expect(xml.children[0], 'first child of XML element').to.have.property( + ).toBe('some string'); + expect(xml.children[0], 'first child of XML element').toHaveProperty( 'matcher', ); - expect((xml.children[0] as XmlText).matcher, 'matcher of the first child') - .to.be.undefined; + expect( + (xml.children[0] as XmlText).matcher, + 'matcher of the first child', + ).toBeUndefined(); }); it('can be called with a Matcher', () => { @@ -65,24 +63,24 @@ describe('xml element', () => { ), ) .appendText(MatchersV3.uuid('adc214d3-1c9f-460d-b6c8-8f2bc8911860')); - expect(xml, 'XML element').to.have.property('name'); - expect(xml.name, 'name of XML element').to.equal('my name'); + expect(xml, 'XML element').toHaveProperty('name'); + expect(xml.name, 'name of XML element').toBe('my name'); - expect(xml, 'XML element').to.have.property('children'); - expect(xml.children, 'children of XML element').to.be.lengthOf(7); + expect(xml, 'XML element').toHaveProperty('children'); + expect(xml.children, 'children of XML element').toHaveLength(7); for (let i = 0; i < 7; i += 1) { const child: XmlText = xml.children[i] as XmlText; - expect(child).to.be.instanceOf(XmlText); - expect(child).to.have.property('content'); - expect(child.content).not.to.be.empty; - expect(child.content).to.be.a('string'); - expect(child).to.have.property('matcher'); - expect(child.matcher).to.have.property('value'); - expect(child.matcher?.value).to.be.a('string'); - expect(child.matcher?.value).not.to.be.empty; - expect(child.matcher).to.have.property('pact:matcher:type'); - expect(child.matcher?.['pact:matcher:type']).to.be.a('string'); - expect(child.matcher?.['pact:matcher:type']).not.to.be.empty; + expect(child).toBeInstanceOf(XmlText); + expect(child).toHaveProperty('content'); + expect(child.content).not.toBe(''); + expect(child.content).toBeTypeOf('string'); + expect(child).toHaveProperty('matcher'); + expect(child.matcher).toHaveProperty('value'); + expect(child.matcher?.value).toBeTypeOf('string'); + expect(child.matcher?.value).not.toBe(''); + expect(child.matcher).toHaveProperty('pact:matcher:type'); + expect(child.matcher?.['pact:matcher:type']).toBeTypeOf('string'); + expect(child.matcher?.['pact:matcher:type']).not.toBe(''); } }); @@ -93,21 +91,21 @@ describe('xml element', () => { }; } const xml = new XmlElement('my name').appendText(noValueMatcher()); - expect(xml, 'XML element').to.have.property('name'); - expect(xml.name, 'name of XML element').to.equal('my name'); + expect(xml, 'XML element').toHaveProperty('name'); + expect(xml.name, 'name of XML element').toBe('my name'); - expect(xml, 'XML element').to.have.property('children'); - expect(xml.children, 'children of XML element').to.be.lengthOf(1); + expect(xml, 'XML element').toHaveProperty('children'); + expect(xml.children, 'children of XML element').toHaveLength(1); const child: XmlText = xml.children[0] as XmlText; - expect(child).to.be.instanceOf(XmlText); - expect(child).to.have.property('content'); - expect(child.content).to.be.empty; - expect(child.content).to.be.a('string'); - expect(child).to.have.property('matcher'); - expect(child.matcher).not.to.have.property('value'); - expect(child.matcher).to.have.property('pact:matcher:type'); - expect(child.matcher?.['pact:matcher:type']).to.be.a('string'); - expect(child.matcher?.['pact:matcher:type']).not.to.be.empty; + expect(child).toBeInstanceOf(XmlText); + expect(child).toHaveProperty('content'); + expect(child.content).toBe(''); + expect(child.content).toBeTypeOf('string'); + expect(child).toHaveProperty('matcher'); + expect(child.matcher).not.toHaveProperty('value'); + expect(child.matcher).toHaveProperty('pact:matcher:type'); + expect(child.matcher?.['pact:matcher:type']).toBeTypeOf('string'); + expect(child.matcher?.['pact:matcher:type']).not.toBe(''); }); }); }); diff --git a/tsconfig.json b/tsconfig.json index 28d91a7bf..00d9e9344 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,8 @@ "noEmitOnError": true, "emitDecoratorMetadata": true, "declaration": true, - "experimentalDecorators": true + "experimentalDecorators": true, + "types": ["vitest/globals"] }, "include": ["src", "test"] } diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 000000000..f0c454860 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + globals: true, + testTimeout: 60000, + pool: 'forks', + sequence: { concurrent: false }, + include: ['src/**/*.spec.ts'], + coverage: { + enabled: true, + provider: 'v8', + include: ['src/**/*.ts'], + exclude: ['src/**/*.spec.ts', 'src/**/*.d.ts'], + reporter: ['text-summary', 'html', 'lcov'], + thresholds: { + lines: 50, + statements: 50, + }, + }, + }, +}); From c1a7317e00bde59b74dbc5e891a8fa53d0622834 Mon Sep 17 00:00:00 2001 From: JP-Ellis Date: Wed, 6 May 2026 14:33:41 +1000 Subject: [PATCH 07/17] chore: remove use of any Signed-off-by: JP-Ellis --- regression/v2/e2e/provider.ts | 8 +++-- regression/v2/e2e/repository.ts | 2 +- regression/v3/e2e/provider.ts | 29 ++++++++++++++----- regression/v3/e2e/repository.ts | 2 +- .../provider/account-service.ts | 4 +-- src/dsl/verifier/verifier.spec.ts | 14 +++++---- 6 files changed, 39 insertions(+), 20 deletions(-) diff --git a/regression/v2/e2e/provider.ts b/regression/v2/e2e/provider.ts index 186103040..f576c37cd 100644 --- a/regression/v2/e2e/provider.ts +++ b/regression/v2/e2e/provider.ts @@ -39,10 +39,14 @@ export const importData = () => { }, 0); }; +interface Animal { + eligibility: { available: boolean }; +} + // List all animals with 'available' eligibility const availableAnimals = () => { - return animalRepository.fetchAll().filter((a: any) => { - return a.eligibility.available; + return animalRepository.fetchAll().filter((a) => { + return (a as Animal).eligibility.available; }); }; diff --git a/regression/v2/e2e/repository.ts b/regression/v2/e2e/repository.ts index 4a1f2f507..e58d7518a 100644 --- a/regression/v2/e2e/repository.ts +++ b/regression/v2/e2e/repository.ts @@ -8,7 +8,7 @@ export default class Repository { getById(id) { return this.entities.find( - (entity: any) => Number(id) === Number(entity.id), + (entity: { id: unknown }) => Number(id) === Number(entity.id), ); } diff --git a/regression/v3/e2e/provider.ts b/regression/v3/e2e/provider.ts index 2c14e3b4f..d1c300875 100644 --- a/regression/v3/e2e/provider.ts +++ b/regression/v3/e2e/provider.ts @@ -39,10 +39,18 @@ export const importData = () => { }, 0); }; +interface Animal { + id?: number; + first_name?: string; + last_name?: string; + animal?: string; + eligibility: { available: boolean }; +} + // List all animals with 'available' eligibility const availableAnimals = () => { - return animalRepository.fetchAll().filter((a: any) => { - return a.eligibility.available; + return animalRepository.fetchAll().filter((a) => { + return (a as Animal).eligibility.available; }); }; @@ -60,18 +68,23 @@ server.get('/animals/available', (_req, res) => { server.get('/animals/available/xml', (_req, res) => { res.header('Content-Type', 'application/xml; charset=utf-8'); const xml_body = xml({ - animals: animalRepository.fetchAll().map((animal: any) => { - const result = {}; - result[animal.animal] = { _attr: animal }; - return result; - }), + animals: animalRepository + .fetchAll() + .filter((a): a is Animal => typeof (a as Animal).animal === 'string') + .map((animal) => { + const result: Record = {}; + result[animal.animal] = { _attr: animal }; + return result; + }), }); res.end(xml_body); }); // Find an animal by ID server.get('/animals/:id', (req, res) => { - const response = animalRepository.getById(req.params.id) as any; + const response = animalRepository.getById(req.params.id) as + | Animal + | undefined; if (response) { if (req.header('accept') === 'text/plain') { res.contentType('text/plain; charset=utf-8'); diff --git a/regression/v3/e2e/repository.ts b/regression/v3/e2e/repository.ts index cc8d599bb..fc012bcb0 100644 --- a/regression/v3/e2e/repository.ts +++ b/regression/v3/e2e/repository.ts @@ -8,7 +8,7 @@ export default class Repository { getById(id) { return this.entities.find( - (entity: any) => Number(id) === Number(entity.id), + (entity: { id: unknown }) => Number(id) === Number(entity.id), ); } diff --git a/regression/v3/provider-state-injected/provider/account-service.ts b/regression/v3/provider-state-injected/provider/account-service.ts index cf002a027..0627794fd 100644 --- a/regression/v3/provider-state-injected/provider/account-service.ts +++ b/regression/v3/provider-state-injected/provider/account-service.ts @@ -13,7 +13,7 @@ server.get('/accounts/search/findOneByAccountNumberId', (req, res) => { .then((account) => { if (account) { res.header('Content-Type', 'application/hal+json; charset=utf-8'); - const baseUrl = `${req.protocol}://${req.hostname}:${(req.socket as any).localPort}`; + const baseUrl = `${req.protocol}://${req.hostname}:${req.socket?.localPort}`; const body = { _links: { account: { @@ -54,7 +54,7 @@ server.post('/accounts/search/findOneByAccountNumberIdInBody', (req, res) => { .then((account) => { if (account) { res.header('Content-Type', 'application/hal+json; charset=utf-8'); - const baseUrl = `${req.protocol}://${req.hostname}:${(req.socket as any).localPort}`; + const baseUrl = `${req.protocol}://${req.hostname}:${req.socket?.localPort}`; const body = { _links: { account: { diff --git a/src/dsl/verifier/verifier.spec.ts b/src/dsl/verifier/verifier.spec.ts index 48e9af5aa..3f2562c15 100644 --- a/src/dsl/verifier/verifier.spec.ts +++ b/src/dsl/verifier/verifier.spec.ts @@ -113,9 +113,10 @@ describe('Verifier', () => { }); describe('and the verification runs successfully', () => { it('closes the server and returns the result', async () => { - vi.spyOn(v as any, 'runProviderVerification').mockReturnValue( - Promise.resolve('done'), - ); + vi.spyOn( + v as unknown as { runProviderVerification: () => unknown }, + 'runProviderVerification', + ).mockReturnValue(Promise.resolve('done')); const res = v.verifyProvider(); @@ -126,9 +127,10 @@ describe('Verifier', () => { describe('and the verification fails', () => { it('closes the server and returns the result', async () => { - vi.spyOn(v as any, 'runProviderVerification').mockReturnValue(() => - Promise.reject(new Error('error')), - ); + vi.spyOn( + v as unknown as { runProviderVerification: () => unknown }, + 'runProviderVerification', + ).mockReturnValue(() => Promise.reject(new Error('error'))); const res = v.verifyProvider(); From 8843b0cd75ebf9e808a3b9249303f8f2ba5913af Mon Sep 17 00:00:00 2001 From: JP-Ellis Date: Wed, 6 May 2026 14:34:28 +1000 Subject: [PATCH 08/17] chore: sort imports Not sure why this wasn't covered in CI before Signed-off-by: JP-Ellis --- regression/v2/e2e/provider.ts | 4 +- regression/v2/e2e/providerService.ts | 2 +- regression/v2/e2e/test/consumer.spec.ts | 2 +- regression/v2/e2e/test/provider.spec.ts | 4 +- regression/v3/e2e/provider.ts | 4 +- regression/v3/e2e/providerService.ts | 2 +- regression/v3/e2e/test/consumer.spec.ts | 2 +- regression/v3/e2e/test/provider.spec.ts | 4 +- .../consumer/transaction-service.spec.ts | 2 +- .../provider/account-service.spec.ts | 4 +- .../provider/account-service.ts | 6 +- .../v3/run-specific-verifications/provider.ts | 4 +- .../test/provider.spec.ts | 2 +- regression/v3/todo-consumer/src/todo.ts | 4 +- .../v3/todo-consumer/test/consumer.spec.ts | 2 +- .../v3/todo-consumer/test/provider.spec.ts | 2 +- src/common/graphQL/graphQL.ts | 2 +- src/common/matchingRules.ts | 2 +- src/common/net.spec.ts | 2 +- src/common/request.ts | 2 +- src/dsl/graphql.ts | 10 +-- src/dsl/interaction.ts | 4 +- src/dsl/matchers.spec.ts | 14 ++-- src/dsl/matchers.ts | 5 +- src/dsl/message.ts | 2 +- src/dsl/options.ts | 2 +- src/dsl/verifier/proxy/hooks.spec.ts | 8 +-- src/dsl/verifier/proxy/messages.ts | 4 +- src/dsl/verifier/proxy/proxy.ts | 15 ++--- src/dsl/verifier/proxy/proxyRequest.spec.ts | 2 +- src/dsl/verifier/proxy/proxyRequest.ts | 8 +-- .../proxy/stateHandler/setupStates.spec.ts | 6 +- .../proxy/stateHandler/setupStates.ts | 4 +- .../proxy/stateHandler/stateHandler.spec.ts | 6 +- .../proxy/stateHandler/stateHandler.ts | 5 +- src/dsl/verifier/proxy/tracer.ts | 2 +- src/dsl/verifier/proxy/types.ts | 4 +- src/dsl/verifier/verifier.spec.ts | 4 +- src/dsl/verifier/verifier.ts | 13 ++-- src/httpPact/ffi.spec.ts | 2 +- src/httpPact/ffi.ts | 6 +- src/httpPact/index.spec.ts | 4 +- src/httpPact/index.ts | 20 +++--- src/httpPact/tracing.ts | 2 +- src/index.ts | 67 ++++++++----------- src/messageConsumerPact.spec.ts | 4 +- src/messageConsumerPact.ts | 14 ++-- src/messageProviderPact.spec.ts | 2 +- src/messageProviderPact.ts | 12 ++-- src/pact.integration.spec.ts | 3 +- src/v3/display.ts | 8 +-- src/v3/ffi.ts | 4 +- src/v3/graphql/graphQL.ts | 11 ++- src/v3/graphql/index.ts | 2 +- src/v3/index.ts | 10 ++- src/v3/matchers.ts | 4 +- src/v3/pact.spec.ts | 2 +- src/v3/pact.ts | 26 +++---- .../graphql/graphQLInteractionWithRequest.ts | 8 +-- src/v4/graphql/graphQLRequestBuilder.ts | 2 +- src/v4/graphql/index.ts | 15 ++--- src/v4/graphql/types.ts | 2 +- src/v4/http/index.spec.ts | 2 +- src/v4/http/index.ts | 4 +- src/v4/http/interactionWithCompleteRequest.ts | 6 +- src/v4/http/interactionWithPlugin.ts | 10 +-- src/v4/http/interactionWithPluginRequest.ts | 6 +- src/v4/http/interactionWithPluginResponse.ts | 2 +- src/v4/http/interactionWithRequest.ts | 6 +- src/v4/http/interactionWithResponse.ts | 2 +- src/v4/http/requestBuilder.spec.ts | 2 +- src/v4/http/requestBuilder.ts | 6 +- src/v4/http/requestWithPluginBuilder.spec.ts | 2 +- src/v4/http/responseBuilder.spec.ts | 2 +- src/v4/http/responseBuilder.ts | 6 +- src/v4/http/responseWithPluginBuilder.spec.ts | 2 +- src/v4/http/responseWithPluginBuilder.ts | 2 +- src/v4/http/unconfiguredInteraction.ts | 22 +++--- src/v4/index.ts | 20 +++--- src/v4/message/asynchronousMessage.ts | 40 +++++------ src/v4/message/index.ts | 36 +++++----- src/v4/types.ts | 2 +- src/xml/xmlElement.spec.ts | 4 +- 83 files changed, 282 insertions(+), 308 deletions(-) diff --git a/regression/v2/e2e/provider.ts b/regression/v2/e2e/provider.ts index f576c37cd..2bd3f9240 100644 --- a/regression/v2/e2e/provider.ts +++ b/regression/v2/e2e/provider.ts @@ -1,6 +1,6 @@ -import express from 'express'; -import cors from 'cors'; import bodyParser from 'body-parser'; +import cors from 'cors'; +import express from 'express'; import Repository from './repository'; export const server = express(); diff --git a/regression/v2/e2e/providerService.ts b/regression/v2/e2e/providerService.ts index 037b7f596..e72467555 100644 --- a/regression/v2/e2e/providerService.ts +++ b/regression/v2/e2e/providerService.ts @@ -1,4 +1,4 @@ -import { server, importData } from './provider'; +import { importData, server } from './provider'; importData(); diff --git a/regression/v2/e2e/test/consumer.spec.ts b/regression/v2/e2e/test/consumer.spec.ts index d95db0f83..a814adfaa 100644 --- a/regression/v2/e2e/test/consumer.spec.ts +++ b/regression/v2/e2e/test/consumer.spec.ts @@ -1,10 +1,10 @@ import path from 'node:path'; -import { afterAll, afterEach, beforeAll, describe, expect, it } from 'vitest'; import { type LogLevel, MatchersV2 as Matchers, PactV2 as Pact, } from '@pact-foundation/pact'; +import { afterAll, afterEach, beforeAll, describe, expect, it } from 'vitest'; import { createMateForDates, getAnimalById, suggestion } from '../consumer'; const LOG_LEVEL = process.env.LOG_LEVEL || 'WARN'; diff --git a/regression/v2/e2e/test/provider.spec.ts b/regression/v2/e2e/test/provider.spec.ts index dfa3c2ea6..b703755b6 100644 --- a/regression/v2/e2e/test/provider.spec.ts +++ b/regression/v2/e2e/test/provider.spec.ts @@ -1,7 +1,7 @@ import path from 'node:path'; -import { describe, it } from 'vitest'; import { Verifier } from '@pact-foundation/pact'; -import { server, importData, animalRepository } from '../provider'; +import { describe, it } from 'vitest'; +import { animalRepository, importData, server } from '../provider'; const LOG_LEVEL = process.env.LOG_LEVEL || 'INFO'; diff --git a/regression/v3/e2e/provider.ts b/regression/v3/e2e/provider.ts index d1c300875..57184ee54 100644 --- a/regression/v3/e2e/provider.ts +++ b/regression/v3/e2e/provider.ts @@ -1,6 +1,6 @@ -import express from 'express'; -import cors from 'cors'; import bodyParser from 'body-parser'; +import cors from 'cors'; +import express from 'express'; import xml from 'xml'; import Repository from './repository'; diff --git a/regression/v3/e2e/providerService.ts b/regression/v3/e2e/providerService.ts index 037b7f596..e72467555 100644 --- a/regression/v3/e2e/providerService.ts +++ b/regression/v3/e2e/providerService.ts @@ -1,4 +1,4 @@ -import { server, importData } from './provider'; +import { importData, server } from './provider'; importData(); diff --git a/regression/v3/e2e/test/consumer.spec.ts b/regression/v3/e2e/test/consumer.spec.ts index 1d85b1de5..7cc5a43ee 100644 --- a/regression/v3/e2e/test/consumer.spec.ts +++ b/regression/v3/e2e/test/consumer.spec.ts @@ -1,11 +1,11 @@ import path from 'node:path'; -import { beforeAll, describe, expect, it } from 'vitest'; import { Matchers, PactV3, SpecificationVersion, XmlBuilder, } from '@pact-foundation/pact'; +import { beforeAll, describe, expect, it } from 'vitest'; import { availableAnimals, createMateForDates, diff --git a/regression/v3/e2e/test/provider.spec.ts b/regression/v3/e2e/test/provider.spec.ts index 1306ceae9..df5784b72 100644 --- a/regression/v3/e2e/test/provider.spec.ts +++ b/regression/v3/e2e/test/provider.spec.ts @@ -1,8 +1,8 @@ import path from 'node:path'; import querystring from 'node:querystring'; -import { describe, it } from 'vitest'; import { Verifier } from '@pact-foundation/pact'; -import { server, importData, animalRepository } from '../provider'; +import { describe, it } from 'vitest'; +import { animalRepository, importData, server } from '../provider'; const LOG_LEVEL = process.env.LOG_LEVEL || 'INFO'; diff --git a/regression/v3/provider-state-injected/consumer/transaction-service.spec.ts b/regression/v3/provider-state-injected/consumer/transaction-service.spec.ts index 8cd8b53ca..7fa9ca85e 100644 --- a/regression/v3/provider-state-injected/consumer/transaction-service.spec.ts +++ b/regression/v3/provider-state-injected/consumer/transaction-service.spec.ts @@ -1,8 +1,8 @@ /** biome-ignore-all lint/suspicious/noTemplateCurlyInString: The syntax ${...} * is used by Pact, and should not be handled within JS. */ import path from 'node:path'; -import { describe, expect, it } from 'vitest'; import { Matchers, PactV3, XmlBuilder } from '@pact-foundation/pact'; +import { describe, expect, it } from 'vitest'; import transactionService from './transaction-service'; const { string, integer, url2, regex, datetime, fromProviderState } = Matchers; diff --git a/regression/v3/provider-state-injected/provider/account-service.spec.ts b/regression/v3/provider-state-injected/provider/account-service.spec.ts index 680c7047c..1166d997a 100644 --- a/regression/v3/provider-state-injected/provider/account-service.spec.ts +++ b/regression/v3/provider-state-injected/provider/account-service.spec.ts @@ -1,12 +1,12 @@ import path from 'node:path'; -import { afterAll, beforeAll, describe, it } from 'vitest'; import { Verifier } from '@pact-foundation/pact'; -import { accountService } from './account-service'; +import { afterAll, beforeAll, describe, it } from 'vitest'; import { Account, AccountNumber, accountRepository, } from './account-repository'; +import { accountService } from './account-service'; const LOG_LEVEL = process.env.LOG_LEVEL || 'WARN'; diff --git a/regression/v3/provider-state-injected/provider/account-service.ts b/regression/v3/provider-state-injected/provider/account-service.ts index 0627794fd..7d9771013 100644 --- a/regression/v3/provider-state-injected/provider/account-service.ts +++ b/regression/v3/provider-state-injected/provider/account-service.ts @@ -1,7 +1,7 @@ -import { accountRepository } from './account-repository'; -import express from 'express'; -import cors from 'cors'; import bodyParser from 'body-parser'; +import cors from 'cors'; +import express from 'express'; +import { accountRepository } from './account-repository'; const server = express(); server.use(cors()); diff --git a/regression/v3/run-specific-verifications/provider.ts b/regression/v3/run-specific-verifications/provider.ts index fcf9b6541..1240fa573 100644 --- a/regression/v3/run-specific-verifications/provider.ts +++ b/regression/v3/run-specific-verifications/provider.ts @@ -1,6 +1,6 @@ -import express from 'express'; -import cors from 'cors'; import bodyParser from 'body-parser'; +import cors from 'cors'; +import express from 'express'; export const server = express(); server.use(cors()); diff --git a/regression/v3/run-specific-verifications/test/provider.spec.ts b/regression/v3/run-specific-verifications/test/provider.spec.ts index e5cf1f20a..01de0be71 100644 --- a/regression/v3/run-specific-verifications/test/provider.spec.ts +++ b/regression/v3/run-specific-verifications/test/provider.spec.ts @@ -1,6 +1,6 @@ import path from 'node:path'; -import { afterEach, beforeEach, describe, it } from 'vitest'; import { Verifier } from '@pact-foundation/pact'; +import { afterEach, beforeEach, describe, it } from 'vitest'; import { server } from '../provider'; const LOG_LEVEL = process.env.LOG_LEVEL || 'WARN'; diff --git a/regression/v3/todo-consumer/src/todo.ts b/regression/v3/todo-consumer/src/todo.ts index 10e56bd83..bc4c36fb7 100644 --- a/regression/v3/todo-consumer/src/todo.ts +++ b/regression/v3/todo-consumer/src/todo.ts @@ -1,8 +1,8 @@ +import fs from 'node:fs'; import axios from 'axios'; -import { XMLParser } from 'fast-xml-parser'; import eyes from 'eyes'; +import { XMLParser } from 'fast-xml-parser'; import * as R from 'ramda'; -import fs from 'node:fs'; const parser = new XMLParser({ ignoreAttributes: false, diff --git a/regression/v3/todo-consumer/test/consumer.spec.ts b/regression/v3/todo-consumer/test/consumer.spec.ts index 4abb8d1b1..6973bf8e3 100644 --- a/regression/v3/todo-consumer/test/consumer.spec.ts +++ b/regression/v3/todo-consumer/test/consumer.spec.ts @@ -1,6 +1,6 @@ import path from 'node:path'; -import { beforeAll, describe, expect, it } from 'vitest'; import { Matchers, PactV3, XmlBuilder } from '@pact-foundation/pact'; +import { beforeAll, describe, expect, it } from 'vitest'; import TodoApp from '../src/todo'; const { string, eachLike, integer, boolean, atLeastOneLike, timestamp } = diff --git a/regression/v3/todo-consumer/test/provider.spec.ts b/regression/v3/todo-consumer/test/provider.spec.ts index 18cf84f18..7f65607a6 100644 --- a/regression/v3/todo-consumer/test/provider.spec.ts +++ b/regression/v3/todo-consumer/test/provider.spec.ts @@ -1,6 +1,6 @@ import path from 'node:path'; -import { describe, it } from 'vitest'; import { Verifier } from '@pact-foundation/pact'; +import { describe, it } from 'vitest'; import { server } from '../provider'; const LOG_LEVEL = process.env.LOG_LEVEL || 'WARN'; diff --git a/src/common/graphQL/graphQL.ts b/src/common/graphQL/graphQL.ts index fa37eff28..80f847885 100644 --- a/src/common/graphQL/graphQL.ts +++ b/src/common/graphQL/graphQL.ts @@ -1,7 +1,7 @@ import { type ASTNode, print } from 'graphql'; import gql from 'graphql-tag'; -import { GraphQLQueryError } from './graphQLQueryError'; import { ConfigurationError } from './configurationError'; +import { GraphQLQueryError } from './graphQLQueryError'; import type { OperationType } from './types'; export interface GraphQLVariables { diff --git a/src/common/matchingRules.ts b/src/common/matchingRules.ts index 0f631a453..a944f02eb 100644 --- a/src/common/matchingRules.ts +++ b/src/common/matchingRules.ts @@ -1,4 +1,4 @@ -import type { Rules, Rule, Matcher } from '../v3/types'; +import type { Matcher, Rule, Rules } from '../v3/types'; /** * Converts a matcher to the FFI format expected by pact-core diff --git a/src/common/net.spec.ts b/src/common/net.spec.ts index 651f66bfe..61d141c1f 100644 --- a/src/common/net.spec.ts +++ b/src/common/net.spec.ts @@ -1,6 +1,6 @@ import nodeNet from 'node:net'; -import { isPortAvailable } from './net'; import logger from './logger'; +import { isPortAvailable } from './net'; describe('Net', () => { const port = 4567; diff --git a/src/common/request.ts b/src/common/request.ts index f8d1c8394..cf0367a1a 100644 --- a/src/common/request.ts +++ b/src/common/request.ts @@ -1,5 +1,5 @@ -import axios from 'axios'; import https from 'node:https'; +import axios from 'axios'; import { pathOr } from 'ramda'; import logger from './logger'; diff --git a/src/dsl/graphql.ts b/src/dsl/graphql.ts index 28866385e..aaeb6b2f9 100644 --- a/src/dsl/graphql.ts +++ b/src/dsl/graphql.ts @@ -3,18 +3,18 @@ * * @module GraphQL */ -import { isNil, extend, isUndefined } from 'lodash'; +import { extend, isNil, isUndefined } from 'lodash'; import { reject } from 'ramda'; -import { Interaction, type InteractionStateComplete } from './interaction'; -import { regex } from './matchers'; -import GraphQLQueryError from '../errors/graphQLQueryError'; -import ConfigurationError from '../errors/configurationError'; import { escapeGraphQlQuery, type GraphQLVariables, validateQuery, } from '../common/graphQL/graphQL'; import { OperationType } from '../common/graphQL/types'; +import ConfigurationError from '../errors/configurationError'; +import GraphQLQueryError from '../errors/graphQLQueryError'; +import { Interaction, type InteractionStateComplete } from './interaction'; +import { regex } from './matchers'; /** * GraphQL interface diff --git a/src/dsl/interaction.ts b/src/dsl/interaction.ts index e59afed52..198a1938b 100644 --- a/src/dsl/interaction.ts +++ b/src/dsl/interaction.ts @@ -5,9 +5,9 @@ import { isNil, keys } from 'lodash'; import { reject } from 'ramda'; -import { HTTPMethods, type HTTPMethod } from '../common/request'; -import { type MatcherV2, isMatcher, type AnyTemplate } from './matchers'; +import { type HTTPMethod, HTTPMethods } from '../common/request'; import ConfigurationError from '../errors/configurationError'; +import { type AnyTemplate, isMatcher, type MatcherV2 } from './matchers'; interface QueryObject { [name: string]: string | MatcherV2 | string[]; diff --git a/src/dsl/matchers.spec.ts b/src/dsl/matchers.spec.ts index 0cd742915..5fce42b2c 100644 --- a/src/dsl/matchers.spec.ts +++ b/src/dsl/matchers.spec.ts @@ -1,28 +1,28 @@ import { + type AnyTemplate, boolean, decimal, eachLike, + email, + extractPayload, hexadecimal, + type InterfaceToTemplate, + ISO8601_DATE_FORMAT, integer, ipv4Address, ipv6Address, - ISO8601_DATE_FORMAT, + isMatcher, iso8601Date, iso8601DateTime, iso8601DateTimeWithMillis, iso8601Time, + like, rfc1123Timestamp, somethingLike, string, term, - email, uuid, validateExample, - extractPayload, - isMatcher, - like, - type AnyTemplate, - type InterfaceToTemplate, } from './matchers'; interface ExampleInterface { diff --git a/src/dsl/matchers.ts b/src/dsl/matchers.ts index df101aa39..9ccd2e601 100644 --- a/src/dsl/matchers.ts +++ b/src/dsl/matchers.ts @@ -4,7 +4,7 @@ * but are fixed, to prevent contract invalidation after each run of the consumer test. */ -import { isFunction, isNil, isEmpty, isUndefined } from 'lodash'; +import { isEmpty, isFunction, isNil, isUndefined } from 'lodash'; import { times } from 'ramda'; import type { AnyJson, JsonMap } from '../common/jsonTypes'; import MatcherError from '../errors/matcherError'; @@ -297,8 +297,7 @@ export function string(value = 'iloveorange'): MatcherV2 { } // Convenience alias' -export { somethingLike as like }; -export { term as regex }; +export { somethingLike as like, term as regex }; // Recurse the object removing any underlying matching guff, returning // the raw example content diff --git a/src/dsl/message.ts b/src/dsl/message.ts index 21b2e6853..8667efc16 100644 --- a/src/dsl/message.ts +++ b/src/dsl/message.ts @@ -1,6 +1,6 @@ import type { AnyJson } from '../common/jsonTypes'; -import type { MatcherV2 } from './matchers'; import type { Matcher } from '../v3/matchers'; +import type { MatcherV2 } from './matchers'; /** * Metadata is a map containing message context, diff --git a/src/dsl/options.ts b/src/dsl/options.ts index 1eff8abdd..65075e60d 100644 --- a/src/dsl/options.ts +++ b/src/dsl/options.ts @@ -3,8 +3,8 @@ * @module PactV2Options */ import type { VerifierOptions as PactCoreVerifierOptions } from '@pact-foundation/pact-core'; -import type { PactfileWriteMode } from './mockService'; import type { MessageProviders, MessageStateHandlers } from './message'; +import type { PactfileWriteMode } from './mockService'; export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error'; diff --git a/src/dsl/verifier/proxy/hooks.spec.ts b/src/dsl/verifier/proxy/hooks.spec.ts index 95f508656..a314357fb 100644 --- a/src/dsl/verifier/proxy/hooks.spec.ts +++ b/src/dsl/verifier/proxy/hooks.spec.ts @@ -1,11 +1,11 @@ -import { vi } from 'vitest'; import type { RequestHandler } from 'express'; +import { vi } from 'vitest'; import { - registerHookStateTracking, - registerBeforeHook, - registerAfterHook, type HooksState, + registerAfterHook, + registerBeforeHook, + registerHookStateTracking, } from './hooks'; // This mimics the proxy setup (src/dsl/verifier/proxy/proxy.ts), whereby the diff --git a/src/dsl/verifier/proxy/messages.ts b/src/dsl/verifier/proxy/messages.ts index dd219ce77..6a7d3bc0b 100644 --- a/src/dsl/verifier/proxy/messages.ts +++ b/src/dsl/verifier/proxy/messages.ts @@ -1,12 +1,12 @@ -import express from 'express'; import bodyParser from 'body-parser'; +import express from 'express'; import { encode as encodeBase64 } from 'js-base64'; +import logger from '../../../common/logger'; import type { MessageDescriptor, MessageFromProviderWithMetadata, MessageProvider, } from '../../message'; -import logger from '../../../common/logger'; import type { ProxyOptions } from './types'; // Find a provider message handler, and invoke it diff --git a/src/dsl/verifier/proxy/proxy.ts b/src/dsl/verifier/proxy/proxy.ts index 49c2ef778..a98cc82ec 100644 --- a/src/dsl/verifier/proxy/proxy.ts +++ b/src/dsl/verifier/proxy/proxy.ts @@ -1,20 +1,19 @@ +import http from 'node:http'; +import bodyParser from 'body-parser'; import express from 'express'; import HttpProxy from 'http-proxy'; -import bodyParser from 'body-parser'; -import http from 'node:http'; - -import type { ProxyOptions } from './types'; import logger from '../../../common/logger'; -import { createProxyStateHandler } from './stateHandler/stateHandler'; import { - registerHookStateTracking, + type HooksState, registerAfterHook, registerBeforeHook, - type HooksState, + registerHookStateTracking, } from './hooks'; -import { createRequestTracer, createResponseTracer } from './tracer'; import { createProxyMessageHandler } from './messages'; import { toServerOptions } from './proxyRequest'; +import { createProxyStateHandler } from './stateHandler/stateHandler'; +import { createRequestTracer, createResponseTracer } from './tracer'; +import type { ProxyOptions } from './types'; // Listens for the server start event export const waitForServerReady = (server: http.Server): Promise => diff --git a/src/dsl/verifier/proxy/proxyRequest.spec.ts b/src/dsl/verifier/proxy/proxyRequest.spec.ts index f6525cecb..0c5234b18 100644 --- a/src/dsl/verifier/proxy/proxyRequest.spec.ts +++ b/src/dsl/verifier/proxy/proxyRequest.spec.ts @@ -1,6 +1,6 @@ import { Readable } from 'node:stream'; -import type { ProxyOptions } from './types'; import { toServerOptions as toServerOptionsAct } from './proxyRequest'; +import type { ProxyOptions } from './types'; describe('#toServerOptions', () => { const toServerOptions = (opts: ProxyOptions = {}, req?: { body: unknown }) => diff --git a/src/dsl/verifier/proxy/proxyRequest.ts b/src/dsl/verifier/proxy/proxyRequest.ts index 25e89ff7d..f5fb5c9bd 100644 --- a/src/dsl/verifier/proxy/proxyRequest.ts +++ b/src/dsl/verifier/proxy/proxyRequest.ts @@ -1,9 +1,9 @@ -import { HttpsProxyAgent } from 'https-proxy-agent'; -import type { ServerOptions } from 'http-proxy'; -import { Readable } from 'node:stream'; import type { IncomingMessage } from 'node:http'; -import type { ProxyOptions } from './types'; +import { Readable } from 'node:stream'; +import type { ServerOptions } from 'http-proxy'; +import { HttpsProxyAgent } from 'https-proxy-agent'; import { parseBody } from './parseBody'; +import type { ProxyOptions } from './types'; // A base URL is always needed for the proxy, even // if there are no targets to proxy (e.g. in the case diff --git a/src/dsl/verifier/proxy/stateHandler/setupStates.spec.ts b/src/dsl/verifier/proxy/stateHandler/setupStates.spec.ts index c4551d470..2473de7fc 100644 --- a/src/dsl/verifier/proxy/stateHandler/setupStates.spec.ts +++ b/src/dsl/verifier/proxy/stateHandler/setupStates.spec.ts @@ -1,10 +1,8 @@ import { vi } from 'vitest'; - +import type { JsonMap } from '../../../../common/jsonTypes'; import logger from '../../../../common/logger'; -import type { ProxyOptions, ProviderState } from '../types'; - +import type { ProviderState, ProxyOptions } from '../types'; import { setupStates } from './setupStates'; -import type { JsonMap } from '../../../../common/jsonTypes'; describe('#setupStates', () => { const state: ProviderState = { diff --git a/src/dsl/verifier/proxy/stateHandler/setupStates.ts b/src/dsl/verifier/proxy/stateHandler/setupStates.ts index 7d87b9759..0a6da1a7a 100644 --- a/src/dsl/verifier/proxy/stateHandler/setupStates.ts +++ b/src/dsl/verifier/proxy/stateHandler/setupStates.ts @@ -1,12 +1,12 @@ +import type { JsonMap } from '../../../../common/jsonTypes'; import logger from '../../../../common/logger'; import type { + ProviderState, ProxyOptions, StateFunc, StateFuncWithSetup, - ProviderState, StateHandler, } from '../types'; -import type { JsonMap } from '../../../../common/jsonTypes'; const isStateFuncWithSetup = ( fn: StateFuncWithSetup | StateFunc, diff --git a/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts b/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts index 5bc637644..269be0489 100644 --- a/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts +++ b/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts @@ -1,9 +1,7 @@ -import { vi } from 'vitest'; - import type express from 'express'; - -import { createProxyStateHandler } from './stateHandler'; +import { vi } from 'vitest'; import type { ProxyOptions, StateHandlers } from '../types'; +import { createProxyStateHandler } from './stateHandler'; describe('#createProxyStateHandler', () => { const state = { diff --git a/src/dsl/verifier/proxy/stateHandler/stateHandler.ts b/src/dsl/verifier/proxy/stateHandler/stateHandler.ts index 17dd619a2..51aabe1a3 100644 --- a/src/dsl/verifier/proxy/stateHandler/stateHandler.ts +++ b/src/dsl/verifier/proxy/stateHandler/stateHandler.ts @@ -1,8 +1,7 @@ +import chalk from 'chalk'; import type express from 'express'; - import StackUtils from 'stack-utils'; -import chalk from 'chalk'; -import type { ProxyOptions, ProviderState } from '../types'; +import type { ProviderState, ProxyOptions } from '../types'; import { setupStates } from './setupStates'; const cleanStack = (e: Error) => { diff --git a/src/dsl/verifier/proxy/tracer.ts b/src/dsl/verifier/proxy/tracer.ts index 0b7db8399..c269baa5b 100644 --- a/src/dsl/verifier/proxy/tracer.ts +++ b/src/dsl/verifier/proxy/tracer.ts @@ -1,5 +1,5 @@ import type express from 'express'; -import { pickBy, identity, reduce, type Dictionary } from 'lodash'; +import { type Dictionary, identity, pickBy, reduce } from 'lodash'; import logger from '../../../common/logger'; diff --git a/src/dsl/verifier/proxy/types.ts b/src/dsl/verifier/proxy/types.ts index 8be4104e2..13d0a0fc9 100644 --- a/src/dsl/verifier/proxy/types.ts +++ b/src/dsl/verifier/proxy/types.ts @@ -1,7 +1,7 @@ import type express from 'express'; -import type { LogLevel } from '../../options'; -import type { JsonMap, AnyJson } from '../../../common/jsonTypes'; +import type { AnyJson, JsonMap } from '../../../common/jsonTypes'; import type { MessageProviders } from '../../message'; +import type { LogLevel } from '../../options'; export type Hook = () => Promise; diff --git a/src/dsl/verifier/verifier.spec.ts b/src/dsl/verifier/verifier.spec.ts index 3f2562c15..8d52bc2fa 100644 --- a/src/dsl/verifier/verifier.spec.ts +++ b/src/dsl/verifier/verifier.spec.ts @@ -1,10 +1,10 @@ -import { vi } from 'vitest'; import type { Server } from 'node:http'; import serviceFactory, { type LogLevel } from '@pact-foundation/pact-core'; +import { vi } from 'vitest'; import logger from '../../common/logger'; -import { Verifier } from './verifier'; import type { VerifierOptions } from './types'; +import { Verifier } from './verifier'; const mockState = vi.hoisted(() => ({ executed: false })); diff --git a/src/dsl/verifier/verifier.ts b/src/dsl/verifier/verifier.ts index def3cdcab..c720223ea 100644 --- a/src/dsl/verifier/verifier.ts +++ b/src/dsl/verifier/verifier.ts @@ -2,18 +2,17 @@ * Provider Verifier service * @module ProviderVerifier */ + +import type * as http from 'node:http'; +import type { AddressInfo } from 'node:net'; +import url from 'node:url'; import serviceFactory, { type VerifierOptions as PactCoreVerifierOptions, } from '@pact-foundation/pact-core'; -import { omit, isEmpty } from 'lodash'; -import type * as http from 'node:http'; -import url from 'node:url'; - -import type { AddressInfo } from 'node:net'; +import { isEmpty, omit } from 'lodash'; import logger, { setLogLevel } from '../../common/logger'; - -import ConfigurationError from '../../errors/configurationError'; import { localAddresses } from '../../common/net'; +import ConfigurationError from '../../errors/configurationError'; import { createProxy, waitForServerReady } from './proxy'; import type { VerifierOptions } from './types'; diff --git a/src/httpPact/ffi.spec.ts b/src/httpPact/ffi.spec.ts index b2b36422f..42e031e49 100644 --- a/src/httpPact/ffi.spec.ts +++ b/src/httpPact/ffi.spec.ts @@ -1,5 +1,5 @@ -import { vi } from 'vitest'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; +import { vi } from 'vitest'; import { contentTypeFromHeaders, setQuery } from './ffi'; describe('Pact FFI', () => { diff --git a/src/httpPact/ffi.ts b/src/httpPact/ffi.ts index af9dd77c2..feb183e81 100644 --- a/src/httpPact/ffi.ts +++ b/src/httpPact/ffi.ts @@ -1,14 +1,14 @@ import type { ConsumerInteraction } from '@pact-foundation/pact-core'; import { forEachObjIndexed } from 'ramda'; +import logger from '../common/logger'; import type { - RequestOptions, - ResponseOptions, Headers, Query, + RequestOptions, + ResponseOptions, } from '../dsl/interaction'; import { type MatcherV2, matcherValueOrString } from '../dsl/matchers'; -import logger from '../common/logger'; enum InteractionPart { REQUEST = 1, diff --git a/src/httpPact/index.spec.ts b/src/httpPact/index.spec.ts index 335eeb05c..c6e3efa67 100644 --- a/src/httpPact/index.spec.ts +++ b/src/httpPact/index.spec.ts @@ -1,11 +1,11 @@ -import { vi } from 'vitest'; import type { ConsumerInteraction, ConsumerPact, } from '@pact-foundation/pact-core'; +import { vi } from 'vitest'; +import type { MockService } from '../dsl/mockService'; import type { PactV2Options, PactV2OptionsComplete } from '../dsl/options'; import { Pact } from '.'; -import type { MockService } from '../dsl/mockService'; describe('Pact', () => { const fullOpts = { diff --git a/src/httpPact/index.ts b/src/httpPact/index.ts index b5c6e7b58..11ae9aad7 100644 --- a/src/httpPact/index.ts +++ b/src/httpPact/index.ts @@ -1,33 +1,31 @@ +import path from 'node:path'; +import process from 'node:process'; import serviceFactory, { - type ConsumerPact, type ConsumerInteraction, + type ConsumerPact, makeConsumerPact, } from '@pact-foundation/pact-core'; - import chalk from 'chalk'; -import path from 'node:path'; -import process from 'node:process'; import { isEmpty } from 'lodash'; - +import { version as pactPackageVersion } from '../../package.json'; +import logger, { setLogLevel } from '../common/logger'; +import { freePort, isPortAvailable } from '../common/net'; +import { numberToSpec } from '../common/spec'; import { Interaction, type InteractionObject, interactionToInteractionObject, } from '../dsl/interaction'; -import { freePort, isPortAvailable } from '../common/net'; -import logger, { setLogLevel } from '../common/logger'; +import type { MockService } from '../dsl/mockService'; import type { LogLevel, PactV2Options, PactV2OptionsComplete, } from '../dsl/options'; -import VerificationError from '../errors/verificationError'; import ConfigurationError from '../errors/configurationError'; +import VerificationError from '../errors/verificationError'; import { SpecificationVersion } from '../v3'; -import { version as pactPackageVersion } from '../../package.json'; import { generateMockServerError } from '../v3/display'; -import { numberToSpec } from '../common/spec'; -import type { MockService } from '../dsl/mockService'; import { setRequestDetails, setResponseDetails } from './ffi'; const logErrorNoMockServer = () => { diff --git a/src/httpPact/tracing.ts b/src/httpPact/tracing.ts index 6782276e5..8f3df6bdf 100644 --- a/src/httpPact/tracing.ts +++ b/src/httpPact/tracing.ts @@ -1,7 +1,7 @@ import http, { - type RequestOptions, type ClientRequest, type IncomingMessage, + type RequestOptions, } from 'node:http'; import logger from '../common/logger'; diff --git a/src/index.ts b/src/index.ts index 3439f24a8..e524d065e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -21,89 +21,78 @@ import * as MatchersStar from './dsl/matchers'; export const MatchersV2 = MatchersStar; /** - * Exposes {@link Matchers} - * To avoid polluting the root module's namespace, re-export - * Matchers as its own module + * Exposes {@link ApolloGraphQL} * @memberof Pact * @static */ -export { MatchersV3 as Matchers } from './v3'; - -export { InterfaceToTemplate } from './dsl/matchers'; - -export { Pact as PactV2 } from './httpPact'; - +export * from './dsl/apolloGraphql'; /** - * Exposes {@link MessageConsumerPact} + * Exposes {@link GraphQL} * @memberof Pact * @static */ -export * from './messageConsumerPact'; - +export * from './dsl/graphql'; /** - * Exposes {@link MessageProviderPact} + * Exposes {@link Interaction} * @memberof Pact * @static */ -export { - MessageProviderPact, - providerWithMetadata, -} from './messageProviderPact'; - +export * from './dsl/interaction'; +export { InterfaceToTemplate } from './dsl/matchers'; /** * Exposes {@link Message} * @memberof Pact * @static */ export * from './dsl/message'; - /** - * Exposes {@link Verifier} + * Exposes {@link MockService} * @memberof Pact * @static */ -export * from './dsl/verifier/verifier'; -export { VerifierOptions } from './dsl/verifier/types'; - +export * from './dsl/mockService'; /** - * Exposes {@link GraphQL} + * Exposes {@link PactV2Options} * @memberof Pact * @static */ -export * from './dsl/graphql'; +export * from './dsl/options'; +export { VerifierOptions } from './dsl/verifier/types'; /** - * Exposes {@link ApolloGraphQL} + * Exposes {@link Verifier} * @memberof Pact * @static */ -export * from './dsl/apolloGraphql'; - +export * from './dsl/verifier/verifier'; +export { Pact as PactV2 } from './httpPact'; /** - * Exposes {@link Interaction} + * Exposes {@link MessageConsumerPact} * @memberof Pact * @static */ -export * from './dsl/interaction'; - +export * from './messageConsumerPact'; /** - * Exposes {@link MockService} + * Exposes {@link MessageProviderPact} * @memberof Pact * @static */ -export * from './dsl/mockService'; +export { + MessageProviderPact, + providerWithMetadata, +} from './messageProviderPact'; export * from './v3'; - /** - * Exposes {@link Pact} + * Exposes {@link Matchers} + * To avoid polluting the root module's namespace, re-export + * Matchers as its own module * @memberof Pact * @static */ -export * from './v4'; - +export { MatchersV3 as Matchers } from './v3'; /** - * Exposes {@link PactV2Options} + * Exposes {@link Pact} * @memberof Pact * @static */ -export * from './dsl/options'; +export * from './v4'; diff --git a/src/messageConsumerPact.spec.ts b/src/messageConsumerPact.spec.ts index 0535b04f9..2024a1d2b 100644 --- a/src/messageConsumerPact.spec.ts +++ b/src/messageConsumerPact.spec.ts @@ -1,9 +1,9 @@ +import type { ConcreteMessage } from './dsl/message'; import { + asynchronousBodyHandler, MessageConsumerPact, synchronousBodyHandler, - asynchronousBodyHandler, } from './messageConsumerPact'; -import type { ConcreteMessage } from './dsl/message'; describe('MessageConsumer', () => { let consumer: MessageConsumerPact; diff --git a/src/messageConsumerPact.ts b/src/messageConsumerPact.ts index b16cc8e45..21f168d16 100644 --- a/src/messageConsumerPact.ts +++ b/src/messageConsumerPact.ts @@ -2,26 +2,26 @@ * @module Message */ -import { isEmpty } from 'lodash'; import serviceFactory, { type AsynchronousMessage, - makeConsumerAsyncMessagePact, type ConsumerMessagePact, + makeConsumerAsyncMessagePact, } from '@pact-foundation/pact-core'; +import { isEmpty } from 'lodash'; import { forEachObjIndexed } from 'ramda'; +import { version as pactPackageVersion } from '../package.json'; import type { AnyJson } from './common/jsonTypes'; +import logger, { setLogLevel } from './common/logger'; +import { numberToSpec } from './common/spec'; import type { - Metadata, + ConcreteMessage, Message, MessageConsumer, - ConcreteMessage, + Metadata, ProviderState, } from './dsl/message'; -import logger, { setLogLevel } from './common/logger'; import type { MessageConsumerOptions } from './dsl/options'; import ConfigurationError from './errors/configurationError'; -import { version as pactPackageVersion } from '../package.json'; -import { numberToSpec } from './common/spec'; import { SpecificationVersion } from './v3'; const DEFAULT_PACT_DIR = './pacts'; diff --git a/src/messageProviderPact.spec.ts b/src/messageProviderPact.spec.ts index feef0c8bc..331a98f2e 100644 --- a/src/messageProviderPact.spec.ts +++ b/src/messageProviderPact.spec.ts @@ -1,5 +1,5 @@ -import express from 'express'; import http from 'node:http'; +import express from 'express'; import type { Message } from './dsl/message'; import { MessageProviderPact, diff --git a/src/messageProviderPact.ts b/src/messageProviderPact.ts index d16092d16..d03d3dc89 100644 --- a/src/messageProviderPact.ts +++ b/src/messageProviderPact.ts @@ -2,23 +2,21 @@ * @module Message */ -import { omit, isEmpty } from 'lodash'; - +import http from 'node:http'; +import type { AddressInfo } from 'node:net'; import serviceFactory, { type VerifierOptions, } from '@pact-foundation/pact-core'; -import express from 'express'; -import http from 'node:http'; import bodyParser from 'body-parser'; +import express from 'express'; import { encode as encodeBase64 } from 'js-base64'; - -import type { AddressInfo } from 'node:net'; +import { isEmpty, omit } from 'lodash'; +import logger, { setLogLevel } from './common/logger'; import type { MessageDescriptor, MessageFromProviderWithMetadata, MessageProvider, } from './dsl/message'; -import logger, { setLogLevel } from './common/logger'; import type { PactMessageProviderOptions } from './dsl/options'; // Listens for the server start event diff --git a/src/pact.integration.spec.ts b/src/pact.integration.spec.ts index c1cb070e4..34792e8a8 100644 --- a/src/pact.integration.spec.ts +++ b/src/pact.integration.spec.ts @@ -1,10 +1,11 @@ import axios from 'axios'; + import fs = require('node:fs'); import net = require('node:net'); import path = require('node:path'); -import { PactV4 } from './v4'; import { MatchersV3 } from './v3'; +import { PactV4 } from './v4'; describe('V4 Pact', () => { let pact: PactV4; diff --git a/src/v3/display.ts b/src/v3/display.ts index c8873e522..7915d388a 100644 --- a/src/v3/display.ts +++ b/src/v3/display.ts @@ -1,13 +1,13 @@ -import { join, toPairs, map, flatten } from 'ramda'; import type { - Mismatch, MatchingResult, - RequestMismatch, - MatchingResultRequestNotFound, MatchingResultMissingRequest, MatchingResultPlugin, + MatchingResultRequestNotFound, + Mismatch, PluginContentMismatch, + RequestMismatch, } from '@pact-foundation/pact-core'; +import { flatten, join, map, toPairs } from 'ramda'; // TODO: update Matching in the rust core to have a `type` property // to avoid having to do this check! diff --git a/src/v3/ffi.ts b/src/v3/ffi.ts index 2138219f8..be7d07fc3 100644 --- a/src/v3/ffi.ts +++ b/src/v3/ffi.ts @@ -1,7 +1,7 @@ -import { forEachObjIndexed } from 'ramda'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; -import type { Matcher, TemplateHeaders, V3Request, V3Response } from './types'; +import { forEachObjIndexed } from 'ramda'; import * as MatchersV3 from './matchers'; +import type { Matcher, TemplateHeaders, V3Request, V3Response } from './types'; type TemplateHeaderArrayValue = string[] | Matcher[]; diff --git a/src/v3/graphql/graphQL.ts b/src/v3/graphql/graphQL.ts index 7a40c3a78..cde214ba7 100644 --- a/src/v3/graphql/graphQL.ts +++ b/src/v3/graphql/graphQL.ts @@ -3,17 +3,16 @@ import { isUndefined } from 'lodash'; import { reject } from 'ramda'; import { ConfigurationError } from '../../common/graphQL/configurationError'; -import { PactV3 } from '../pact'; -import type { V3Request, V3Response } from '../types'; -import { OperationType } from '../../common/graphQL/types'; -import type { JsonMap } from '../../common/jsonTypes'; - -import { regex } from '../matchers'; import { escapeGraphQlQuery, type GraphQLVariables, validateQuery, } from '../../common/graphQL/graphQL'; +import { OperationType } from '../../common/graphQL/types'; +import type { JsonMap } from '../../common/jsonTypes'; +import { regex } from '../matchers'; +import { PactV3 } from '../pact'; +import type { V3Request, V3Response } from '../types'; /** * Expose a V3 compatible GraphQL interface diff --git a/src/v3/graphql/index.ts b/src/v3/graphql/index.ts index c6bdd6a35..9e5cd2a57 100644 --- a/src/v3/graphql/index.ts +++ b/src/v3/graphql/index.ts @@ -1,4 +1,4 @@ -export * from './graphQL'; export * from '../../common/graphQL/configurationError'; export * from '../../common/graphQL/graphQLQueryError'; export * from '../../common/graphQL/types'; +export * from './graphQL'; diff --git a/src/v3/index.ts b/src/v3/index.ts index 1ba6701af..7e8ecbcc4 100644 --- a/src/v3/index.ts +++ b/src/v3/index.ts @@ -1,5 +1,5 @@ -export * from './pact'; -export * from './types'; +export * from '../xml'; +export * from './graphql'; /** * Exposes {@link MatchersV3} @@ -7,7 +7,5 @@ export * from './types'; * @static */ export * as MatchersV3 from './matchers'; - -export * from './graphql'; - -export * from '../xml'; +export * from './pact'; +export * from './types'; diff --git a/src/v3/matchers.ts b/src/v3/matchers.ts index d282187cd..6f7dc6e3b 100644 --- a/src/v3/matchers.ts +++ b/src/v3/matchers.ts @@ -1,6 +1,6 @@ import { isNil, pickBy, times } from 'ramda'; import RandExp from 'randexp'; - +import type { AnyJson, JsonMap } from '../common/jsonTypes'; import type { ArrayContainsMatcher, DateTimeMatcher, @@ -12,8 +12,6 @@ import type { V3RegexMatcher, } from './types'; -import type { AnyJson, JsonMap } from '../common/jsonTypes'; - export * from './types'; export function isMatcher(x: unknown): x is Matcher { diff --git a/src/v3/pact.spec.ts b/src/v3/pact.spec.ts index be0c72238..bb7b93f7f 100644 --- a/src/v3/pact.spec.ts +++ b/src/v3/pact.spec.ts @@ -1,5 +1,5 @@ -import { vi } from 'vitest'; import type { ConsumerPact } from '@pact-foundation/pact-core'; +import { vi } from 'vitest'; import { PactV3 } from './pact'; describe('PactV3', () => { diff --git a/src/v3/pact.ts b/src/v3/pact.ts index 453d82dd6..3871247fd 100644 --- a/src/v3/pact.ts +++ b/src/v3/pact.ts @@ -1,13 +1,23 @@ -import { equals } from 'ramda'; import { - makeConsumerPact, - type ConsumerPact, type ConsumerInteraction, + type ConsumerPact, + makeConsumerPact, } from '@pact-foundation/pact-core'; +import { equals } from 'ramda'; + import fs = require('node:fs'); + import { version as pactPackageVersion } from '../../package.json'; import type { JsonMap } from '../common/jsonTypes'; -import { validateRules, convertRulesToFFI } from '../common/matchingRules'; +import logger from '../common/logger'; +import { convertRulesToFFI, validateRules } from '../common/matchingRules'; +import { filterMissingFeatureFlag, generateMockServerError } from './display'; +import { + contentTypeFromHeaders, + setRequestDetails, + setResponseDetails, +} from './ffi'; +import { matcherValueOrString } from './matchers'; import { type PactV3Options, type Rules, @@ -18,14 +28,6 @@ import { type V3Request, type V3Response, } from './types'; -import { matcherValueOrString } from './matchers'; -import { filterMissingFeatureFlag, generateMockServerError } from './display'; -import logger from '../common/logger'; -import { - contentTypeFromHeaders, - setRequestDetails, - setResponseDetails, -} from './ffi'; const readBinaryData = (file: string): Buffer => { try { diff --git a/src/v4/graphql/graphQLInteractionWithRequest.ts b/src/v4/graphql/graphQLInteractionWithRequest.ts index 7a776d110..0fecfa3f0 100644 --- a/src/v4/graphql/graphQLInteractionWithRequest.ts +++ b/src/v4/graphql/graphQLInteractionWithRequest.ts @@ -1,6 +1,6 @@ import type { - ConsumerPact, ConsumerInteraction, + ConsumerPact, } from '@pact-foundation/pact-core'; import type { ASTNode } from 'graphql'; import { isUndefined } from 'lodash'; @@ -10,14 +10,14 @@ import { escapeGraphQlQuery, validateQuery, } from '../../common/graphQL/graphQL'; +import { regex } from '../../v3/matchers'; import { InteractionWithRequest } from '../http/interactionWithRequest'; import type { PactV4Options, V4InteractionWithRequest } from '../http/types'; import { - type V4GraphQLInteractionWithRequest, - OperationType, type GraphqlRequest, + OperationType, + type V4GraphQLInteractionWithRequest, } from './types'; -import { regex } from '../../v3/matchers'; export class GraphQLInteractionWithRequest implements V4GraphQLInteractionWithRequest diff --git a/src/v4/graphql/graphQLRequestBuilder.ts b/src/v4/graphql/graphQLRequestBuilder.ts index 920b7b77a..d5c2840f6 100644 --- a/src/v4/graphql/graphQLRequestBuilder.ts +++ b/src/v4/graphql/graphQLRequestBuilder.ts @@ -1,6 +1,6 @@ import type { ConsumerInteraction } from '@pact-foundation/pact-core'; import { forEachObjIndexed } from 'ramda'; -import type { TemplateQuery, TemplateHeaders, Matcher } from '../../v3'; +import type { Matcher, TemplateHeaders, TemplateQuery } from '../../v3'; import { matcherValueOrString } from '../../v3/matchers'; import type { TemplateHeaderArrayValue } from '../http/types'; import type { V4GraphQLRequestBuilder } from './types'; diff --git a/src/v4/graphql/index.ts b/src/v4/graphql/index.ts index 6f037e621..1c7ea4942 100644 --- a/src/v4/graphql/index.ts +++ b/src/v4/graphql/index.ts @@ -2,20 +2,19 @@ import type { ConsumerInteraction, ConsumerPact, } from '@pact-foundation/pact-core'; - +import type { GraphQLVariables } from '../../common/graphQL/graphQL'; +import type { JsonMap } from '../../common/jsonTypes'; +import type { Path } from '../../v3'; +import { matcherValueOrString } from '../../v3/matchers'; +import type { PactV4Options } from '../http/types'; +import { GraphQLInteractionWithRequest } from './graphQLInteractionWithRequest'; +import { GraphQLRequestBuilder } from './graphQLRequestBuilder'; import type { GraphqlRequest, V4GraphQLInteractionWithRequest, V4GraphQLRequestBuilderFunc, V4UnconfiguredGraphQLInteraction, } from './types'; -import type { PactV4Options } from '../http/types'; -import type { JsonMap } from '../../common/jsonTypes'; -import type { Path } from '../../v3'; -import { matcherValueOrString } from '../../v3/matchers'; -import type { GraphQLVariables } from '../../common/graphQL/graphQL'; -import { GraphQLRequestBuilder } from './graphQLRequestBuilder'; -import { GraphQLInteractionWithRequest } from './graphQLInteractionWithRequest'; export class UnconfiguredGraphQLInteraction implements V4UnconfiguredGraphQLInteraction diff --git a/src/v4/graphql/types.ts b/src/v4/graphql/types.ts index 074305b0b..c3e12b2f5 100644 --- a/src/v4/graphql/types.ts +++ b/src/v4/graphql/types.ts @@ -1,8 +1,8 @@ import type { ASTNode } from 'graphql'; +import type { GraphQLVariables } from '../../common/graphQL/graphQL'; import type { JsonMap } from '../../common/jsonTypes'; import type { Path, TemplateHeaders, TemplateQuery } from '../../v3'; import type { V4InteractionWithRequest } from '../http/types'; -import type { GraphQLVariables } from '../../common/graphQL/graphQL'; export enum OperationType { Mutation = 'Mutation', diff --git a/src/v4/http/index.spec.ts b/src/v4/http/index.spec.ts index f98477d48..e395d7866 100644 --- a/src/v4/http/index.spec.ts +++ b/src/v4/http/index.spec.ts @@ -1,5 +1,5 @@ -import { vi } from 'vitest'; import type { ConsumerPact } from '@pact-foundation/pact-core'; +import { vi } from 'vitest'; import { executeTest } from '.'; import type { PactV4Options } from './types'; diff --git a/src/v4/http/index.ts b/src/v4/http/index.ts index 747100fc0..efef20077 100644 --- a/src/v4/http/index.ts +++ b/src/v4/http/index.ts @@ -1,13 +1,13 @@ import fs = require('node:fs'); import type { ConsumerPact } from '@pact-foundation/pact-core'; +import logger from '../../common/logger'; import type { V3MockServer } from '../../v3'; -import type { PactV4Options, TestFunction } from './types'; import { filterMissingFeatureFlag, generateMockServerError, } from '../../v3/display'; -import logger from '../../common/logger'; +import type { PactV4Options, TestFunction } from './types'; export const readBinaryData = (file: string): Buffer => { try { diff --git a/src/v4/http/interactionWithCompleteRequest.ts b/src/v4/http/interactionWithCompleteRequest.ts index 1ac5a849c..495d1ff45 100644 --- a/src/v4/http/interactionWithCompleteRequest.ts +++ b/src/v4/http/interactionWithCompleteRequest.ts @@ -1,12 +1,12 @@ import type { - ConsumerPact, ConsumerInteraction, + ConsumerPact, } from '@pact-foundation/pact-core'; import type { - V4InteractionWithCompleteRequest, PactV4Options, - V4Response, + V4InteractionWithCompleteRequest, V4InteractionWithResponse, + V4Response, } from './types'; export class InteractionWithCompleteRequest diff --git a/src/v4/http/interactionWithPlugin.ts b/src/v4/http/interactionWithPlugin.ts index bf02d12bc..7c72163d7 100644 --- a/src/v4/http/interactionWithPlugin.ts +++ b/src/v4/http/interactionWithPlugin.ts @@ -1,17 +1,17 @@ import type { - ConsumerPact, ConsumerInteraction, + ConsumerPact, } from '@pact-foundation/pact-core'; -import { RequestWithPluginBuilder } from './requestWithPluginBuilder'; -import { InteractionWithPluginRequest } from './interactionWithPluginRequest'; import type { Path } from '../../v3'; import { matcherValueOrString } from '../../v3/matchers'; +import { InteractionWithPluginRequest } from './interactionWithPluginRequest'; +import { RequestWithPluginBuilder } from './requestWithPluginBuilder'; import type { - V4InteractionWithPlugin, PactV4Options, PluginConfig, - V4PluginRequestBuilderFunc, + V4InteractionWithPlugin, V4InteractionWithPluginRequest, + V4PluginRequestBuilderFunc, } from './types'; export class InteractionWithPlugin implements V4InteractionWithPlugin { diff --git a/src/v4/http/interactionWithPluginRequest.ts b/src/v4/http/interactionWithPluginRequest.ts index f2f49764d..b9c9d140b 100644 --- a/src/v4/http/interactionWithPluginRequest.ts +++ b/src/v4/http/interactionWithPluginRequest.ts @@ -1,14 +1,14 @@ import type { - ConsumerPact, ConsumerInteraction, + ConsumerPact, } from '@pact-foundation/pact-core'; import { InteractionWithPluginResponse } from './interactionWithPluginResponse'; import { ResponseWithPluginBuilder } from './responseWithPluginBuilder'; import type { - V4InteractionWithPluginRequest, PactV4Options, - V4PluginResponseBuilderFunc, + V4InteractionWithPluginRequest, V4InteractionWithPluginResponse, + V4PluginResponseBuilderFunc, } from './types'; export class InteractionWithPluginRequest diff --git a/src/v4/http/interactionWithPluginResponse.ts b/src/v4/http/interactionWithPluginResponse.ts index 819ace97c..846a7bf5b 100644 --- a/src/v4/http/interactionWithPluginResponse.ts +++ b/src/v4/http/interactionWithPluginResponse.ts @@ -1,8 +1,8 @@ import type { ConsumerPact } from '@pact-foundation/pact-core'; import { executeTest } from '.'; import type { - V4InteractionWithPluginResponse, PactV4Options, + V4InteractionWithPluginResponse, V4MockServer, } from './types'; diff --git a/src/v4/http/interactionWithRequest.ts b/src/v4/http/interactionWithRequest.ts index f4c3950b5..f4b898915 100644 --- a/src/v4/http/interactionWithRequest.ts +++ b/src/v4/http/interactionWithRequest.ts @@ -1,14 +1,14 @@ import type { - ConsumerPact, ConsumerInteraction, + ConsumerPact, } from '@pact-foundation/pact-core'; import { InteractionWithResponse } from './interactionWithResponse'; import { ResponseBuilder } from './responseBuilder'; import type { - V4InteractionWithRequest, PactV4Options, - V4ResponseBuilderFunc, + V4InteractionWithRequest, V4InteractionWithResponse, + V4ResponseBuilderFunc, } from './types'; export class InteractionWithRequest implements V4InteractionWithRequest { diff --git a/src/v4/http/interactionWithResponse.ts b/src/v4/http/interactionWithResponse.ts index 0414cc684..bd2698fc9 100644 --- a/src/v4/http/interactionWithResponse.ts +++ b/src/v4/http/interactionWithResponse.ts @@ -1,9 +1,9 @@ import type { ConsumerPact } from '@pact-foundation/pact-core'; import { executeTest } from '.'; import type { - V4InteractionWithResponse, PactV4Options, TestFunction, + V4InteractionWithResponse, } from './types'; export class InteractionWithResponse implements V4InteractionWithResponse { diff --git a/src/v4/http/requestBuilder.spec.ts b/src/v4/http/requestBuilder.spec.ts index 60fa0cf46..614af14b3 100644 --- a/src/v4/http/requestBuilder.spec.ts +++ b/src/v4/http/requestBuilder.spec.ts @@ -1,5 +1,5 @@ -import { vi } from 'vitest'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; +import { vi } from 'vitest'; import { XmlBuilder } from '../../v4'; import { RequestBuilder } from './requestBuilder'; diff --git a/src/v4/http/requestBuilder.ts b/src/v4/http/requestBuilder.ts index e8025ac3c..f6c34e939 100644 --- a/src/v4/http/requestBuilder.ts +++ b/src/v4/http/requestBuilder.ts @@ -1,10 +1,10 @@ import type { ConsumerInteraction } from '@pact-foundation/pact-core'; import { forEachObjIndexed } from 'ramda'; -import type { TemplateQuery, TemplateHeaders, Matcher, Rules } from '../../v3'; +import { convertRulesToFFI, validateRules } from '../../common/matchingRules'; +import type { Matcher, Rules, TemplateHeaders, TemplateQuery } from '../../v3'; import { matcherValueOrString } from '../../v3/matchers'; -import type { TemplateHeaderArrayValue, V4RequestBuilder } from './types'; import { readBinaryData } from '.'; -import { convertRulesToFFI, validateRules } from '../../common/matchingRules'; +import type { TemplateHeaderArrayValue, V4RequestBuilder } from './types'; export class RequestBuilder implements V4RequestBuilder { // tslint:disable:no-empty-function diff --git a/src/v4/http/requestWithPluginBuilder.spec.ts b/src/v4/http/requestWithPluginBuilder.spec.ts index 27a0ccca4..5b7c3c994 100644 --- a/src/v4/http/requestWithPluginBuilder.spec.ts +++ b/src/v4/http/requestWithPluginBuilder.spec.ts @@ -1,5 +1,5 @@ -import { vi } from 'vitest'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; +import { vi } from 'vitest'; import { XmlBuilder } from '../../v4'; import { RequestWithPluginBuilder } from './requestWithPluginBuilder'; diff --git a/src/v4/http/responseBuilder.spec.ts b/src/v4/http/responseBuilder.spec.ts index d3eb0cd8e..0b931f1ee 100644 --- a/src/v4/http/responseBuilder.spec.ts +++ b/src/v4/http/responseBuilder.spec.ts @@ -1,5 +1,5 @@ -import { vi } from 'vitest'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; +import { vi } from 'vitest'; import { XmlBuilder } from '../../v4'; import { ResponseBuilder } from './responseBuilder'; diff --git a/src/v4/http/responseBuilder.ts b/src/v4/http/responseBuilder.ts index 744153e74..91ae097bd 100644 --- a/src/v4/http/responseBuilder.ts +++ b/src/v4/http/responseBuilder.ts @@ -1,10 +1,10 @@ import type { ConsumerInteraction } from '@pact-foundation/pact-core'; import { forEachObjIndexed } from 'ramda'; -import { readBinaryData } from '.'; -import type { TemplateHeaders, Rules } from '../../v3'; +import { convertRulesToFFI, validateRules } from '../../common/matchingRules'; +import type { Rules, TemplateHeaders } from '../../v3'; import { matcherValueOrString } from '../../v3/matchers'; +import { readBinaryData } from '.'; import type { V4ResponseBuilder } from './types'; -import { convertRulesToFFI, validateRules } from '../../common/matchingRules'; export class ResponseBuilder implements V4ResponseBuilder { protected interaction: ConsumerInteraction; diff --git a/src/v4/http/responseWithPluginBuilder.spec.ts b/src/v4/http/responseWithPluginBuilder.spec.ts index 95a5851b0..2ca4e587a 100644 --- a/src/v4/http/responseWithPluginBuilder.spec.ts +++ b/src/v4/http/responseWithPluginBuilder.spec.ts @@ -1,5 +1,5 @@ -import { vi } from 'vitest'; import type { ConsumerInteraction } from '@pact-foundation/pact-core'; +import { vi } from 'vitest'; import { XmlBuilder } from '../../v4'; import { ResponseWithPluginBuilder } from './responseWithPluginBuilder'; diff --git a/src/v4/http/responseWithPluginBuilder.ts b/src/v4/http/responseWithPluginBuilder.ts index c3bac603e..4ab16f349 100644 --- a/src/v4/http/responseWithPluginBuilder.ts +++ b/src/v4/http/responseWithPluginBuilder.ts @@ -1,5 +1,5 @@ import { ResponseBuilder } from './responseBuilder'; -import type { V4ResponseWithPluginBuilder, V4ResponseBuilder } from './types'; +import type { V4ResponseBuilder, V4ResponseWithPluginBuilder } from './types'; export class ResponseWithPluginBuilder extends ResponseBuilder diff --git a/src/v4/http/unconfiguredInteraction.ts b/src/v4/http/unconfiguredInteraction.ts index b04d8f471..3481ddb81 100644 --- a/src/v4/http/unconfiguredInteraction.ts +++ b/src/v4/http/unconfiguredInteraction.ts @@ -1,24 +1,24 @@ import type { - ConsumerPact, ConsumerInteraction, + ConsumerPact, } from '@pact-foundation/pact-core'; -import { InteractionWithPlugin } from './interactionWithPlugin'; -import { RequestBuilder } from './requestBuilder'; -import { InteractionWithRequest } from './interactionWithRequest'; import type { JsonMap } from '../../common/jsonTypes'; import type { Path } from '../../v3'; import { matcherValueOrString } from '../../v3/matchers'; +import { InteractionWithPlugin } from './interactionWithPlugin'; +import { InteractionWithRequest } from './interactionWithRequest'; +import { RequestBuilder } from './requestBuilder'; import type { - V4UnconfiguredInteraction, + Comment, + CustomComment, PactV4Options, - V4Request, - V4InteractionWithCompleteRequest, - V4RequestBuilderFunc, - V4InteractionWithRequest, PluginConfig, + V4InteractionWithCompleteRequest, V4InteractionWithPlugin, - Comment, - CustomComment, + V4InteractionWithRequest, + V4Request, + V4RequestBuilderFunc, + V4UnconfiguredInteraction, } from './types'; export class UnconfiguredInteraction implements V4UnconfiguredInteraction { diff --git a/src/v4/index.ts b/src/v4/index.ts index 6e1776354..859c51778 100644 --- a/src/v4/index.ts +++ b/src/v4/index.ts @@ -2,19 +2,19 @@ import { type ConsumerPact, makeConsumerPact, } from '@pact-foundation/pact-core'; -import { UnconfiguredInteraction } from './http/unconfiguredInteraction'; -import { PactV4Options, type V4UnconfiguredInteraction } from './http/types'; -import type { V4ConsumerPact } from './types'; import { version as pactPackageVersion } from '../../package.json'; +import { SpecificationVersion } from '../v3'; +import { UnconfiguredGraphQLInteraction } from './graphql'; +import type { V4UnconfiguredGraphQLInteraction } from './graphql/types'; +import { PactV4Options, type V4UnconfiguredInteraction } from './http/types'; +import { UnconfiguredInteraction } from './http/unconfiguredInteraction'; +import { UnconfiguredSynchronousMessage } from './message'; +import { UnconfiguredAsynchronousMessage } from './message/asynchronousMessage'; import type { V4UnconfiguredAsynchronousMessage, V4UnconfiguredSynchronousMessage, } from './message/types'; -import { UnconfiguredSynchronousMessage } from './message'; -import { SpecificationVersion } from '../v3'; -import type { V4UnconfiguredGraphQLInteraction } from './graphql/types'; -import { UnconfiguredGraphQLInteraction } from './graphql'; -import { UnconfiguredAsynchronousMessage } from './message/asynchronousMessage'; +import type { V4ConsumerPact } from './types'; export class PactV4 implements V4ConsumerPact { private pact!: ConsumerPact; @@ -92,7 +92,7 @@ export class PactV4 implements V4ConsumerPact { } } -export { PactV4 as Pact, PactV4Options as PactOptions }; +export * from '../xml'; export * from './graphql'; export * from './message/index'; -export * from '../xml'; +export { PactV4 as Pact, PactV4Options as PactOptions }; diff --git a/src/v4/message/asynchronousMessage.ts b/src/v4/message/asynchronousMessage.ts index d6912ef31..0de51d399 100644 --- a/src/v4/message/asynchronousMessage.ts +++ b/src/v4/message/asynchronousMessage.ts @@ -1,33 +1,33 @@ -import type { Metadata } from '../../dsl/message'; -import type { AnyJson, JsonMap } from '../../common/jsonTypes'; -import type { - PluginConfig, - AsynchronousMessage, - TransportConfig, - V4AsynchronousMessageWithPlugin, - V4AsynchronousMessageWithPluginContents, - V4AsynchronousMessageWithTransport, - V4UnconfiguredAsynchronousMessage, - V4AsynchronousMessageWithContent, - V4AsynchronousMessageBuilderFunc, - V4AsynchronousMessageBuilder, - Comment, - CustomComment, -} from './types'; import type { - AsynchronousMessage as PactCoreAsynchronousMessage, ConsumerPact, + AsynchronousMessage as PactCoreAsynchronousMessage, } from '@pact-foundation/pact-core'; -import type { PactV4Options } from '../http/types'; import { forEachObjIndexed, isEmpty } from 'ramda'; +import type { AnyJson, JsonMap } from '../../common/jsonTypes'; +import logger from '../../common/logger'; +import { convertRulesToFFI, validateRules } from '../../common/matchingRules'; +import type { Metadata } from '../../dsl/message'; import ConfigurationError from '../../errors/configurationError'; import { filterMissingFeatureFlag, generateMockServerError, } from '../../v3/display'; -import { convertRulesToFFI, validateRules } from '../../common/matchingRules'; import type { Rules } from '../../v3/types'; -import logger from '../../common/logger'; +import type { PactV4Options } from '../http/types'; +import type { + AsynchronousMessage, + Comment, + CustomComment, + PluginConfig, + TransportConfig, + V4AsynchronousMessageBuilder, + V4AsynchronousMessageBuilderFunc, + V4AsynchronousMessageWithContent, + V4AsynchronousMessageWithPlugin, + V4AsynchronousMessageWithPluginContents, + V4AsynchronousMessageWithTransport, + V4UnconfiguredAsynchronousMessage, +} from './types'; const defaultPactDir = './pacts'; diff --git a/src/v4/message/index.ts b/src/v4/message/index.ts index e03ec93f4..ff4b1d2b1 100644 --- a/src/v4/message/index.ts +++ b/src/v4/message/index.ts @@ -1,9 +1,25 @@ -import type { Metadata } from '../../dsl/message'; +import type { + ConsumerPact, + SynchronousMessage as PactCoreSynchronousMessage, +} from '@pact-foundation/pact-core'; +import { forEachObjIndexed, isEmpty } from 'ramda'; import type { AnyJson, JsonMap } from '../../common/jsonTypes'; +import logger from '../../common/logger'; +import { convertRulesToFFI, validateRules } from '../../common/matchingRules'; +import type { Metadata } from '../../dsl/message'; +import ConfigurationError from '../../errors/configurationError'; +import { + filterMissingFeatureFlag, + generateMockServerError, +} from '../../v3/display'; +import type { Rules } from '../../v3/types'; +import type { PactV4Options } from '../http/types'; import type { + Comment, + AsynchronousMessage as ConcreteMessage, + CustomComment, PluginConfig, SynchronousMessage, - AsynchronousMessage as ConcreteMessage, TransportConfig, V4MessageRequestBuilderFunc, V4MessageResponseBuilderFunc, @@ -15,23 +31,7 @@ import type { V4SynchronousMessageWithResponseBuilder, V4SynchronousMessageWithTransport, V4UnconfiguredSynchronousMessage, - Comment, - CustomComment, } from './types'; -import type { - SynchronousMessage as PactCoreSynchronousMessage, - ConsumerPact, -} from '@pact-foundation/pact-core'; -import type { PactV4Options } from '../http/types'; -import { forEachObjIndexed, isEmpty } from 'ramda'; -import ConfigurationError from '../../errors/configurationError'; -import { - filterMissingFeatureFlag, - generateMockServerError, -} from '../../v3/display'; -import { convertRulesToFFI, validateRules } from '../../common/matchingRules'; -import type { Rules } from '../../v3/types'; -import logger from '../../common/logger'; const defaultPactDir = './pacts'; diff --git a/src/v4/types.ts b/src/v4/types.ts index bf36ee3f5..1d31a50d2 100644 --- a/src/v4/types.ts +++ b/src/v4/types.ts @@ -1,9 +1,9 @@ +import type { V4UnconfiguredGraphQLInteraction } from './graphql/types'; import type { V4UnconfiguredInteraction } from './http/types'; import type { V4UnconfiguredAsynchronousMessage, V4UnconfiguredSynchronousMessage, } from './message/types'; -import type { V4UnconfiguredGraphQLInteraction } from './graphql/types'; export interface V4ConsumerPact { addInteraction(): V4UnconfiguredInteraction; diff --git a/src/xml/xmlElement.spec.ts b/src/xml/xmlElement.spec.ts index 1fa30814c..00c8e0619 100644 --- a/src/xml/xmlElement.spec.ts +++ b/src/xml/xmlElement.spec.ts @@ -1,7 +1,7 @@ -import { XmlText } from './xmlText'; -import { XmlElement } from './xmlElement'; import * as MatchersV3 from '../v3/matchers'; import type { Matcher } from '../v3/types'; +import { XmlElement } from './xmlElement'; +import { XmlText } from './xmlText'; describe('xml element', () => { describe('appendText', () => { From 0f88d90948294c96e3382201107ade6e4f07fc2c Mon Sep 17 00:00:00 2001 From: JP-Ellis Date: Wed, 6 May 2026 15:45:05 +1000 Subject: [PATCH 09/17] chore(ci): simplify ci In particular, consolidate the x86 and ARM tests into one job now that we have ARM runners available. Signed-off-by: JP-Ellis --- .github/workflows/publish-9x.yml | 4 +- .github/workflows/publish.yml | 4 +- .github/workflows/test.yml | 154 +++++++++++-------------------- .gitignore | 1 + vitest.config.ts | 2 + 5 files changed, 61 insertions(+), 104 deletions(-) diff --git a/.github/workflows/publish-9x.yml b/.github/workflows/publish-9x.yml index 062032490..ad63a37f4 100644 --- a/.github/workflows/publish-9x.yml +++ b/.github/workflows/publish-9x.yml @@ -9,11 +9,11 @@ jobs: release: runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: 9.x.x fetch-depth: 0 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: 24 registry-url: 'https://registry.npmjs.org' diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 820e4ba0d..13ebc591d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -24,11 +24,11 @@ jobs: outputs: version: v${{ steps.publish.outputs.version }} steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: master fetch-depth: 0 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: 24 registry-url: "https://registry.npmjs.org" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2317c03b1..a03592c05 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,7 +20,8 @@ env: LOG_LEVEL: info PACT_BROKER_BASE_URL: ${{ secrets.PACT_BROKER_BASE_URL }} PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN }} - STABLE_NODE_VERSION: 22 + # The oldest supported LTS version + STABLE_NODE_VERSION: 20 jobs: complete: @@ -32,9 +33,8 @@ jobs: runs-on: ubuntu-latest needs: - - test-x86 + - test - test-alpine - - test-arm64 - lint - format - examples @@ -54,10 +54,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup Node.JS - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: cache: npm @@ -73,39 +73,43 @@ jobs: steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup Node.JS - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: cache: npm - - name: Install dependencies - run: npm ci - - - name: Format - run: npm run format + - run: npm ci + - run: npm run format regression: name: Run regression suite runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Setup Node.JS + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ env.STABLE_NODE_VERSION }} cache: npm - - run: npm ci - - run: npm ci + + - name: Install root dependencies + run: npm ci + - name: Install regression dependencies + run: npm ci working-directory: regression + - run: npm run test working-directory: regression - test-x86: + test: name: >- - Test x86_64 - on ${{ startsWith(matrix.os, 'macos-') && 'macOS' || startsWith(matrix.os, 'windows-') && 'Windows' || 'Linux' }} + Test + on ${{ matrix.os }} with Node ${{ matrix.node-version }} runs-on: ${{ matrix.os }} @@ -115,131 +119,81 @@ jobs: matrix: node-version: [20, 22, 24] os: - - macos-15-intel + - macos-26-intel - macos-latest + - ubuntu-24.04-arm - ubuntu-latest - windows-latest + # - windows-11-arm # Disable until pact-js-core supports it steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Setup Node.js ${{ matrix.node-version }} - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ matrix.node-version }} cache: npm - - name: Set NodeJS scripts shell - if: startsWith(matrix.os, 'windows') - run: npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe" + - run: npm ci + - run: npm test + shell: bash + + - uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0 + if: matrix.node-version == env.STABLE_NODE_VERSION + with: + report_type: coverage + token: ${{ secrets.CODECOV_TOKEN }} + - uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0 + if: always() && matrix.node-version == env.STABLE_NODE_VERSION + with: + report_type: test_results + token: ${{ secrets.CODECOV_TOKEN }} - - name: Install dependencies - run: | - npm ci - - name: Run tests - run: npm test - - name: Coverage - if: startsWith(matrix.os, 'ubuntu-') - run: npm run coverage - - name: Codecov - if: startsWith(matrix.os, 'ubuntu-') - uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6 test-alpine: name: >- Test Alpine - on ${{ startsWith(matrix.os, 'macos-') && 'macOS' || startsWith(matrix.os, 'windows-') && 'Windows' || 'Linux' }} with Node ${{ matrix.node-version }} runs-on: ubuntu-latest container: image: node:${{ matrix.node-version }}-alpine - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest] - node-version: [20, 22, 24] - - steps: - - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - - name: Install dependencies - run: | - npm ci - - - name: Run tests - run: npm test - - test-arm64: - name: >- - Test ARM64 - on ${{ startsWith(matrix.os, 'macos-') && 'macOS' || startsWith(matrix.os, 'windows-') && 'Windows' || 'Linux' }} - with Node ${{ matrix.node-version }} - - runs-on: ${{ matrix.os }} - strategy: fail-fast: false matrix: node-version: [20, 22, 24] - os: - - ubuntu-24.04-arm - - macos-latest steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - - name: Setup Node.js ${{ matrix.node-version }} - if: startsWith(matrix.os, 'macos-') - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 - with: - node-version: ${{ matrix.node-version }} - cache: npm + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Install dependencies - if: startsWith(matrix.os, 'macos-') - run: | - npm ci - - - name: Test - if: startsWith(matrix.os, 'macos-') - run: | - npm test - - - name: Install dependencies and test ubuntu (linux glibc) - if: startsWith(matrix.os, 'ubuntu-') - run: npm ci && npm test - - - name: Install dependencies and test alpine (linux musl) - if: startsWith(matrix.os, 'ubuntu-') - run: | - docker run \ - --rm \ - -v $(pwd):/${{ github.workspace }} \ - -w /${{ github.workspace }} \ - --platform linux/arm64 \ - node:${{ matrix.node-version }}-alpine \ - sh -c "npm ci && npm test" + - run: npm ci + - run: npm test examples: name: Test Examples runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Setup Node.JS + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: ${{ env.STABLE_NODE_VERSION }} cache: npm - - run: npm ci + - run: npm run install-plugins + - name: Install root dependencies + run: npm ci + - name: Install and test examples run: | error_file=$(mktemp) diff --git a/.gitignore b/.gitignore index de72170de..486b3b317 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ logs/ *.log npm-debug.log* .nyc_output +junit.xml # Runtime data pids diff --git a/vitest.config.ts b/vitest.config.ts index f0c454860..68b347c57 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -7,6 +7,8 @@ export default defineConfig({ pool: 'forks', sequence: { concurrent: false }, include: ['src/**/*.spec.ts'], + reporters: ['default', 'junit'], + outputFile: { junit: 'junit.xml' }, coverage: { enabled: true, provider: 'v8', From 8b3511eaeda49d81cde88dc0c3d0aff272c1e158 Mon Sep 17 00:00:00 2001 From: JP-Ellis Date: Wed, 6 May 2026 16:03:13 +1000 Subject: [PATCH 10/17] chore: replace bash script with node script Helps with cross-platform support, in case `bash` is not available or easily invoked (e.g., CI in Windows running in pwsh). Signed-off-by: JP-Ellis --- package.json | 4 +- scripts/install-plugins | 106 ------------------------------------- scripts/install-plugins.js | 104 ++++++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+), 108 deletions(-) delete mode 100755 scripts/install-plugins create mode 100644 scripts/install-plugins.js diff --git a/package.json b/package.json index 8073822d9..776c7049d 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "clean": "rimraf dist coverage .nyc_output logs pacts", "predist": "npm run clean", "dist": "tsc && copyfiles package.json ./dist", - "install-plugins": "./scripts/install-plugins", + "install-plugins": "node ./scripts/install-plugins.js", "lint:biome": "biome lint", "lint:tsc": "tsc --noEmit", "lint": "npm run lint:biome && npm run lint:tsc", @@ -20,7 +20,7 @@ "check": "npm run format && npm run lint", "check:fix": "npm run format:fix && npm run lint:fix", "release": "commit-and-tag-version", - "pretest": "npm run install-plugins", + "pretest": "node ./scripts/install-plugins.js", "test": "vitest run", "test:regression": "npm --prefix regression run test", "docker:alpine:build": "docker build --build-arg NODE_VERSION=${NODE_VERSION:-current} -f Dockerfile.alpine -t pact-js:alpine .", diff --git a/scripts/install-plugins b/scripts/install-plugins deleted file mode 100755 index 8c1a46338..000000000 --- a/scripts/install-plugins +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/sh -# -# Usage: -# $ curl -fsSL https://raw.githubusercontent.com/pact-foundation/pact-plugins/master/install-cli.sh | bash -# or -# $ wget -q https://raw.githubusercontent.com/pact-foundation/pact-plugins/master/install-cli.sh -O- | bash - -# While most shells support `local`, it technically isn't POSIX. This will check -# for `local` and alias it to `typeset` if it doesn't exist. -# shellcheck disable=SC3043 -# If a shell does not support `local`, it will be aliased to -# `typeset`, so this check is not needed. -has_local() { - local _has_local -} -has_local 2>/dev/null || alias local=typeset - -set -o errexit # Exit on error -set -o nounset # Treat unset variables as an error - -# Colours -WHITE_BOLD='\033[1;37m' -RESET='\033[0m' - -detect_osarch() { - case $(uname -sm) in - 'Linux x86_64') - os='linux' - arch='x86_64' - ext='' - ;; - 'Linux aarch64') - os='linux' - arch='aarch64' - ext='' - ;; - 'Darwin x86' | 'Darwin x86_64') - os='osx' - arch='x86_64' - ext='' - ;; - 'Darwin arm64') - os='osx' - arch='aarch64' - ext='' - ;; - CYGWIN* | MINGW32* | MSYS* | MINGW*) - os="windows" - arch='x86_64' - ext='.exe' - ;; - *) - echo "Sorry, you'll need to install the plugin CLI manually." - exit 1 - ;; - esac -} - -install_pact_plugin_cli() { - [ -f ~/.pact/bin/pact-plugin-cli ] && \ - echo "${WHITE_BOLD}=> Plugin CLI already installed${RESET}" && \ - return - - local version="0.1.2" - detect_osarch - local url="https://github.com/pact-foundation/pact-plugins/releases/download/pact-plugin-cli-v${version}/pact-plugin-cli-${os}-${arch}${ext}.gz" - - echo "${WHITE_BOLD}=> Installing plugins CLI version '${version}'${RESET}" - echo " - OS: ${os}" - echo " - Arch: ${arch}" - echo " - Version: ${version}" - echo " - URL: ${url}" - echo " - Downloading into: ~/.pact/bin/" - - mkdir -p ~/.pact/bin - - if command -v curl >/dev/null 2>&1; then - curl -sSL "$url" | gunzip -c > ~/.pact/bin/pact-plugin-cli - elif command -v wget >/dev/null 2>&1; then - wget -qO- "$url" | gunzip -c > ~/.pact/bin/pact-plugin-cli - else - echo "Neither curl nor wget found. Please install one of these packages." - exit 1 - fi - chmod +x ~/.pact/bin/pact-plugin-cli -} - -install_matt_plugin() { - [ -d ~/.pact/plugins/matt-0.1.1 ] && \ - echo "${WHITE_BOLD}=> MATT plugin already installed${RESET}" && \ - return - - local version="0.1.1" - local url="https://github.com/mefellows/pact-matt-plugin/releases/tag/v${version}" - - echo "${WHITE_BOLD}=> Installing MATT plugin version '${version}'${RESET}" - ~/.pact/bin/pact-plugin-cli install "$url" - -} - -main() { - install_pact_plugin_cli - install_matt_plugin -} - -main diff --git a/scripts/install-plugins.js b/scripts/install-plugins.js new file mode 100644 index 000000000..6027523de --- /dev/null +++ b/scripts/install-plugins.js @@ -0,0 +1,104 @@ +#!/usr/bin/env node + +const { execFileSync } = require('node:child_process'); +const { + existsSync, + mkdirSync, + createWriteStream, + chmodSync, +} = require('node:fs'); +const { get } = require('node:https'); +const { homedir } = require('node:os'); +const { join } = require('node:path'); +const { createGunzip } = require('node:zlib'); + +const PLUGIN_CLI_VERSION = '0.1.2'; +const MATT_PLUGIN_VERSION = '0.1.1'; + +function detectOsArch() { + const { platform, arch } = process; + if (platform === 'linux' && arch === 'x64') + return { os: 'linux', arch: 'x86_64', ext: '' }; + if (platform === 'linux' && arch === 'arm64') + return { os: 'linux', arch: 'aarch64', ext: '' }; + if (platform === 'darwin' && arch === 'x64') + return { os: 'osx', arch: 'x86_64', ext: '' }; + if (platform === 'darwin' && arch === 'arm64') + return { os: 'osx', arch: 'aarch64', ext: '' }; + if (platform === 'win32') + return { os: 'windows', arch: 'x86_64', ext: '.exe' }; + throw new Error( + `Unsupported platform: ${platform} ${arch}. Please install the plugin CLI manually.`, + ); +} + +function download(url, dest) { + return new Promise((resolve, reject) => { + get(url, (res) => { + if (res.statusCode === 301 || res.statusCode === 302) { + download(res.headers.location, dest).then(resolve, reject); + return; + } + if (res.statusCode !== 200) { + reject( + new Error(`Download failed with HTTP ${res.statusCode}: ${url}`), + ); + return; + } + const out = createWriteStream(dest); + res.pipe(createGunzip()).pipe(out); + out.on('finish', () => out.close(resolve)); + out.on('error', reject); + }).on('error', reject); + }); +} + +async function installPluginCli() { + const { os, arch, ext } = detectOsArch(); + const binDir = join(homedir(), '.pact', 'bin'); + const cliPath = join(binDir, `pact-plugin-cli${ext}`); + + if (existsSync(cliPath)) { + console.log('=> Plugin CLI already installed'); + return; + } + + const url = `https://github.com/pact-foundation/pact-plugins/releases/download/pact-plugin-cli-v${PLUGIN_CLI_VERSION}/pact-plugin-cli-${os}-${arch}${ext}.gz`; + console.log(`=> Installing plugin CLI v${PLUGIN_CLI_VERSION}`); + console.log(` OS: ${os}, Arch: ${arch}`); + console.log(` Downloading into: ${binDir}`); + + mkdirSync(binDir, { recursive: true }); + await download(url, cliPath); + if (ext !== '.exe') chmodSync(cliPath, 0o755); +} + +function installMattPlugin() { + const pluginDir = join( + homedir(), + '.pact', + 'plugins', + `matt-${MATT_PLUGIN_VERSION}`, + ); + + if (existsSync(pluginDir)) { + console.log('=> MATT plugin already installed'); + return; + } + + const { ext } = detectOsArch(); + const cliPath = join(homedir(), '.pact', 'bin', `pact-plugin-cli${ext}`); + const url = `https://github.com/mefellows/pact-matt-plugin/releases/tag/v${MATT_PLUGIN_VERSION}`; + console.log(`=> Installing MATT plugin v${MATT_PLUGIN_VERSION}`); + execFileSync(cliPath, ['install', url], { stdio: 'inherit' }); +} + +async function main() { + await installPluginCli(); + installMattPlugin(); +} + +main().catch((err) => { + console.error(err.message); + process.exit(1); +}); From 9d52f442d404be8fc510aab1b1bce90be8631891 Mon Sep 17 00:00:00 2001 From: JP-Ellis Date: Wed, 6 May 2026 17:32:34 +1000 Subject: [PATCH 11/17] chore: update regression config Signed-off-by: JP-Ellis --- regression/vitest.config.consumer.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/regression/vitest.config.consumer.ts b/regression/vitest.config.consumer.ts index 425c5705e..15e067f6e 100644 --- a/regression/vitest.config.consumer.ts +++ b/regression/vitest.config.consumer.ts @@ -17,7 +17,6 @@ export default defineConfig({ 'v2/e2e/test/consumer.spec.ts', 'v2/graphql/src/consumer.spec.ts', 'v2/messages/consumer/message-consumer.spec.ts', - 'v2/mocha/test/get-dogs.spec.ts', 'v2/serverless/consumer/consumer.spec.ts', 'v2/typescript/test/get-dog.spec.ts', 'v3/e2e/test/consumer.spec.ts', From 81a2d4af1c3ce8131f30f70e8ecd697af6cc34e4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 6 May 2026 14:28:25 +0000 Subject: [PATCH 12/17] chore(deps): pin dependencies (#1771) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 305 ++++++++++----------- package.json | 6 +- regression/package-lock.json | 277 +++++++++++-------- regression/package.json | 32 +-- regression/v2/serverless/package-lock.json | 150 ++++++++-- regression/v2/serverless/package.json | 8 +- 6 files changed, 453 insertions(+), 325 deletions(-) diff --git a/package-lock.json b/package-lock.json index 11848fae5..cb81dbe63 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,14 +38,14 @@ "@types/node": "24.12.2", "@types/ramda": "0.31.1", "@types/stack-utils": "2.0.3", - "@vitest/coverage-v8": "^3.0.0", + "@vitest/coverage-v8": "3.2.4", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", "nock": "14.0.14", "rimraf": "6.1.3", - "typedoc": "^0.28.19", + "typedoc": "0.28.19", "typescript": "6.0.3", - "vitest": "^3.0.0" + "vitest": "3.2.4" }, "engines": { "node": ">=20" @@ -3359,130 +3359,6 @@ } } }, - "node_modules/@vitest/coverage-v8/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@vitest/coverage-v8/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@vitest/coverage-v8/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/brace-expansion": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", - "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@vitest/coverage-v8/node_modules/glob/node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@vitest/coverage-v8/node_modules/istanbul-lib-source-maps": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", - "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.23", - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@vitest/coverage-v8/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@vitest/coverage-v8/node_modules/test-exclude": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz", - "integrity": "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^10.4.1", - "minimatch": "^10.2.2" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@vitest/expect": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", @@ -3500,23 +3376,6 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/expect/node_modules/chai": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@vitest/mocker": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz", @@ -4026,6 +3885,23 @@ ], "license": "CC-BY-4.0" }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -6150,6 +6026,21 @@ "node": ">=10" } }, + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/istanbul-reports": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", @@ -8467,6 +8358,115 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/test-exclude": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz", + "integrity": "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^10.4.1", + "minimatch": "^10.2.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/test-exclude/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/test-exclude/node_modules/glob/node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/test-exclude/node_modules/glob/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/text-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", @@ -9163,23 +9163,6 @@ } } }, - "node_modules/vitest/node_modules/chai": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/vitest/node_modules/picomatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", diff --git a/package.json b/package.json index 776c7049d..e06319031 100644 --- a/package.json +++ b/package.json @@ -132,14 +132,14 @@ "@types/node": "24.12.2", "@types/ramda": "0.31.1", "@types/stack-utils": "2.0.3", - "@vitest/coverage-v8": "^3.0.0", + "@vitest/coverage-v8": "3.2.4", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", "nock": "14.0.14", "rimraf": "6.1.3", - "typedoc": "^0.28.19", + "typedoc": "0.28.19", "typescript": "6.0.3", - "vitest": "^3.0.0" + "vitest": "3.2.4" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/regression/package-lock.json b/regression/package-lock.json index fe39a8fcd..27a0eba32 100644 --- a/regression/package-lock.json +++ b/regression/package-lock.json @@ -11,26 +11,26 @@ "devDependencies": { "@pact-foundation/pact": "file:..", "@tsconfig/node20": "20.1.9", - "@types/node": "^24.0.0", + "@types/node": "24.12.2", "apollo-boost": "0.4.9", "apollo-cache-inmemory": "1.6.6", "apollo-link-http": "1.5.17", - "axios": "^1.12.0", - "body-parser": "^2.2.0", - "cors": "^2.8.5", - "express": "^5.1.0", - "fast-xml-parser": "^5.0.0", - "form-data": "^4.0.0", - "graphql": "^15.8.0", - "graphql-http": "^1.22.0", + "axios": "1.16.0", + "body-parser": "2.2.2", + "cors": "2.8.6", + "express": "5.2.1", + "fast-xml-parser": "5.7.3", + "form-data": "4.0.5", + "graphql": "15.10.2", + "graphql-http": "1.22.4", "graphql-tag": "2.12.6", - "node-fetch": "^2.7.0", - "ramda": "^0.32.0", - "rimraf": "^6.0.0", - "superagent": "^10.2.0", - "typescript": "^6.0.0", - "vitest": "^3.0.0", - "xml": "^1.0.1" + "node-fetch": "2.7.0", + "ramda": "0.32.0", + "rimraf": "6.1.3", + "superagent": "10.3.0", + "typescript": "6.0.3", + "vitest": "3.2.4", + "xml": "1.0.1" } }, "..": { @@ -68,14 +68,14 @@ "@types/node": "24.12.2", "@types/ramda": "0.31.1", "@types/stack-utils": "2.0.3", - "@vitest/coverage-v8": "^3.0.0", + "@vitest/coverage-v8": "3.2.4", "commit-and-tag-version": "12.7.1", "copyfiles": "2.4.1", "nock": "14.0.14", "rimraf": "6.1.3", - "typedoc": "^0.28.19", + "typedoc": "0.28.19", "typescript": "6.0.3", - "vitest": "^3.0.0" + "vitest": "3.2.4" }, "engines": { "node": ">=20" @@ -8130,6 +8130,8 @@ }, "node_modules/@types/node": { "version": "24.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz", + "integrity": "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==", "dev": true, "license": "MIT", "dependencies": { @@ -8156,21 +8158,6 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/expect/node_modules/chai": { - "version": "5.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@vitest/mocker": { "version": "3.2.4", "dev": true, @@ -8434,6 +8421,8 @@ }, "node_modules/axios": { "version": "1.16.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz", + "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==", "dev": true, "license": "MIT", "dependencies": { @@ -8442,8 +8431,20 @@ "proxy-from-env": "^2.1.0" } }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, "node_modules/body-parser": { "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", "dev": true, "license": "MIT", "dependencies": { @@ -8465,6 +8466,19 @@ "url": "https://opencollective.com/express" } }, + "node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, "node_modules/bytes": { "version": "3.1.2", "dev": true, @@ -8508,6 +8522,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/check-error": { "version": "2.1.3", "dev": true, @@ -8578,6 +8609,8 @@ }, "node_modules/cors": { "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", "dev": true, "license": "MIT", "dependencies": { @@ -8784,6 +8817,8 @@ }, "node_modules/express": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", "dev": true, "license": "MIT", "dependencies": { @@ -8856,6 +8891,8 @@ }, "node_modules/fast-xml-parser": { "version": "5.7.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.7.3.tgz", + "integrity": "sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg==", "dev": true, "funding": [ { @@ -8931,6 +8968,8 @@ }, "node_modules/form-data": { "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "dev": true, "license": "MIT", "dependencies": { @@ -8946,6 +8985,8 @@ }, "node_modules/form-data/node_modules/mime-db": { "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, "license": "MIT", "engines": { @@ -8954,6 +8995,8 @@ }, "node_modules/form-data/node_modules/mime-types": { "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "license": "MIT", "dependencies": { @@ -9050,6 +9093,24 @@ "node": ">= 0.4" } }, + "node_modules/glob": { + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/gopd": { "version": "1.2.0", "dev": true, @@ -9063,6 +9124,8 @@ }, "node_modules/graphql": { "version": "15.10.2", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.10.2.tgz", + "integrity": "sha512-1PRqdDPAmViWr4h1GVBT8RoPZfWSGZa7kDzleTilOfVIslsgf+cia3Nl95v1KDmR4iERPaT7WzQ+tN4MJmbg3w==", "dev": true, "license": "MIT", "engines": { @@ -9071,6 +9134,8 @@ }, "node_modules/graphql-http": { "version": "1.22.4", + "resolved": "https://registry.npmjs.org/graphql-http/-/graphql-http-1.22.4.tgz", + "integrity": "sha512-OC3ucK988teMf+Ak/O+ZJ0N2ukcgrEurypp8ePyJFWq83VzwRAmHxxr+XxrMpxO/FIwI4a7m/Fzv3tWGJv0wPA==", "dev": true, "license": "MIT", "workspaces": [ @@ -9200,6 +9265,16 @@ "dev": true, "license": "MIT" }, + "node_modules/lru-cache": { + "version": "11.3.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.6.tgz", + "integrity": "sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } + }, "node_modules/magic-string": { "version": "0.30.21", "dev": true, @@ -9277,6 +9352,22 @@ "url": "https://opencollective.com/express" } }, + "node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/minipass": { "version": "7.1.3", "dev": true, @@ -9317,6 +9408,8 @@ }, "node_modules/node-fetch": { "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "license": "MIT", "dependencies": { @@ -9407,6 +9500,23 @@ "node": ">=14.0.0" } }, + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/path-to-regexp": { "version": "8.4.2", "dev": true, @@ -9508,6 +9618,8 @@ }, "node_modules/ramda": { "version": "0.32.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.32.0.tgz", + "integrity": "sha512-GQWAHhxhxWBWA8oIBr1XahFVjQ9Fic6MK9ikijfd4TZHfE2+urfk+irVlR5VOn48uwMgM+loRRBJd6Yjsbc0zQ==", "dev": true, "license": "MIT", "funding": { @@ -9539,6 +9651,8 @@ }, "node_modules/rimraf": { "version": "6.1.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", + "integrity": "sha512-LKg+Cr2ZF61fkcaK1UdkH2yEBBKnYjTyWzTJT6KNPcSPaiT7HSdhtMXQuN5wkTX0Xu72KQ1l8S42rlmexS2hSA==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -9555,78 +9669,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/balanced-match": { - "version": "4.0.4", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "5.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "13.0.6", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/lru-cache": { - "version": "11.3.6", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "10.2.5", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/path-scurry": { - "version": "2.0.2", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/rollup": { "version": "4.60.3", "dev": true, @@ -9861,6 +9903,8 @@ }, "node_modules/superagent": { "version": "10.3.0", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-10.3.0.tgz", + "integrity": "sha512-B+4Ik7ROgVKrQsXTV0Jwp2u+PXYLSlqtDAhYnkkD+zn3yg8s/zjA2MeGayPoY/KICrbitwneDHrjSotxKL+0XQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9976,6 +10020,8 @@ }, "node_modules/typescript": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -10103,6 +10149,8 @@ }, "node_modules/vitest": { "version": "3.2.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz", + "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", "dev": true, "license": "MIT", "dependencies": { @@ -10172,21 +10220,6 @@ } } }, - "node_modules/vitest/node_modules/chai": { - "version": "5.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "dev": true, @@ -10223,6 +10256,8 @@ }, "node_modules/xml": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", "dev": true, "license": "MIT" }, diff --git a/regression/package.json b/regression/package.json index 3936e6521..19ca2f6a1 100644 --- a/regression/package.json +++ b/regression/package.json @@ -10,26 +10,26 @@ "devDependencies": { "@pact-foundation/pact": "file:..", "@tsconfig/node20": "20.1.9", - "@types/node": "^24.0.0", + "@types/node": "24.12.2", "apollo-boost": "0.4.9", "apollo-cache-inmemory": "1.6.6", "apollo-link-http": "1.5.17", - "axios": "^1.12.0", - "body-parser": "^2.2.0", - "cors": "^2.8.5", - "express": "^5.1.0", - "fast-xml-parser": "^5.0.0", - "form-data": "^4.0.0", - "graphql": "^15.8.0", - "graphql-http": "^1.22.0", + "axios": "1.16.0", + "body-parser": "2.2.2", + "cors": "2.8.6", + "express": "5.2.1", + "fast-xml-parser": "5.7.3", + "form-data": "4.0.5", + "graphql": "15.10.2", + "graphql-http": "1.22.4", "graphql-tag": "2.12.6", - "node-fetch": "^2.7.0", - "ramda": "^0.32.0", - "rimraf": "^6.0.0", - "superagent": "^10.2.0", - "typescript": "^6.0.0", - "vitest": "^3.0.0", - "xml": "^1.0.1" + "node-fetch": "2.7.0", + "ramda": "0.32.0", + "rimraf": "6.1.3", + "superagent": "10.3.0", + "typescript": "6.0.3", + "vitest": "3.2.4", + "xml": "1.0.1" }, "dependencies": { "eyes": "^0.1.8" diff --git a/regression/v2/serverless/package-lock.json b/regression/v2/serverless/package-lock.json index ed0a25883..e890c1439 100644 --- a/regression/v2/serverless/package-lock.json +++ b/regression/v2/serverless/package-lock.json @@ -13,11 +13,11 @@ }, "devDependencies": { "@pact-foundation/pact": "file:../..", - "@pact-foundation/pact-cli": "^18.0.0", + "@pact-foundation/pact-cli": "18.0.0", "absolute-version": "2.0.0", - "mocha": "^10.0.0", - "rimraf": "^3.0.2", - "serverless": "^4.0.0" + "mocha": "10.8.2", + "rimraf": "3.0.2", + "serverless": "4.35.0" } }, "../..": { @@ -29,26 +29,26 @@ "devDependencies": { "@pact-foundation/pact": "file:..", "@tsconfig/node20": "20.1.9", - "@types/node": "^24.0.0", + "@types/node": "24.12.2", "apollo-boost": "0.4.9", "apollo-cache-inmemory": "1.6.6", "apollo-link-http": "1.5.17", - "axios": "^1.12.0", - "body-parser": "^2.2.0", - "cors": "^2.8.5", - "express": "^5.1.0", - "fast-xml-parser": "^5.0.0", - "form-data": "^4.0.0", - "graphql": "^15.8.0", - "graphql-http": "^1.22.0", + "axios": "1.16.0", + "body-parser": "2.2.2", + "cors": "2.8.6", + "express": "5.2.1", + "fast-xml-parser": "5.7.3", + "form-data": "4.0.5", + "graphql": "15.10.2", + "graphql-http": "1.22.4", "graphql-tag": "2.12.6", - "node-fetch": "^2.7.0", - "ramda": "^0.32.0", - "rimraf": "^6.0.0", - "superagent": "^10.2.0", - "typescript": "^6.0.0", - "vitest": "^3.0.0", - "xml": "^1.0.1" + "node-fetch": "2.7.0", + "ramda": "0.32.0", + "rimraf": "6.1.3", + "superagent": "10.3.0", + "typescript": "6.0.3", + "vitest": "3.2.4", + "xml": "1.0.1" } }, "../../..": { @@ -1953,6 +1953,8 @@ }, "node_modules/@pact-foundation/pact-cli": { "version": "18.0.0", + "resolved": "https://registry.npmjs.org/@pact-foundation/pact-cli/-/pact-cli-18.0.0.tgz", + "integrity": "sha512-MV2VfUUj1rlyzyvioplNKYRSLnJ0uKDcl4gHd6W0ToncbvJQz2Cj5pSzTITKx3a56oMkJ9LILdiC6CUHSzlEVg==", "cpu": [ "x64", "arm64" @@ -2982,6 +2984,8 @@ }, "node_modules/mocha": { "version": "10.8.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", "dev": true, "license": "MIT", "dependencies": { @@ -3016,6 +3020,8 @@ }, "node_modules/mocha/node_modules/cliui": { "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "license": "ISC", "dependencies": { @@ -3026,6 +3032,8 @@ }, "node_modules/mocha/node_modules/escape-string-regexp": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "license": "MIT", "engines": { @@ -3037,6 +3045,8 @@ }, "node_modules/mocha/node_modules/yargs": { "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "license": "MIT", "dependencies": { @@ -3209,6 +3219,9 @@ }, "node_modules/rimraf": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", "dependencies": { @@ -3223,6 +3236,8 @@ }, "node_modules/rimraf/node_modules/brace-expansion": { "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -3232,6 +3247,9 @@ }, "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { @@ -3251,6 +3269,8 @@ }, "node_modules/rimraf/node_modules/minimatch": { "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -3319,8 +3339,11 @@ }, "node_modules/serverless": { "version": "4.35.0", + "resolved": "https://registry.npmjs.org/serverless/-/serverless-4.35.0.tgz", + "integrity": "sha512-FuBk7Eva0qT6BwFgC/GtqVlsmZaZheoxZV//CWcw7DM30Gi1HW+OuipMBzt0tSmd7/QbgMSc0tULOYKiRE+uvQ==", "dev": true, "hasInstallScript": true, + "hasShrinkwrap": true, "dependencies": { "rimraf": "5.0.10", "undici": "6.25.0" @@ -3335,6 +3358,8 @@ }, "node_modules/serverless/node_modules/@isaacs/cliui": { "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "license": "ISC", "dependencies": { @@ -3351,6 +3376,8 @@ }, "node_modules/serverless/node_modules/@pkgjs/parseargs": { "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, "license": "MIT", "optional": true, @@ -3360,6 +3387,8 @@ }, "node_modules/serverless/node_modules/ansi-regex": { "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", "engines": { @@ -3371,6 +3400,8 @@ }, "node_modules/serverless/node_modules/ansi-styles": { "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { @@ -3382,11 +3413,15 @@ }, "node_modules/serverless/node_modules/balanced-match": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/brace-expansion": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", + "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", "dev": true, "license": "MIT", "dependencies": { @@ -3395,6 +3430,8 @@ }, "node_modules/serverless/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3406,11 +3443,15 @@ }, "node_modules/serverless/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/cross-spawn": { "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", "dependencies": { @@ -3424,16 +3465,22 @@ }, "node_modules/serverless/node_modules/eastasianwidth": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/emoji-regex": { "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/foreground-child": { "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, "license": "ISC", "dependencies": { @@ -3449,6 +3496,9 @@ }, "node_modules/serverless/node_modules/glob": { "version": "10.5.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { @@ -3468,6 +3518,8 @@ }, "node_modules/serverless/node_modules/is-fullwidth-code-point": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "license": "MIT", "engines": { @@ -3476,11 +3528,15 @@ }, "node_modules/serverless/node_modules/isexe": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, "license": "ISC" }, "node_modules/serverless/node_modules/jackspeak": { "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -3495,11 +3551,15 @@ }, "node_modules/serverless/node_modules/lru-cache": { "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, "node_modules/serverless/node_modules/minimatch": { "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { @@ -3514,6 +3574,8 @@ }, "node_modules/serverless/node_modules/minipass": { "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -3522,11 +3584,15 @@ }, "node_modules/serverless/node_modules/package-json-from-dist": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, "license": "BlueOak-1.0.0" }, "node_modules/serverless/node_modules/path-key": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", "engines": { @@ -3535,6 +3601,8 @@ }, "node_modules/serverless/node_modules/path-scurry": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -3550,6 +3618,8 @@ }, "node_modules/serverless/node_modules/rimraf": { "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", "dev": true, "license": "ISC", "dependencies": { @@ -3564,6 +3634,8 @@ }, "node_modules/serverless/node_modules/shebang-command": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", "dependencies": { @@ -3575,6 +3647,8 @@ }, "node_modules/serverless/node_modules/shebang-regex": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { @@ -3583,6 +3657,8 @@ }, "node_modules/serverless/node_modules/signal-exit": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", "engines": { @@ -3594,6 +3670,8 @@ }, "node_modules/serverless/node_modules/string-width": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", "dependencies": { @@ -3611,6 +3689,8 @@ "node_modules/serverless/node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { @@ -3624,6 +3704,8 @@ }, "node_modules/serverless/node_modules/string-width-cjs/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -3632,11 +3714,15 @@ }, "node_modules/serverless/node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -3648,6 +3734,8 @@ }, "node_modules/serverless/node_modules/strip-ansi": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { @@ -3663,6 +3751,8 @@ "node_modules/serverless/node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { @@ -3674,6 +3764,8 @@ }, "node_modules/serverless/node_modules/strip-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -3682,6 +3774,8 @@ }, "node_modules/serverless/node_modules/undici": { "version": "6.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.25.0.tgz", + "integrity": "sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==", "dev": true, "license": "MIT", "engines": { @@ -3690,6 +3784,8 @@ }, "node_modules/serverless/node_modules/which": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", "dependencies": { @@ -3704,6 +3800,8 @@ }, "node_modules/serverless/node_modules/wrap-ansi": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3721,6 +3819,8 @@ "node_modules/serverless/node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3737,6 +3837,8 @@ }, "node_modules/serverless/node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "license": "MIT", "engines": { @@ -3745,6 +3847,8 @@ }, "node_modules/serverless/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -3759,11 +3863,15 @@ }, "node_modules/serverless/node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, "node_modules/serverless/node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { @@ -3777,6 +3885,8 @@ }, "node_modules/serverless/node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", "dependencies": { diff --git a/regression/v2/serverless/package.json b/regression/v2/serverless/package.json index 38dcef2d9..1948b3f94 100644 --- a/regression/v2/serverless/package.json +++ b/regression/v2/serverless/package.json @@ -22,11 +22,11 @@ }, "devDependencies": { "@pact-foundation/pact": "file:../..", - "@pact-foundation/pact-cli": "^18.0.0", + "@pact-foundation/pact-cli": "18.0.0", "absolute-version": "2.0.0", - "mocha": "^10.0.0", - "rimraf": "^3.0.2", - "serverless": "^4.0.0" + "mocha": "10.8.2", + "rimraf": "3.0.2", + "serverless": "4.35.0" }, "dependencies": { "aws-sdk": "^2.1354.0" From 7781c1cc404623acbd8047c5cb496d636ec2ecd0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 04:47:19 +0000 Subject: [PATCH 13/17] Initial plan Co-authored-by: mefellows <53900+mefellows@users.noreply.github.com> From d098ad2c61b40c859fa79020d68dfffb3a74fd16 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 04:50:52 +0000 Subject: [PATCH 14/17] Initial plan for status code matcher implementation Agent-Logs-Url: https://github.com/pact-foundation/pact-js/sessions/5ef516cc-a979-4b12-9ecf-06f58a7622be Co-authored-by: mefellows <53900+mefellows@users.noreply.github.com> --- package-lock.json | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index cb81dbe63..8c50d5f1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1706,9 +1706,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -1726,9 +1723,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -1746,9 +1740,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -1766,9 +1757,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT OR Apache-2.0", "optional": true, "os": [ @@ -2574,9 +2562,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2590,9 +2575,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2606,9 +2588,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2622,9 +2601,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ From f1971931d7b49faea4b2f06bea85646b9714fc31 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 04:55:09 +0000 Subject: [PATCH 15/17] Add status code matcher support (matchStatus, HTTPResponseStatusClass, StatusCodeMatcher) Agent-Logs-Url: https://github.com/pact-foundation/pact-js/sessions/5ef516cc-a979-4b12-9ecf-06f58a7622be Co-authored-by: mefellows <53900+mefellows@users.noreply.github.com> --- src/common/matchingRules.ts | 24 ++++- src/v3/ffi.ts | 22 ++++- src/v3/matchers.spec.ts | 103 ++++++++++++++++++++ src/v3/matchers.ts | 30 ++++-- src/v3/types.ts | 27 ++++- src/v4/http/interactionWithPluginRequest.ts | 19 +++- src/v4/http/interactionWithRequest.spec.ts | 102 +++++++++++++++++++ src/v4/http/interactionWithRequest.ts | 19 +++- src/v4/http/types.ts | 5 +- 9 files changed, 335 insertions(+), 16 deletions(-) create mode 100644 src/v4/http/interactionWithRequest.spec.ts diff --git a/src/common/matchingRules.ts b/src/common/matchingRules.ts index a944f02eb..7caf3e2dd 100644 --- a/src/common/matchingRules.ts +++ b/src/common/matchingRules.ts @@ -1,4 +1,4 @@ -import type { Matcher, Rule, Rules } from '../v3/types'; +import type { Rules, Rule, Matcher, StatusCodeMatcher } from '../v3/types'; /** * Converts a matcher to the FFI format expected by pact-core @@ -23,6 +23,28 @@ export const convertMatcherToFFI = ( return result; }; +/** + * Converts a StatusCodeMatcher to the FFI matching rules format expected by pact-core + * @param matcher The status code matcher + * @returns The matching rules in FFI format + */ +export const convertStatusMatcherToFFI = ( + matcher: StatusCodeMatcher, +): Record => { + return { + status: { + $: { + matchers: [ + { + match: 'statusCode', + status: matcher.status, + }, + ], + }, + }, + }; +}; + /** * Validates that the rules parameter is of type Rules * @param rules The rules to validate diff --git a/src/v3/ffi.ts b/src/v3/ffi.ts index be7d07fc3..8c8e4b7bc 100644 --- a/src/v3/ffi.ts +++ b/src/v3/ffi.ts @@ -1,10 +1,22 @@ import type { ConsumerInteraction } from '@pact-foundation/pact-core'; import { forEachObjIndexed } from 'ramda'; +import type { + Matcher, + StatusCodeMatcher, + TemplateHeaders, + V3Request, + V3Response, +} from './types'; import * as MatchersV3 from './matchers'; -import type { Matcher, TemplateHeaders, V3Request, V3Response } from './types'; +import { convertStatusMatcherToFFI } from '../common/matchingRules'; type TemplateHeaderArrayValue = string[] | Matcher[]; +const isStatusCodeMatcher = ( + status: number | StatusCodeMatcher, +): status is StatusCodeMatcher => + MatchersV3.isMatcher(status) && status['pact:matcher:type'] === 'statusCode'; + export const setRequestDetails = ( interaction: ConsumerInteraction, req: V3Request, @@ -42,7 +54,13 @@ export const setResponseDetails = ( interaction: ConsumerInteraction, res: V3Response, ): void => { - interaction.withStatus(res.status); + interaction.withStatus(MatchersV3.reify(res.status)); + + if (isStatusCodeMatcher(res.status)) { + interaction.withResponseMatchingRules( + JSON.stringify(convertStatusMatcherToFFI(res.status)), + ); + } forEachObjIndexed((v, k) => { if (Array.isArray(v)) { diff --git a/src/v3/matchers.spec.ts b/src/v3/matchers.spec.ts index f6b074aa8..b11675551 100644 --- a/src/v3/matchers.spec.ts +++ b/src/v3/matchers.spec.ts @@ -743,4 +743,107 @@ describe('V3 Matchers', () => { }); }); }); + + describe('matchStatus', () => { + it('creates a StatusCodeMatcher for an HTTPResponseStatusClass', () => { + const matcher = MatchersV3.matchStatus( + 200, + MatchersV3.HTTPResponseStatusClass.Success, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'success', + value: 200, + }); + }); + + it('creates a StatusCodeMatcher for a list of status codes', () => { + const matcher = MatchersV3.matchStatus(200, [200, 201]); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: [200, 201], + value: 200, + }); + }); + + it('creates a StatusCodeMatcher for ClientError class', () => { + const matcher = MatchersV3.matchStatus( + 400, + MatchersV3.HTTPResponseStatusClass.ClientError, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'clientError', + value: 400, + }); + }); + + it('creates a StatusCodeMatcher for ServerError class', () => { + const matcher = MatchersV3.matchStatus( + 500, + MatchersV3.HTTPResponseStatusClass.ServerError, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'serverError', + value: 500, + }); + }); + + it('creates a StatusCodeMatcher for Redirect class', () => { + const matcher = MatchersV3.matchStatus( + 301, + MatchersV3.HTTPResponseStatusClass.Redirect, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'redirect', + value: 301, + }); + }); + + it('creates a StatusCodeMatcher for Information class', () => { + const matcher = MatchersV3.matchStatus( + 100, + MatchersV3.HTTPResponseStatusClass.Information, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'information', + value: 100, + }); + }); + + it('creates a StatusCodeMatcher for NonError class', () => { + const matcher = MatchersV3.matchStatus( + 200, + MatchersV3.HTTPResponseStatusClass.NonError, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'nonError', + value: 200, + }); + }); + + it('creates a StatusCodeMatcher for Error class', () => { + const matcher = MatchersV3.matchStatus( + 400, + MatchersV3.HTTPResponseStatusClass.Error, + ); + expect(matcher).to.deep.equal({ + 'pact:matcher:type': 'statusCode', + status: 'error', + value: 400, + }); + }); + + it('reify returns the example value from a StatusCodeMatcher', () => { + const matcher = MatchersV3.matchStatus( + 201, + MatchersV3.HTTPResponseStatusClass.Success, + ); + expect(MatchersV3.reify(matcher)).to.equal(201); + }); + }); }); diff --git a/src/v3/matchers.ts b/src/v3/matchers.ts index 6f7dc6e3b..99903b47d 100644 --- a/src/v3/matchers.ts +++ b/src/v3/matchers.ts @@ -4,11 +4,13 @@ import type { AnyJson, JsonMap } from '../common/jsonTypes'; import type { ArrayContainsMatcher, DateTimeMatcher, + HTTPResponseStatusClass, Matcher, MaxLikeMatcher, MinLikeMatcher, ProviderStateInjectedValue, RulesMatcher, + StatusCodeMatcher, V3RegexMatcher, } from './types'; @@ -86,6 +88,22 @@ export const eachValueMatches = ( // }, }); +/** + * Matches HTTP status codes either by a class (e.g. 2XX) or a list of specific codes. + * + * @param example Example status code to use in consumer tests + * @param status Allowed status codes - either an HTTPResponseStatusClass (e.g. Success for 2XX) + * or an array of specific status codes (e.g. [200, 201]) + */ +export const matchStatus = ( + example: number, + status: HTTPResponseStatusClass | number[], +): StatusCodeMatcher => ({ + 'pact:matcher:type': 'statusCode', + status, + value: example, +}); + /** * Array where each element must match the given template * @param template Template to base the comparison on @@ -549,24 +567,24 @@ export const matcherValueOrString = (obj: unknown): string => { * Recurse the object removing any underlying matching guff, returning the raw * example content. */ -export function reify(input: unknown): AnyJson { +export function reify(input: unknown): T { if (isMatcher(input)) { - return reify(input.value); + return reify(input.value); } if (Array.isArray(input)) { - return input.map(reify); + return input.map(reify) as unknown as T; } if (typeof input === 'object') { if (input === null) { - return input; + return input as unknown as T; } const objectInput = input as JsonMap; return Object.keys(objectInput).reduce((acc, propName) => { acc[propName] = reify(objectInput[propName]); return acc; - }, {}); + }, {}) as unknown as T; } if ( @@ -574,7 +592,7 @@ export function reify(input: unknown): AnyJson { typeof input === 'string' || typeof input === 'boolean' ) { - return input; + return input as unknown as T; } throw new Error( `Unable to strip matcher from a '${typeof input}', as it is not valid in a Pact description`, diff --git a/src/v3/types.ts b/src/v3/types.ts index 97c63b876..9ec49497b 100644 --- a/src/v3/types.ts +++ b/src/v3/types.ts @@ -46,10 +46,35 @@ export interface ProviderStateInjectedValue extends Matcher { expression: string; } +export interface StatusCodeMatcher extends Matcher { + status: HTTPResponseStatusClass | number[]; +} + export interface RulesMatcher extends Matcher { rules: Matcher[]; } +/** + * Enum for HTTP response status classes used with the status code matcher. + * These values correspond to the status code ranges defined in RFC 7231. + */ +export enum HTTPResponseStatusClass { + // Informational responses (100–199) + Information = 'information', + // Successful responses (200–299) + Success = 'success', + // Redirects (300–399) + Redirect = 'redirect', + // Client errors (400–499) + ClientError = 'clientError', + // Server errors (500–599) + ServerError = 'serverError', + // Non-error response (< 400) + NonError = 'nonError', + // Any error response (>= 400) + Error = 'error', +} + /** * Part of a request or response where matching rules can be applied */ @@ -150,7 +175,7 @@ export interface V3Request { } export interface V3Response { - status: number; + status: number | StatusCodeMatcher; headers?: TemplateHeaders; body?: unknown; contentType?: string; diff --git a/src/v4/http/interactionWithPluginRequest.ts b/src/v4/http/interactionWithPluginRequest.ts index b9c9d140b..38deec508 100644 --- a/src/v4/http/interactionWithPluginRequest.ts +++ b/src/v4/http/interactionWithPluginRequest.ts @@ -10,6 +10,15 @@ import type { V4InteractionWithPluginResponse, V4PluginResponseBuilderFunc, } from './types'; +import type { StatusCodeMatcher } from '../../v3'; +import { reify } from '../../v3/matchers'; +import { convertStatusMatcherToFFI } from '../../common/matchingRules'; + +const isStatusCodeMatcher = ( + status: number | StatusCodeMatcher, +): status is StatusCodeMatcher => + typeof status === 'object' && + status['pact:matcher:type'] === 'statusCode'; export class InteractionWithPluginRequest implements V4InteractionWithPluginRequest @@ -23,10 +32,16 @@ export class InteractionWithPluginRequest ) {} willRespondWith( - status: number, + status: number | StatusCodeMatcher, builder?: V4PluginResponseBuilderFunc, ): V4InteractionWithPluginResponse { - this.interaction.withStatus(status); + this.interaction.withStatus(reify(status)); + + if (isStatusCodeMatcher(status)) { + this.interaction.withResponseMatchingRules( + JSON.stringify(convertStatusMatcherToFFI(status)), + ); + } if (typeof builder === 'function') { builder(new ResponseWithPluginBuilder(this.interaction)); diff --git a/src/v4/http/interactionWithRequest.spec.ts b/src/v4/http/interactionWithRequest.spec.ts new file mode 100644 index 000000000..93e4251e6 --- /dev/null +++ b/src/v4/http/interactionWithRequest.spec.ts @@ -0,0 +1,102 @@ +import type { ConsumerInteraction, ConsumerPact } from '@pact-foundation/pact-core'; +import * as chai from 'chai'; +import sinon from 'sinon'; +import sinonChai from 'sinon-chai'; +import { InteractionWithRequest } from './interactionWithRequest'; +import { HTTPResponseStatusClass, matchStatus } from '../../v3/matchers'; + +chai.use(sinonChai); + +const { expect } = chai; + +describe('InteractionWithRequest', () => { + let withStatus: sinon.SinonStub; + let withResponseMatchingRules: sinon.SinonStub; + let interaction: ConsumerInteraction; + let pact: ConsumerPact; + let cleanupFn: sinon.SinonStub; + + beforeEach(() => { + withStatus = sinon.stub(); + withResponseMatchingRules = sinon.stub(); + interaction = { + withStatus, + withResponseMatchingRules, + } as unknown as ConsumerInteraction; + pact = { + pactffiCreateMockServerForTransport: sinon.stub().returns(1234), + mockServerMatchedSuccessfully: sinon.stub().returns(true), + mockServerMismatches: sinon.stub().returns([]), + cleanupMockServer: sinon.stub().returns(true), + writePactFile: sinon.stub(), + cleanupPlugins: sinon.stub(), + } as unknown as ConsumerPact; + cleanupFn = sinon.stub(); + }); + + afterEach(() => { + sinon.restore(); + }); + + describe('#willRespondWith', () => { + it('calls withStatus with a plain number', () => { + const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + + req.willRespondWith(200); + + expect(withStatus).to.have.been.calledOnceWith(200); + expect(withResponseMatchingRules).to.not.have.been.called; + }); + + it('calls withStatus with the example value from a StatusCodeMatcher', () => { + const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + const matcher = matchStatus(200, HTTPResponseStatusClass.Success); + + req.willRespondWith(matcher); + + expect(withStatus).to.have.been.calledOnceWith(200); + }); + + it('calls withResponseMatchingRules with the status code matcher FFI format when given a StatusCodeMatcher', () => { + const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + const matcher = matchStatus(200, HTTPResponseStatusClass.Success); + + req.willRespondWith(matcher); + + expect(withResponseMatchingRules).to.have.been.calledOnce; + const rulesJson = JSON.parse(withResponseMatchingRules.firstCall.args[0]); + expect(rulesJson).to.deep.equal({ + status: { + $: { + matchers: [{ match: 'statusCode', status: 'success' }], + }, + }, + }); + }); + + it('calls withResponseMatchingRules with specific status codes', () => { + const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + const matcher = matchStatus(200, [200, 201]); + + req.willRespondWith(matcher); + + expect(withResponseMatchingRules).to.have.been.calledOnce; + const rulesJson = JSON.parse(withResponseMatchingRules.firstCall.args[0]); + expect(rulesJson).to.deep.equal({ + status: { + $: { + matchers: [{ match: 'statusCode', status: [200, 201] }], + }, + }, + }); + }); + + it('does not call withResponseMatchingRules for a plain number', () => { + const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + + req.willRespondWith(201); + + expect(withResponseMatchingRules).to.not.have.been.called; + }); + }); +}); diff --git a/src/v4/http/interactionWithRequest.ts b/src/v4/http/interactionWithRequest.ts index f4b898915..faf9126d0 100644 --- a/src/v4/http/interactionWithRequest.ts +++ b/src/v4/http/interactionWithRequest.ts @@ -10,6 +10,15 @@ import type { V4InteractionWithResponse, V4ResponseBuilderFunc, } from './types'; +import type { StatusCodeMatcher } from '../../v3'; +import { reify } from '../../v3/matchers'; +import { convertStatusMatcherToFFI } from '../../common/matchingRules'; + +const isStatusCodeMatcher = ( + status: number | StatusCodeMatcher, +): status is StatusCodeMatcher => + typeof status === 'object' && + status['pact:matcher:type'] === 'statusCode'; export class InteractionWithRequest implements V4InteractionWithRequest { // tslint:disable:no-empty-function @@ -21,10 +30,16 @@ export class InteractionWithRequest implements V4InteractionWithRequest { ) {} willRespondWith( - status: number, + status: number | StatusCodeMatcher, builder?: V4ResponseBuilderFunc, ): V4InteractionWithResponse { - this.interaction.withStatus(status); + this.interaction.withStatus(reify(status)); + + if (isStatusCodeMatcher(status)) { + this.interaction.withResponseMatchingRules( + JSON.stringify(convertStatusMatcherToFFI(status)), + ); + } if (typeof builder === 'function') { builder(new ResponseBuilder(this.interaction)); diff --git a/src/v4/http/types.ts b/src/v4/http/types.ts index e4fd74334..8b15a499d 100644 --- a/src/v4/http/types.ts +++ b/src/v4/http/types.ts @@ -4,6 +4,7 @@ import type { Path, Rules, SpecificationVersion, + StatusCodeMatcher, TemplateHeaders, TemplateQuery, V3MockServer, @@ -92,7 +93,7 @@ export interface V4InteractionWithCompleteRequest { export interface V4InteractionWithRequest { willRespondWith( - status: number, + status: number | StatusCodeMatcher, builder?: V4ResponseBuilderFunc, ): V4InteractionWithResponse; } @@ -164,7 +165,7 @@ export interface V4InteractionWithPlugin { export interface V4InteractionWithPluginRequest { willRespondWith( - status: number, + status: number | StatusCodeMatcher, builder?: V4PluginResponseBuilderFunc, ): V4InteractionWithPluginResponse; } From b29bbd78cabfcf4fc3877e163611a21f544150b6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 04:57:33 +0000 Subject: [PATCH 16/17] Refactor: extract isStatusCodeMatcher to shared utility, add type constraint to reify Agent-Logs-Url: https://github.com/pact-foundation/pact-js/sessions/5ef516cc-a979-4b12-9ecf-06f58a7622be Co-authored-by: mefellows <53900+mefellows@users.noreply.github.com> --- src/v3/ffi.ts | 15 ++------------- src/v3/matchers.ts | 10 +++++++++- src/v4/http/interactionWithPluginRequest.ts | 8 +------- src/v4/http/interactionWithRequest.ts | 8 +------- 4 files changed, 13 insertions(+), 28 deletions(-) diff --git a/src/v3/ffi.ts b/src/v3/ffi.ts index 8c8e4b7bc..ba68a99e9 100644 --- a/src/v3/ffi.ts +++ b/src/v3/ffi.ts @@ -1,22 +1,11 @@ import type { ConsumerInteraction } from '@pact-foundation/pact-core'; import { forEachObjIndexed } from 'ramda'; -import type { - Matcher, - StatusCodeMatcher, - TemplateHeaders, - V3Request, - V3Response, -} from './types'; +import type { Matcher, TemplateHeaders, V3Request, V3Response } from './types'; import * as MatchersV3 from './matchers'; import { convertStatusMatcherToFFI } from '../common/matchingRules'; type TemplateHeaderArrayValue = string[] | Matcher[]; -const isStatusCodeMatcher = ( - status: number | StatusCodeMatcher, -): status is StatusCodeMatcher => - MatchersV3.isMatcher(status) && status['pact:matcher:type'] === 'statusCode'; - export const setRequestDetails = ( interaction: ConsumerInteraction, req: V3Request, @@ -56,7 +45,7 @@ export const setResponseDetails = ( ): void => { interaction.withStatus(MatchersV3.reify(res.status)); - if (isStatusCodeMatcher(res.status)) { + if (MatchersV3.isStatusCodeMatcher(res.status)) { interaction.withResponseMatchingRules( JSON.stringify(convertStatusMatcherToFFI(res.status)), ); diff --git a/src/v3/matchers.ts b/src/v3/matchers.ts index 99903b47d..8f8ffddee 100644 --- a/src/v3/matchers.ts +++ b/src/v3/matchers.ts @@ -563,11 +563,19 @@ export const matcherValueOrString = (obj: unknown): string => { return JSON.stringify(obj); }; +/** + * Type guard to check if a value is a StatusCodeMatcher. + */ +export const isStatusCodeMatcher = ( + status: number | StatusCodeMatcher, +): status is StatusCodeMatcher => + isMatcher(status) && status['pact:matcher:type'] === 'statusCode'; + /** * Recurse the object removing any underlying matching guff, returning the raw * example content. */ -export function reify(input: unknown): T { +export function reify(input: unknown): T { if (isMatcher(input)) { return reify(input.value); } diff --git a/src/v4/http/interactionWithPluginRequest.ts b/src/v4/http/interactionWithPluginRequest.ts index 38deec508..cfb0b9b2b 100644 --- a/src/v4/http/interactionWithPluginRequest.ts +++ b/src/v4/http/interactionWithPluginRequest.ts @@ -11,15 +11,9 @@ import type { V4PluginResponseBuilderFunc, } from './types'; import type { StatusCodeMatcher } from '../../v3'; -import { reify } from '../../v3/matchers'; +import { reify, isStatusCodeMatcher } from '../../v3/matchers'; import { convertStatusMatcherToFFI } from '../../common/matchingRules'; -const isStatusCodeMatcher = ( - status: number | StatusCodeMatcher, -): status is StatusCodeMatcher => - typeof status === 'object' && - status['pact:matcher:type'] === 'statusCode'; - export class InteractionWithPluginRequest implements V4InteractionWithPluginRequest { diff --git a/src/v4/http/interactionWithRequest.ts b/src/v4/http/interactionWithRequest.ts index faf9126d0..de1b02789 100644 --- a/src/v4/http/interactionWithRequest.ts +++ b/src/v4/http/interactionWithRequest.ts @@ -11,15 +11,9 @@ import type { V4ResponseBuilderFunc, } from './types'; import type { StatusCodeMatcher } from '../../v3'; -import { reify } from '../../v3/matchers'; +import { reify, isStatusCodeMatcher } from '../../v3/matchers'; import { convertStatusMatcherToFFI } from '../../common/matchingRules'; -const isStatusCodeMatcher = ( - status: number | StatusCodeMatcher, -): status is StatusCodeMatcher => - typeof status === 'object' && - status['pact:matcher:type'] === 'statusCode'; - export class InteractionWithRequest implements V4InteractionWithRequest { // tslint:disable:no-empty-function constructor( From 2e59add819b2476735c868ad3a21540218802bd8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 23:57:12 +0000 Subject: [PATCH 17/17] Rebase onto master and migrate status matcher test from sinon to vitest mocks Agent-Logs-Url: https://github.com/pact-foundation/pact-js/sessions/cdc8a69c-4c0e-4cf1-80ca-2b5539d03d16 Co-authored-by: mefellows <53900+mefellows@users.noreply.github.com> --- src/v4/http/interactionWithRequest.spec.ts | 100 +++++++++++++-------- 1 file changed, 62 insertions(+), 38 deletions(-) diff --git a/src/v4/http/interactionWithRequest.spec.ts b/src/v4/http/interactionWithRequest.spec.ts index 93e4251e6..d3e42fdbf 100644 --- a/src/v4/http/interactionWithRequest.spec.ts +++ b/src/v4/http/interactionWithRequest.spec.ts @@ -1,71 +1,85 @@ -import type { ConsumerInteraction, ConsumerPact } from '@pact-foundation/pact-core'; -import * as chai from 'chai'; -import sinon from 'sinon'; -import sinonChai from 'sinon-chai'; +import type { + ConsumerInteraction, + ConsumerPact, +} from '@pact-foundation/pact-core'; +import { vi } from 'vitest'; import { InteractionWithRequest } from './interactionWithRequest'; import { HTTPResponseStatusClass, matchStatus } from '../../v3/matchers'; -chai.use(sinonChai); - -const { expect } = chai; - describe('InteractionWithRequest', () => { - let withStatus: sinon.SinonStub; - let withResponseMatchingRules: sinon.SinonStub; + let withStatus: ReturnType; + let withResponseMatchingRules: ReturnType; let interaction: ConsumerInteraction; let pact: ConsumerPact; - let cleanupFn: sinon.SinonStub; + let cleanupFn: ReturnType; beforeEach(() => { - withStatus = sinon.stub(); - withResponseMatchingRules = sinon.stub(); + withStatus = vi.fn(); + withResponseMatchingRules = vi.fn(); interaction = { withStatus, withResponseMatchingRules, } as unknown as ConsumerInteraction; pact = { - pactffiCreateMockServerForTransport: sinon.stub().returns(1234), - mockServerMatchedSuccessfully: sinon.stub().returns(true), - mockServerMismatches: sinon.stub().returns([]), - cleanupMockServer: sinon.stub().returns(true), - writePactFile: sinon.stub(), - cleanupPlugins: sinon.stub(), + pactffiCreateMockServerForTransport: vi.fn().mockReturnValue(1234), + mockServerMatchedSuccessfully: vi.fn().mockReturnValue(true), + mockServerMismatches: vi.fn().mockReturnValue([]), + cleanupMockServer: vi.fn().mockReturnValue(true), + writePactFile: vi.fn(), + cleanupPlugins: vi.fn(), } as unknown as ConsumerPact; - cleanupFn = sinon.stub(); + cleanupFn = vi.fn(); }); afterEach(() => { - sinon.restore(); + vi.restoreAllMocks(); }); describe('#willRespondWith', () => { it('calls withStatus with a plain number', () => { - const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + const req = new InteractionWithRequest( + pact, + interaction, + { consumer: 'A', provider: 'B' }, + cleanupFn, + ); req.willRespondWith(200); - expect(withStatus).to.have.been.calledOnceWith(200); - expect(withResponseMatchingRules).to.not.have.been.called; + expect(withStatus).toHaveBeenCalledOnce(); + expect(withStatus).toHaveBeenCalledWith(200); + expect(withResponseMatchingRules).not.toHaveBeenCalled(); }); it('calls withStatus with the example value from a StatusCodeMatcher', () => { - const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + const req = new InteractionWithRequest( + pact, + interaction, + { consumer: 'A', provider: 'B' }, + cleanupFn, + ); const matcher = matchStatus(200, HTTPResponseStatusClass.Success); req.willRespondWith(matcher); - expect(withStatus).to.have.been.calledOnceWith(200); + expect(withStatus).toHaveBeenCalledOnce(); + expect(withStatus).toHaveBeenCalledWith(200); }); - it('calls withResponseMatchingRules with the status code matcher FFI format when given a StatusCodeMatcher', () => { - const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + it('calls withResponseMatchingRules with status class matcher FFI format', () => { + const req = new InteractionWithRequest( + pact, + interaction, + { consumer: 'A', provider: 'B' }, + cleanupFn, + ); const matcher = matchStatus(200, HTTPResponseStatusClass.Success); req.willRespondWith(matcher); - expect(withResponseMatchingRules).to.have.been.calledOnce; - const rulesJson = JSON.parse(withResponseMatchingRules.firstCall.args[0]); - expect(rulesJson).to.deep.equal({ + expect(withResponseMatchingRules).toHaveBeenCalledOnce(); + const rulesJson = JSON.parse(withResponseMatchingRules.mock.calls[0][0]); + expect(rulesJson).toEqual({ status: { $: { matchers: [{ match: 'statusCode', status: 'success' }], @@ -74,15 +88,20 @@ describe('InteractionWithRequest', () => { }); }); - it('calls withResponseMatchingRules with specific status codes', () => { - const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + it('calls withResponseMatchingRules with specific status code matcher format', () => { + const req = new InteractionWithRequest( + pact, + interaction, + { consumer: 'A', provider: 'B' }, + cleanupFn, + ); const matcher = matchStatus(200, [200, 201]); req.willRespondWith(matcher); - expect(withResponseMatchingRules).to.have.been.calledOnce; - const rulesJson = JSON.parse(withResponseMatchingRules.firstCall.args[0]); - expect(rulesJson).to.deep.equal({ + expect(withResponseMatchingRules).toHaveBeenCalledOnce(); + const rulesJson = JSON.parse(withResponseMatchingRules.mock.calls[0][0]); + expect(rulesJson).toEqual({ status: { $: { matchers: [{ match: 'statusCode', status: [200, 201] }], @@ -92,11 +111,16 @@ describe('InteractionWithRequest', () => { }); it('does not call withResponseMatchingRules for a plain number', () => { - const req = new InteractionWithRequest(pact, interaction, { consumer: 'A', provider: 'B' }, cleanupFn); + const req = new InteractionWithRequest( + pact, + interaction, + { consumer: 'A', provider: 'B' }, + cleanupFn, + ); req.willRespondWith(201); - expect(withResponseMatchingRules).to.not.have.been.called; + expect(withResponseMatchingRules).not.toHaveBeenCalled(); }); }); });