From b781b1d102a0fcdd3f3e1e747a80431a24a701e2 Mon Sep 17 00:00:00 2001 From: Aleksei Androsov Date: Thu, 6 Mar 2025 19:30:08 +0300 Subject: [PATCH 1/3] jest -> vitest --- jest.config.js | 25 - package-lock.json | 2518 +++++++++++++++++---- package.json | 7 +- tests/arrayBlock.test.ts | 14 +- tests/cache.test.ts | 2 + tests/cancel.test.ts | 22 +- tests/descript.test.ts | 2 + tests/error.test.ts | 2 + tests/expect.ts | 2 +- tests/firstBlock.test.ts | 14 +- tests/functionBlock.test.ts | 2 + tests/httpBlock.test.ts | 67 +- tests/isPlainObject.test.ts | 2 + tests/lifecycle.test.ts | 16 +- tests/objectBlock.test.ts | 12 +- tests/options.after.test.ts | 22 +- tests/options.before.test.ts | 18 +- tests/options.cache.test.ts | 20 +- tests/options.deps.test.ts | 32 +- tests/options.error.test.ts | 16 +- tests/options.params.test.ts | 18 +- tests/options.required.test.ts | 10 +- tests/options.timeout.test.ts | 2 + tests/pipeBlock.test.ts | 12 +- tests/request.test.ts | 36 +- tests/stripNullAndUndefinedValues.test.ts | 2 + vitest.config.ts | 10 + 27 files changed, 2298 insertions(+), 607 deletions(-) delete mode 100644 jest.config.js create mode 100644 vitest.config.ts diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index f6d8565..0000000 --- a/jest.config.js +++ /dev/null @@ -1,25 +0,0 @@ -/** @type {import('ts-jest').JestConfigWithTsJest} */ -module.exports = { - coveragePathIgnorePatterns: [ - '/node_modules/', - '/tests/expect.ts', - '/tests/server.js', - '/tests/helpers.ts', - ], - setupFilesAfterEnv: [ - './tests/expect.ts', - ], - preset: 'ts-jest/presets/js-with-ts', - //preset: 'ts-jest', - - transform: { - '^.+\\.tsx?$': [ - 'ts-jest', - { - useESM: true, - }, - ], - }, - testEnvironment: 'node', - testRunner: 'jest-circus/runner', -}; diff --git a/package-lock.json b/package-lock.json index dba621b..29e5c54 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,20 +12,17 @@ "@fengkx/zstd-napi": "^0.1.0" }, "devDependencies": { - "@types/jest": "^29.5.13", "@types/node": "^20.12.7", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "eslint": "^8.57.0", "eslint-plugin-jest": "^27.9.0", - "jest": "^29.7.0", "ts-add-js-extension": "^1.6.4", - "ts-jest": "^29.2.5", - "ts-node": "^10.9.2", - "typescript": "^5.6.2" + "typescript": "^5.6.2", + "vitest": "^3.0.8" }, "engines": { - "node": "*" + "node": ">=18" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -42,6 +39,8 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -55,6 +54,8 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -68,6 +69,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -80,6 +83,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -94,6 +99,8 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.8.0" } @@ -103,6 +110,8 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4" } @@ -112,6 +121,8 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -124,6 +135,8 @@ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -133,6 +146,8 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.23.5", @@ -163,6 +178,8 @@ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", @@ -178,6 +195,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/compat-data": "^7.23.5", "@babel/helper-validator-option": "^7.23.5", @@ -194,6 +213,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -203,6 +224,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/template": "^7.22.15", "@babel/types": "^7.23.0" @@ -216,6 +239,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -228,6 +253,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.15" }, @@ -240,6 +267,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-module-imports": "^7.22.15", @@ -259,6 +288,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -268,6 +299,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -280,6 +313,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/types": "^7.22.5" }, @@ -292,6 +327,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -301,6 +338,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -310,6 +349,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -319,6 +360,8 @@ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/template": "^7.24.0", "@babel/traverse": "^7.24.0", @@ -333,6 +376,8 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -347,6 +392,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -359,6 +406,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -373,6 +422,8 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.8.0" } @@ -382,6 +433,8 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4" } @@ -391,6 +444,8 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -403,6 +458,8 @@ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", "dev": true, + "optional": true, + "peer": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -415,6 +472,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -427,6 +486,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -439,6 +500,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -451,6 +514,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -463,6 +528,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -475,6 +542,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -490,6 +559,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -502,6 +573,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -514,6 +587,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -526,6 +601,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -538,6 +615,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -550,6 +629,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -562,6 +643,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -577,6 +660,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -592,6 +677,8 @@ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/parser": "^7.24.0", @@ -606,6 +693,8 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.23.5", "@babel/generator": "^7.23.6", @@ -627,6 +716,8 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4" } @@ -636,6 +727,8 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", @@ -649,13 +742,17 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -668,283 +765,710 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", + "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=18" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "node_modules/@esbuild/android-arm": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", + "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", + "cpu": [ + "arm" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@fengkx/zstd-napi": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi/-/zstd-napi-0.1.0.tgz", - "integrity": "sha512-4A8wxryX8Y34DLeRJ6GPa0KwJpCIsIy6zbi/7muX+VigURmNiaKgMgX4FK741B4p6CGWWSezla7TeN4tVARvuQ==", - "dependencies": { - "@node-rs/helper": "^1.2.1" - }, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@fengkx/zstd-napi-android-arm-eabi": "0.1.0", - "@fengkx/zstd-napi-android-arm64": "0.1.0", - "@fengkx/zstd-napi-darwin-arm64": "0.1.0", - "@fengkx/zstd-napi-darwin-x64": "0.1.0", - "@fengkx/zstd-napi-freebsd-x64": "0.1.0", - "@fengkx/zstd-napi-linux-arm-gnueabihf": "0.1.0", - "@fengkx/zstd-napi-linux-arm64-gnu": "0.1.0", - "@fengkx/zstd-napi-linux-arm64-musl": "0.1.0", - "@fengkx/zstd-napi-linux-x64-gnu": "0.1.0", - "@fengkx/zstd-napi-linux-x64-musl": "0.1.0", - "@fengkx/zstd-napi-win32-arm64-msvc": "0.1.0", - "@fengkx/zstd-napi-win32-ia32-msvc": "0.1.0", - "@fengkx/zstd-napi-win32-x64-msvc": "0.1.0" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-android-arm-eabi": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-android-arm-eabi/-/zstd-napi-android-arm-eabi-0.1.0.tgz", - "integrity": "sha512-xmHNQ1UNkD+rsc0Jsfqjc6eeZV08nx6Q89JMX8e87vW2haTAYLyyK2kz43GV7KAU6uetDRoKM+4ID1pS/ngMbA==", + "node_modules/@esbuild/android-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", + "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", "cpu": [ - "arm" + "arm64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-android-arm64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-android-arm64/-/zstd-napi-android-arm64-0.1.0.tgz", - "integrity": "sha512-Bh1gxv79+oANYDaxf6zvrcPUgV2HmYdn8hm7TRe04OOREcpu5sizQVkcW+Fbrt0OvlPxJHBJ94TiuZLQK0FOpw==", + "node_modules/@esbuild/android-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", + "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", "cpu": [ - "arm64" + "x64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-darwin-arm64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-darwin-arm64/-/zstd-napi-darwin-arm64-0.1.0.tgz", - "integrity": "sha512-it5jUnO1MeN0A8fgTkD3OHSCU+h2oeiq2FE1P5FVgfQ+F2a2fkcI8TD9XzfJiZpbIl9B3UbBM78PI/+CtY0wNQ==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", + "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", "cpu": [ "arm64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-darwin-x64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-darwin-x64/-/zstd-napi-darwin-x64-0.1.0.tgz", - "integrity": "sha512-p08xKjFueK8VOGUpwFvme4hXN+thBYUWhX+MYtGZ0IxzVeUWWrUgnZzT7704bOtgaPBHtUgDxQAxf/NFPoB4iw==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", + "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", "cpu": [ "x64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-freebsd-x64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-freebsd-x64/-/zstd-napi-freebsd-x64-0.1.0.tgz", - "integrity": "sha512-71m6FmeMmlRT/0UMpvovER00zpdahyH0m5yfNv1wFC2byDunUC+yTktTwIhesUwF+J6q+v8ebmVXrpQ+v7b29w==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", + "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", "cpu": [ - "x64" + "arm64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-linux-arm-gnueabihf": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-linux-arm-gnueabihf/-/zstd-napi-linux-arm-gnueabihf-0.1.0.tgz", - "integrity": "sha512-QNfic6kPgtlqAgVYsHEo0F0wGCoNEUQJ9O0Uz2GauCw3iJK5O9y60tWdXReem5mVy9PAQcLMQgCNrq2p2u6IxQ==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", + "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", "cpu": [ - "arm" + "x64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ - "linux" + "freebsd" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-linux-arm64-gnu": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-linux-arm64-gnu/-/zstd-napi-linux-arm64-gnu-0.1.0.tgz", - "integrity": "sha512-BiZ3J2++szL4dPidMtzuec4CcIbvAHSTEMHJA2Aqnap+wCDpemFrto2mOfxZFvZeCltcTd61GE+dsER66tWi/g==", + "node_modules/@esbuild/linux-arm": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", + "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", "cpu": [ - "arm64" + "arm" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-linux-arm64-musl": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-linux-arm64-musl/-/zstd-napi-linux-arm64-musl-0.1.0.tgz", - "integrity": "sha512-5H8pC9vW/rCoMNYEABqSaXgKaKVzQSLSbhFKls3gqzIVXjyF1eaLMmkJ4n0XDkz3Fkk3l7EHruBbCg1fsj4KMg==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", + "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", "cpu": [ "arm64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-linux-x64-gnu": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-linux-x64-gnu/-/zstd-napi-linux-x64-gnu-0.1.0.tgz", - "integrity": "sha512-pwtww6pyVEr3jhZ8TxZGVXzDzMzegAzCfVr9OPxJRmauAaUjWkQ2sQkfn0DLcgjIueRNBrIIJqyNGLoZPcYm6w==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", + "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", "cpu": [ - "x64" + "ia32" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-linux-x64-musl": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-linux-x64-musl/-/zstd-napi-linux-x64-musl-0.1.0.tgz", - "integrity": "sha512-EV7N/cVVK5Z1PfdnRxR+u+0Rp7rVMBTT8uvZu0zrgVHhLZ9O5OjIpSQaoeSM9RJlGC5Ko3w27xTGZGXs5T4uVQ==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", + "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", "cpu": [ - "x64" + "loong64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-win32-arm64-msvc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-win32-arm64-msvc/-/zstd-napi-win32-arm64-msvc-0.1.0.tgz", - "integrity": "sha512-pmPoMAKj5BR4J+6Rzp0VZrGwgalrUYZC/ResxS2c8KxTR6uczx5jFQ48lsDZ/RN5RonM2CUXCJCsPkdVOade8g==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", + "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", "cpu": [ - "arm64" + "mips64el" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ - "win32" + "linux" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-win32-ia32-msvc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-win32-ia32-msvc/-/zstd-napi-win32-ia32-msvc-0.1.0.tgz", - "integrity": "sha512-7GpoLUbf3+iFZ31s1xHc7yr1tbTPa9WrLRs3S/WIzRckKJ5BtUafKHgdH2+ZvhKpn/3S8m7HdNXsuHRspaWe2g==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", + "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", "cpu": [ - "ia32" + "ppc64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ - "win32" + "linux" ], "engines": { - "node": ">= 10" + "node": ">=18" } }, - "node_modules/@fengkx/zstd-napi-win32-x64-msvc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-win32-x64-msvc/-/zstd-napi-win32-x64-msvc-0.1.0.tgz", - "integrity": "sha512-TP6gOl/au0Sh3vANd7+TQT7B26CA+2M8t7Rq6Ar0c/4vrkeLWyc2ZFYXyk5dlDtd0CBz0kaehVX1yishQvrT0Q==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", + "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", "cpu": [ - "x64" + "riscv64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ - "win32" + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", + "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", + "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", + "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", + "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", + "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", + "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", + "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", + "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", + "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fengkx/zstd-napi": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi/-/zstd-napi-0.1.0.tgz", + "integrity": "sha512-4A8wxryX8Y34DLeRJ6GPa0KwJpCIsIy6zbi/7muX+VigURmNiaKgMgX4FK741B4p6CGWWSezla7TeN4tVARvuQ==", + "dependencies": { + "@node-rs/helper": "^1.2.1" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@fengkx/zstd-napi-android-arm-eabi": "0.1.0", + "@fengkx/zstd-napi-android-arm64": "0.1.0", + "@fengkx/zstd-napi-darwin-arm64": "0.1.0", + "@fengkx/zstd-napi-darwin-x64": "0.1.0", + "@fengkx/zstd-napi-freebsd-x64": "0.1.0", + "@fengkx/zstd-napi-linux-arm-gnueabihf": "0.1.0", + "@fengkx/zstd-napi-linux-arm64-gnu": "0.1.0", + "@fengkx/zstd-napi-linux-arm64-musl": "0.1.0", + "@fengkx/zstd-napi-linux-x64-gnu": "0.1.0", + "@fengkx/zstd-napi-linux-x64-musl": "0.1.0", + "@fengkx/zstd-napi-win32-arm64-msvc": "0.1.0", + "@fengkx/zstd-napi-win32-ia32-msvc": "0.1.0", + "@fengkx/zstd-napi-win32-x64-msvc": "0.1.0" + } + }, + "node_modules/@fengkx/zstd-napi-android-arm-eabi": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-android-arm-eabi/-/zstd-napi-android-arm-eabi-0.1.0.tgz", + "integrity": "sha512-xmHNQ1UNkD+rsc0Jsfqjc6eeZV08nx6Q89JMX8e87vW2haTAYLyyK2kz43GV7KAU6uetDRoKM+4ID1pS/ngMbA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-android-arm64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-android-arm64/-/zstd-napi-android-arm64-0.1.0.tgz", + "integrity": "sha512-Bh1gxv79+oANYDaxf6zvrcPUgV2HmYdn8hm7TRe04OOREcpu5sizQVkcW+Fbrt0OvlPxJHBJ94TiuZLQK0FOpw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-darwin-arm64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-darwin-arm64/-/zstd-napi-darwin-arm64-0.1.0.tgz", + "integrity": "sha512-it5jUnO1MeN0A8fgTkD3OHSCU+h2oeiq2FE1P5FVgfQ+F2a2fkcI8TD9XzfJiZpbIl9B3UbBM78PI/+CtY0wNQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-darwin-x64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-darwin-x64/-/zstd-napi-darwin-x64-0.1.0.tgz", + "integrity": "sha512-p08xKjFueK8VOGUpwFvme4hXN+thBYUWhX+MYtGZ0IxzVeUWWrUgnZzT7704bOtgaPBHtUgDxQAxf/NFPoB4iw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-freebsd-x64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-freebsd-x64/-/zstd-napi-freebsd-x64-0.1.0.tgz", + "integrity": "sha512-71m6FmeMmlRT/0UMpvovER00zpdahyH0m5yfNv1wFC2byDunUC+yTktTwIhesUwF+J6q+v8ebmVXrpQ+v7b29w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-linux-arm-gnueabihf": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-linux-arm-gnueabihf/-/zstd-napi-linux-arm-gnueabihf-0.1.0.tgz", + "integrity": "sha512-QNfic6kPgtlqAgVYsHEo0F0wGCoNEUQJ9O0Uz2GauCw3iJK5O9y60tWdXReem5mVy9PAQcLMQgCNrq2p2u6IxQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-linux-arm64-gnu": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-linux-arm64-gnu/-/zstd-napi-linux-arm64-gnu-0.1.0.tgz", + "integrity": "sha512-BiZ3J2++szL4dPidMtzuec4CcIbvAHSTEMHJA2Aqnap+wCDpemFrto2mOfxZFvZeCltcTd61GE+dsER66tWi/g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-linux-arm64-musl": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-linux-arm64-musl/-/zstd-napi-linux-arm64-musl-0.1.0.tgz", + "integrity": "sha512-5H8pC9vW/rCoMNYEABqSaXgKaKVzQSLSbhFKls3gqzIVXjyF1eaLMmkJ4n0XDkz3Fkk3l7EHruBbCg1fsj4KMg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-linux-x64-gnu": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-linux-x64-gnu/-/zstd-napi-linux-x64-gnu-0.1.0.tgz", + "integrity": "sha512-pwtww6pyVEr3jhZ8TxZGVXzDzMzegAzCfVr9OPxJRmauAaUjWkQ2sQkfn0DLcgjIueRNBrIIJqyNGLoZPcYm6w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-linux-x64-musl": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-linux-x64-musl/-/zstd-napi-linux-x64-musl-0.1.0.tgz", + "integrity": "sha512-EV7N/cVVK5Z1PfdnRxR+u+0Rp7rVMBTT8uvZu0zrgVHhLZ9O5OjIpSQaoeSM9RJlGC5Ko3w27xTGZGXs5T4uVQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-win32-arm64-msvc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-win32-arm64-msvc/-/zstd-napi-win32-arm64-msvc-0.1.0.tgz", + "integrity": "sha512-pmPoMAKj5BR4J+6Rzp0VZrGwgalrUYZC/ResxS2c8KxTR6uczx5jFQ48lsDZ/RN5RonM2CUXCJCsPkdVOade8g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-win32-ia32-msvc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-win32-ia32-msvc/-/zstd-napi-win32-ia32-msvc-0.1.0.tgz", + "integrity": "sha512-7GpoLUbf3+iFZ31s1xHc7yr1tbTPa9WrLRs3S/WIzRckKJ5BtUafKHgdH2+ZvhKpn/3S8m7HdNXsuHRspaWe2g==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@fengkx/zstd-napi-win32-x64-msvc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@fengkx/zstd-napi-win32-x64-msvc/-/zstd-napi-win32-x64-msvc-0.1.0.tgz", + "integrity": "sha512-TP6gOl/au0Sh3vANd7+TQT7B26CA+2M8t7Rq6Ar0c/4vrkeLWyc2ZFYXyk5dlDtd0CBz0kaehVX1yishQvrT0Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" ], "engines": { "node": ">= 10" @@ -988,6 +1512,8 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -1004,6 +1530,8 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -1013,6 +1541,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -1026,6 +1556,8 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -1035,6 +1567,8 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -1044,6 +1578,8 @@ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -1061,6 +1597,8 @@ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", @@ -1108,6 +1646,8 @@ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", @@ -1123,6 +1663,8 @@ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" @@ -1136,6 +1678,8 @@ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "jest-get-type": "^29.6.3" }, @@ -1148,6 +1692,8 @@ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", @@ -1165,6 +1711,8 @@ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -1180,6 +1728,8 @@ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", @@ -1223,6 +1773,8 @@ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -1235,6 +1787,8 @@ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -1249,6 +1803,8 @@ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", @@ -1264,6 +1820,8 @@ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", @@ -1279,6 +1837,8 @@ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -1305,6 +1865,8 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -1322,6 +1884,8 @@ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1336,94 +1900,371 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/triples": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.1.0.tgz", + "integrity": "sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w==" + }, + "node_modules/@node-rs/helper": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@node-rs/helper/-/helper-1.3.3.tgz", + "integrity": "sha512-p4OdfQObGN9YFy5WZaGwlPYICQSe7xZYyXB0sxREmvj1HzGKp5bPg2PlfgfMZEfnjIA882B9ZrnagYzZihIwjA==", + "dependencies": { + "@napi-rs/triples": "^1.1.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.9.tgz", + "integrity": "sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.9.tgz", + "integrity": "sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz", + "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz", + "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.9.tgz", + "integrity": "sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.9.tgz", + "integrity": "sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.9.tgz", + "integrity": "sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.9.tgz", + "integrity": "sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz", + "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz", + "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.9.tgz", + "integrity": "sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.9.tgz", + "integrity": "sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.9.tgz", + "integrity": "sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==", + "cpu": [ + "riscv64" + ], "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.9.tgz", + "integrity": "sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==", + "cpu": [ + "s390x" + ], "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@napi-rs/triples": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.1.0.tgz", - "integrity": "sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w==" + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz", + "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@node-rs/helper": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@node-rs/helper/-/helper-1.3.3.tgz", - "integrity": "sha512-p4OdfQObGN9YFy5WZaGwlPYICQSe7xZYyXB0sxREmvj1HzGKp5bPg2PlfgfMZEfnjIA882B9ZrnagYzZihIwjA==", - "dependencies": { - "@napi-rs/triples": "^1.1.0" - } + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz", + "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz", + "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.9.tgz", + "integrity": "sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==", + "cpu": [ + "ia32" + ], "dev": true, - "engines": { - "node": ">= 8" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz", + "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@sinonjs/commons": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "type-detect": "4.0.8" } @@ -1433,6 +2274,8 @@ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@sinonjs/commons": "^3.0.0" } @@ -1441,31 +2284,41 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -1479,6 +2332,8 @@ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/types": "^7.0.0" } @@ -1488,6 +2343,8 @@ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -1498,15 +2355,26 @@ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/types": "^7.20.7" } }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/node": "*" } @@ -1515,13 +2383,17 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } @@ -1531,20 +2403,12 @@ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/istanbul-lib-report": "*" } }, - "node_modules/@types/jest": { - "version": "29.5.13", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.13.tgz", - "integrity": "sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==", - "dev": true, - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -1570,13 +2434,17 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@types/yargs": { "version": "17.0.32", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/yargs-parser": "*" } @@ -1585,7 +2453,9 @@ "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.62.0", @@ -1839,6 +2709,119 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, + "node_modules/@vitest/expect": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.8.tgz", + "integrity": "sha512-Xu6TTIavTvSSS6LZaA3EebWFr6tsoXPetOWNMOlc7LO88QVVBwq2oQWBoDiLCN6YTvNYsGSjqOO8CAdjom5DCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.0.8", + "@vitest/utils": "3.0.8", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.8.tgz", + "integrity": "sha512-n3LjS7fcW1BCoF+zWZxG7/5XvuYH+lsFg+BDwwAz0arIwHQJFUEsKBQ0BLU49fCxuM/2HSeBPHQD8WjgrxMfow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.0.8", + "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" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.8.tgz", + "integrity": "sha512-BNqwbEyitFhzYMYHUVbIvepOyeQOSFA/NeJMIP9enMntkkxLgOcgABH6fjyXG85ipTgvero6noreavGIqfJcIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.8.tgz", + "integrity": "sha512-c7UUw6gEcOzI8fih+uaAXS5DwjlBaCJUo7KJ4VvJcjL95+DSR1kova2hFuRt3w41KZEFcOEiq098KkyrjXeM5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.0.8", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.8.tgz", + "integrity": "sha512-x8IlMGSEMugakInj44nUrLSILh/zy1f2/BgH0UeHpNyOocG18M9CWVIFBaXPt8TrqVZWmcPjwfG/ht5tnpba8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.0.8", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.8.tgz", + "integrity": "sha512-MR+PzJa+22vFKYb934CejhR4BeRpMSoxkvNoDit68GQxRLSf11aT6CTj3XaqUU9rxgWJFnqicN/wxw6yBRkI1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.8.tgz", + "integrity": "sha512-nkBC3aEhfX2PdtQI/QwAWp8qZWwzASsU4Npbcd5RdMPBSSLCpkZp52P3xku3s3uA0HIEhGvEcF8rNkBsz9dQ4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.0.8", + "loupe": "^3.1.3", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/acorn": { "version": "8.13.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", @@ -1865,6 +2848,8 @@ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.4.0" } @@ -1890,6 +2875,8 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -1905,6 +2892,8 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -1926,6 +2915,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -1938,6 +2929,8 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1950,7 +2943,9 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/argparse": { "version": "2.0.1", @@ -1967,17 +2962,23 @@ "node": ">=8" } }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", @@ -1999,6 +3000,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -2015,6 +3018,8 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -2031,6 +3036,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -2046,6 +3053,8 @@ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -2069,6 +3078,8 @@ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" @@ -2127,6 +3138,8 @@ "url": "https://github.com/sponsors/ai" } ], + "optional": true, + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001587", "electron-to-chromium": "^1.4.668", @@ -2140,23 +3153,13 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "node-int64": "^0.4.0" } @@ -2165,7 +3168,19 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true + }, + "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", + "engines": { + "node": ">=8" + } }, "node_modules/callsites": { "version": "3.1.0", @@ -2181,6 +3196,8 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -2203,7 +3220,26 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "optional": true, + "peer": true + }, + "node_modules/chai": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", + "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", + "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": ">=12" + } }, "node_modules/chalk": { "version": "4.1.2", @@ -2259,10 +3295,22 @@ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" } }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -2274,6 +3322,8 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -2282,13 +3332,17 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -2303,6 +3357,8 @@ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -2312,13 +3368,17 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-name": "1.1.3" } @@ -2327,7 +3387,9 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/concat-map": { "version": "0.0.1", @@ -2339,13 +3401,17 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -2366,7 +3432,9 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/cross-spawn": { "version": "7.0.3", @@ -2383,12 +3451,13 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -2404,6 +3473,8 @@ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", "dev": true, + "optional": true, + "peer": true, "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -2413,6 +3484,16 @@ } } }, + "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", + "engines": { + "node": ">=6" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -2424,6 +3505,8 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -2433,6 +3516,8 @@ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -2442,6 +3527,8 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.3.1" } @@ -2451,6 +3538,8 @@ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -2479,32 +3568,21 @@ "node": ">=6.0.0" } }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", - "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/electron-to-chromium": { "version": "1.4.693", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.693.tgz", "integrity": "sha512-/if4Ueg0GUQlhCrW2ZlXwDAm40ipuKo+OgeHInlL8sbjt+hzISxZK949fZeJaVsheamrzANXvw1zQTvbxTvSHw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/emittery": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=12" }, @@ -2516,22 +3594,76 @@ "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 + "dev": true, + "optional": true, + "peer": true }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "is-arrayish": "^0.2.1" } }, + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", + "@esbuild/linux-ia32": "0.25.0", + "@esbuild/linux-loong64": "0.25.0", + "@esbuild/linux-mips64el": "0.25.0", + "@esbuild/linux-ppc64": "0.25.0", + "@esbuild/linux-riscv64": "0.25.0", + "@esbuild/linux-s390x": "0.25.0", + "@esbuild/linux-x64": "0.25.0", + "@esbuild/netbsd-arm64": "0.25.0", + "@esbuild/netbsd-x64": "0.25.0", + "@esbuild/openbsd-arm64": "0.25.0", + "@esbuild/openbsd-x64": "0.25.0", + "@esbuild/sunos-x64": "0.25.0", + "@esbuild/win32-arm64": "0.25.0", + "@esbuild/win32-ia32": "0.25.0", + "@esbuild/win32-x64": "0.25.0" + } + }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -2724,6 +3856,8 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "optional": true, + "peer": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -2765,6 +3899,16 @@ "node": ">=4.0" } }, + "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": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -2779,6 +3923,8 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -2802,6 +3948,8 @@ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 0.8.0" } @@ -2811,6 +3959,8 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", @@ -2822,6 +3972,16 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/expect-type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.0.tgz", + "integrity": "sha512-80F22aiJ3GLyVnS/B3HzgR6RelZVumzj9jkL0Rhz4h0xYbNW9PjlQz5h3J/SShErbXBc295vseR4/MIbVmUbeA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2882,6 +4042,8 @@ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "bser": "2.1.1" } @@ -2898,36 +4060,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -2945,6 +4077,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -2997,6 +4131,8 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "optional": true, + "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3006,6 +4142,8 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6.9.0" } @@ -3015,6 +4153,8 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -3024,6 +4164,8 @@ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8.0.0" } @@ -3033,6 +4175,8 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -3111,7 +4255,9 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/graphemer": { "version": "1.4.0", @@ -3133,6 +4279,8 @@ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -3144,13 +4292,17 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10.17.0" } @@ -3185,6 +4337,8 @@ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -3228,13 +4382,17 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "hasown": "^2.0.0" }, @@ -3256,6 +4414,8 @@ "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, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -3265,6 +4425,8 @@ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -3304,6 +4466,8 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" }, @@ -3322,6 +4486,8 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -3331,6 +4497,8 @@ "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, + "optional": true, + "peer": true, "dependencies": { "@babel/core": "^7.23.9", "@babel/parser": "^7.23.9", @@ -3347,6 +4515,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "optional": true, + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -3359,6 +4529,8 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -3373,6 +4545,8 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -3387,6 +4561,8 @@ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -3395,29 +4571,13 @@ "node": ">=8" } }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -3444,6 +4604,8 @@ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", @@ -3458,6 +4620,8 @@ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -3489,6 +4653,8 @@ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", @@ -3522,6 +4688,8 @@ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", @@ -3567,6 +4735,8 @@ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", @@ -3582,6 +4752,8 @@ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "detect-newline": "^3.0.0" }, @@ -3594,6 +4766,8 @@ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -3610,6 +4784,8 @@ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -3627,6 +4803,8 @@ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -3636,6 +4814,8 @@ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -3661,6 +4841,8 @@ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" @@ -3674,6 +4856,8 @@ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", @@ -3689,6 +4873,8 @@ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", @@ -3709,6 +4895,8 @@ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -3723,6 +4911,8 @@ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" }, @@ -3740,6 +4930,8 @@ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -3749,6 +4941,8 @@ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -3769,6 +4963,8 @@ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" @@ -3782,6 +4978,8 @@ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", @@ -3814,6 +5012,8 @@ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -3847,6 +5047,8 @@ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -3878,6 +5080,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "optional": true, + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -3890,6 +5094,8 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -3907,6 +5113,8 @@ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", @@ -3924,6 +5132,8 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -3936,6 +5146,8 @@ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", @@ -3955,6 +5167,8 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -3970,6 +5184,8 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -3984,7 +5200,9 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/js-yaml": { "version": "4.1.0", @@ -4003,6 +5221,8 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "optional": true, + "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -4014,7 +5234,9 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -4033,6 +5255,8 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "optional": true, + "peer": true, "bin": { "json5": "lib/cli.js" }, @@ -4045,6 +5269,8 @@ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -4054,6 +5280,8 @@ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -4075,13 +5303,17 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "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, + "optional": true, + "peer": true, "dependencies": { "p-locate": "^4.1.0" }, @@ -4089,32 +5321,47 @@ "node": ">=8" } }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/loupe": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", + "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", + "dev": true, + "license": "MIT" + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "yallist": "^3.0.2" } }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "semver": "^7.5.3" }, @@ -4130,6 +5377,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "optional": true, + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -4141,13 +5390,17 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "tmpl": "1.0.5" } @@ -4156,7 +5409,9 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/merge2": { "version": "1.4.1", @@ -4185,6 +5440,8 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -4202,10 +5459,30 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "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/natural-compare": { "version": "1.4.0", @@ -4223,19 +5500,25 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "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, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -4245,6 +5528,8 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "path-key": "^3.0.0" }, @@ -4266,6 +5551,8 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -4313,6 +5600,8 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "p-limit": "^2.2.0" }, @@ -4325,6 +5614,8 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "p-try": "^2.0.0" }, @@ -4340,6 +5631,8 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -4361,6 +5654,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -4405,7 +5700,9 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/path-type": { "version": "4.0.0", @@ -4416,11 +5713,29 @@ "node": ">=8" } }, + "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.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -4439,6 +5754,8 @@ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 6" } @@ -4448,6 +5765,8 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "find-up": "^4.0.0" }, @@ -4455,6 +5774,35 @@ "node": ">=8" } }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "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.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -4469,6 +5817,8 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -4483,6 +5833,8 @@ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -4514,7 +5866,9 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ] + ], + "optional": true, + "peer": true }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -4540,13 +5894,17 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -4556,6 +5914,8 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -4573,6 +5933,8 @@ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "resolve-from": "^5.0.0" }, @@ -4585,6 +5947,8 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -4603,6 +5967,8 @@ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" } @@ -4632,6 +5998,45 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.9.tgz", + "integrity": "sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.34.9", + "@rollup/rollup-android-arm64": "4.34.9", + "@rollup/rollup-darwin-arm64": "4.34.9", + "@rollup/rollup-darwin-x64": "4.34.9", + "@rollup/rollup-freebsd-arm64": "4.34.9", + "@rollup/rollup-freebsd-x64": "4.34.9", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.9", + "@rollup/rollup-linux-arm-musleabihf": "4.34.9", + "@rollup/rollup-linux-arm64-gnu": "4.34.9", + "@rollup/rollup-linux-arm64-musl": "4.34.9", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.9", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.9", + "@rollup/rollup-linux-riscv64-gnu": "4.34.9", + "@rollup/rollup-linux-s390x-gnu": "4.34.9", + "@rollup/rollup-linux-x64-gnu": "4.34.9", + "@rollup/rollup-linux-x64-musl": "4.34.9", + "@rollup/rollup-win32-arm64-msvc": "4.34.9", + "@rollup/rollup-win32-ia32-msvc": "4.34.9", + "@rollup/rollup-win32-x64-msvc": "4.34.9", + "fsevents": "~2.3.2" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -4660,6 +6065,8 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "optional": true, + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -4685,17 +6092,28 @@ "node": ">=8" } }, + "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/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==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/slash": { "version": "3.0.0", @@ -4711,6 +6129,18 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -4720,6 +6150,8 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -4729,13 +6161,17 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -4748,15 +6184,33 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "optional": true, + "peer": true, "engines": { "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/std-env": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.1.tgz", + "integrity": "sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==", + "dev": true, + "license": "MIT" + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -4770,6 +6224,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4796,6 +6252,8 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -4805,6 +6263,8 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -4838,6 +6298,8 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">= 0.4" }, @@ -4850,6 +6312,8 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -4865,17 +6329,65 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "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": "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/tinypool": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", + "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "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", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4" } @@ -4904,71 +6416,13 @@ "ts-add-js-extension": "build/cjs/bin.js" } }, - "node_modules/ts-jest": { - "version": "29.2.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", - "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", - "dev": true, - "dependencies": { - "bs-logger": "^0.2.6", - "ejs": "^3.1.10", - "fast-json-stable-stringify": "^2.1.0", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "^4.1.2", - "make-error": "^1.3.6", - "semver": "^7.6.3", - "yargs-parser": "^21.1.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/transform": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -5045,6 +6499,8 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4" } @@ -5099,6 +6555,8 @@ "url": "https://github.com/sponsors/ai" } ], + "optional": true, + "peer": true, "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -5123,13 +6581,17 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/v8-to-istanbul": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -5139,11 +6601,178 @@ "node": ">=10.12.0" } }, + "node_modules/vite": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.0.tgz", + "integrity": "sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "postcss": "^8.5.3", + "rollup": "^4.30.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "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.0.8", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.8.tgz", + "integrity": "sha512-6PhR4H9VGlcwXZ+KWCdMqbtG649xCPZqfI9j2PsK1FcXgEzro5bGHcVKFCTqPLaNKZES8Evqv4LwvZARsq5qlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.0", + "es-module-lexer": "^1.6.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.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/vitest": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.8.tgz", + "integrity": "sha512-dfqAsNqRGUc8hB9OVR2P0w8PZPEckti2+5rdZip0WIz9WW0MnImJ8XiR61QhqLa92EQzKP2uPkzenKOAHyEIbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "3.0.8", + "@vitest/mocker": "3.0.8", + "@vitest/pretty-format": "^3.0.8", + "@vitest/runner": "3.0.8", + "@vitest/snapshot": "3.0.8", + "@vitest/spy": "3.0.8", + "@vitest/utils": "3.0.8", + "chai": "^5.2.0", + "debug": "^4.4.0", + "expect-type": "^1.1.0", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinypool": "^1.0.2", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0", + "vite-node": "3.0.8", + "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.0.8", + "@vitest/ui": "3.0.8", + "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/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "makeerror": "1.0.12" } @@ -5163,11 +6792,30 @@ "node": ">= 8" } }, + "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": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/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, + "optional": true, + "peer": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -5185,6 +6833,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -5200,6 +6850,8 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "color-name": "~1.1.4" }, @@ -5211,7 +6863,9 @@ "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 + "dev": true, + "optional": true, + "peer": true }, "node_modules/wrappy": { "version": "1.0.2", @@ -5224,6 +6878,8 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -5237,6 +6893,8 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" } @@ -5245,13 +6903,17 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -5270,6 +6932,8 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=12" } @@ -5279,6 +6943,8 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } diff --git a/package.json b/package.json index bbbc3b5..82bf48e 100644 --- a/package.json +++ b/package.json @@ -22,17 +22,14 @@ "prepack": "rm -rf build && npx tsc -p ./tsconfig-build.json && npx ts-add-js-extension --dir=build" }, "devDependencies": { - "@types/jest": "^29.5.13", "@types/node": "^20.12.7", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "eslint": "^8.57.0", "eslint-plugin-jest": "^27.9.0", - "jest": "^29.7.0", "ts-add-js-extension": "^1.6.4", - "ts-jest": "^29.2.5", - "ts-node": "^10.9.2", - "typescript": "^5.6.2" + "typescript": "^5.6.2", + "vitest": "^3.0.8" }, "files": [ "build" diff --git a/tests/arrayBlock.test.ts b/tests/arrayBlock.test.ts index 3751fa0..e188544 100644 --- a/tests/arrayBlock.test.ts +++ b/tests/arrayBlock.test.ts @@ -1,3 +1,5 @@ +import { describe, expect, it, vi } from 'vitest'; + import * as de from '../lib' ; import { @@ -8,8 +10,6 @@ import { getTimeout, } from './helpers' ; -import { describe, it, expect, jest } from '@jest/globals'; - // --------------------------------------------------------------------------------------------------------------- // describe('de.array', () => { @@ -273,12 +273,12 @@ describe('de.array', () => { describe('cancel', () => { it('cancel object, subblocks cancelled too #1', async() => { - const actionFooSpy = jest.fn(); + const actionFooSpy = vi.fn(); const blockFoo = getResultBlock(null, 150, { onCancel: actionFooSpy, }); - const actionBarSpy = jest.fn(); + const actionBarSpy = vi.fn(); const blockBar = getResultBlock(null, 150, { onCancel: actionBarSpy, }); @@ -310,12 +310,12 @@ describe('de.array', () => { }); it('cancel object, subblocks cancelled too #2', async() => { - const actionFooSpy = jest.fn(); + const actionFooSpy = vi.fn(); const blockFoo = getResultBlock(null, 50, { onCancel: actionFooSpy, }); - const actionBarSpy = jest.fn(); + const actionBarSpy = vi.fn(); const blockBar = getResultBlock(null, 150, { onCancel: actionBarSpy, }); @@ -351,7 +351,7 @@ describe('de.array', () => { const errorFoo = de.error('SOME_ERROR'); const blockFoo = getErrorBlock(errorFoo, 50); - const actionBarSpy = jest.fn(); + const actionBarSpy = vi.fn(); const blockBar = getResultBlock(null, 150, { onCancel: actionBarSpy, }); diff --git a/tests/cache.test.ts b/tests/cache.test.ts index e3330c0..ee93c46 100644 --- a/tests/cache.test.ts +++ b/tests/cache.test.ts @@ -1,3 +1,5 @@ +import { describe, expect, it } from 'vitest'; + import * as de from '../lib'; import { waitForValue } from './helpers'; diff --git a/tests/cancel.test.ts b/tests/cancel.test.ts index 5beb3a6..9d608bb 100644 --- a/tests/cancel.test.ts +++ b/tests/cancel.test.ts @@ -1,3 +1,5 @@ +import { describe, expect, it, vi } from 'vitest'; + import * as de from '../lib'; // --------------------------------------------------------------------------------------------------------------- // @@ -6,7 +8,7 @@ describe('de.Cancel', () => { it('cancel', () => { const cancel = new de.Cancel(); - const spy = jest.fn(); + const spy = vi.fn(); cancel.subscribe(spy); const error = de.error('SOME_ERROR'); @@ -18,7 +20,7 @@ describe('de.Cancel', () => { it('cancel with plain object', () => { const cancel = new de.Cancel(); - const spy = jest.fn(); + const spy = vi.fn(); cancel.subscribe(spy); const error = 'SOME_ERROR'; @@ -32,7 +34,7 @@ describe('de.Cancel', () => { it('cancel after cancel', () => { const cancel = new de.Cancel(); - const spy = jest.fn(); + const spy = vi.fn(); cancel.subscribe(spy); const error1 = de.error('SOME_ERROR_1'); @@ -46,7 +48,7 @@ describe('de.Cancel', () => { it('cancel after close', () => { const cancel = new de.Cancel(); - const spy = jest.fn(); + const spy = vi.fn(); cancel.subscribe(spy); cancel.close(); @@ -87,7 +89,7 @@ describe('de.Cancel', () => { cancel.close(); - const spy = jest.fn(); + const spy = vi.fn(); cancel.subscribe(spy); expect(spy.mock.calls).toHaveLength(0); @@ -99,7 +101,7 @@ describe('de.Cancel', () => { const error = de.error('SOME_ERROR'); cancel.cancel(error); - const spy = jest.fn(); + const spy = vi.fn(); cancel.subscribe(spy); expect(spy.mock.calls[ 0 ][ 0 ]).toBe(error); @@ -149,7 +151,7 @@ describe('de.Cancel', () => { const parentCancel = new de.Cancel(); const childCancel = parentCancel.create(); - const spy = jest.fn(); + const spy = vi.fn(); childCancel.subscribe(spy); const error = de.error('SOME_ERROR'); @@ -163,7 +165,7 @@ describe('de.Cancel', () => { parentCancel.close(); const childCancel = parentCancel.create(); - const spy = jest.fn(); + const spy = vi.fn(); childCancel.subscribe(spy); const error = de.error('SOME_ERROR'); @@ -177,7 +179,7 @@ describe('de.Cancel', () => { parentCancel.close(); const childCancel = parentCancel.create(); - const spy = jest.fn(); + const spy = vi.fn(); childCancel.subscribe(spy); const error = de.error('SOME_ERROR'); @@ -193,7 +195,7 @@ describe('de.Cancel', () => { const childCancel = parentCancel.create(); - const spy = jest.fn(); + const spy = vi.fn(); childCancel.subscribe(spy); expect(spy.mock.calls[ 0 ][ 0 ]).toBe(error); diff --git a/tests/descript.test.ts b/tests/descript.test.ts index c303c24..932b9e2 100644 --- a/tests/descript.test.ts +++ b/tests/descript.test.ts @@ -1,3 +1,5 @@ +import { describe, expect, it } from 'vitest'; + import * as de from '../lib'; describe('descript', () => { diff --git a/tests/error.test.ts b/tests/error.test.ts index 890f0a5..b1f033c 100644 --- a/tests/error.test.ts +++ b/tests/error.test.ts @@ -1,3 +1,5 @@ +import { describe, expect, it, vi } from 'vitest'; + /* eslint-disable no-console */ /* eslint-disable jest/no-conditional-expect */ diff --git a/tests/expect.ts b/tests/expect.ts index 3274b71..3e58fd1 100644 --- a/tests/expect.ts +++ b/tests/expect.ts @@ -1,5 +1,5 @@ import { gunzipSync } from 'node:zlib' ; -import { expect } from '@jest/globals'; +import { expect } from 'vitest'; expect.extend({ toBeValidGzip(received) { diff --git a/tests/firstBlock.test.ts b/tests/firstBlock.test.ts index 32d571c..555cac8 100644 --- a/tests/firstBlock.test.ts +++ b/tests/firstBlock.test.ts @@ -1,12 +1,14 @@ +import { describe, expect, it, vi } from 'vitest'; + /* eslint-disable jest/no-conditional-expect */ import * as de from '../lib'; describe('de.first', () => { - it('first block is successful', async() => { + it.only('first block is successful', async() => { let result1; - const spy1 = jest.fn(() => { + const spy1 = vi.fn<(...args: Array) => any>(() => { result1 = { a: 1, }; @@ -16,7 +18,7 @@ describe('de.first', () => { block: spy1, }); - const spy2 = jest.fn(); + const spy2 = vi.fn(); const block2 = de.func({ block: spy2, }); @@ -34,7 +36,7 @@ describe('de.first', () => { it('first block throws', async() => { let error1; - const spy1 = jest.fn(() => { + const spy1 = vi.fn(() => { error1 = de.error({ id: 'ERROR', }); @@ -45,7 +47,7 @@ describe('de.first', () => { }); let result2; - const spy2 = jest.fn(() => { + const spy2 = vi.fn<(...args: Array) => any>(() => { result2 = { a: 1, }; @@ -68,7 +70,7 @@ describe('de.first', () => { it('second block throws', async() => { let error1; - const spy1 = jest.fn(() => { + const spy1 = vi.fn(() => { error1 = de.error({ id: 'ERROR', }); diff --git a/tests/functionBlock.test.ts b/tests/functionBlock.test.ts index 6a16baa..b63d45a 100644 --- a/tests/functionBlock.test.ts +++ b/tests/functionBlock.test.ts @@ -1,3 +1,5 @@ +import { describe, expect, it } from 'vitest'; + import { getErrorBlock, getResultBlock, waitForValue } from './helpers'; import * as de from '../lib'; diff --git a/tests/httpBlock.test.ts b/tests/httpBlock.test.ts index 7a499ae..681e497 100644 --- a/tests/httpBlock.test.ts +++ b/tests/httpBlock.test.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; + import http_ from 'http'; import url_ from 'url'; @@ -15,7 +17,6 @@ import strip_null_and_undefined_values from '../lib/stripNullAndUndefinedValues' import type { DescriptBlockOptions, DescriptHttpBlockResult } from '../lib/types'; import type { DescriptHttpBlockDescription } from '../lib/httpBlock'; import type { DescriptBlockId } from '../lib/depsDomain'; -import { expect } from '@jest/globals'; // --------------------------------------------------------------------------------------------------------------- // describe('http', < @@ -84,7 +85,7 @@ describe('http', < it.each(PROPS)('%j is a function and it gets { params, context }', async(name, value) => { // eslint-disable-next-line @typescript-eslint/no-unused-vars - const spy = jest.fn((...args: any) => value); + const spy = vi.fn((...args: any) => value); const block = baseBlock({ block: { @@ -111,7 +112,7 @@ describe('http', < it.each(PROPS)('%j is a function and it gets { deps }', async(name, value) => { // eslint-disable-next-line @typescript-eslint/no-unused-vars - const spy = jest.fn((...args: any) => value); + const spy = vi.fn((...args: any) => value); let fooResult; let id: DescriptBlockId; @@ -215,7 +216,7 @@ describe('http', < it('is a function', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); @@ -243,7 +244,7 @@ describe('http', < it('custom headers at prepare_request_options', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); @@ -274,7 +275,7 @@ describe('http', < it('custom headers in child at prepare_request_options', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); @@ -310,11 +311,11 @@ describe('http', < it('is an object', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); - const headerSpy = jest.fn(() => 'c'); + const headerSpy = vi.fn(() => 'c'); const block = baseBlock({ block: { pathname: path, @@ -339,7 +340,7 @@ describe('http', < fake.add(path); - const spy = jest.fn(() => 'a'); + const spy = vi.fn<(...args: Array) => string>(() => 'a'); const block = baseBlock({ block: { pathname: path, @@ -389,7 +390,7 @@ describe('http', < fake.add(path); - const spy = jest.fn(); + const spy = vi.fn(); let parentHeaders; const parent = baseBlock({ @@ -418,10 +419,10 @@ describe('http', < it('child is an object', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); - const headerSpy = jest.fn(() => 'b'); + const headerSpy = vi.fn<(...args: Array) => any>(() => 'b'); let parentHeaders; const parent = baseBlock({ @@ -463,7 +464,7 @@ describe('http', < it('is a function', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); const block = baseBlock({ @@ -497,7 +498,7 @@ describe('http', < it('is an object and value is null', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); const block = baseBlock({ @@ -540,7 +541,7 @@ describe('http', < it('is an object and value is undefined', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); const block = baseBlock({ @@ -575,7 +576,7 @@ describe('http', < it('is an object and value is not null or undefined #1', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); const block = baseBlock({ @@ -607,7 +608,7 @@ describe('http', < it('is an object and value is not null or undefined #2', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); const block = baseBlock({ @@ -647,7 +648,7 @@ describe('http', < const path = getPath(); fake.add(path); - const spy = jest.fn(); + const spy = vi.fn(); const block = baseBlock({ block: { pathname: path, @@ -671,7 +672,7 @@ describe('http', < it('is an array of object and function', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); const params = { @@ -735,7 +736,7 @@ describe('http', < }, }); - const spy = jest.fn(); + const spy = vi.fn(); const child = parent.extend({ block: { query: spy, @@ -770,7 +771,7 @@ describe('http', < }, }); - const spy = jest.fn(); + const spy = vi.fn(); const child = parent.extend({ block: { query: { @@ -794,7 +795,7 @@ describe('http', < it('no body', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn<(...args: Array) => any>((req, res) => res.end()); fake.add(path, spy); @@ -814,7 +815,7 @@ describe('http', < it('is a string', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn<(...args: Array) => any>((req, res) => res.end()); fake.add(path, spy); @@ -836,7 +837,7 @@ describe('http', < it('is a number', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn<(...args: Array) => any>((req, res) => res.end()); fake.add(path, spy); @@ -858,7 +859,7 @@ describe('http', < it('is a Buffer', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn<(...args: Array) => any>((req, res) => res.end()); fake.add(path, spy); @@ -880,7 +881,7 @@ describe('http', < it('is a function returning string', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn<(...args: Array) => any>((req, res) => res.end()); fake.add(path, spy); @@ -902,7 +903,7 @@ describe('http', < it('is a function returning Buffer', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn<(...args: Array) => any>((req, res) => res.end()); fake.add(path, spy); @@ -924,7 +925,7 @@ describe('http', < it('is an function returning object', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn<(...args: Array) => any>((req, res) => res.end()); fake.add(path, spy); @@ -948,7 +949,7 @@ describe('http', < it('with body_compress', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn<(...args: Array) => any>((req, res) => res.end()); fake.add(path, spy); @@ -1418,8 +1419,8 @@ describe('http', < const path1 = getPath(); const path2 = getPath(); - const spy1 = jest.fn((req, res) => res.end()); - const spy2 = jest.fn((req, res) => res.end()); + const spy1 = vi.fn((req, res) => res.end()); + const spy2 = vi.fn((req, res) => res.end()); fake.add(path1, spy1); fake.add(path2, spy2); @@ -1477,7 +1478,7 @@ describe('http', < }); const BODY = 'Пока!'; - const spy = jest.fn(() => { + const spy = vi.fn<(...args: Array) => any>(() => { return BODY; }); @@ -1539,7 +1540,7 @@ describe('http', < }); const BODY = 'Пока!'; - const spy = jest.fn(() => { + const spy = vi.fn<(...args: Array) => any>(() => { return BODY; }); diff --git a/tests/isPlainObject.test.ts b/tests/isPlainObject.test.ts index 58c5a2e..091f769 100644 --- a/tests/isPlainObject.test.ts +++ b/tests/isPlainObject.test.ts @@ -1,3 +1,5 @@ +import { describe, expect, it } from 'vitest'; + import isPlainObject from '../lib/isPlainObject'; describe('isPlainObject', () => { diff --git a/tests/lifecycle.test.ts b/tests/lifecycle.test.ts index e08c050..a61d826 100644 --- a/tests/lifecycle.test.ts +++ b/tests/lifecycle.test.ts @@ -1,10 +1,12 @@ +import { describe, expect, it, vi } from 'vitest'; + import * as de from '../lib'; describe('lifecycle', () => { it('inheritance', async() => { let actionResult; - const actionSpy = jest.fn(() => { + const actionSpy = vi.fn<(...args: Array) => any>(() => { actionResult = { a: 1, }; @@ -12,17 +14,17 @@ describe('lifecycle', () => { }); let parentParamsResult; - const parentParamsSpy = jest.fn(() => { + const parentParamsSpy = vi.fn<(...args: Array) => any>(() => { parentParamsResult = { b: 2, }; return parentParamsResult; }); - const parentBeforeSpy = jest.fn(); + const parentBeforeSpy = vi.fn(); let parentAfterResult; - const parentAfterSpy = jest.fn(() => { + const parentAfterSpy = vi.fn<(...args: Array) => any>(() => { parentAfterResult = { c: 3, }; @@ -39,17 +41,17 @@ describe('lifecycle', () => { }); let childParamsResult; - const childParamsSpy = jest.fn(() => { + const childParamsSpy = vi.fn<(...args: Array) => any>(() => { childParamsResult = { d: 4, }; return childParamsResult; }); - const childBeforeSpy = jest.fn(); + const childBeforeSpy = vi.fn(); let childAfterResult; - const childAfterSpy = jest.fn(() => { + const childAfterSpy = vi.fn<(...args: Array) => any>(() => { childAfterResult = { e: 5, }; diff --git a/tests/objectBlock.test.ts b/tests/objectBlock.test.ts index c4e88ba..4985739 100644 --- a/tests/objectBlock.test.ts +++ b/tests/objectBlock.test.ts @@ -1,3 +1,5 @@ +import { describe, expect, it, vi } from 'vitest'; + import * as de from '../lib'; import { @@ -264,12 +266,12 @@ describe('de.object', () => { describe('cancel', () => { it('cancel object, subblocks cancelled too #1', async() => { - const actionFooSpy = jest.fn(); + const actionFooSpy = vi.fn(); const blockFoo = getResultBlock(null, 150, { onCancel: actionFooSpy, }); - const actionBarSpy = jest.fn(); + const actionBarSpy = vi.fn(); const blockBar = getResultBlock(null, 150, { onCancel: actionBarSpy, }); @@ -300,12 +302,12 @@ describe('de.object', () => { }); it('cancel object, subblocks cancelled too #2', async() => { - const actionFooSpy = jest.fn(); + const actionFooSpy = vi.fn(); const blockFoo = getResultBlock(null, 50, { onCancel: actionFooSpy, }); - const actionBarSpy = jest.fn(); + const actionBarSpy = vi.fn(); const blockBar = getResultBlock(null, 150, { onCancel: actionBarSpy, }); @@ -338,7 +340,7 @@ describe('de.object', () => { const errorFoo = de.error('SOME_ERROR'); const blockFoo = getErrorBlock(errorFoo, 50); - const actionBarSpy = jest.fn(); + const actionBarSpy = vi.fn(); const blockBar = getResultBlock(null, 150, { onCancel: actionBarSpy, }); diff --git a/tests/options.after.test.ts b/tests/options.after.test.ts index 584e727..eff96ae 100644 --- a/tests/options.after.test.ts +++ b/tests/options.after.test.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; + import * as de from '../lib'; import { getErrorBlock, getResultBlock, waitForError, waitForValue } from './helpers'; @@ -6,7 +8,7 @@ import { getErrorBlock, getResultBlock, waitForError, waitForValue } from './hel describe('options.after', () => { it('after gets { params, context, result }', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const blockResult = { foo: 42, }; @@ -32,7 +34,7 @@ describe('options.after', () => { it('after never called if block errors', async() => { const blockError = de.error('ERROR'); - const spy = jest.fn(); + const spy = vi.fn(); const block = getErrorBlock(blockError, 50).extend({ options: { @@ -52,7 +54,7 @@ describe('options.after', () => { const blockResult = { foo: 42, }; - const spy = jest.fn(() => afterResult); + const spy = vi.fn(() => afterResult); const block = getResultBlock(blockResult).extend({ options: { after: spy, @@ -89,7 +91,7 @@ describe('options.after', () => { it('after throws, error returns value', async() => { let errorResult; - const spyError = jest.fn(() => { + const spyError = vi.fn<(...args: Array) => any>(() => { errorResult = { bar: 24, }; @@ -241,7 +243,7 @@ describe('options.after', () => { it('cancelled during after', async() => { const error = de.error('ERROR'); - const spy = jest.fn(() => waitForValue(null, 100)); + const spy = vi.fn(() => waitForValue(null, 100)); const block = getResultBlock(null).extend({ options: { after: spy, @@ -269,7 +271,7 @@ describe('options.after', () => { describe('inheritance', () => { it('parent\'s first, child\'s second', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const parent = getResultBlock(null).extend({ options: { after: () => spy('PARENT'), @@ -290,7 +292,7 @@ describe('options.after', () => { }); it('parent throws, child never called', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const parentAfterError = de.error('SOME_ERROR'); const parent = getResultBlock(null).extend({ options: { @@ -347,7 +349,7 @@ describe('options.after', () => { }); it.each([ null, false, 0, '', 42, 'foo', {}, undefined ])('parent returns %j, child gets parent\'s result in { result }', async(value) => { - const spy = jest.fn(() => value); + const spy = vi.fn<(...args: Array) => any>(() => value); const parentAfterResult = { foo: 42, }; @@ -406,8 +408,8 @@ describe('options.after', () => { blockResult: 1, }; - const blockSpy = jest.fn(() => blockResult); - const afterSpy = jest.fn(() => afterResult); + const blockSpy = vi.fn<(...args: Array) => any>(() => blockResult); + const afterSpy = vi.fn<(...args: Array) => any>(() => afterResult); const block = getResultBlock(blockSpy).extend({ options: { diff --git a/tests/options.before.test.ts b/tests/options.before.test.ts index f1e79db..c151fe9 100644 --- a/tests/options.before.test.ts +++ b/tests/options.before.test.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; + import { getResultBlock, waitForError, waitForValue } from './helpers'; import * as de from '../lib'; @@ -5,7 +7,7 @@ import * as de from '../lib'; describe('options.before', () => { it('before gets { params, context }', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const block = getResultBlock(null).extend({ options: { before: spy, @@ -27,7 +29,7 @@ describe('options.before', () => { [ null, false, 0, '', 42, 'foo', {} ].forEach((beforeResult) => { it(`before returns ${ beforeResult }, action never called`, async() => { - const spy = jest.fn(); + const spy = vi.fn(); const block = getResultBlock(spy).extend({ options: { before: () => beforeResult, @@ -42,7 +44,7 @@ describe('options.before', () => { }); it('before throws, action never called', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const beforeError = de.error('SOME_ERROR'); const block = getResultBlock(spy).extend({ options: { @@ -66,7 +68,7 @@ describe('options.before', () => { }); it('before returns promise that rejects, action never called', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const beforeError = de.error('SOME_ERROR'); const block = getResultBlock(spy).extend({ options: { @@ -127,7 +129,7 @@ describe('options.before', () => { }); it('before returns promise that resolves, action never called', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const beforeResult = { foo: 42, }; @@ -198,7 +200,7 @@ describe('options.before', () => { describe('inheritance', () => { it('child\'s first, parent\'s second', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const parent = getResultBlock(null).extend({ options: { before: () => spy('PARENT'), @@ -219,7 +221,7 @@ describe('options.before', () => { }); it.each([ null, false, 0, '', 42, 'foo', {} ])('child returns %j, parent never called', async(childBeforeResult) => { - const spy = jest.fn(); + const spy = vi.fn(); const parent = getResultBlock(null).extend({ options: { before: spy, @@ -301,7 +303,7 @@ describe('options.before', () => { }); it('child throws, parent never called', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const childBeforeError = de.error('SOME_ERROR'); const parent = getResultBlock(null).extend({ options: { diff --git a/tests/options.cache.test.ts b/tests/options.cache.test.ts index 015e00a..0259ebf 100644 --- a/tests/options.cache.test.ts +++ b/tests/options.cache.test.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; + import * as de from '../lib'; import { getResultBlock, getTimeout, waitForValue } from './helpers'; @@ -51,7 +53,7 @@ describe('options.cache, options.key, options.maxage', () => { const cache = new Cache(); const blockValue = Symbol(); - const spy = jest.fn(() => blockValue);// as () => typeof blockValue; + const spy = vi.fn(() => blockValue);// as () => typeof blockValue; const block = getResultBlock(spy, 50).extend({ options: { cache: cache, @@ -73,7 +75,7 @@ describe('options.cache, options.key, options.maxage', () => { const cache = new Cache(); const blockValue = Symbol(); - const spy = jest.fn(() => blockValue); + const spy = vi.fn(() => blockValue); const block = getResultBlock(spy, 50).extend({ options: { cache: cache, @@ -95,7 +97,7 @@ describe('options.cache, options.key, options.maxage', () => { const cache = new Cache(); const blockValue = Symbol(); - const spy = jest.fn(() => blockValue); + const spy = vi.fn(() => blockValue); const key = 'KEY'; const block = getResultBlock(spy, 50).extend({ options: { @@ -120,7 +122,7 @@ describe('options.cache, options.key, options.maxage', () => { const cache = new Cache(); const blockValue = Symbol(); - const spy = jest.fn(() => blockValue); + const spy = vi.fn(() => blockValue); const key = 'KEY'; const block = getResultBlock(spy, 50).extend({ options: { @@ -140,7 +142,7 @@ describe('options.cache, options.key, options.maxage', () => { }); it('key is a function and returns undefined', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const data = { foo: 42, @@ -166,7 +168,7 @@ describe('options.cache, options.key, options.maxage', () => { const cache = new Cache(); const blockValue = Symbol(); - const spy = jest.fn(() => blockValue); + const spy = vi.fn(() => blockValue); const block = getResultBlock(spy, 50).extend({ options: { cache: cache, @@ -195,7 +197,7 @@ describe('options.cache, options.key, options.maxage', () => { return Promise.resolve(undefined); }; - const spy = jest.fn(() => null); + const spy = vi.fn(() => null); const block = getResultBlock(spy, 50).extend({ options: { cache: cache, @@ -222,7 +224,7 @@ describe('options.cache, options.key, options.maxage', () => { return Promise.resolve(undefined); }; - const spy = jest.fn(() => null); + const spy = vi.fn(() => null); const block = de.func({ block: ({ generateId }) => { @@ -286,7 +288,7 @@ describe('options.cache, options.key, options.maxage', () => { return Promise.resolve(undefined); }; - const spy = jest.fn(() => null); + const spy = vi.fn(() => null); const block = getResultBlock(spy, 50).extend({ options: { cache: cache, diff --git a/tests/options.deps.test.ts b/tests/options.deps.test.ts index e9cfb9b..1d4dc27 100644 --- a/tests/options.deps.test.ts +++ b/tests/options.deps.test.ts @@ -1,3 +1,5 @@ +import { describe, expect, it, vi } from 'vitest'; + /* eslint-disable jest/no-conditional-expect */ import * as de from '../lib'; @@ -26,7 +28,7 @@ describe('options.deps', () => { }); it('no options.deps, deps is empty object', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const block = de.func({ block: spy, }); @@ -120,7 +122,7 @@ describe('options.deps', () => { }); it('block depends on block #1 (deps is id)', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const blockFoo = getResultBlock(() => spy('FOO'), 50); const blockBar = getResultBlock(() => spy('BAR'), 50); @@ -156,7 +158,7 @@ describe('options.deps', () => { }); it('block depends on block #2 (deps is array)', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const blockFoo = getResultBlock(() => spy('FOO'), 50); const blockBar = getResultBlock(() => spy('BAR'), 50); @@ -192,7 +194,7 @@ describe('options.deps', () => { }); it('block depends on block depends on block', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const blockFoo = getResultBlock(() => spy('FOO'), 50); const blockBar = getResultBlock(() => spy('BAR'), 50); @@ -237,7 +239,7 @@ describe('options.deps', () => { }); it('block depends on two blocks', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const blockFoo = getResultBlock(() => spy('FOO'), getTimeout(50, 100)); const blockBar = getResultBlock(() => spy('BAR'), getTimeout(50, 100)); @@ -279,7 +281,7 @@ describe('options.deps', () => { }); it('two block depend on block', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const blockFoo = getResultBlock(() => spy('FOO'), getTimeout(50, 100)); const blockBar = getResultBlock(() => spy('BAR'), 50); @@ -325,7 +327,7 @@ describe('options.deps', () => { const errorFoo = de.error('SOME_ERROR'); const blockFoo = getErrorBlock(errorFoo, 50); - const bodyBar = jest.fn(() => undefined); + const bodyBar = vi.fn<(...args: Array) => any>(() => undefined); const blockBar = getResultBlock(bodyBar, 50); const block = de.func({ @@ -369,7 +371,7 @@ describe('options.deps', () => { const errorBar = de.error('SOME_ERROR_2'); const blockBar = getErrorBlock(errorBar, 50); - const bodyQuu = jest.fn(); + const bodyQuu = vi.fn(); const blockQuu = getResultBlock(bodyQuu, 50); const block = de.func({ @@ -541,7 +543,7 @@ describe('options.deps', () => { const blockFoo = getResultBlock(dataFoo, 50); const blockBar = getResultBlock(null, 50); - const beforeBar = jest.fn(); + const beforeBar = vi.fn(); let idFoo: DescriptBlockId; const block = de.func({ @@ -589,7 +591,7 @@ describe('options.deps', () => { const blockQuu = getResultBlock(null, 100); - const beforeQuu = jest.fn(); + const beforeQuu = vi.fn(); let idFoo: DescriptBlockId; let idBar: DescriptBlockId; @@ -648,7 +650,7 @@ describe('options.deps', () => { const blockQuu = getResultBlock(null, 50); - const beforeQuu = jest.fn(); + const beforeQuu = vi.fn(); let idFoo: DescriptBlockId; let idBar: DescriptBlockId; @@ -695,7 +697,7 @@ describe('options.deps', () => { }); it('wait for result of de.func', async() => { - const beforeQuu = jest.fn(); + const beforeQuu = vi.fn(); const dataFoo = { foo: 42, @@ -822,7 +824,8 @@ describe('options.deps', () => { } }); - it.each([ Symbol('foo') ])('unresolved deps #1, id is %p', async(id) => { + it('unresolved deps #1, id is "foo"', async() => { + const id = Symbol('foo'); const block = getResultBlock(null, 50).extend({ options: { deps: id, @@ -839,7 +842,8 @@ describe('options.deps', () => { } }); - it.each([ Symbol('foo') ])('unresolved deps #2, id is %p', async(id) => { + it('unresolved deps #2, id is "foo"', async() => { + const id = Symbol('foo'); const blockFoo = getResultBlock(null, 50); const blockBar = getResultBlock(null, 50); diff --git a/tests/options.error.test.ts b/tests/options.error.test.ts index 00f5a07..29592b0 100644 --- a/tests/options.error.test.ts +++ b/tests/options.error.test.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; + /* eslint-disable jest/no-conditional-expect */ import { getErrorBlock, getResultBlock } from './helpers'; @@ -8,7 +10,7 @@ describe('options.error', () => { it('receives { params, context, error }', async() => { const error = de.error('ERROR'); - const spy = jest.fn(() => null); + const spy = vi.fn<(...args: Array) => any>(() => null); const block = getErrorBlock(error).extend({ options: { error: spy, @@ -33,7 +35,7 @@ describe('options.error', () => { const blockResult = { foo: 42, }; - const spy = jest.fn(); + const spy = vi.fn(); const block = getResultBlock(blockResult).extend({ options: { error: spy, @@ -64,7 +66,7 @@ describe('options.error', () => { it('throws ReferenceError', async() => { const error1 = de.error('ERROR_1'); - const spy = jest.fn(() => { + const spy = vi.fn(() => { // eslint-disable-next-line no-undef,@typescript-eslint/ban-ts-comment // @ts-ignore return x; @@ -89,7 +91,7 @@ describe('options.error', () => { it('throws de.error', async() => { const error1 = de.error('ERROR_1'); let error2; - const spy = jest.fn(() => { + const spy = vi.fn(() => { error2 = de.error('ERROR_2'); throw error2; @@ -125,7 +127,7 @@ describe('options.error', () => { it('returns undefined', async() => { const error = de.error('ERROR'); - const spy = jest.fn(() => undefined); + const spy = vi.fn(() => undefined); const block = getErrorBlock(error).extend({ options: { error: spy, @@ -138,7 +140,7 @@ describe('options.error', () => { it.each([ { foo: 42 }, 0, '', null, false, undefined ])('first returns %j, second never called', async(value) => { const error = de.error('ERROR'); - const spy = jest.fn(); + const spy = vi.fn(); const block1 = getErrorBlock(error).extend({ options: { error: () => value, @@ -166,7 +168,7 @@ describe('options.error', () => { }, }, }); - const spy = jest.fn(() => null); + const spy = vi.fn<(...args: Array) => any>(() => null); const block2 = block1.extend({ options: { error: spy, diff --git a/tests/options.params.test.ts b/tests/options.params.test.ts index f4cd511..7bd0994 100644 --- a/tests/options.params.test.ts +++ b/tests/options.params.test.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; + /* eslint-disable jest/no-conditional-expect */ import * as de from '../lib'; @@ -9,7 +11,7 @@ import type { DescriptBlockId } from '../lib/depsDomain'; describe('options.params', () => { it('no params', async() => { - const spy = jest.fn(); + const spy = vi.fn(); const block = getResultBlock(spy); await de.run(block); @@ -21,7 +23,7 @@ describe('options.params', () => { describe('params is a function', () => { it('params gets { params, context }', async() => { - const spy = jest.fn(() => ({})); + const spy = vi.fn<(...args: Array) => any>(() => ({})); const block = getResultBlock(null).extend({ options: { params: spy, @@ -42,7 +44,7 @@ describe('options.params', () => { }); it('params gets { deps }', async() => { - const spy = jest.fn(); + const spy = vi.fn(); let dataFoo; let idFoo: DescriptBlockId; @@ -82,7 +84,7 @@ describe('options.params', () => { }); it.each([ undefined, null, false, '', 0, 42 ])('params returns %j', async(paramsResult) => { - const spy = jest.fn(); + const spy = vi.fn(); const block = getResultBlock(spy).extend({ options: { params: () => paramsResult, @@ -101,7 +103,7 @@ describe('options.params', () => { }); it('params returns object, action gets it as { params }', async() => { - const spy = jest.fn(); + const spy = vi.fn(); let params; @@ -147,7 +149,7 @@ describe('options.params', () => { it('child first, then parent', async() => { let parentParams; - const parentSpy = jest.fn(() => { + const parentSpy = vi.fn<(...args: Array) => any>(() => { parentParams = { foo: 42, }; @@ -155,14 +157,14 @@ describe('options.params', () => { }); let childParams; - const childSpy = jest.fn(() => { + const childSpy = vi.fn<(...args: Array) => any>(() => { childParams = { bar: 24, }; return childParams; }); - const actionSpy = jest.fn(); + const actionSpy = vi.fn<(...args: Array) => any>(); const parent = getResultBlock(actionSpy).extend({ options: { diff --git a/tests/options.required.test.ts b/tests/options.required.test.ts index 06d816f..05bee85 100644 --- a/tests/options.required.test.ts +++ b/tests/options.required.test.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; + import http from 'node:http'; import * as de from '../lib'; @@ -60,7 +62,7 @@ describe('options.required', () => { it('required=true for parent=undefined and child=true', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); const parent = de.http({ @@ -89,7 +91,7 @@ describe('options.required', () => { it('required=false for parent=true and child=false', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); const parent = de.http({ @@ -121,7 +123,7 @@ describe('options.required', () => { it('required=true for parent=true and child=undefined', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); const parent = de.http({ @@ -149,7 +151,7 @@ describe('options.required', () => { it('required=true for parent=false and child=true', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); const parent = de.http({ diff --git a/tests/options.timeout.test.ts b/tests/options.timeout.test.ts index 82f77d3..1111f94 100644 --- a/tests/options.timeout.test.ts +++ b/tests/options.timeout.test.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; + /* eslint-disable jest/no-conditional-expect */ import * as de from '../lib'; diff --git a/tests/pipeBlock.test.ts b/tests/pipeBlock.test.ts index 36197bd..05a6686 100644 --- a/tests/pipeBlock.test.ts +++ b/tests/pipeBlock.test.ts @@ -1,3 +1,5 @@ +import { describe, expect, it, vi } from 'vitest'; + /* eslint-disable jest/no-conditional-expect */ import * as de from '../lib'; @@ -5,7 +7,7 @@ describe('de.pipe', () => { it('all blocks are successful', async() => { let result1; - const spy1 = jest.fn(() => { + const spy1 = vi.fn<(...args: Array) => any>(() => { result1 = { a: 1, }; @@ -16,7 +18,7 @@ describe('de.pipe', () => { }); let result2; - const spy2 = jest.fn(() => { + const spy2 = vi.fn<(...args: Array) => any>(() => { result2 = { b: 2, }; @@ -27,7 +29,7 @@ describe('de.pipe', () => { }); let result3; - const spy3 = jest.fn(() => { + const spy3 = vi.fn<(...args: Array) => any>(() => { result3 = { c: 3, }; @@ -65,7 +67,7 @@ describe('de.pipe', () => { }, }); - const spy2 = jest.fn(); + const spy2 = vi.fn<(...args: Array) => any>(); const block2 = de.func({ block: spy2, }); @@ -85,7 +87,7 @@ describe('de.pipe', () => { }); it('second block throws', async() => { - const spy1 = jest.fn(); + const spy1 = vi.fn(); const block1 = de.func({ block: spy1, }); diff --git a/tests/request.test.ts b/tests/request.test.ts index 92977ce..7da7d19 100644 --- a/tests/request.test.ts +++ b/tests/request.test.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; + /* eslint-disable jest/no-conditional-expect */ import url_ from 'url'; @@ -93,7 +95,7 @@ describe('request', () => { it('pathname always starts with /', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); @@ -109,7 +111,7 @@ describe('request', () => { it('sets accept-encoding to gzip,deflate', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); @@ -125,7 +127,7 @@ describe('request', () => { it('adds gzip,deflate to accept-encoding', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); @@ -144,7 +146,7 @@ describe('request', () => { it('sends lower-cased headers', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); @@ -167,7 +169,7 @@ describe('request', () => { it('query', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); fake.add(path, spy); @@ -189,7 +191,7 @@ describe('request', () => { it('basic auth', async() => { const path = getPath(); - const spy = jest.fn((req, res) => res.end()); + const spy = vi.fn((req, res) => res.end()); const AUTH = 'user:password'; @@ -234,7 +236,7 @@ describe('request', () => { const BODY = Buffer.from('Привет!'); // eslint-disable-next-line @typescript-eslint/no-unused-vars - const spy = jest.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); + const spy = vi.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); fake.add(path, spy); @@ -258,7 +260,7 @@ describe('request', () => { const BODY = 'Привет!'; // eslint-disable-next-line @typescript-eslint/no-unused-vars - const spy = jest.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); + const spy = vi.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); fake.add(path, spy); @@ -282,7 +284,7 @@ describe('request', () => { const BODY = 'div { color: red; }'; // eslint-disable-next-line @typescript-eslint/no-unused-vars - const spy = jest.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); + const spy = vi.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); fake.add(path, spy); @@ -312,7 +314,7 @@ describe('request', () => { }; // eslint-disable-next-line @typescript-eslint/no-unused-vars - const spy = jest.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); + const spy = vi.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); fake.add(path, spy); @@ -340,7 +342,7 @@ describe('request', () => { }; // eslint-disable-next-line @typescript-eslint/no-unused-vars - const spy = jest.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); + const spy = vi.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); fake.add(path, spy); @@ -368,7 +370,7 @@ describe('request', () => { const BODY = 'Привет!'.repeat(1000); // eslint-disable-next-line @typescript-eslint/no-unused-vars - const spy = jest.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); + const spy = vi.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); fake.add(path, spy); @@ -402,7 +404,7 @@ describe('request', () => { const BODY = 'Привет!'.repeat(1000); // eslint-disable-next-line @typescript-eslint/no-unused-vars - const spy = jest.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); + const spy = vi.fn((req: http.IncomingMessage, res: http.OutgoingMessage, body: any) => res.end()); fake.add(path, spy); @@ -459,7 +461,7 @@ describe('request', () => { const path = getPath(); const statusCode = 404; - const spy = jest.fn((res) => res.end()); + const spy = vi.fn((res) => res.end()); fake.add(path, [ { @@ -511,7 +513,7 @@ describe('request', () => { const path = getPath(); const statusCode = 503; - const spy = jest.fn((res) => res.end()); + const spy = vi.fn((res) => res.end()); fake.add(path, [ { @@ -538,7 +540,7 @@ describe('request', () => { const path = getPath(); const statusCode = 503; - const spy = jest.fn((res) => res.end()); + const spy = vi.fn((res) => res.end()); fake.add(path, [ { @@ -644,7 +646,7 @@ describe('request', () => { const path = getPath(); const statusCode = 503; - const spy = jest.fn((res) => res.end()); + const spy = vi.fn((res) => res.end()); fake.add(path, [ { diff --git a/tests/stripNullAndUndefinedValues.test.ts b/tests/stripNullAndUndefinedValues.test.ts index 173fea7..7386407 100644 --- a/tests/stripNullAndUndefinedValues.test.ts +++ b/tests/stripNullAndUndefinedValues.test.ts @@ -1,3 +1,5 @@ +import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; + import stripNullAndUndefinedValues from '../lib/stripNullAndUndefinedValues'; describe('stripNullAndUndefinedValues', () => { diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..c5a68f1 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite'; + +export default defineConfig({ + test: { + environment: 'node', + setupFiles: [ + './tests/expect.ts', + ], + }, +}); From 969f859186a1230f7d4d73deac7707cb3ac20724 Mon Sep 17 00:00:00 2001 From: Aleksei Androsov Date: Fri, 7 Mar 2025 14:43:58 +0300 Subject: [PATCH 2/3] jest -> vitest --- global.d.ts | 13 ------------- package.json | 2 +- tests/error.test.ts | 2 +- tests/options.after.test.ts | 2 +- tests/options.before.test.ts | 2 +- tests/options.cache.test.ts | 4 ++-- tests/options.error.test.ts | 2 +- tests/options.params.test.ts | 2 +- tests/options.timeout.test.ts | 2 +- tests/stripNullAndUndefinedValues.test.ts | 2 +- tsconfig.json | 1 - 11 files changed, 10 insertions(+), 24 deletions(-) delete mode 100644 global.d.ts diff --git a/global.d.ts b/global.d.ts deleted file mode 100644 index 21465a9..0000000 --- a/global.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -declare global { - namespace jest { - interface Matchers { - toBeValidGzip(received?: any): CustomMatcherResult; - toHaveUngzipValue(received: any, value?: any): CustomMatcherResult; - } - - /*interface Expect { - toBeValidGzip(received: any): CustomMatcherResult; - toHaveUngzipValue(received: any, value): CustomMatcherResult; - }*/ - } -} diff --git a/package.json b/package.json index 82bf48e..5eeb3be 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ }, "scripts": { "eslint": "npx eslint .", - "test": "cd tests && ./gen-certs.sh && npx jest", + "test": "cd tests && ./gen-certs.sh && npx vitest", "ts-compile": "npx tsc --noEmit", "prepack": "rm -rf build && npx tsc -p ./tsconfig-build.json && npx ts-add-js-extension --dir=build" }, diff --git a/tests/error.test.ts b/tests/error.test.ts index b1f033c..45b3a75 100644 --- a/tests/error.test.ts +++ b/tests/error.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; /* eslint-disable no-console */ /* eslint-disable jest/no-conditional-expect */ diff --git a/tests/options.after.test.ts b/tests/options.after.test.ts index eff96ae..820f39b 100644 --- a/tests/options.after.test.ts +++ b/tests/options.after.test.ts @@ -1,4 +1,4 @@ -import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import * as de from '../lib'; diff --git a/tests/options.before.test.ts b/tests/options.before.test.ts index c151fe9..669154a 100644 --- a/tests/options.before.test.ts +++ b/tests/options.before.test.ts @@ -1,4 +1,4 @@ -import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { getResultBlock, waitForError, waitForValue } from './helpers'; diff --git a/tests/options.cache.test.ts b/tests/options.cache.test.ts index 0259ebf..6217e7a 100644 --- a/tests/options.cache.test.ts +++ b/tests/options.cache.test.ts @@ -1,4 +1,4 @@ -import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import * as de from '../lib'; @@ -53,7 +53,7 @@ describe('options.cache, options.key, options.maxage', () => { const cache = new Cache(); const blockValue = Symbol(); - const spy = vi.fn(() => blockValue);// as () => typeof blockValue; + const spy = vi.fn(() => blockValue);// as () => typeof blockValue; const block = getResultBlock(spy, 50).extend({ options: { cache: cache, diff --git a/tests/options.error.test.ts b/tests/options.error.test.ts index 29592b0..c650256 100644 --- a/tests/options.error.test.ts +++ b/tests/options.error.test.ts @@ -1,4 +1,4 @@ -import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; /* eslint-disable jest/no-conditional-expect */ import { getErrorBlock, getResultBlock } from './helpers'; diff --git a/tests/options.params.test.ts b/tests/options.params.test.ts index 7bd0994..32cd846 100644 --- a/tests/options.params.test.ts +++ b/tests/options.params.test.ts @@ -1,4 +1,4 @@ -import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; /* eslint-disable jest/no-conditional-expect */ diff --git a/tests/options.timeout.test.ts b/tests/options.timeout.test.ts index 1111f94..3eab767 100644 --- a/tests/options.timeout.test.ts +++ b/tests/options.timeout.test.ts @@ -1,4 +1,4 @@ -import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; /* eslint-disable jest/no-conditional-expect */ import * as de from '../lib'; diff --git a/tests/stripNullAndUndefinedValues.test.ts b/tests/stripNullAndUndefinedValues.test.ts index 7386407..ccd4f45 100644 --- a/tests/stripNullAndUndefinedValues.test.ts +++ b/tests/stripNullAndUndefinedValues.test.ts @@ -1,4 +1,4 @@ -import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; +import { describe, expect, it } from 'vitest'; import stripNullAndUndefinedValues from '../lib/stripNullAndUndefinedValues'; diff --git a/tsconfig.json b/tsconfig.json index 24e80c0..0d0b3f5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,7 +27,6 @@ "include": [ "**/*.ts", "**/*.d.ts", - "global.d.ts" ], "exclude": [ "node_modules" From 5b061c775a7f2ee0f7c26202e296f0b7bf21c6bd Mon Sep 17 00:00:00 2001 From: Aleksei Androsov Date: Fri, 7 Mar 2025 14:45:27 +0300 Subject: [PATCH 3/3] jest -> vitest --- tests/firstBlock.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/firstBlock.test.ts b/tests/firstBlock.test.ts index 555cac8..11345f6 100644 --- a/tests/firstBlock.test.ts +++ b/tests/firstBlock.test.ts @@ -6,7 +6,7 @@ import * as de from '../lib'; describe('de.first', () => { - it.only('first block is successful', async() => { + it('first block is successful', async() => { let result1; const spy1 = vi.fn<(...args: Array) => any>(() => { result1 = {