From 82f218f964d29deab85afe0b19e514eeef17f117 Mon Sep 17 00:00:00 2001 From: Baba05206 Date: Mon, 15 Dec 2025 20:57:44 +0000 Subject: [PATCH 1/9] Update to test packages --- package-lock.json | 3572 +++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 1850 insertions(+), 1724 deletions(-) diff --git a/package-lock.json b/package-lock.json index 52884e65..aa7e35ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,66 +9,57 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { - "jest": "^29.5.0", + "jest": "^29.7.0", "prettier": "^2.8.7" } }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "convert-source-map": "^1.7.0", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -78,276 +69,145 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, "node_modules/@babel/generator": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", - "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.5", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.21.4" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.2" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, - "dependencies": { - "@babel/types": "^7.24.5" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/types": "^7.28.5" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -360,6 +220,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -372,6 +233,7 @@ "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -384,6 +246,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -391,11 +254,44 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -408,6 +304,7 @@ "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -416,12 +313,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -435,6 +333,7 @@ "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -447,6 +346,7 @@ "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -459,6 +359,7 @@ "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -471,6 +372,7 @@ "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -483,6 +385,7 @@ "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -495,6 +398,7 @@ "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -502,11 +406,28 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "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, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -518,12 +439,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", - "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -533,49 +455,48 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", - "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -585,13 +506,15 @@ "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, + "license": "MIT" }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -608,21 +531,23 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -630,37 +555,38 @@ } }, "node_modules/@jest/core": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", - "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.5.0", - "@jest/reporters": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, @@ -677,89 +603,95 @@ } }, "node_modules/@jest/environment": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", - "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0" + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, + "license": "MIT", "dependencies": { - "expect": "^29.5.0", - "jest-snapshot": "^29.5.0" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", - "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, + "license": "MIT", "dependencies": { - "jest-get-type": "^29.4.3" + "jest-get-type": "^29.6.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", - "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/globals": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", - "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/types": "^29.5.0", - "jest-mock": "^29.5.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", - "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, + "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -767,13 +699,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -792,24 +724,26 @@ } }, "node_modules/@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.25.16" + "@sinclair/typebox": "^0.27.8" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.15", + "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" }, @@ -818,13 +752,14 @@ } }, "node_modules/@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -833,14 +768,15 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/test-result": "^29.5.0", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" }, "engines": { @@ -848,22 +784,23 @@ } }, "node_modules/@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -874,12 +811,13 @@ } }, "node_modules/@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -891,82 +829,88 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, - "engines": { - "node": ">=6.0.0" + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "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/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, + "license": "MIT", "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 + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "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==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", - "dev": true + "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, + "license": "MIT" }, "node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", - "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^2.0.0" + "@sinonjs/commons": "^3.0.0" } }, "node_modules/@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -976,104 +920,113 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.28.2" } }, "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "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, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true + "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, + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "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, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true + "version": "24.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } }, "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true + "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, + "license": "MIT" }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -1089,6 +1042,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1098,6 +1052,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1113,6 +1068,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1126,20 +1082,22 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/babel-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", - "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", + "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, + "license": "MIT", "dependencies": { - "@jest/transform": "^29.5.0", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -1156,6 +1114,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -1167,11 +1126,29 @@ "node": ">=8" } }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "version": "29.6.3", + "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, + "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -1183,35 +1160,40 @@ } }, "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "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==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "node_modules/babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, + "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -1225,13 +1207,25 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.32", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.32.tgz", + "integrity": "sha512-OPz5aBThlyLFgxyhdwf/s2+8ab3OvT7AdTNvKHBwpXomIYeXqpUUuT8LrdtxZSsWJ4R4CU1un4XGh5Ez3nlTpw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1242,6 +1236,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -1250,9 +1245,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", + "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", "dev": true, "funding": [ { @@ -1262,13 +1257,19 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "baseline-browser-mapping": "^2.8.25", + "caniuse-lite": "^1.0.30001754", + "electron-to-chromium": "^1.5.249", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" @@ -1282,6 +1283,7 @@ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } @@ -1290,13 +1292,15 @@ "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, + "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1306,14 +1310,15 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001478", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001478.tgz", - "integrity": "sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw==", + "version": "1.0.30001757", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001757.tgz", + "integrity": "sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==", "dev": true, "funding": [ { @@ -1328,13 +1333,15 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1351,14 +1358,15 @@ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { @@ -1366,21 +1374,24 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" }, "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, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -1395,22 +1406,25 @@ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" } }, "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "dev": true, + "license": "MIT" }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1422,25 +1436,51 @@ "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, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/convert-source-map": { "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1451,12 +1491,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.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1468,16 +1509,26 @@ } }, "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1487,30 +1538,34 @@ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/electron-to-chromium": { - "version": "1.4.361", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.361.tgz", - "integrity": "sha512-VocVwjPp05HUXzf3xmL0boRn5b0iyqC7amtDww84Jb1QJNPBc7F69gJyEeXRoriLBC4a5pSyckdllrXAg4mmRA==", - "dev": true + "version": "1.5.263", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.263.tgz", + "integrity": "sha512-DrqJ11Knd+lo+dv+lltvfMDLU27g14LMdH2b0O3Pio4uk0x+z7OR+JrmyacTPN2M8w3BrZ7/RTwG3R9B7irPlg==", + "dev": true, + "license": "ISC" }, "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, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1522,22 +1577,25 @@ "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, + "license": "MIT" }, "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==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1547,6 +1605,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1556,6 +1615,7 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -1569,6 +1629,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -1597,16 +1658,17 @@ } }, "node_modules/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -1616,13 +1678,15 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } @@ -1632,6 +1696,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1644,6 +1709,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -1656,14 +1722,16 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1673,16 +1741,21 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -1692,6 +1765,7 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -1701,6 +1775,7 @@ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -1710,6 +1785,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -1721,7 +1797,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1737,62 +1815,59 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/graceful-fs": { "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 - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } + "license": "ISC" }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/html-escaper": { "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, + "license": "MIT" }, "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, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -1812,6 +1887,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -1820,7 +1896,9 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1830,21 +1908,27 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/is-arrayish": { "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, + "license": "MIT" }, "node_modules/is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1855,6 +1939,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -1864,6 +1949,7 @@ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1873,6 +1959,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -1882,6 +1969,7 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -1893,45 +1981,62 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "semver": "^7.5.4" }, "engines": { - "node": ">=8" + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/istanbul-lib-source-maps": { @@ -1939,6 +2044,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -1949,10 +2055,11 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -1962,15 +2069,16 @@ } }, "node_modules/jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", - "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/core": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.5.0" + "jest-cli": "^29.7.0" }, "bin": { "jest": "bin/jest.js" @@ -1988,12 +2096,14 @@ } }, "node_modules/jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" }, "engines": { @@ -2001,28 +2111,29 @@ } }, "node_modules/jest-circus": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", - "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" @@ -2032,22 +2143,22 @@ } }, "node_modules/jest-cli": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", - "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/core": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" }, "bin": { @@ -2066,31 +2177,32 @@ } }, "node_modules/jest-config": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", - "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.5.0", - "@jest/types": "^29.5.0", - "babel-jest": "^29.5.0", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -2111,25 +2223,27 @@ } }, "node_modules/jest-diff": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, + "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -2138,62 +2252,66 @@ } }, "node_modules/jest-each": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", - "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.5.0", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-environment-node": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", - "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" }, @@ -2205,46 +2323,49 @@ } }, "node_modules/jest-leak-detector": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", - "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, + "license": "MIT", "dependencies": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "version": "29.7.0", + "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, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "version": "29.7.0", + "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, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -2253,14 +2374,15 @@ } }, "node_modules/jest-mock": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", - "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.5.0" + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -2271,6 +2393,7 @@ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -2284,26 +2407,28 @@ } }, "node_modules/jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-resolve": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", - "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" @@ -2313,43 +2438,45 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", - "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "license": "MIT", "dependencies": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.5.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-runner": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", - "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/console": "^29.5.0", - "@jest/environment": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-resolve": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-util": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -2358,31 +2485,32 @@ } }, "node_modules/jest-runtime": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", - "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/globals": "^29.5.0", - "@jest/source-map": "^29.4.3", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -2391,59 +2519,43 @@ } }, "node_modules/jest-snapshot": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", - "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.5.0", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.5.0", - "semver": "^7.3.5" + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -2451,19 +2563,14 @@ "node": ">=10" } }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -2475,17 +2582,18 @@ } }, "node_modules/jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.5.0" + "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" @@ -2496,6 +2604,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2504,18 +2613,19 @@ } }, "node_modules/jest-watcher": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", - "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "string-length": "^4.0.1" }, "engines": { @@ -2523,13 +2633,14 @@ } }, "node_modules/jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -2542,6 +2653,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -2556,13 +2668,15 @@ "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, + "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -2572,28 +2686,31 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-parse-even-better-errors": { "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, + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -2606,6 +2723,7 @@ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2615,6 +2733,7 @@ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2623,13 +2742,15 @@ "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, + "license": "MIT" }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -2642,23 +2763,38 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "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, + "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10" } }, "node_modules/makeerror": { @@ -2666,6 +2802,7 @@ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } @@ -2674,15 +2811,17 @@ "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, + "license": "MIT" }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -2694,6 +2833,7 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2703,6 +2843,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2711,34 +2852,39 @@ } }, "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/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-int64": { "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, + "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", - "dev": true + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2748,6 +2894,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -2760,6 +2907,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -2769,6 +2917,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -2784,6 +2933,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -2799,6 +2949,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -2811,6 +2962,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -2826,6 +2978,7 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2835,6 +2988,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -2853,6 +3007,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2862,6 +3017,7 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2871,6 +3027,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2879,19 +3036,22 @@ "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, + "license": "MIT" }, "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", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -2900,10 +3060,11 @@ } }, "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } @@ -2913,6 +3074,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -2936,12 +3098,13 @@ } }, "node_modules/pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -2954,6 +3117,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2966,6 +3130,7 @@ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -2975,9 +3140,9 @@ } }, "node_modules/pure-rand": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz", - "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -2988,36 +3153,43 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ] + ], + "license": "MIT" }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3027,6 +3199,7 @@ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -3039,24 +3212,27 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -3066,6 +3242,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -3078,6 +3255,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3086,19 +3264,22 @@ "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, + "license": "ISC" }, "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, + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3108,6 +3289,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -3117,6 +3299,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -3126,13 +3309,15 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -3145,6 +3330,7 @@ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -3158,6 +3344,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3172,6 +3359,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3184,6 +3372,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3193,6 +3382,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -3202,6 +3392,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -3214,6 +3405,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3226,6 +3418,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3238,6 +3431,7 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -3251,22 +3445,15 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": 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, - "engines": { - "node": ">=4" - } + "license": "BSD-3-Clause" }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -3279,6 +3466,7 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -3288,6 +3476,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -3295,10 +3484,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", "dev": true, "funding": [ { @@ -3308,44 +3504,45 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" } }, "node_modules/v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" + "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, "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, + "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } @@ -3355,6 +3552,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -3370,6 +3568,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -3386,13 +3585,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -3406,6 +3607,7 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -3414,13 +3616,15 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -3439,6 +3643,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } @@ -3448,6 +3653,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -3457,267 +3663,142 @@ } }, "dependencies": { - "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, "@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "requires": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" } }, "@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true }, "@babel/core": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", - "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.4", - "@babel/helper-compilation-targets": "^7.21.4", - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.4", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.4", - "@babel/types": "^7.21.4", - "convert-source-map": "^1.7.0", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - } + "json5": "^2.2.3", + "semver": "^6.3.1" } }, "@babel/generator": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", - "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "dev": true, "requires": { - "@babel/types": "^7.24.5", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" } }, "@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" } }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true }, - "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, "@babel/helper-module-imports": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz", - "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, "requires": { - "@babel/types": "^7.21.4" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" } }, "@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" } }, "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", - "dev": true, - "requires": { - "@babel/types": "^7.24.5" - } - }, "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true }, "@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" } }, - "@babel/highlight": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", + "@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.24.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "@babel/types": "^7.28.5" } }, - "@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", - "dev": true - }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -3745,6 +3826,24 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.27.1" + } + }, "@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -3764,12 +3863,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.27.1" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -3826,6 +3925,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, "@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", @@ -3836,52 +3944,48 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", - "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.27.1" } }, "@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" } }, "@babel/traverse": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", - "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" } }, "@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" } }, "@bcoe/v8-coverage": { @@ -3910,124 +4014,124 @@ "dev": true }, "@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0" } }, "@jest/core": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", - "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "requires": { - "@jest/console": "^29.5.0", - "@jest/reporters": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "ci-info": "^3.2.0", "exit": "^0.1.2", "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" } }, "@jest/environment": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", - "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "requires": { - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0" + "jest-mock": "^29.7.0" } }, "@jest/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "requires": { - "expect": "^29.5.0", - "jest-snapshot": "^29.5.0" + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" } }, "@jest/expect-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", - "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, "requires": { - "jest-get-type": "^29.4.3" + "jest-get-type": "^29.6.3" } }, "@jest/fake-timers": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", - "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", "@types/node": "*", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "@jest/globals": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", - "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "requires": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/types": "^29.5.0", - "jest-mock": "^29.5.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" } }, "@jest/reporters": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", - "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "@types/node": "*", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", @@ -4035,13 +4139,13 @@ "glob": "^7.1.3", "graceful-fs": "^4.2.9", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "slash": "^3.0.0", "string-length": "^4.0.1", "strip-ansi": "^6.0.0", @@ -4049,66 +4153,66 @@ } }, "@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, "requires": { - "@sinclair/typebox": "^0.25.16" + "@sinclair/typebox": "^0.27.8" } }, "@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.15", + "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", "graceful-fs": "^4.2.9" } }, "@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "requires": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "requires": { - "@jest/test-result": "^29.5.0", + "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "slash": "^3.0.0" } }, "@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", "babel-plugin-istanbul": "^6.1.1", "chalk": "^4.0.0", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", "micromatch": "^4.0.4", "pirates": "^4.0.4", "slash": "^3.0.0", @@ -4116,12 +4220,12 @@ } }, "@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, "requires": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", @@ -4130,38 +4234,41 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true + "@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } }, - "@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==", + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true }, "@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==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true }, "@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==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.1.0", @@ -4169,33 +4276,33 @@ } }, "@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", + "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 }, "@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", - "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "requires": { - "@sinonjs/commons": "^2.0.0" + "@sinonjs/commons": "^3.0.0" } }, "@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "requires": { "@babel/parser": "^7.20.7", @@ -4206,18 +4313,18 @@ } }, "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, "requires": { "@babel/types": "^7.0.0" } }, "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -4225,78 +4332,75 @@ } }, "@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, "requires": { - "@babel/types": "^7.3.0" + "@babel/types": "^7.28.2" } }, "@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "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, "requires": { "@types/node": "*" } }, "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "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 }, "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "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, "requires": { "@types/istanbul-lib-coverage": "*" } }, "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", - "dev": true - }, - "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true + "version": "24.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", + "dev": true, + "requires": { + "undici-types": "~7.16.0" + } }, "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true }, "@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "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 }, "ansi-escapes": { @@ -4343,15 +4447,15 @@ } }, "babel-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", - "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", + "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, "requires": { - "@jest/transform": "^29.5.0", + "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", + "babel-preset-jest": "^29.6.3", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "slash": "^3.0.0" @@ -4368,12 +4472,27 @@ "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + } } }, "babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "version": "29.6.3", + "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, "requires": { "@babel/template": "^7.3.3", @@ -4383,32 +4502,35 @@ } }, "babel-preset-current-node-syntax": { - "version": "1.0.1", - "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==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" } }, "babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^29.5.0", + "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -4418,10 +4540,16 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "baseline-browser-mapping": { + "version": "2.8.32", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.32.tgz", + "integrity": "sha512-OPz5aBThlyLFgxyhdwf/s2+8ab3OvT7AdTNvKHBwpXomIYeXqpUUuT8LrdtxZSsWJ4R4CU1un4XGh5Ez3nlTpw==", + "dev": true + }, "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -4438,15 +4566,16 @@ } }, "browserslist": { - "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", + "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" + "baseline-browser-mapping": "^2.8.25", + "caniuse-lite": "^1.0.30001754", + "electron-to-chromium": "^1.5.249", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.1.4" } }, "bser": { @@ -4477,9 +4606,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001478", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001478.tgz", - "integrity": "sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw==", + "version": "1.0.30001757", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001757.tgz", + "integrity": "sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==", "dev": true }, "chalk": { @@ -4499,15 +4628,15 @@ "dev": true }, "ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true }, "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", "dev": true }, "cliui": { @@ -4528,9 +4657,9 @@ "dev": true }, "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", "dev": true }, "color-convert": { @@ -4560,10 +4689,25 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "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, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + } + }, "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "requires": { "path-key": "^3.1.0", @@ -4572,19 +4716,20 @@ } }, "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", + "dev": true, + "requires": {} }, "deepmerge": { "version": "4.3.1", @@ -4599,15 +4744,15 @@ "dev": true }, "diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true }, "electron-to-chromium": { - "version": "1.4.361", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.361.tgz", - "integrity": "sha512-VocVwjPp05HUXzf3xmL0boRn5b0iyqC7amtDww84Jb1QJNPBc7F69gJyEeXRoriLBC4a5pSyckdllrXAg4mmRA==", + "version": "1.5.263", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.263.tgz", + "integrity": "sha512-DrqJ11Knd+lo+dv+lltvfMDLU27g14LMdH2b0O3Pio4uk0x+z7OR+JrmyacTPN2M8w3BrZ7/RTwG3R9B7irPlg==", "dev": true }, "emittery": { @@ -4623,18 +4768,18 @@ "dev": true }, "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==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true }, "escape-string-regexp": { @@ -4673,16 +4818,16 @@ "dev": true }, "expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "requires": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" } }, "fast-json-stable-stringify": { @@ -4726,16 +4871,16 @@ "dev": true }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true }, "gensync": { @@ -4776,33 +4921,27 @@ "path-is-absolute": "^1.0.0" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, "graceful-fs": { "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 }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -4816,9 +4955,9 @@ "dev": true }, "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -4854,12 +4993,12 @@ "dev": true }, "is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, "requires": { - "has": "^1.0.3" + "hasown": "^2.0.2" } }, "is-fullwidth-code-point": { @@ -4893,32 +5032,40 @@ "dev": true }, "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true }, "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "semver": "^7.5.4" + }, + "dependencies": { + "semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true + } } }, "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" } }, @@ -4934,9 +5081,9 @@ } }, "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -4944,227 +5091,227 @@ } }, "jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.5.0.tgz", - "integrity": "sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "requires": { - "@jest/core": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", "import-local": "^3.0.2", - "jest-cli": "^29.5.0" + "jest-cli": "^29.7.0" } }, "jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "requires": { "execa": "^5.0.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0" } }, "jest-circus": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", - "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "requires": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "dedent": "^0.7.0", + "dedent": "^1.0.0", "is-generator-fn": "^2.0.0", - "jest-each": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "p-limit": "^3.1.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "pure-rand": "^6.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-cli": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", - "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "requires": { - "@jest/core": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", + "create-jest": "^29.7.0", "exit": "^0.1.2", - "graceful-fs": "^4.2.9", "import-local": "^3.0.2", - "jest-config": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "prompts": "^2.0.1", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "yargs": "^17.3.1" } }, "jest-config": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", - "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "requires": { "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.5.0", - "@jest/types": "^29.5.0", - "babel-jest": "^29.5.0", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", "chalk": "^4.0.0", "ci-info": "^3.2.0", "deepmerge": "^4.2.2", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "micromatch": "^4.0.4", "parse-json": "^5.2.0", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" } }, "jest-diff": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, "jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", - "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.5.0", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" } }, "jest-environment-node": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", - "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "requires": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" } }, "jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true }, "jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.3.2", "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" } }, "jest-leak-detector": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", - "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "requires": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, "jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", + "version": "29.7.0", + "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, "requires": { "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, "jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", + "version": "29.7.0", + "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, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.9", "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", + "pretty-format": "^29.7.0", "slash": "^3.0.0", "stack-utils": "^2.0.3" } }, "jest-mock": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", - "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.5.0" + "jest-util": "^29.7.0" } }, "jest-pnp-resolver": { @@ -5175,161 +5322,140 @@ "requires": {} }, "jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true }, "jest-resolve": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", - "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "requires": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", + "jest-haste-map": "^29.7.0", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", "resolve": "^1.20.0", "resolve.exports": "^2.0.0", "slash": "^3.0.0" } }, "jest-resolve-dependencies": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", - "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "requires": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.5.0" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" } }, "jest-runner": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", - "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "requires": { - "@jest/console": "^29.5.0", - "@jest/environment": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.13.1", "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-resolve": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-util": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" } }, "jest-runtime": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", - "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", - "dev": true, - "requires": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/globals": "^29.5.0", - "@jest/source-map": "^29.4.3", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" } }, "jest-snapshot": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", - "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "requires": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", "@babel/plugin-syntax-jsx": "^7.7.2", "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^29.5.0", + "expect": "^29.7.0", "graceful-fs": "^4.2.9", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", "natural-compare": "^1.4.0", - "pretty-format": "^29.5.0", - "semver": "^7.3.5" + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.4.0.tgz", - "integrity": "sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true } } }, "jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -5338,17 +5464,17 @@ } }, "jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "requires": { - "@jest/types": "^29.5.0", + "@jest/types": "^29.6.3", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", + "jest-get-type": "^29.6.3", "leven": "^3.1.0", - "pretty-format": "^29.5.0" + "pretty-format": "^29.7.0" }, "dependencies": { "camelcase": { @@ -5360,29 +5486,29 @@ } }, "jest-watcher": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", - "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "requires": { - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.13.1", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "string-length": "^4.0.1" } }, "jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "requires": { "@types/node": "*", - "jest-util": "^29.5.0", + "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -5405,9 +5531,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -5415,9 +5541,9 @@ } }, "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true }, "json-parse-even-better-errors": { @@ -5469,12 +5595,20 @@ } }, "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "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, "requires": { - "semver": "^6.0.0" + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true + } } }, "makeerror": { @@ -5493,12 +5627,12 @@ "dev": true }, "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "requires": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" } }, @@ -5518,9 +5652,9 @@ } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "natural-compare": { @@ -5536,9 +5670,9 @@ "dev": true }, "node-releases": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", - "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true }, "normalize-path": { @@ -5646,9 +5780,9 @@ "dev": true }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, "picomatch": { @@ -5658,9 +5792,9 @@ "dev": true }, "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true }, "pkg-dir": { @@ -5679,12 +5813,12 @@ "dev": true }, "pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "requires": { - "@jest/schemas": "^29.4.3", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, @@ -5708,15 +5842,15 @@ } }, "pure-rand": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz", - "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true }, "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "require-directory": { @@ -5726,12 +5860,12 @@ "dev": true }, "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "dev": true, "requires": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -5752,15 +5886,15 @@ "dev": true }, "resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true }, "shebang-command": { @@ -5907,12 +6041,6 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "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 - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5934,33 +6062,31 @@ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, + "undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true + }, "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", "dev": true, "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" } }, "v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "dependencies": { - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - } + "convert-source-map": "^2.0.0" } }, "walker": { @@ -6021,9 +6147,9 @@ "dev": true }, "yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { "cliui": "^8.0.1", diff --git a/package.json b/package.json index 159d018d..8c328e01 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "homepage": "https://github.com/CodeYourFuture/Module-JS3#readme", "devDependencies": { - "jest": "^29.5.0", + "jest": "^29.7.0", "prettier": "^2.8.7" } } From 31fa600e6534ecfd320d5ac34347ad442900804a Mon Sep 17 00:00:00 2001 From: Baba05206 Date: Mon, 15 Dec 2025 22:24:09 +0000 Subject: [PATCH 2/9] Fix various issues in book library functionality and improve code quality --- debugging/book-library/script.js | 77 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 39 deletions(-) diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 75ce6c1d..f7dee943 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -1,22 +1,22 @@ let myLibrary = []; -window.addEventListener("load", function (e) { +window.addEventListener("load", function () { populateStorage(); render(); }); function populateStorage() { - if (myLibrary.length == 0) { - let book1 = new Book("Robison Crusoe", "Daniel Defoe", "252", true); + if (myLibrary.length === 0) { + let book1 = new Book("Robinson Crusoe", "Daniel Defoe", 252, true); let book2 = new Book( "The Old Man and the Sea", "Ernest Hemingway", - "127", + 127, true ); + myLibrary.push(book1); myLibrary.push(book2); - render(); } } @@ -25,22 +25,20 @@ const author = document.getElementById("author"); const pages = document.getElementById("pages"); const check = document.getElementById("check"); -//check the right input from forms and if its ok -> add the new book (object in array) -//via Book function and start render function +// Add a new book function submit() { - if ( - title.value == null || - title.value == "" || - pages.value == null || - pages.value == "" - ) { + if (!title.value || !author.value || !pages.value) { alert("Please fill all fields!"); - return false; - } else { - let book = new Book(title.value, title.value, pages.value, check.checked); - library.push(book); - render(); + return; } + + // FIXED: author was incorrectly set to title.value + let book = new Book(title.value, author.value, pages.value, check.checked); + + // FIXED: wrong variable name (library → myLibrary) + myLibrary.push(book); + + render(); } function Book(title, author, pages, check) { @@ -53,51 +51,52 @@ function Book(title, author, pages, check) { function render() { let table = document.getElementById("display"); let rowsNumber = table.rows.length; - //delete old table - for (let n = rowsNumber - 1; n > 0; n-- { + + // FIXED: missing parenthesis + for (let n = rowsNumber - 1; n > 0; n--) { table.deleteRow(n); } - //insert updated row and cells - let length = myLibrary.length; - for (let i = 0; i < length; i++) { + + for (let i = 0; i < myLibrary.length; i++) { let row = table.insertRow(1); + let titleCell = row.insertCell(0); let authorCell = row.insertCell(1); let pagesCell = row.insertCell(2); let wasReadCell = row.insertCell(3); let deleteCell = row.insertCell(4); + titleCell.innerHTML = myLibrary[i].title; authorCell.innerHTML = myLibrary[i].author; pagesCell.innerHTML = myLibrary[i].pages; - //add and wait for action for read/unread button + // READ / UNREAD BUTTON let changeBut = document.createElement("button"); - changeBut.id = i; changeBut.className = "btn btn-success"; - wasReadCell.appendChild(changeBut); - let readStatus = ""; - if (myLibrary[i].check == false) { - readStatus = "Yes"; - } else { - readStatus = "No"; - } - changeBut.innerText = readStatus; + + // FIXED: logic was reversed + changeBut.innerText = myLibrary[i].check ? "Yes" : "No"; changeBut.addEventListener("click", function () { myLibrary[i].check = !myLibrary[i].check; render(); }); - //add delete button to every row and render again + wasReadCell.appendChild(changeBut); + + // DELETE BUTTON let delButton = document.createElement("button"); - delBut.id = i + 5; - deleteCell.appendChild(delBut); - delBut.className = "btn btn-warning"; - delBut.innerHTML = "Delete"; - delBut.addEventListener("clicks", function () { + delButton.className = "btn btn-warning"; + delButton.innerHTML = "Delete"; + + // FIXED: wrong variable name (delBut → delButton) + // FIXED: wrong event name ("clicks" → "click") + delButton.addEventListener("click", function () { alert(`You've deleted title: ${myLibrary[i].title}`); myLibrary.splice(i, 1); render(); }); + + deleteCell.appendChild(delButton); } } From a39e8b6b1f1af9fad75806b2871ea01828dd0465 Mon Sep 17 00:00:00 2001 From: Baba05206 Date: Tue, 16 Dec 2025 22:29:30 +0000 Subject: [PATCH 3/9] chore: add book-library screenshots from automated capture --- .../book-library/screenshots/after-submit.png | Bin 0 -> 26545 bytes debugging/book-library/screenshots/form.png | Bin 0 -> 22778 bytes debugging/book-library/screenshots/full.png | Bin 0 -> 20006 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 debugging/book-library/screenshots/after-submit.png create mode 100644 debugging/book-library/screenshots/form.png create mode 100644 debugging/book-library/screenshots/full.png diff --git a/debugging/book-library/screenshots/after-submit.png b/debugging/book-library/screenshots/after-submit.png new file mode 100644 index 0000000000000000000000000000000000000000..55920a4b7caa410d44b3255fd5f8ef0997140101 GIT binary patch literal 26545 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
    G@Awai!{sD;9yi zdi=5CM>$$vtO-O?v3*EcPvO_C{jOD`i9^(N9ucDaa^8bH(+Ruo@4QDqsdNAoeah)^Nvs5En%1B*rbNy-lx~iH$l(q(5!YI?S&l*Dgd;9mt z_=5L_2Vd9x#YnG?w8GHUkQfDNxBmv{89##MpGMuT zkXV3Y+JCmxA18kQyx$|^{>%0oG{yT!F00LpdlwPnrtP;C!4#5b`z?FojDhT<<}I|j z-o3}TOBF7Mc!6g1c8Z^i$n=8aK4a_6HT5f_Ub-SMj?kUb%B_6T4c5|b3lYJL)Wm0r z3irp7kJ$xK@f#P}R9?TZ`)xknGpM08wQsKLvG?pLAWoeYK%o+;otvZSbuW_Z-qMz_ zEkE$@-YPecWF!@xWy>LEs4s-LUuz5$I`J^K;$A!K(1`drEFZ=*D`DiIhGF~)lDkF3 z=0j8~UUWA$EOcmN0>o}UYP2oSxw_p9TPm!!zwANG&4@6!VbvR;Q$^Ndboy>_1p9ta zx|$Gl(<|Xs+>04>x~1FjPGoBnJkr&f#2e0T5wys2;~Wb*;yXH4KwU?QJCfLaeXW%pdn(-fw!vr2wMeqgcOXAujCijzy7QAzL8AU++a{b-?3G7-l~yXvgxxkQhJl2 zS<6Uw%THZ`_n^F-mElUcJFf6X-UY#$_!~w84djhPLv!gP4^prW{`Zs4?3(m2#>7 z+#Xqz`zeQyZQ=Xw4oyODkwX%B|G6*>W4!Zwzs*5Qm}_Lz(P_oaUOut-co8PQd!u}g zKO}Eu)ghIyN!azb!Z28N7J3@#~+gTy8ZQ zx+JG|v*VdZ6<)tz4%RlK)7{-1ah!+1&QmQ$DKjfBO$ai8iPGbCi~2OVoDg=22NXL5 zAw-(qw>C1HH}(*&`+cPT(ZP?jTRTAVjYo6lJgL^!u zSm+Nm13;q(LGk~d18$)_*@v%@6eRaa^Bnfr5&n`%<<~c{wI-R2ee`C1$zmn?_2?Sa z^Ccy1YZlh@2~Iis_059-S00*d8EzUlisjVBZRii` z1HzBzFa3{`pbTNS=lIN!q~WWI1kMD=5X)&^O1b&Bz|GDZF8BdzbUWok!TT>eDmE^paCX$$trU0MbpdqZ%e z1sH~uIgaXt_g^jg`o(xS8RXZ;N6EgS7)e^f-lLYSMvU-58JAU9LU`zb6IGa9@C^LQkKIvYqmhMPAckoUS_?+0sz-M-q z_CN9rDtg)#G_dGGWiS@bCn<@3eaD%kIpkXuw>g=3yzfS=*d*be(1!QIZLXJKOFw?@ z7XlASHPrnUciJditj&^PgvFVnT^S5Wxev)b(FsL`BUM$l(8v|oz#xGU+4+J-czoz! zD_K*7p=EP{-R82@01%NynArI|Y9=~n?K&ve5%j&fs!qcKoWUrwphKwu*Lm_UfLC!g zv#hJKp88$jB}XIk&flQBF`JG0A4G0YTx2y;Iw`pOYb`^|fy|5zU8}SVYS;SW=LkkL z!%Xz>aQ_eU)znU_6#G{xiO{hEURStUDmh0&!*wDdTF!$fmkzAdU<;5WGOjck*VD|8 zdbCl~#%@eaZ|tH{otIz+;vY*YLu~wpR$6n4ge=rC$4yW2G<7TZnknZI?ap0kstPA1c{Cglh!g=5|=a-A!i)nl!C8ks9W){97hr3d99EFCJ z^KIzCgp+vAY5lqa+c}EUUB>JwL$2y-+oDMK(>Tt9CgKf_SLLBs|I5@*8H0ATmZtfl z!eF^|PJ2G#v7E|J)&o1cylpOvgP#oDtSr+UKPNyqWHBoab;HuG9A*%K{h>I^SDK8G z%I0>XwT+I>n(J4urJY&M$~@n+cz4AP`%(N1*r>{j6#K??Adxj~!PY5G8YOtxDwq(}Zeo(iwM zV|MG^W=gNXZF(gjgGXfYj_@w@>fcH29XG7clW+|<8C}u;Cn+iOe5AvBOM^rqmwtd> zXWUgM@fVe7b49z6$6CoaF2Qg5-Ij56%rcM*jml{_$Khaa))ompnWuC<1bE6{z(|_571J z#79;c7ZqVhxyj&yWi_6+H}%PBVDI(nN=|WHSw_iV9y9<=sjMPZP0g2%qBuF%W5dw4 zUv-u$l$jzY3%HU*9SkhW`t6rCl$mVe`~ad7m9JxNUq))x()REfK=g;b&{8M5;vXYj zSvaJJVoVx}l>_|q482Vg7DFu^KyPwBSlv)0tMgyD*ls0j$djci@wKYuZ!*;zT+aK+pr$?=}C ziNR3WKQFyrc@GupNMVlm$7ZCxYEJXInumc|s)?&Q4<*r~_Z6MIkOKPV^*Q`qaJ8aJ zU*Tn%vESo{UzyXchWizMuePC_>q_y85ie!?+uC8Sem-gSSmUfl+S8#@$l8wYZ`IEu zY4Os0Ylgd8Dl!zFxQj)JGTcOQ74mvq(SX!OfYZkNz>JHYIAWluD*{oXi0qzF`OE#S^fUnf$-_N{D{E%8-CQYw5S1g z2*>JfU{9au`Yp-zx4iouRh6(54MFFPvDtD~pAzu8XJuo)=B~W!vt$nwuZQ_1{!Ie# zmzRL<-)<;2=@+gJ>)-s*iSDWF5Z~457y7G8XhM*-y$-e)siF%IUjOZT0mIyza0;(b zPZvW^rvL8anYR64ut!e1?^uPa%-VF|Ci{n;OBWNGyO$kf=%NS&H%#$ibnU+DWr;TJ zLX-Fm@jJDqCS;1F{S5KGdZF{8?M24yM5EX-LkI35;a}5UG6G`eHw#yvl(v_?2qsN5 zFPpl)P&QL{trmCkbRL;D@|%)8C!?9Em*HqAX#=F>hqn)}KS43P=Dq41rTOxuSmLd0)5}@I2!(c08y^#vRY}|#6U28&4 zQ`X4BCp<+{O`E2pdAW&}UoqVw$s#g4O)1IwI=-yWF^kcA8~$zQNOau?Rd8V4K`^Yi z@U~fRceQZ1OXD&v5~CQN<`Dh$WiTeh&c5A2>6_c)YK6o)*ic9jJyQlV_fYfOafZ6p zKxHI?SJttn{(ECg$6GbENfc3u^mt-}94rI^-^|l)Fs}A-m`i%n6CimcCg2t1xAB%a zlkGmaJJRQ8Ms{4jc3swbG#UnTu!cCg2R4=n&jgG^_!E}+i4e-t3$WLb3(VjxA-|b`ec=+ z`kn=S|Lvu|8pDsB`=@YP!8{GcN`51gd8Iou!0y>o<4W-SYEq-kWOZTC3=buHcZ?;H z>1Hr#Sw)?{QNCedq9@~BPJ^fPV6YTvaBHdX<7vUyQ^ zuh0szhlyg&3)i?O{TA$IWL{W9J-qyBiV2u0kI&|?3Xfz*Ooa@(yLaUDy-yzGX@V;?^vdW?9oOgB2AwLa$qH2*lf%=FJ*9|LXhq8|E9_({|lpW~e;K|c5d?k<00ae0x-VdUE)GF07H~1Cot8V#0^+V(k9`*Vi@IG=Pxl`OBIu z&862r0LZ0{h3q!WEPLy3=xd)2Aw2`)sC)IIc9wZLFK#dVt3HLIYm_N1T%o569BBcu z-Eh)^;~Vsps3kHP2wNNL@;zIQSP|7~{=ai)|JmwRX)Z|OyjJF6jJbo`xC^<4{@?XG z%XU`*UHN~ir~XgFum7VMj%$CXd+Ag*u+0t#*>3`Wyp1_sH~)q&jy(VMGGxYqx)ed( zIshZaZ;m(rB`!=~2MiNs9a35(x9-X#eT3jNrSjDuWO&S5QkBGo)5%jhyZc$Q|1h6+ zQ<>6m9(3!n>W%cOJ)8BgJCS$Gwx$G-F+war8YF_1iE_`_$=H7>`;$YH4bTVr3#wzk zZ>fgyXg*#)9cUmVQ!%(fzp{}7xh4gilm~|TCUrr(`MLOLb^dg&)Z-X=l?AO`;FK-s zd#{*(_`Mx$wim+2{Q>`~uS6xywue*^XrJ1J7al0yDsPH~r(sgB` zi8sf^4I>E14#>NrWd}>0&9Kj1@&#BpBBx{im9i1lqp#T}oyt;{Y#ASD?;6|^Hau7} zzF(Yk`z5PEh4{2}2k@1LVH58qO`*62aW$uGO;;DXOL`D&h{n=pH`gln%aROFleVsV z1=r17F2p;Jj0{b^Cc;hozk@AYD2uU?id^F-3Gb0(qoyIXD_01qk6xw@tgP^YA4S-! z=Njx{iXoNjuXZO#KQX$S9CC$c;;KUdbyDzmOz`{okZyJ7-rR&$jDkjB&RSWVBCX3k zjdo#$I*J`5E=Uu*=H@qdD`UJyZu&At&wF|2tq^0LHV#$Pi6eZ!{>$_RlVbK_iIb%S zOkY+3VkoLwvLgU|9ASxkm)XrsvcU0)y0;k-T@NVw>W?>L=Pzkm7-zCi_t$?3+&%zK zD2()&HjNVc7Oq3c^+15(_rMLOUs%u%_6t#;{Icl5Y@qthysC01|Jjv?%9IZ*@}k~A zcdCy?i%WzkjzdFJzTYa!R_b>T6*KxI^L@09hAg-f?fFn<#siZ4RAmW0-D;=DemD_Q zh-nf^V9>;7?JnUTE~n(lF^%LQa~~~`!Z`0}R;87<{W^^`YmY0+LWo}o3$C?22!my!*vh*w zE(rd*NXJdLlrHty(enFgjHBb?bz=(;P50=f|LBi2SG`pX^GxB^f8=LUHieH^`HN1o zdGh89WB-a&J$A$fy5=mE6sXO>k}C6RD_`(dBPXu@?&%{ zuWF%Re`vXU(!LX zU1s=*sw1j{HfiY1qHD{ALE#z*dP~>az4%l*W-o1{YN}hk)v?GqSkhav(N7Ah9+zXsv6QzW6c?~K>G@luW%#(j zv4wVFf8)Vei6>E+m*HwrQMX_PW_VZ!{yiyh-=G228S{ImWenp)Tz=F4$wDgOj}8_h z{`jA4qapjcS=j@#;RVJ=0T#Z3-rw`l9X7Ujf~r)Mno2j#*jB|?(ZlqSy<)nQ)C*kl zKQE^QCUlg?1p2JSE0QsC_=i2u6ATQjw+k5TD$Qd~%BK-;VAU#;K|nJj<6B_sXYlZN{g zfGvw~`s>s6b8fDV>Nh#X3fA+xvIwost~$DcB4%H4C!MDF_;@)^ow2+|do8a3-(XVe z4xN;qYq>*z{#_$iZ;GFNAVlGryl;>9Jyl_I*wlNR`VIH=j{*4@|Bj1&j921BZ(EuE zocw5+^|fThD>HL-rfh&4SZ#MY1N=!`1}LWR@j4-u*W>r2Vt?q+`&%H30j5sG1nayp zp{u$wTgk!EeVOxde}$VK@h=O##XG4%rMwq@sW;5^{(#>=H|&0xru1E_KoTUyC-y(o zqR*43N%>k9vh_CbuN0vhNF+0x54kLl5j?Dw~hWQ|@6=lkM^d(|B=qWGf;9%KS; z-U4eEQ5)7v=Loo4o1E;*9!lcE0HeG%nro`eJDJhzqWY>0y3);j`l>i^96~Jz_uS06 zq;dJ7wjs_$w4p;Q&+z#DophHKJ;xg^nk8rBvClvG#Yx+fbAUbMvP#^h;_>7Nfax){ zwu8k94w;kWN=ey|mKHT%QKr(& zaYxIsDON#;X$$V_K#G9QDv-OWe^L2=Yv)X(*-FDWu61lZ!s((6M?2kU8=|ef38t1h zv}jcitr$zRXaz-VkvJ_8Q*>d3AcE0Yt70u0I+Pwt5lcjf(pVy~Z)p&7)6a9xOwaVw zoPNC@?uX~S_kG{r|M~wPE9PY=3P&^?VxV|W9;KyH@DyHp4dMQszP!!M1xSU{UJwyGK^nh8<*Iu5I$ASzS%V3x7Q@a{-F2%LGvSL=$@#}ldp8{o=Pz_y2{#`d}b zW#~Ac!ak=PGUe-xz|@;2H()Y;AEY4)Hx*FQSuW6*k;~cf&$ck+g2~Vz*QUI6pc2HY z(UEq_U_+{LLjlM(5d?>R2sLtoT4Aow^4Uz+m^X{->18lOLl}B;P#Jf0e3SO}dGOGk zp4zdB7#__>&-AE@ld!7OcZ#piYaOt`-8J@$&9Bs@I14pjW?w9(3^QkwrjXihdR4^X z-db2vd1;5}KxS?9SPP*;G0wski@<+hBU3GdPt1iTJsh)K4g+y^K3zql@epz!8Nb zN`8zOJeD38KdqE^*B)g6A1rri&P6%iaQ;9xLo8>9e!-WhGnU&r1}Nb0LcRh>s(;R> zo~-IdyMwQZwbYq+q73g{daDtQr!T8?WFM}qn+UiCYl?ah2B+ruY$~Q!HbnB**vCG4 z5LHGU1sL*AS_Famwl`ouMXHQHJ9LT*=lD9-KDJ7Bbvujo)7unk$;gS=zUbZ$WfLO!#9kP*e*UT|b3rH^{-TXyGNokal|0f#X9@ft#;UT$8^9VIJ!snQ;51nqm}ZdBWu;}TYN)uMdSO^u0d zM}qxAfdGrjFEqU6M67nBU+<(Gt4x)J-;FxOY!m=-l(&*ck&oyKJRd>-YL>gQ#s< zv)gl>1t^cS_1;u>TR4f7b7@NfznIKqZA(1MXjANg8h(twT2Q>n- zxJc}#k_YJ*(&hnhjA3MbG^?bZyM?Xg=oJZ?yFaMb>V6_wG?Cd$OT#2jFlx{d#1 zx{#~06OMZC*jWGI_SP1-gj`PthHTAK{5FT4h$4On5v_MlKmsPan}0Duot zt(e9|UW2yX>3o-0EPnt1e{0;jL|L7-idT9>Po3U#-m9U#JCawZGtA+-&dy4;_;Q)$pI(H-6u(@!+?~Z~wXB|FoC9Z_=K& z`7Sr&-eMIB`@YF9QCbGjCBsYURn`M8c^3ihXNxxh%l31)33J0}c2U>WGdeZhW}9=T z3jnDPxN^2e_VWO7ra?Yk+W4ouiK(8SZzKANo}6} z{#EtfkX%dq!=EI-m@qJy~av9vDpQCzl7za_k^U+lzH|x(eqS zn>CDWr37S#WJv!cw6$?F%!+>yzD0!i;myM}O|*<^HtJtnO$k%VB zpl7KaJM|THO);2~Oxeg9Y&mUX3j{V2N)?+o%iQ0sZS@5Cs;mU)kE1Jyh^8EAn<#l( zL^4uX1ONm?syz53+jJIt*t(nS9E{zMk7U?eA|iUg2@s0R`<0r41ls!de6+p`vc!@N z*=v5d_LIofpTYD_@S}njgZ*jHN&sZKW!DazeD1to6SC$;M4IxR&_#w6M}Y0l&n0&; z0zvPF7lTm{a9oq~>{V9w`DCy^rI}tgcyoU9*2-dx4|lTteMNPaKbD^~?fn5*7_J~z zw66|qI8;ptm@)?+?-2bWRc7ED1Cn>f-`&<-!U;2uzr#CCE{I^J1S8V~_Lc|*tWgeC zh^B->`bUd%h7Cu3oApk^g}t8xsvHRg4=)1lvkQg+yd`xZUI%_69os1-&$ePor8o{| zvK_jzUZJj3EV0cTzK6lZngw99ta{7RzId-GEE!}h| ziPoSXJndW+fhTpM>~QwQQK=%QU4N)ws2i9(D@ct;=na`>hBo1B^gqj%r@~>2Q z+hTKI{7?lZj9tFuU?OibLEkV0^|gR6uKaM)C4WDAQxu)$zZhQxMf@IU*Em$V#i6xq z=~Y96dy(zV&olraQnT+7U_p1V4o7+C>cDax_2J2F<^|$RjR7nMSPrhkhwsh76(`Iv zp&Wv3JM-=5*#nj&*^y2ysNIn5Bz@f(Ue zMMbkhYy2JIP4F;rJ%1HL)JajOx9(;y2REZcb|k0v`R1jajvEc=TP^_vZ(q5v?Ml!| zr}RBzEXoksh$z)0tc4fVD`0KyEhwdmU~IOn>5VR9t6u0>P&bNCWmvG!x+M$pwAT8^ zq$DMnPB`(NNuj$NrP&AWET?u}7=PMPZK&hg{X_!b{!&Br!nQ2|B!eom^)eZpu0BVf z>u}2K2ci;hq_Mi5>C3&}QJf(2IFs{O^Omd-N2F#;RvCmmnS9D&zYps&Hqb%duf^l|<4^*E-gQbmeu+No~5RoiYGME>L4vb1E#NZUXE&LYq+Bt&}1$FMj(9 zZHyG|oBI{oQ)lzK<3%ue9~E219Zx$a`XBn6CbwTWZ5Wzm|r&f>nE zN{ACc>7Tt>h=|{{oN#+Q6?IBE%g4lC1&nak-ncjdYhBopHjUPAIcOmhIQIBcn|8kC zY{itZzr}n_Bcm&eQGTnR+$u7C@aEVY{lEsEPHg%~U$v%U3n$plZJ~!SqXKgY!?I2> zW0ucGBbYB|cU=hsoIGmrO}4FlW|zS3?bmf5sz=t7e@wLPfh3y6BG~kPR+UfXxrfCc^(G~ zRrUTWkvI^(32()37PvauCLA8?dywyd9$p$Uj8SN_Txcg*SqVYCe}%*WMgpnve*ux8 z2yUKH2(BzMuPa_ZXnHs#uTa}nL5R2Q5gjg(`tERk+Y}ehU?_UJ+S&d1bjn4?U=8IH zcQ7pPj!218y{kj>A(o5ktOaKyLct(WKzkZ~bl~>QV(h%E`k`#LybDefEYLO)4BVs7 z%(m@M49~F{3kidlnIo%;fLgpazxjvH`t!Aoh%vep!b+r#vL zk(}%Nmy~#m(`9oj3Q*#bawq!GI*0=FeY&|KZ7*EsSmy^PyW%K>b1xfk+I)>P9==08Q?>)U;!fvL&crjoqas0aQHKj|rP%Q%hWX`Lfs!3X*@`#K;~i9;E%?U_aL?Zb*LDhAhxT~XS)apgjGRDjo7No15t z{|Vebdc_*B%|-Q@w;&d`*jDX+HO6YFE$}n-MYenT{W`$=o*NoMXb$NspQgjzb z_WVl#?$gv4^v7r&R)ASJxMmZ5-1wkF-IYIH*Q0@8zjJ4F zg=*X>o7Y@?DJ|P=KsJW@9*%6BRJ0!t_$`gh7|Q+upd#ehip5}}ez>7XL2g?qP3C!Z zpCRe|1wnTMI+*JXQmUv( zNOEl(QWcWyTwoX zPLeJ_CPL}T$lzWZnswKaC;Hxv&JUx^lM{l%@>9C8%fj&8Xl~PxX7O{$7R$vNLT4@4 zI|P_a(4SEU>O-s!@&sF7p4SX8M+n;_!@N85FxNivUcH{YAisTDKBHc`DTWYG4Hr|q z16nQ8q!DaseczMbaIjjSxDdGeOG_km&b>>e3EwMe98)`gl(XxktZkd+2AWZ1wcSLg zVe;lB7A-QZy9stCpMFsUIO?$)-34K&fnPWRv)Wz zyWp*ab4?C*Y2Tnn+MDU{rm_&y-f@5@dIugMTvQ3(r4WLA!M%2ieJADiqf>5TBrD7C zu7&aR)>4;O5ZuXd#ET|B^eWfaq*m|-YopBu3`Pgpc1PN9=QNNH+^iMZ8??0*!mx3P zt>fw#pGN=Aocb#tDyWoU+v3!H%6;3i%XKMy2bB{=XkT3ynKF}ywXq3VN;zqFk9jJ z5WeNdp$hGfhreF)s|>oN7SetesiWYKV`&&O;&1R@TELOMFu9im&8Fy6p0uyiYo%9i zAtr2YX3tThRdb?zI(w<^?h6=>5SR5zq!zJgPH)*c-QT;ae$wCjYwG(wk?-q^*_`5* z$clA+UwKogOUC1u81-{l3qL$?*4rTdPj;di4}D0>-OnQWl^7xWb4I??y+8%zh~bm> zo!yL=-W>bqZ15Xev+}nAQ*lpVmm}Z)s?fIB<*2OeQ(I!X^%~zYD-muokK!(G-+!$q zU$wsYgR|hMrjLf{THtu+!X{Jv`buZy6NgVOCs!|IJ5ixwb3!enQ27=Dx7RG^)d0RO zn85WpZRAlPedDn#eszpahM*j-et)pejGM1uI(L$9>}{&c^Zl^r-%!Vr!jJn5-KN4G za*ls=cl|XvRT$nf$Zw0z_o;0w&j#FQyU3{|8DFaqeibkDSNB6~JcIKFcUlWn&;iLO z9IeHAV&Z@<^l6Id$Sk)DRLuq*W@^JuGfH$9O>ho5`PPOLbgn*r;t+=Dt*0{a zy#>6;zy-rXWb-4fYhW~G-W-eXX>dNb^Z1Z7*f8YsMo#(|V{<9h8Q+-`nYX9t{!0B# z{~fy_;d<`ExoIs8M3)T z>%8Z+Um*RUKSjef+qBo7$xLW>omgL0*V_s^X{PIbL5)y@VkeXNm?Eo~5Gvt^w&HT! zu{OzZW=WZWM`O^CmKlRGavpEk06LHwXt_(DuGW`pcKsc|ESI)4#^J*EHsO@Ao-6G$ z?p5l2G!|L0%x`j~Fe08u#6VS}hod-BE>RycV zt{5xL0gPn+hVgGxqnKDuj;~CU25qqA2Xa@H40C~;0Qr%BY9EE5+-JhF$SG4*glV#G zU@MXemlnP%`~yCWDgQ^5`@d0%4D7A$y?^_+?5cH(X32vjOGS=Uc{L%dgX;!6ZfMQ= zxAOWo*V89gL)#eGh4xpXPB3A;6DgZb8~v8KK<>j41|6yqgH*iO2{z9GH# zP3j;sSFhCHh`s-$1jnlDtnTUpUd39e1%J1`o2bPSRA9MKyrfMzKRdG?TKy?j&qisP z6G_ksJ}%evQZLK3Qp@xkyFDY#y14D-h%L#P=^f8tIv#*i1{2)y&u5=Y<0d7Qp$VRB zERpTFvh^2qerj1KIfqkpRH+ntK^S^W+{<+ZOGnF~-MlK}ox6)@Pr&#YJuiX7sqYvb z67*|#dE>@J!@;l);Q*E%$8mVfng!7%)xI?_JV`kaG%s~+e{x5w>mwF>{iVRGq5qM3w|7iMsq#!G(ACUi%6v8 z9SiOj#_q=rHkk9uNMNQ&Ya^rXCQ@)Oja*8Sxnpg@26eJ8)V>7(WaqI}D@l<^3M);9 zm>2O5w*;;Wif*5*Y4V7Bj(G$#kdBs2(!Y{POYq9W?Z{X~370A2N!UC*$i?xB8_7>$ zh#Mn^+u6)ViFirsEzHjIx8W5*!izK5&h(t&BXmV0qr-tb*&Jyw|CtRQO!!famgR%s z&h((#7#IyZ0@+xc2@Q3&#!)up(Hf>q4hWI1Hh%Cr>v5V^@BELPsjo-F>g<|Ka&{R;6 zj&3g@EZ`l7CCRd0IILtkx_H`7iL>6uKwS2XPNCELzWgVi6Z*mAR(uoUy`S9C8ZwT} zXYqSbL*KJf^3J+KCERSv+`aeq@2KR?#r7$F)VntE65MGF_(ZQFVCTbJS4ESl1e8U! zEkpQGaK*~ZU@uTwKymJbBSIf~*K?qVcm9^hrDm~K4^1EYbS|fG3{>9j*8r3~z6ok^ zBR5EVG4Q=6YGFjGJt;7FI4(~3@lFg8p3cEvcvQ-jKrSCaNcjymKMCm6hi19!``%Lr zJB;6&vcAg8jqduAta!Az7ygv$B^lkyP+DNbsSLJd_oCY505pr5bp*_AytGJRr^ZF0 z=MVnd2}W$J``y6Hu{>yM)OD9)5V%36#_fx0aX1cYM7tl!c!ffZ;l*Ef>`{pUluOi@ z2xc>QAh)}Idsm3f;~6~RXXit{fQAH|T)oUq#-$vJp$ac*QQ(Ph1Va)xZi@h$`zH2 zhAtR}c<~E_nBUo>bZ6e)3=vjp%I8}hQ-vlTlHwFkk6v7`k7TgtB&~|Jh*E-G+=S?D zbxX_6XL&E)Xuw1C&-&PpsgAX?hlppU^o3b8zcMGFHsK%HkoRla8 z9Gbu$F zZuY;l08%vIOD&CAN(k%T5?r`V^00FDP|rM`i&Nr~Flwc@uCi_7%^gHf_bR7adb`Zu z{bb%G8wNEu^UQX?RKMpKYIIt*Ut>v|Dwl zPf{ThAZ{2h(P4F{XFpMqUBTno5h_)XuRKT4b(sv3Go$42ZM>+r@hR!{%Wjp8o}F-Y z8Li(EW;2>%c})lqz&{b=*Ayb&NRs0|Z~Ktq{WDv{B_Zf?@_tO;1!&2W?T-o`9iT#5 zQzFF)bE&EG_#-pBFI6t$>kgf8?^!P4f3aKEftL*F2&xa;=Zp(x*E9T_3LiNl3%EP%uoG# z*`!Xieym6}_z~EfyrT&W+ey%Ul%5jAc*l>jN@Ec0uMxn}ZS81W+07MI$k-%!Jyr>q zP^zl_*Su(IEi@zkk!0h`>i|%+$Zfp0gzWiNAeL^N|3pm$Q&i-ZApCiZ=kL9Tc#|50 zkpZ+Zc<;w*{`yi^s&LMFN?qCR>k0;K%mefJOUQCkcl*gD66!QlNt#nGIbdG-_I*T}8zbBxnEGa{r!r;ki|TGd?HeX&%BdZ@zlQ!y zU{+;7m1+N-JVpin7LLB42a4pn(MvEtQONvWk&vms+1@36lDjR#GcPEfNBsMZPY)NA z&x&z&xJ&5J z3qx!9L}c|s@=LYM5CfH0y#o|8S~wFrhM)n&>=E0hI06t9C=SML#RXNbyEe@;=ufMt zEa4y}BcJ1ewlk*{&g(ZoB7A~&ClIGnrflNS~}!|ro!dD;xDWEx*=~&%9AJvbcmc^&lA5} zx8Hl@Us}m-XVes%#p_-0evR)a@a#1Whc1=?WA?T)KE2; zepSqJwTLxS7B+`52-sJQ&slkU=M;WRVb zPWC4U-`6o;1ZZ^9!j~W#1;*o|EOcnW)AGTF8@6JY)JXgLD5b{Tx;>m*`|Eb^+Bexn zjd;W+%~hAT{z-m^H3IR0lOCNs#z(1sqjyMQ?dH@ICn$Ml`&xa!wgI}#JqFzpE#Z$9 znf(dea!rY^SF*JelFKOl7V7FaIthf%oGI_4)F(gcr#=%Q2WxBt90WHC!oftSztn!89f;)d(Uf1{FjrTH&Fx$k=oV0q#Hs7L!P zg50G-pugjo{yjBmBQDOA^GeFb76`J_Fns?yZP)8DffE^An;jV=jbxBTg>p&|A@^7m zZd*{)r2^3qS`;H8NbD_y`)wxM>eTLX#{s$F55R+K>MR-U2T%szm`CwHJN0k3vl#Md zjV%wWc~c%4l^9CdIjyH2vQde7b7;OxRaAb*m%`l8K0?@cs&*sKPaom!H5T(ZEuN|d zG)ESN5Vf{7nr8{#&9!f8dr@CmCz*arI}0jE2X@4c@ z>8|q2W8R4F9qKe*PpJzembpvKwrJ4H)`#x|j6KM-!^xLA?f6dFDSk$|jpwJ;=-NL0 zgK6LRXnI5&8x;i~(2HaWDZG%KIBP5-V|#Smm$QOgXz}Kk-jZptd}iKfJbi;^$jCI1 zdHX@pV4(Zf@uxYarD-1xp_XO-o0T6$4<7Zv>9z##HkbPbw`+C}+0`2c4Sg_atSlPn%|N6zS$~@;1%*$@G#P6s$}iQG>B?sWkEx{z<$JGm z7bQQ2*-mS-D(7|cY>_c~%+6)Cmo2+$Ud-_hIaSy^2p+x63KPz(&?0yiRK^RztKuCD z`>r`z)G)-ziYMyun?F9Ww%U4pzkY263$DRw;Qq444G$*l`e)RB5lj6>$^Eq?I5bXP z{IyZ~wqAG(H*+GuUEW`sX?(1F>Ka>?V`o6kN?+fn3j-U>H(Jk4u)-1zQKPzreuG1V zlcoMN?z{n!>DU)*uGjr+i-e%9fxcdA^3JAmA=nrAnR?+SA@FoEx;X(XC+X(-Kq}<* z;PIZofte!Q(idg<{z|DGi1`4aRc6^A7@WF=T@c`(F^U3N?A{O7fYnRNf5nGYjSZuw)CVngO0!P`^xgA)+YMgL6yt;}m zvU^SQ^sjZzJYPrOH!wke2W@jBi{rZSA!^y5h68WcEZ?r?=?ub9&1Akk=zU?R!NJ^* zMQz?WScPxz;iolEMS0Y{Y3m}XpT-f)NTe&PgvVc1 zp;p-vl9^jJtV`6L43kOk6Sdk7W7iuUefE1k4?vscmY(J2oA8YLY=wpw*;$-)Gx}BB zlYr>u)O#&QS0?Hs^B36QNlpaTCr&!BN~u;`cl*APaLUBzXL&<_|ftDrPe z$PBb?CH-zHGyHwlIvX7w8WD;3D7vXl@5H_v_UvZPZgIuEGN_T*O7>iRTEzyMuE@n^K%RbmFN7psMfT*TV z;*7&0&PGpU@Pb)+mpB0~Q%OoG)>UTdbFnWZnM$}5q{KWNjdgK!MLL4=^#a1)#q2Vz zsY8*8YsP_6DF%*-5&(&bu0L=qNM}+~^SI*i#X3ZIsu&5X5F_A!*UjBW& zPq0bRD>GYh!htqW;c^3-h(wYr-xelUM3pj))V(WxH_yg z&;ZF(Ef>`^WQDX8-%ago3{M~|nk{>7;`jSv1yZK|X0Vw5iVS<1e%X=L;yN=s89z~* z>+B)(_-r{%)hb-FcX|0IAH8|Pmh~Kde4tIsqCMD-ARd390F10hWxIuT@)s0k@YAnP z8=Sh%3V7LktIBq@V^x?=6?hZIrR2yO<_Uql@4d%MIblv7^sgTcUFqOJG)s@*El{Ek zmP^OubwtAoe;cjr0S6FAXKlXM;GULR$H&RZjmx=xSBEA`Rj|wbaJ&8eb@vrE?40Dr zu5!X-LxTrtrh6k2K25`7{6faFNeA);+%6mRY@DoSeoWWiCq#^>UUqIlDz?gxAG}^+ z3w_kuxZ1P+%g2J}LZNv+(?p$Yu=x2csXcuS+1vFct>cT@cE9pFb~fgK0cj7d- zRI)pGoGB!JLHoSdN>Tom&ok_Nd}QGg=HobPRx(Xoegl)xY?IfEgQY?g~(Cx%23_(^9+Zo6tXh+;bAmeA=&?ryde75Emf&uJdQk9Fy=| z3aIow_w)hS)ug%z)hX(eAKu}k5xJtS>FDJlv)0W>7agdpo6K+{jp1j!tfwHGIZr}= zeS?d~%xxKDVyskicDXs0rTooZuh*W+cD_e+MXMETdkfy5Pik$|8>U4H;GwA?Xdko9 z&Z{xeo3{;{-`;v#@7PlhI*|34kXP}<*+sYQ{B<}$OL^#Co8dd^=DS!0nJdAS`*V*J z)XL@+JrsJJCQmGks$Y7#+o5eayY11%WK*Q2J!FtXR-iX;4B8$`vlL}v`J(k-T7anE z?CXt0>w57S)2_`e;ih!4yFx&57;WVc{3l@_Hv6=8cDh@3m)ADxb(B*Jx#KgY@Lr=Y z36ZANkXt+;DQJH;6Ky$B)mRnwzHU0Dd(JSzvI#HBYVrM|qZnUsF9Z7h+z59;8;WTI zo!|0fXSE#~tB|-99w}_p?moR&pBT-<>pc~zzILs}0tR;7HRL;2He#n?Zg(GB2vF@V zm~KJ2H@Q}CWa`j~Bf6J5#+F*VN9tx*BLz$K7nmL}3=4fPtw>K2yQKgIU-2r!mOA=} zbjYXjfm-ujXFtuPo-z+;L_Q|ZL=G!(5)VIughC!kin5_9Aq|Ho;~ZpsHB5-$wMpeK zevSvk{S%}_Fd6%~T$U9s?!P&;H<;gdBncygA41P*mh=-9+>y)cs06p^fL>68uY=em z6-|ZyhDfbBig%YHn#QAX9WL<3y(6Gp?Xo<4$hK9CKB6~5!4oW_QeC<-KPw<~Z8#2^ zBEhKx--?fuBfoUIv=S?@qb$b`v2)teBHl32?%Qm*<Rcg;5(LfQ+R95?5-%PZbkTQ zxzk&1f(Ep}6jzBT?D*pHPEN?-opbZFfnbcS_uB>?>eEbIUC%bofKc=E-d-NtUF9XO zOBKC&g4m`Lx~h^706t<~6x4pU9ucJYGId11B&!MB4M`uc?F z!#FY6w2DxSEj7~&IC(WpcAh(gMN&}Vs}BcHfUWqiN0N~!oSE-nEY)j}J9M&r)o`+Q ziX1m`RWgV`=j4@nH66LL_@Uf{CGpX{%YX+Akh6vMMUGbYmtG0fIogv(wm?^S8Hn$* z*V@jeiA>?hO`B`7rHY4B_0Trr4Z|;i6w~rDlJn%4J++hypmaZ;rt6YE^L3Ef-4}$Y zXOfR!{X$b`uSptC&42s z3CG9P7PGX|@YE0UBef_pBH2^d?YH^gF!|4~wHG45LM^r(j6QTCI9%KDpmTC<$a%$# zN4I!ty0F~YC1fS~Mz5fWRHJ`g5lVQE6r`?h2S*}>t|c&KDfsK3h6JjA;?X?Alnujg zw7V0wjf3gvj7?L-Y$&-cV?}mCvZHAQuTux8YcwKXyI*r#Eo?yNd7yjFY zxWnNsvpFA@jd*eODc40vw_K zhh1u!@xP-h=!2^j5e+#PR-_R0;K7^kr0&MXTjU^{(DE4QaFg$}I>+_u8Op%OVd^14 zw{sLsk$qV?vXz%Z5XjltyU}1l3-raoxdDLJFUOWod??;kPS3w`F;%1;PBw~I#?wF) za*1jkZ`wMgO&<=2{c~lgEXYsy#U+n%{rKO28O24A>_jb$x{aJ-%L#@pP>b~ascL;)H1D>^{$|& zqd`8NHVT;i&B(M(s(HQr$|1a_fs!BcxE8`A7iy{Zct0$^7RJhaoz-mo1k}6vqt}h! z{A>bjaXoUkn{hn;g?Iv^s4((o<(Rh3QpONoPg#g9F~sWr0!#u$+m0e$;`;YIX4R=LSnWkg8p&C^*`9m^;+D|Lt!)#T_Vo*-_0qjW$}zdv#(lsygB+TclWAlLXJ{Kp2j!$ z*`AZMu|V6UBxb|MM$Fk=^!p#o8?iEhk`AzsqEl1DS4Ld>9KLyI))zEHWEm6AB5Z~c zeH4X4Of=l#@Km-ZV%%1~(aRvO2&scFqPqmBeZkzg_wxW;F_7OO+rz}6`R8`wWy{eR zHjm>FVtheNRO4xxk%4T$&d(dgy@r+S&4)wpUn;mvtv>XdU{JdJo7HeV{yx_fLOxX0 z>k$$nD==g{b#pYr7=_#Zhyj_`xa`EVBQDsN#$F5S{%iQSvnpPB#8v|)0=FE{9Dg_E z0CUYS;~cR0_BM~YM549UtF4z+SSh{-7L>!&PkO@qpqTiY>G#6fX7KjSdZD+AWAO|j zsQ1ir7H_8Yrf`+(M-Bok{KAsvoqMx49PK0m1N+inO}P};zO9^@&0zypx^+i|fN*sXJ@-Z#Y3orvWkgSuEJ#+#0SbONif&Gu{eHpGB z2S#EQzK-XonSJn$+YN&4Pa$UU_eT&61EO(AH;^&R+B;mUaSMsH^dDT-h++%ctQx6; zsk`>wnS8s&EL$0Jn!BHKc~ZT~EZ7c}^XAsGuD_(M`jeZQ3tjC(ZcibEW713D|VfpEj1=gZ&T3d_WGpc>u(qdyEtp0u= z!qu^+o>2lelUcheIsM`4?MT;BbLbpQ#AZLdMYy7JLBiSI$9{9bak-JNtAFU&IjBrR zD^rSR1S8iT=#vukdTqIgS{&}Xo5IxDH-J%lN9EuMj$|qf9}?%*hFFmu$cOuNyZi;k zI~|O}pBT>GX@{$^);)?f&bXft&SWm-<4AShv6GC4MINl`lHL4kf9t)UeU`nV^pVre zsv4z2y=G!hotIvl{iwo&1_XnClu6(2+L?_>ois{g>Su~I6K>6ONPVUGS)7`DcKmLh zDgR0bc94k|=L>G~v|>h=ffNF;d#dGs3zB}j>ic8q)HhSH$;f=RyqRFGJ5K3QiJmrg zUuRz(wg&fYt9H5N$9$F+Jdh1v5XAWBwJ`cs*Vu_Ks;3iaWPcMqyu5(AcUKV;T4Dly zSHWZ6A*V^W)LZ+rrHCn0MfG=DjkK?Jl~m$uv6jXH@c_(Ls#K^*ogj9u#qp>;>H9?K zC>_|$c!R<_h%QeTraqD1qZ4Oj&yXu}Q3R`38OylN^cXu3`mM8A(e^TW)shfLPY>md zawmRSF&(mnI&F8_&NzRonTkrv^txIbwnWir<$+YNSA99VqQ3_!bkHZU^)QyO?`NI% z2W@3m3ft$r4Mk%Z>y<=t$?sYTx^6JyuUPT52toc}cgJ55&=;_TVf@c}dQMU2keLrg zoO*^$kHMwdM4j%o%0yV*8NEbRv&>`THp`=w>ONI$x~H7geY`~FT2b*WId>1!C^Z^cvS1WJ z9%f7b(uA3J*f_`}n^qm}AI;aiKvey zbR}C!a$@IMz>LMiRxy9BwmSFGp-cf!ii9>LDiubf8(5Z?mbd6LUe+ObZnu2s^Zo(i zB+}T^9F-lws0O+#wdO?End@PbcUXYre7vvl_S=4~Xv-5!&t;gY&x?+aYlUI6yGi12 zcWhou1Zq1m8;@Z(N-{mZDm|sLk)V(C&4{fTfr4U0vVT zv=w4#S|f5X7Ww(D%bGNt*(BnVOdE22V^*vKlWJ8QszaTuQZGdE=)4lX7E_*9y`N0f zx$iUlW&Zr0Rb}%7(s2jn%6-8i^ON*U$-SleonQfrtKNK>RPofkXBKNY)~MW&QLFO0 z``)Ev4rk_df6V1Kyj_JQI&s_GI^ckm8Ksz^}{Hos@_S>{ zmu^Mk;S8@ehr;1NH*mwYkSevHnX*C%6AmYO)N=$%f1el7rKspT^#U?9uWN$W89YDE zBF`2M!!3^H9`C!C#i97rML8p6n42Sj^mU4+lg)4<++U77G&PiZ%2}2cKj_A-K@+Wx zG5uxJgjj?36*P`Lv+1WvQTJK~t&3RV$4!k)O3luSZdB_$zIS=~hD^;RBVYHg9%B!b zbjDtu^-^CXL#T#hY^q2A**yi+wph5e8lgQKcXyu6`yyKm&lyN?UH+O_UwC) zCpr8Dz-!&TIwqp48$lU#Ry=JIr0^1-m=bjm3g*2_P7GgB9jED8qn4}{M!8Vwp6XUC zwUaHCo{ncfBf$+AL@Gpt|1stJlD3L|fXM~g=vmkC0`U3&ABmnkyXf=(LZa1PVMm^{ z@HZ9tTV?E>fA-E_D^YZp)FDUlj1H%)HI2S|CrZ3BzTM0;aTZvJ;buBD zg4$6InF$t#t&dk)TnSSxEQ-ZTta>_%uA|2a;rR_mrsooyuIy5nlaa$W2dLlXsr|74 zC9ZghAMV38$j6PjuFp2f?S}2C`|(qiOX9K>jXYkMa9YSR0n4`9_=1j>Sx8BoDk{h- zg5HeHps{sPo%!KKK#RmSsKuMyzFTCuU5s#;aE3yl!BVI46cdm341Bxd1V!cAwYCm# zH*2UB(cVCpmc5@hS88s{Kbud^9QjuZ;D2|^0laD3;we7d<}Sf9pt$+PY4YDOzfZC7 z25zteD-oRjWu;>`E&|GcqF zhp=376(o;tvtwH@N@)$OVdzWa+P$6o#>bbM|Afks zZ*b)Od#Le$j^y~4ilzSzWqALsJoWFr@t>nn{&OD8e@@N$&l~rj^O63&H9-G~t^YY| w>wjPK;|_(|A4Q=EMPG8Ge!^*f)3!^1C;(KnTeLixdIg~VLg#sf^1HwOA4Hwu4gdfE literal 0 HcmV?d00001 From 08ceec393c9638e2154b3329f28ff25d28368ced Mon Sep 17 00:00:00 2001 From: Baba05206 Date: Tue, 16 Dec 2025 22:31:12 +0000 Subject: [PATCH 4/9] chore: remove local capture script and screenshots --- debugging/book-library/index.html | 46 +- .../book-library/screenshots/after-submit.png | Bin 26545 -> 0 bytes debugging/book-library/screenshots/form.png | Bin 22778 -> 0 bytes debugging/book-library/screenshots/full.png | Bin 20006 -> 0 bytes debugging/book-library/script.js | 140 +- debugging/book-library/style.css | 7 +- package-lock.json | 1407 ++++++++++++++++- package.json | 3 +- 8 files changed, 1510 insertions(+), 93 deletions(-) delete mode 100644 debugging/book-library/screenshots/after-submit.png delete mode 100644 debugging/book-library/screenshots/form.png delete mode 100644 debugging/book-library/screenshots/full.png diff --git a/debugging/book-library/index.html b/debugging/book-library/index.html index 23acfa71..e89b71f6 100644 --- a/debugging/book-library/index.html +++ b/debugging/book-library/index.html @@ -1,12 +1,9 @@ - + - - + + + Book Library @@ -23,51 +20,48 @@

    Library

    Add books to your virtual library

    -
    -
    +
    - + + + + - -
    + + +
    @@ -91,6 +85,6 @@

    Library

    - + diff --git a/debugging/book-library/screenshots/after-submit.png b/debugging/book-library/screenshots/after-submit.png deleted file mode 100644 index 55920a4b7caa410d44b3255fd5f8ef0997140101..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26545 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
    +VFOSU0di(0O4q9*pTsRhB)Dy_sb@FPug-b9 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
      G@Awai!{sD;9yi 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 diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index f7dee943..beb1668e 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -1,43 +1,54 @@ let myLibrary = []; -window.addEventListener("load", function () { - populateStorage(); - render(); -}); - function populateStorage() { if (myLibrary.length === 0) { - let book1 = new Book("Robinson Crusoe", "Daniel Defoe", 252, true); - let book2 = new Book( + const book1 = new Book("Robinson Crusoe", "Daniel Defoe", 252, true); + const book2 = new Book( "The Old Man and the Sea", "Ernest Hemingway", 127, true ); - - myLibrary.push(book1); - myLibrary.push(book2); + myLibrary.push(book1, book2); } } -const title = document.getElementById("title"); -const author = document.getElementById("author"); -const pages = document.getElementById("pages"); -const check = document.getElementById("check"); +// DOM elements (suffix "El" to indicate element) +const titleEl = document.getElementById("title"); +const authorEl = document.getElementById("author"); +const pagesEl = document.getElementById("pages"); +const readEl = document.getElementById("check"); +const formEl = document.getElementById("bookForm"); +const tableEl = document.getElementById("display"); + +formEl.addEventListener("submit", function (ev) { + ev.preventDefault(); + handleSubmit(); +}); -// Add a new book -function submit() { - if (!title.value || !author.value || !pages.value) { - alert("Please fill all fields!"); +function handleSubmit() { + const title = titleEl.value.trim(); + const author = authorEl.value.trim(); + const pagesRaw = pagesEl.value.trim(); + const pages = Number(pagesRaw); + const isRead = readEl.checked; + + if (!title || !author) { + alert("Please provide both title and author."); return; } - // FIXED: author was incorrectly set to title.value - let book = new Book(title.value, author.value, pages.value, check.checked); + if (!pagesRaw || !Number.isFinite(pages) || pages <= 0) { + alert("Please provide a valid positive number for pages."); + return; + } - // FIXED: wrong variable name (library → myLibrary) + const book = new Book(title, author, pages, isRead); myLibrary.push(book); + // clear form + formEl.reset(); + render(); } @@ -45,58 +56,65 @@ function Book(title, author, pages, check) { this.title = title; this.author = author; this.pages = pages; - this.check = check; + this.check = Boolean(check); } function render() { - let table = document.getElementById("display"); - let rowsNumber = table.rows.length; - - // FIXED: missing parenthesis - for (let n = rowsNumber - 1; n > 0; n--) { - table.deleteRow(n); - } - - for (let i = 0; i < myLibrary.length; i++) { - let row = table.insertRow(1); + const tbody = tableEl.querySelector("tbody"); - let titleCell = row.insertCell(0); - let authorCell = row.insertCell(1); - let pagesCell = row.insertCell(2); - let wasReadCell = row.insertCell(3); - let deleteCell = row.insertCell(4); + // Clear existing rows in one operation + tbody.innerHTML = ""; - titleCell.innerHTML = myLibrary[i].title; - authorCell.innerHTML = myLibrary[i].author; - pagesCell.innerHTML = myLibrary[i].pages; + myLibrary.forEach((book, index) => { + const row = document.createElement("tr"); - // READ / UNREAD BUTTON - let changeBut = document.createElement("button"); - changeBut.className = "btn btn-success"; + const titleCell = document.createElement("td"); + const authorCell = document.createElement("td"); + const pagesCell = document.createElement("td"); + const readCell = document.createElement("td"); + const actionsCell = document.createElement("td"); - // FIXED: logic was reversed - changeBut.innerText = myLibrary[i].check ? "Yes" : "No"; + titleCell.textContent = book.title; + authorCell.textContent = book.author; + pagesCell.textContent = String(book.pages); - changeBut.addEventListener("click", function () { - myLibrary[i].check = !myLibrary[i].check; + const toggleReadBtn = document.createElement("button"); + toggleReadBtn.className = "btn btn-success"; + toggleReadBtn.textContent = book.check ? "Yes" : "No"; + toggleReadBtn.addEventListener("click", () => { + myLibrary[index].check = !myLibrary[index].check; render(); }); - wasReadCell.appendChild(changeBut); - - // DELETE BUTTON - let delButton = document.createElement("button"); - delButton.className = "btn btn-warning"; - delButton.innerHTML = "Delete"; - - // FIXED: wrong variable name (delBut → delButton) - // FIXED: wrong event name ("clicks" → "click") - delButton.addEventListener("click", function () { - alert(`You've deleted title: ${myLibrary[i].title}`); - myLibrary.splice(i, 1); + readCell.appendChild(toggleReadBtn); + + const deleteBtn = document.createElement("button"); + deleteBtn.className = "btn btn-warning"; + deleteBtn.textContent = "Delete"; + deleteBtn.addEventListener("click", () => { + const confirmDelete = confirm( + `Delete "${book.title}" from your library?` + ); + if (!confirmDelete) return; + myLibrary.splice(index, 1); render(); + alert(`Deleted "${book.title}"`); }); - deleteCell.appendChild(delButton); - } + actionsCell.appendChild(deleteBtn); + + row.appendChild(titleCell); + row.appendChild(authorCell); + row.appendChild(pagesCell); + row.appendChild(readCell); + row.appendChild(actionsCell); + + tbody.appendChild(row); + }); } + +// Initialization +document.addEventListener("DOMContentLoaded", () => { + populateStorage(); + render(); +}); diff --git a/debugging/book-library/style.css b/debugging/book-library/style.css index 302950cb..60a82f29 100644 --- a/debugging/book-library/style.css +++ b/debugging/book-library/style.css @@ -1,17 +1,16 @@ .form-group { width: 400px; - height: 300px; - align-self: left; padding-left: 20px; + text-align: left; } .btn { - display: block; + display: inline-block; } .form-check-label { padding-left: 20px; - margin: 5px 0px 5px 0px; + margin: 5px 0; } button.btn-info { diff --git a/package-lock.json b/package-lock.json index aa7e35ce..3f5474de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ "license": "ISC", "devDependencies": { "jest": "^29.7.0", - "prettier": "^2.8.7" + "prettier": "^2.8.7", + "puppeteer": "^24.33.0" } }, "node_modules/@babel/code-frame": { @@ -878,6 +879,41 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@puppeteer/browsers": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.11.0.tgz", + "integrity": "sha512-n6oQX6mYkG8TRPuPXmbPidkUbsSRalhmaaVAQxvH1IkQy63cwsH+kOjB3e4cpCDHg0aSvsiX9bQ4s2VB6mGWUQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.4.3", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.7.3", + "tar-fs": "^3.1.1", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@puppeteer/browsers/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -905,6 +941,13 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -1021,6 +1064,27 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -1087,6 +1151,34 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -1210,6 +1302,103 @@ "dev": true, "license": "MIT" }, + "node_modules/bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "bare-abort-controller": "*" + }, + "peerDependenciesMeta": { + "bare-abort-controller": { + "optional": true + } + } + }, + "node_modules/bare-fs": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.2.tgz", + "integrity": "sha512-veTnRzkb6aPHOvSKIOy60KzURfBdUflr5VReI+NSaPL6xf+XLdONQgZgpYvUuZLVQ8dCqxpBAudaOM1+KpAUxw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", + "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", + "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-url": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz", + "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-path": "^3.0.0" + } + }, "node_modules/baseline-browser-mapping": { "version": "2.8.32", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.32.tgz", @@ -1220,6 +1409,16 @@ "baseline-browser-mapping": "dist/cli.js" } }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -1288,6 +1487,16 @@ "node-int64": "^0.4.0" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -1363,6 +1572,20 @@ "node": ">=10" } }, + "node_modules/chromium-bidi": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-11.0.0.tgz", + "integrity": "sha512-cM3DI+OOb89T3wO8cpPSro80Q9eKYJ7hGVXoGS3GkDPxnYSqiv+6xwpIf6XERyJ9Tdsl09hmNmY94BkgZdVekw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mitt": "^3.0.1", + "zod": "^3.24.1" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -1453,6 +1676,53 @@ "dev": true, "license": "MIT" }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -1490,6 +1760,16 @@ "node": ">= 8" } }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -1533,6 +1813,21 @@ "node": ">=0.10.0" } }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -1543,6 +1838,13 @@ "node": ">=8" } }, + "node_modules/devtools-protocol": { + "version": "0.0.1534754", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1534754.tgz", + "integrity": "sha512-26T91cV5dbOYnXdJi5qQHoTtUoNEqwkHcAyu/IKtjIAxiEqPMrDiRkDOPWVsGfNZGmlQVHQbZRSjD8sxagWVsQ==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -1580,6 +1882,26 @@ "dev": true, "license": "MIT" }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/error-ex": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", @@ -1610,6 +1932,28 @@ "node": ">=8" } }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -1624,6 +1968,36 @@ "node": ">=4" } }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -1674,6 +2048,50 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -1691,6 +2109,16 @@ "bser": "2.1.1" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -1793,6 +2221,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -1852,6 +2295,34 @@ "dev": true, "license": "MIT" }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -1862,6 +2333,33 @@ "node": ">=10.17.0" } }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -1911,6 +2409,16 @@ "dev": true, "license": "ISC" }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -2851,6 +3359,13 @@ "node": "*" } }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -2865,6 +3380,16 @@ "dev": true, "license": "MIT" }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -2983,6 +3508,53 @@ "node": ">=6" } }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -3039,6 +3611,13 @@ "dev": true, "license": "MIT" }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -3125,6 +3704,16 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -3139,6 +3728,95 @@ "node": ">= 6" } }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/puppeteer": { + "version": "24.33.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.33.0.tgz", + "integrity": "sha512-nl3wsAztq5F8zybn4Tk41OCnYIzFIzGC6AN0WcF2KCUnWenajvRRPgBmS6LvNUV2HEeIzT2zRZHH0TgVxLDKew==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.11.0", + "chromium-bidi": "11.0.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1534754", + "puppeteer-core": "24.33.0", + "typed-query-selector": "^2.12.0" + }, + "bin": { + "puppeteer": "lib/cjs/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core": { + "version": "24.33.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.33.0.tgz", + "integrity": "sha512-tPTxVg+Qdj/8av4cy6szv3GlhxeOoNhiiMZ955fjxQyvPQE/6DjCa6ZyF/x0WJrlgBZtaLSP8TQgJb7FdLDXXA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.11.0", + "chromium-bidi": "11.0.0", + "debug": "^4.4.3", + "devtools-protocol": "0.0.1534754", + "typed-query-selector": "^2.12.0", + "webdriver-bidi-protocol": "0.3.9", + "ws": "^8.18.3" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/pure-rand": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", @@ -3284,6 +3962,47 @@ "node": ">=8" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -3325,6 +4044,18 @@ "node": ">=10" } }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -3426,6 +4157,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tar-fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", + "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -3441,6 +4199,16 @@ "node": ">=8" } }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -3461,6 +4229,13 @@ "node": ">=8.0" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -3484,6 +4259,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "dev": true, + "license": "MIT" + }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", @@ -3547,6 +4329,13 @@ "makeerror": "1.0.12" } }, + "node_modules/webdriver-bidi-protocol": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.9.tgz", + "integrity": "sha512-uIYvlRQ0PwtZR1EzHlTMol1G0lAlmOe6wPykF9a77AK3bkpvZHzIVxRE2ThOx5vjy2zISe0zhwf5rzuUfbo1PQ==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3602,6 +4391,28 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -3648,6 +4459,17 @@ "node": ">=12" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -3660,6 +4482,16 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } }, "dependencies": { @@ -4275,6 +5107,29 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "@puppeteer/browsers": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.11.0.tgz", + "integrity": "sha512-n6oQX6mYkG8TRPuPXmbPidkUbsSRalhmaaVAQxvH1IkQy63cwsH+kOjB3e4cpCDHg0aSvsiX9bQ4s2VB6mGWUQ==", + "dev": true, + "requires": { + "debug": "^4.4.3", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.7.3", + "tar-fs": "^3.1.1", + "yargs": "^17.7.2" + }, + "dependencies": { + "semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true + } + } + }, "@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -4299,6 +5154,12 @@ "@sinonjs/commons": "^3.0.0" } }, + "@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true + }, "@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -4403,6 +5264,22 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, + "@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true + }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -4446,6 +5323,22 @@ "sprintf-js": "~1.0.2" } }, + "ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + }, + "b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "dev": true, + "requires": {} + }, "babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -4540,12 +5433,76 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "bare-events": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", + "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", + "dev": true, + "requires": {} + }, + "bare-fs": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.2.tgz", + "integrity": "sha512-veTnRzkb6aPHOvSKIOy60KzURfBdUflr5VReI+NSaPL6xf+XLdONQgZgpYvUuZLVQ8dCqxpBAudaOM1+KpAUxw==", + "dev": true, + "optional": true, + "requires": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + } + }, + "bare-os": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", + "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", + "dev": true, + "optional": true + }, + "bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "dev": true, + "optional": true, + "requires": { + "bare-os": "^3.0.1" + } + }, + "bare-stream": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", + "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", + "dev": true, + "optional": true, + "requires": { + "streamx": "^2.21.0" + } + }, + "bare-url": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz", + "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", + "dev": true, + "optional": true, + "requires": { + "bare-path": "^3.0.0" + } + }, "baseline-browser-mapping": { "version": "2.8.32", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.32.tgz", "integrity": "sha512-OPz5aBThlyLFgxyhdwf/s2+8ab3OvT7AdTNvKHBwpXomIYeXqpUUuT8LrdtxZSsWJ4R4CU1un4XGh5Ez3nlTpw==", "dev": true }, + "basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "dev": true + }, "brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -4587,6 +5544,12 @@ "node-int64": "^0.4.0" } }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -4627,6 +5590,16 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, + "chromium-bidi": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-11.0.0.tgz", + "integrity": "sha512-cM3DI+OOb89T3wO8cpPSro80Q9eKYJ7hGVXoGS3GkDPxnYSqiv+6xwpIf6XERyJ9Tdsl09hmNmY94BkgZdVekw==", + "dev": true, + "requires": { + "mitt": "^3.0.1", + "zod": "^3.24.1" + } + }, "ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -4689,6 +5662,35 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "requires": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + } + } + }, "create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -4715,6 +5717,12 @@ "which": "^2.0.1" } }, + "data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true + }, "debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -4737,12 +5745,29 @@ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, + "degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "requires": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + } + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, + "devtools-protocol": { + "version": "0.0.1534754", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1534754.tgz", + "integrity": "sha512-26T91cV5dbOYnXdJi5qQHoTtUoNEqwkHcAyu/IKtjIAxiEqPMrDiRkDOPWVsGfNZGmlQVHQbZRSjD8sxagWVsQ==", + "dev": true + }, "diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -4767,6 +5792,21 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, "error-ex": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", @@ -4788,12 +5828,45 @@ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true }, + "escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "source-map": "~0.6.1" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "dev": true, + "requires": { + "bare-events": "^2.7.0" + } + }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -4830,6 +5903,35 @@ "jest-util": "^29.7.0" } }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -4845,6 +5947,15 @@ "bser": "2.1.1" } }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, "fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -4907,6 +6018,17 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "dev": true, + "requires": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + } + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4948,12 +6070,50 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "requires": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "requires": { + "agent-base": "^7.1.2", + "debug": "4" + } + }, "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 }, + "import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, "import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -4986,6 +6146,12 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "dev": true + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -5651,6 +6817,12 @@ "brace-expansion": "^1.1.7" } }, + "mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -5663,6 +6835,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true + }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -5743,6 +6921,41 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "dev": true, + "requires": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + } + }, + "pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "requires": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -5779,6 +6992,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, "picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -5831,6 +7050,12 @@ } } }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -5841,6 +7066,75 @@ "sisteransi": "^1.0.5" } }, + "proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "dev": true, + "requires": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + } + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, + "pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "puppeteer": { + "version": "24.33.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.33.0.tgz", + "integrity": "sha512-nl3wsAztq5F8zybn4Tk41OCnYIzFIzGC6AN0WcF2KCUnWenajvRRPgBmS6LvNUV2HEeIzT2zRZHH0TgVxLDKew==", + "dev": true, + "requires": { + "@puppeteer/browsers": "2.11.0", + "chromium-bidi": "11.0.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1534754", + "puppeteer-core": "24.33.0", + "typed-query-selector": "^2.12.0" + } + }, + "puppeteer-core": { + "version": "24.33.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.33.0.tgz", + "integrity": "sha512-tPTxVg+Qdj/8av4cy6szv3GlhxeOoNhiiMZ955fjxQyvPQE/6DjCa6ZyF/x0WJrlgBZtaLSP8TQgJb7FdLDXXA==", + "dev": true, + "requires": { + "@puppeteer/browsers": "2.11.0", + "chromium-bidi": "11.0.0", + "debug": "^4.4.3", + "devtools-protocol": "0.0.1534754", + "typed-query-selector": "^2.12.0", + "webdriver-bidi-protocol": "0.3.9", + "ws": "^8.18.3" + } + }, "pure-rand": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", @@ -5930,6 +7224,33 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, + "socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "dev": true, + "requires": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "requires": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -5961,6 +7282,17 @@ "escape-string-regexp": "^2.0.0" } }, + "streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "dev": true, + "requires": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -6024,6 +7356,29 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, + "tar-fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", + "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", + "dev": true, + "requires": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "requires": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -6035,6 +7390,15 @@ "minimatch": "^3.0.4" } }, + "text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dev": true, + "requires": { + "b4a": "^1.6.4" + } + }, "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -6050,6 +7414,12 @@ "is-number": "^7.0.0" } }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -6062,6 +7432,12 @@ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, + "typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "dev": true + }, "undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", @@ -6098,6 +7474,12 @@ "makeerror": "1.0.12" } }, + "webdriver-bidi-protocol": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.9.tgz", + "integrity": "sha512-uIYvlRQ0PwtZR1EzHlTMol1G0lAlmOe6wPykF9a77AK3bkpvZHzIVxRE2ThOx5vjy2zISe0zhwf5rzuUfbo1PQ==", + "dev": true + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -6134,6 +7516,13 @@ "signal-exit": "^3.0.7" } }, + "ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "requires": {} + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -6167,11 +7556,27 @@ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true + }, + "zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "dev": true } } } diff --git a/package.json b/package.json index 8c328e01..d08c0656 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "homepage": "https://github.com/CodeYourFuture/Module-JS3#readme", "devDependencies": { "jest": "^29.7.0", - "prettier": "^2.8.7" + "prettier": "^2.8.7", + "puppeteer": "^24.33.0" } } From f6d11003db49dff00fa3849d6807099052936ac6 Mon Sep 17 00:00:00 2001 From: Baba05206 Date: Tue, 16 Dec 2025 22:31:20 +0000 Subject: [PATCH 5/9] chore: remove puppeteer dev dependency --- package-lock.json | 1411 +-------------------------------------------- package.json | 3 +- 2 files changed, 4 insertions(+), 1410 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3f5474de..aa7e35ce 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,8 +10,7 @@ "license": "ISC", "devDependencies": { "jest": "^29.7.0", - "prettier": "^2.8.7", - "puppeteer": "^24.33.0" + "prettier": "^2.8.7" } }, "node_modules/@babel/code-frame": { @@ -879,41 +878,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@puppeteer/browsers": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.11.0.tgz", - "integrity": "sha512-n6oQX6mYkG8TRPuPXmbPidkUbsSRalhmaaVAQxvH1IkQy63cwsH+kOjB3e4cpCDHg0aSvsiX9bQ4s2VB6mGWUQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.3", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.7.3", - "tar-fs": "^3.1.1", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@puppeteer/browsers/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -941,13 +905,6 @@ "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -1064,27 +1021,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -1151,34 +1087,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/b4a": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", - "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", - "dev": true, - "license": "Apache-2.0", - "peerDependencies": { - "react-native-b4a": "*" - }, - "peerDependenciesMeta": { - "react-native-b4a": { - "optional": true - } - } - }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -1302,103 +1210,6 @@ "dev": true, "license": "MIT" }, - "node_modules/bare-events": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", - "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", - "dev": true, - "license": "Apache-2.0", - "peerDependencies": { - "bare-abort-controller": "*" - }, - "peerDependenciesMeta": { - "bare-abort-controller": { - "optional": true - } - } - }, - "node_modules/bare-fs": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.2.tgz", - "integrity": "sha512-veTnRzkb6aPHOvSKIOy60KzURfBdUflr5VReI+NSaPL6xf+XLdONQgZgpYvUuZLVQ8dCqxpBAudaOM1+KpAUxw==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4", - "bare-url": "^2.2.2", - "fast-fifo": "^1.3.2" - }, - "engines": { - "bare": ">=1.16.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } - }, - "node_modules/bare-os": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", - "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "engines": { - "bare": ">=1.14.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", - "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "streamx": "^2.21.0" - }, - "peerDependencies": { - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, - "node_modules/bare-url": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz", - "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-path": "^3.0.0" - } - }, "node_modules/baseline-browser-mapping": { "version": "2.8.32", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.32.tgz", @@ -1409,16 +1220,6 @@ "baseline-browser-mapping": "dist/cli.js" } }, - "node_modules/basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -1487,16 +1288,6 @@ "node-int64": "^0.4.0" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -1572,20 +1363,6 @@ "node": ">=10" } }, - "node_modules/chromium-bidi": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-11.0.0.tgz", - "integrity": "sha512-cM3DI+OOb89T3wO8cpPSro80Q9eKYJ7hGVXoGS3GkDPxnYSqiv+6xwpIf6XERyJ9Tdsl09hmNmY94BkgZdVekw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "mitt": "^3.0.1", - "zod": "^3.24.1" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -1676,53 +1453,6 @@ "dev": true, "license": "MIT" }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -1760,16 +1490,6 @@ "node": ">= 8" } }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -1813,21 +1533,6 @@ "node": ">=0.10.0" } }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -1838,13 +1543,6 @@ "node": ">=8" } }, - "node_modules/devtools-protocol": { - "version": "0.0.1534754", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1534754.tgz", - "integrity": "sha512-26T91cV5dbOYnXdJi5qQHoTtUoNEqwkHcAyu/IKtjIAxiEqPMrDiRkDOPWVsGfNZGmlQVHQbZRSjD8sxagWVsQ==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -1882,26 +1580,6 @@ "dev": true, "license": "MIT" }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/error-ex": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", @@ -1932,28 +1610,6 @@ "node": ">=8" } }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -1968,36 +1624,6 @@ "node": ">=4" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/events-universal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", - "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.7.0" - } - }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -2048,50 +1674,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true, - "license": "MIT" - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -2109,16 +1691,6 @@ "bser": "2.1.1" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -2221,21 +1793,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-uri": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", - "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -2295,34 +1852,6 @@ "dev": true, "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -2333,33 +1862,6 @@ "node": ">=10.17.0" } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -2409,16 +1911,6 @@ "dev": true, "license": "ISC" }, - "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -3359,13 +2851,6 @@ "node": "*" } }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "dev": true, - "license": "MIT" - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3380,16 +2865,6 @@ "dev": true, "license": "MIT" }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -3508,53 +2983,6 @@ "node": ">=6" } }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "dev": true, - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -3611,13 +3039,6 @@ "dev": true, "license": "MIT" }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true, - "license": "MIT" - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -3704,16 +3125,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -3728,95 +3139,6 @@ "node": ">= 6" } }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/puppeteer": { - "version": "24.33.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.33.0.tgz", - "integrity": "sha512-nl3wsAztq5F8zybn4Tk41OCnYIzFIzGC6AN0WcF2KCUnWenajvRRPgBmS6LvNUV2HEeIzT2zRZHH0TgVxLDKew==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.11.0", - "chromium-bidi": "11.0.0", - "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1534754", - "puppeteer-core": "24.33.0", - "typed-query-selector": "^2.12.0" - }, - "bin": { - "puppeteer": "lib/cjs/puppeteer/node/cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core": { - "version": "24.33.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.33.0.tgz", - "integrity": "sha512-tPTxVg+Qdj/8av4cy6szv3GlhxeOoNhiiMZ955fjxQyvPQE/6DjCa6ZyF/x0WJrlgBZtaLSP8TQgJb7FdLDXXA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.11.0", - "chromium-bidi": "11.0.0", - "debug": "^4.4.3", - "devtools-protocol": "0.0.1534754", - "typed-query-selector": "^2.12.0", - "webdriver-bidi-protocol": "0.3.9", - "ws": "^8.18.3" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/pure-rand": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", @@ -3962,47 +3284,6 @@ "node": ">=8" } }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^10.0.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -4044,18 +3325,6 @@ "node": ">=10" } }, - "node_modules/streamx": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", - "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "events-universal": "^1.0.0", - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - } - }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -4157,33 +3426,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tar-fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", - "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -4199,16 +3441,6 @@ "node": ">=8" } }, - "node_modules/text-decoder": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", - "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -4229,13 +3461,6 @@ "node": ">=8.0" } }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -4259,13 +3484,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typed-query-selector": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", - "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", - "dev": true, - "license": "MIT" - }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", @@ -4329,13 +3547,6 @@ "makeerror": "1.0.12" } }, - "node_modules/webdriver-bidi-protocol": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.9.tgz", - "integrity": "sha512-uIYvlRQ0PwtZR1EzHlTMol1G0lAlmOe6wPykF9a77AK3bkpvZHzIVxRE2ThOx5vjy2zISe0zhwf5rzuUfbo1PQ==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -4387,30 +3598,8 @@ "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/y18n": { @@ -4459,17 +3648,6 @@ "node": ">=12" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -4482,16 +3660,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } } }, "dependencies": { @@ -5107,29 +4275,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@puppeteer/browsers": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.11.0.tgz", - "integrity": "sha512-n6oQX6mYkG8TRPuPXmbPidkUbsSRalhmaaVAQxvH1IkQy63cwsH+kOjB3e4cpCDHg0aSvsiX9bQ4s2VB6mGWUQ==", - "dev": true, - "requires": { - "debug": "^4.4.3", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.7.3", - "tar-fs": "^3.1.1", - "yargs": "^17.7.2" - }, - "dependencies": { - "semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true - } - } - }, "@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -5154,12 +4299,6 @@ "@sinonjs/commons": "^3.0.0" } }, - "@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "dev": true - }, "@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -5264,22 +4403,6 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, - "@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true - }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -5323,22 +4446,6 @@ "sprintf-js": "~1.0.2" } }, - "ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dev": true, - "requires": { - "tslib": "^2.0.1" - } - }, - "b4a": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", - "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", - "dev": true, - "requires": {} - }, "babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -5433,76 +4540,12 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "bare-events": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz", - "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==", - "dev": true, - "requires": {} - }, - "bare-fs": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.2.tgz", - "integrity": "sha512-veTnRzkb6aPHOvSKIOy60KzURfBdUflr5VReI+NSaPL6xf+XLdONQgZgpYvUuZLVQ8dCqxpBAudaOM1+KpAUxw==", - "dev": true, - "optional": true, - "requires": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4", - "bare-url": "^2.2.2", - "fast-fifo": "^1.3.2" - } - }, - "bare-os": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", - "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", - "dev": true, - "optional": true - }, - "bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "dev": true, - "optional": true, - "requires": { - "bare-os": "^3.0.1" - } - }, - "bare-stream": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", - "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", - "dev": true, - "optional": true, - "requires": { - "streamx": "^2.21.0" - } - }, - "bare-url": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz", - "integrity": "sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==", - "dev": true, - "optional": true, - "requires": { - "bare-path": "^3.0.0" - } - }, "baseline-browser-mapping": { "version": "2.8.32", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.32.tgz", "integrity": "sha512-OPz5aBThlyLFgxyhdwf/s2+8ab3OvT7AdTNvKHBwpXomIYeXqpUUuT8LrdtxZSsWJ4R4CU1un4XGh5Ez3nlTpw==", "dev": true }, - "basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", - "dev": true - }, "brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -5544,12 +4587,6 @@ "node-int64": "^0.4.0" } }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true - }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -5590,16 +4627,6 @@ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, - "chromium-bidi": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-11.0.0.tgz", - "integrity": "sha512-cM3DI+OOb89T3wO8cpPSro80Q9eKYJ7hGVXoGS3GkDPxnYSqiv+6xwpIf6XERyJ9Tdsl09hmNmY94BkgZdVekw==", - "dev": true, - "requires": { - "mitt": "^3.0.1", - "zod": "^3.24.1" - } - }, "ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -5662,35 +4689,6 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "requires": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - } - } - }, "create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -5717,12 +4715,6 @@ "which": "^2.0.1" } }, - "data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "dev": true - }, "debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -5745,29 +4737,12 @@ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true }, - "degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "dev": true, - "requires": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - } - }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, - "devtools-protocol": { - "version": "0.0.1534754", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1534754.tgz", - "integrity": "sha512-26T91cV5dbOYnXdJi5qQHoTtUoNEqwkHcAyu/IKtjIAxiEqPMrDiRkDOPWVsGfNZGmlQVHQbZRSjD8sxagWVsQ==", - "dev": true - }, "diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -5792,21 +4767,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true - }, "error-ex": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", @@ -5828,45 +4788,12 @@ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true }, - "escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "source-map": "~0.6.1" - } - }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "events-universal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", - "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", - "dev": true, - "requires": { - "bare-events": "^2.7.0" - } - }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -5903,35 +4830,6 @@ "jest-util": "^29.7.0" } }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true - }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -5947,15 +4845,6 @@ "bser": "2.1.1" } }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dev": true, - "requires": { - "pend": "~1.2.0" - } - }, "fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -6018,17 +4907,6 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, - "get-uri": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", - "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", - "dev": true, - "requires": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - } - }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -6070,50 +4948,12 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "requires": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - } - }, - "https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "requires": { - "agent-base": "^7.1.2", - "debug": "4" - } - }, "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 }, - "import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, "import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -6146,12 +4986,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", - "dev": true - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -6817,12 +5651,6 @@ "brace-expansion": "^1.1.7" } }, - "mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "dev": true - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -6835,12 +5663,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "dev": true - }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -6921,41 +5743,6 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "dev": true, - "requires": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - } - }, - "pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "dev": true, - "requires": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -6992,12 +5779,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, "picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -7050,12 +5831,6 @@ } } }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -7066,75 +5841,6 @@ "sisteransi": "^1.0.5" } }, - "proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "dev": true, - "requires": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - } - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, - "pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "puppeteer": { - "version": "24.33.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.33.0.tgz", - "integrity": "sha512-nl3wsAztq5F8zybn4Tk41OCnYIzFIzGC6AN0WcF2KCUnWenajvRRPgBmS6LvNUV2HEeIzT2zRZHH0TgVxLDKew==", - "dev": true, - "requires": { - "@puppeteer/browsers": "2.11.0", - "chromium-bidi": "11.0.0", - "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1534754", - "puppeteer-core": "24.33.0", - "typed-query-selector": "^2.12.0" - } - }, - "puppeteer-core": { - "version": "24.33.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.33.0.tgz", - "integrity": "sha512-tPTxVg+Qdj/8av4cy6szv3GlhxeOoNhiiMZ955fjxQyvPQE/6DjCa6ZyF/x0WJrlgBZtaLSP8TQgJb7FdLDXXA==", - "dev": true, - "requires": { - "@puppeteer/browsers": "2.11.0", - "chromium-bidi": "11.0.0", - "debug": "^4.4.3", - "devtools-protocol": "0.0.1534754", - "typed-query-selector": "^2.12.0", - "webdriver-bidi-protocol": "0.3.9", - "ws": "^8.18.3" - } - }, "pure-rand": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", @@ -7224,33 +5930,6 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true - }, - "socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "dev": true, - "requires": { - "ip-address": "^10.0.1", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "dev": true, - "requires": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7282,17 +5961,6 @@ "escape-string-regexp": "^2.0.0" } }, - "streamx": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", - "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", - "dev": true, - "requires": { - "events-universal": "^1.0.0", - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - } - }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -7356,29 +6024,6 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "tar-fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", - "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", - "dev": true, - "requires": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0", - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - } - }, - "tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dev": true, - "requires": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -7390,15 +6035,6 @@ "minimatch": "^3.0.4" } }, - "text-decoder": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", - "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", - "dev": true, - "requires": { - "b4a": "^1.6.4" - } - }, "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -7414,12 +6050,6 @@ "is-number": "^7.0.0" } }, - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -7432,12 +6062,6 @@ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, - "typed-query-selector": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", - "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", - "dev": true - }, "undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", @@ -7474,12 +6098,6 @@ "makeerror": "1.0.12" } }, - "webdriver-bidi-protocol": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.9.tgz", - "integrity": "sha512-uIYvlRQ0PwtZR1EzHlTMol1G0lAlmOe6wPykF9a77AK3bkpvZHzIVxRE2ThOx5vjy2zISe0zhwf5rzuUfbo1PQ==", - "dev": true - }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7516,13 +6134,6 @@ "signal-exit": "^3.0.7" } }, - "ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "dev": true, - "requires": {} - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -7556,27 +6167,11 @@ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dev": true, - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true - }, - "zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "dev": true } } } diff --git a/package.json b/package.json index d08c0656..8c328e01 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,6 @@ "homepage": "https://github.com/CodeYourFuture/Module-JS3#readme", "devDependencies": { "jest": "^29.7.0", - "prettier": "^2.8.7", - "puppeteer": "^24.33.0" + "prettier": "^2.8.7" } } From 4a012515dc7e68a3ccf2559ad74ff54ac4aa158f Mon Sep 17 00:00:00 2001 From: Baba05206 Date: Tue, 16 Dec 2025 22:39:56 +0000 Subject: [PATCH 6/9] feat(book-library): persistence, accessibility, in-page confirm/toast, Book class; add unit tests --- debugging/book-library/index.html | 17 +++- debugging/book-library/lib.cjs | 22 +++++ debugging/book-library/lib.test.js | 24 +++++ debugging/book-library/script.js | 135 ++++++++++++++++++++++------- debugging/book-library/style.css | 34 ++++++++ 5 files changed, 201 insertions(+), 31 deletions(-) create mode 100644 debugging/book-library/lib.cjs create mode 100644 debugging/book-library/lib.test.js diff --git a/debugging/book-library/index.html b/debugging/book-library/index.html index e89b71f6..e2eb8202 100644 --- a/debugging/book-library/index.html +++ b/debugging/book-library/index.html @@ -20,7 +20,7 @@

      Library

      Add books to your virtual library

      - @@ -64,6 +64,21 @@

      Library

      + + + + +
      + diff --git a/debugging/book-library/lib.cjs b/debugging/book-library/lib.cjs new file mode 100644 index 00000000..7e2220e5 --- /dev/null +++ b/debugging/book-library/lib.cjs @@ -0,0 +1,22 @@ +class Book { + constructor(title, author, pages, check) { + this.title = title; + this.author = author; + this.pages = Number(pages); + this.check = Boolean(check); + } + toggleRead() { + this.check = !this.check; + } +} + +function validateTitle(title) { + return typeof title === 'string' && title.trim().length > 0; +} + +function validatePages(pages) { + const n = Number(pages); + return Number.isFinite(n) && n > 0; +} + +module.exports = { Book, validateTitle, validatePages }; diff --git a/debugging/book-library/lib.test.js b/debugging/book-library/lib.test.js new file mode 100644 index 00000000..4ab307a7 --- /dev/null +++ b/debugging/book-library/lib.test.js @@ -0,0 +1,24 @@ +const { Book, validateTitle, validatePages } = require('./lib.cjs'); + +test('Book class stores values and toggles read', () => { + const b = new Book('T', 'A', 100, false); + expect(b.title).toBe('T'); + expect(b.author).toBe('A'); + expect(b.pages).toBe(100); + expect(b.check).toBe(false); + b.toggleRead(); + expect(b.check).toBe(true); +}); + +test('validateTitle rejects empty/whitespace', () => { + expect(validateTitle('')).toBe(false); + expect(validateTitle(' ')).toBe(false); + expect(validateTitle('Name')).toBe(true); +}); + +test('validatePages accepts positive numbers', () => { + expect(validatePages('12')).toBe(true); + expect(validatePages(0)).toBe(false); + expect(validatePages(-5)).toBe(false); + expect(validatePages('abc')).toBe(false); +}); diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index beb1668e..3f0c8b49 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -1,18 +1,37 @@ let myLibrary = []; +const STORAGE_KEY = 'bookLibrary_v1'; + +function loadStorage() { + try { + const raw = localStorage.getItem(STORAGE_KEY); + if (!raw) return false; + const parsed = JSON.parse(raw); + if (!Array.isArray(parsed)) return false; + myLibrary = parsed.map((o) => new Book(o.title, o.author, Number(o.pages), !!o.check)); + return true; + } catch (e) { + console.warn('Failed to load storage', e); + return false; + } +} -function populateStorage() { - if (myLibrary.length === 0) { - const book1 = new Book("Robinson Crusoe", "Daniel Defoe", 252, true); - const book2 = new Book( - "The Old Man and the Sea", - "Ernest Hemingway", - 127, - true - ); - myLibrary.push(book1, book2); +function saveStorage() { + try { + const plain = myLibrary.map((b) => ({ title: b.title, author: b.author, pages: b.pages, check: b.check })); + localStorage.setItem(STORAGE_KEY, JSON.stringify(plain)); + } catch (e) { + console.warn('Failed to save storage', e); } } +function populateStorage() { + if (loadStorage()) return; + const book1 = new Book('Robinson Crusoe', 'Daniel Defoe', 252, true); + const book2 = new Book('The Old Man and the Sea', 'Ernest Hemingway', 127, true); + myLibrary.push(book1, book2); + saveStorage(); +} + // DOM elements (suffix "El" to indicate element) const titleEl = document.getElementById("title"); const authorEl = document.getElementById("author"); @@ -21,7 +40,7 @@ const readEl = document.getElementById("check"); const formEl = document.getElementById("bookForm"); const tableEl = document.getElementById("display"); -formEl.addEventListener("submit", function (ev) { +formEl.addEventListener('submit', function (ev) { ev.preventDefault(); handleSubmit(); }); @@ -34,17 +53,18 @@ function handleSubmit() { const isRead = readEl.checked; if (!title || !author) { - alert("Please provide both title and author."); + showToast('Please provide both title and author.'); return; } if (!pagesRaw || !Number.isFinite(pages) || pages <= 0) { - alert("Please provide a valid positive number for pages."); + showToast('Please provide a valid positive number for pages.'); return; } const book = new Book(title, author, pages, isRead); myLibrary.push(book); + saveStorage(); // clear form formEl.reset(); @@ -52,11 +72,58 @@ function handleSubmit() { render(); } -function Book(title, author, pages, check) { - this.title = title; - this.author = author; - this.pages = pages; - this.check = Boolean(check); +class Book { + constructor(title, author, pages, check) { + this.title = title; + this.author = author; + this.pages = Number(pages); + this.check = Boolean(check); + } + + toggleRead() { + this.check = !this.check; + } +} + +// Modal / notification helpers +const confirmModalEl = document.getElementById('confirmModal'); +const confirmDescEl = document.getElementById('confirmDesc'); +const confirmYesEl = document.getElementById('confirmYes'); +const confirmNoEl = document.getElementById('confirmNo'); +const notificationEl = document.getElementById('notification'); + +function showConfirm(message) { + return new Promise((resolve) => { + confirmDescEl.textContent = message; + confirmModalEl.classList.remove('modal-hidden'); + confirmModalEl.classList.add('modal-visible'); + + function cleanup() { + confirmYesEl.removeEventListener('click', onYes); + confirmNoEl.removeEventListener('click', onNo); + confirmModalEl.classList.remove('modal-visible'); + confirmModalEl.classList.add('modal-hidden'); + } + + function onYes() { + cleanup(); + resolve(true); + } + + function onNo() { + cleanup(); + resolve(false); + } + + confirmYesEl.addEventListener('click', onYes); + confirmNoEl.addEventListener('click', onNo); + }); +} + +function showToast(message, ms = 2500) { + notificationEl.textContent = message; + notificationEl.classList.add('show'); + setTimeout(() => notificationEl.classList.remove('show'), ms); } function render() { @@ -78,11 +145,12 @@ function render() { authorCell.textContent = book.author; pagesCell.textContent = String(book.pages); - const toggleReadBtn = document.createElement("button"); - toggleReadBtn.className = "btn btn-success"; - toggleReadBtn.textContent = book.check ? "Yes" : "No"; - toggleReadBtn.addEventListener("click", () => { - myLibrary[index].check = !myLibrary[index].check; + const toggleReadBtn = document.createElement('button'); + toggleReadBtn.className = 'btn btn-success'; + toggleReadBtn.textContent = book.check ? 'Yes' : 'No'; + toggleReadBtn.addEventListener('click', () => { + myLibrary[index].toggleRead(); + saveStorage(); render(); }); @@ -91,14 +159,13 @@ function render() { const deleteBtn = document.createElement("button"); deleteBtn.className = "btn btn-warning"; deleteBtn.textContent = "Delete"; - deleteBtn.addEventListener("click", () => { - const confirmDelete = confirm( - `Delete "${book.title}" from your library?` - ); - if (!confirmDelete) return; + deleteBtn.addEventListener('click', async () => { + const confirmed = await showConfirm(`Delete "${book.title}" from your library?`); + if (!confirmed) return; myLibrary.splice(index, 1); + saveStorage(); render(); - alert(`Deleted "${book.title}"`); + showToast(`Deleted "${book.title}"`); }); actionsCell.appendChild(deleteBtn); @@ -114,7 +181,15 @@ function render() { } // Initialization -document.addEventListener("DOMContentLoaded", () => { +// Accessibility: update aria-expanded on collapse show/hide +const toggleBtn = document.getElementById('toggleFormBtn'); +const demoEl = document.getElementById('demo'); +if (demoEl && toggleBtn) { + demoEl.addEventListener('shown.bs.collapse', () => toggleBtn.setAttribute('aria-expanded', 'true')); + demoEl.addEventListener('hidden.bs.collapse', () => toggleBtn.setAttribute('aria-expanded', 'false')); +} + +document.addEventListener('DOMContentLoaded', () => { populateStorage(); render(); }); diff --git a/debugging/book-library/style.css b/debugging/book-library/style.css index 60a82f29..dcb368d4 100644 --- a/debugging/book-library/style.css +++ b/debugging/book-library/style.css @@ -16,3 +16,37 @@ button.btn-info { margin: 20px; } + +/* Simple modal styling */ +.modal-hidden { display: none; } +.modal-visible { + position: fixed; + inset: 0; + background: rgba(0,0,0,0.4); + display: flex; + align-items: center; + justify-content: center; + z-index: 1050; +} +.modal-content-custom { + background: #fff; + padding: 16px; + border-radius: 6px; + max-width: 420px; + width: 90%; +} +.modal-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:12px; } + +/* Notification */ +.notification { + position: fixed; + right: 16px; + bottom: 16px; + background: rgba(0,0,0,0.8); + color: #fff; + padding: 8px 12px; + border-radius: 6px; + display: none; + z-index: 1060; +} +.notification.show { display: block; } From 1568290df1e0721ffcf83429849671bb779abd95 Mon Sep 17 00:00:00 2001 From: Baba05206 Date: Tue, 16 Dec 2025 22:44:24 +0000 Subject: [PATCH 7/9] chore(book-library): remove local test helpers (requested) --- debugging/book-library/index.html | 25 ++++++++- debugging/book-library/lib.cjs | 2 +- debugging/book-library/lib.test.js | 24 ++++---- debugging/book-library/script.js | 90 ++++++++++++++++++------------ debugging/book-library/style.css | 19 +++++-- 5 files changed, 103 insertions(+), 57 deletions(-) diff --git a/debugging/book-library/index.html b/debugging/book-library/index.html index e2eb8202..f7a1f74c 100644 --- a/debugging/book-library/index.html +++ b/debugging/book-library/index.html @@ -20,7 +20,14 @@

      Library

      Add books to your virtual library

      - @@ -65,7 +72,14 @@

      Library

      -
      diff --git a/debugging/book-library/lib.cjs b/debugging/book-library/lib.cjs index 7e2220e5..cb0ca963 100644 --- a/debugging/book-library/lib.cjs +++ b/debugging/book-library/lib.cjs @@ -11,7 +11,7 @@ class Book { } function validateTitle(title) { - return typeof title === 'string' && title.trim().length > 0; + return typeof title === "string" && title.trim().length > 0; } function validatePages(pages) { diff --git a/debugging/book-library/lib.test.js b/debugging/book-library/lib.test.js index 4ab307a7..7addf39b 100644 --- a/debugging/book-library/lib.test.js +++ b/debugging/book-library/lib.test.js @@ -1,24 +1,24 @@ -const { Book, validateTitle, validatePages } = require('./lib.cjs'); +const { Book, validateTitle, validatePages } = require("./lib.cjs"); -test('Book class stores values and toggles read', () => { - const b = new Book('T', 'A', 100, false); - expect(b.title).toBe('T'); - expect(b.author).toBe('A'); +test("Book class stores values and toggles read", () => { + const b = new Book("T", "A", 100, false); + expect(b.title).toBe("T"); + expect(b.author).toBe("A"); expect(b.pages).toBe(100); expect(b.check).toBe(false); b.toggleRead(); expect(b.check).toBe(true); }); -test('validateTitle rejects empty/whitespace', () => { - expect(validateTitle('')).toBe(false); - expect(validateTitle(' ')).toBe(false); - expect(validateTitle('Name')).toBe(true); +test("validateTitle rejects empty/whitespace", () => { + expect(validateTitle("")).toBe(false); + expect(validateTitle(" ")).toBe(false); + expect(validateTitle("Name")).toBe(true); }); -test('validatePages accepts positive numbers', () => { - expect(validatePages('12')).toBe(true); +test("validatePages accepts positive numbers", () => { + expect(validatePages("12")).toBe(true); expect(validatePages(0)).toBe(false); expect(validatePages(-5)).toBe(false); - expect(validatePages('abc')).toBe(false); + expect(validatePages("abc")).toBe(false); }); diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index 3f0c8b49..db4a8a9d 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -1,5 +1,5 @@ let myLibrary = []; -const STORAGE_KEY = 'bookLibrary_v1'; +const STORAGE_KEY = "bookLibrary_v1"; function loadStorage() { try { @@ -7,27 +7,39 @@ function loadStorage() { if (!raw) return false; const parsed = JSON.parse(raw); if (!Array.isArray(parsed)) return false; - myLibrary = parsed.map((o) => new Book(o.title, o.author, Number(o.pages), !!o.check)); + myLibrary = parsed.map( + (o) => new Book(o.title, o.author, Number(o.pages), !!o.check) + ); return true; } catch (e) { - console.warn('Failed to load storage', e); + console.warn("Failed to load storage", e); return false; } } function saveStorage() { try { - const plain = myLibrary.map((b) => ({ title: b.title, author: b.author, pages: b.pages, check: b.check })); + const plain = myLibrary.map((b) => ({ + title: b.title, + author: b.author, + pages: b.pages, + check: b.check, + })); localStorage.setItem(STORAGE_KEY, JSON.stringify(plain)); } catch (e) { - console.warn('Failed to save storage', e); + console.warn("Failed to save storage", e); } } function populateStorage() { if (loadStorage()) return; - const book1 = new Book('Robinson Crusoe', 'Daniel Defoe', 252, true); - const book2 = new Book('The Old Man and the Sea', 'Ernest Hemingway', 127, true); + const book1 = new Book("Robinson Crusoe", "Daniel Defoe", 252, true); + const book2 = new Book( + "The Old Man and the Sea", + "Ernest Hemingway", + 127, + true + ); myLibrary.push(book1, book2); saveStorage(); } @@ -40,7 +52,7 @@ const readEl = document.getElementById("check"); const formEl = document.getElementById("bookForm"); const tableEl = document.getElementById("display"); -formEl.addEventListener('submit', function (ev) { +formEl.addEventListener("submit", function (ev) { ev.preventDefault(); handleSubmit(); }); @@ -53,12 +65,12 @@ function handleSubmit() { const isRead = readEl.checked; if (!title || !author) { - showToast('Please provide both title and author.'); + showToast("Please provide both title and author."); return; } if (!pagesRaw || !Number.isFinite(pages) || pages <= 0) { - showToast('Please provide a valid positive number for pages.'); + showToast("Please provide a valid positive number for pages."); return; } @@ -86,23 +98,23 @@ class Book { } // Modal / notification helpers -const confirmModalEl = document.getElementById('confirmModal'); -const confirmDescEl = document.getElementById('confirmDesc'); -const confirmYesEl = document.getElementById('confirmYes'); -const confirmNoEl = document.getElementById('confirmNo'); -const notificationEl = document.getElementById('notification'); +const confirmModalEl = document.getElementById("confirmModal"); +const confirmDescEl = document.getElementById("confirmDesc"); +const confirmYesEl = document.getElementById("confirmYes"); +const confirmNoEl = document.getElementById("confirmNo"); +const notificationEl = document.getElementById("notification"); function showConfirm(message) { return new Promise((resolve) => { confirmDescEl.textContent = message; - confirmModalEl.classList.remove('modal-hidden'); - confirmModalEl.classList.add('modal-visible'); + confirmModalEl.classList.remove("modal-hidden"); + confirmModalEl.classList.add("modal-visible"); function cleanup() { - confirmYesEl.removeEventListener('click', onYes); - confirmNoEl.removeEventListener('click', onNo); - confirmModalEl.classList.remove('modal-visible'); - confirmModalEl.classList.add('modal-hidden'); + confirmYesEl.removeEventListener("click", onYes); + confirmNoEl.removeEventListener("click", onNo); + confirmModalEl.classList.remove("modal-visible"); + confirmModalEl.classList.add("modal-hidden"); } function onYes() { @@ -115,15 +127,15 @@ function showConfirm(message) { resolve(false); } - confirmYesEl.addEventListener('click', onYes); - confirmNoEl.addEventListener('click', onNo); + confirmYesEl.addEventListener("click", onYes); + confirmNoEl.addEventListener("click", onNo); }); } function showToast(message, ms = 2500) { notificationEl.textContent = message; - notificationEl.classList.add('show'); - setTimeout(() => notificationEl.classList.remove('show'), ms); + notificationEl.classList.add("show"); + setTimeout(() => notificationEl.classList.remove("show"), ms); } function render() { @@ -145,10 +157,10 @@ function render() { authorCell.textContent = book.author; pagesCell.textContent = String(book.pages); - const toggleReadBtn = document.createElement('button'); - toggleReadBtn.className = 'btn btn-success'; - toggleReadBtn.textContent = book.check ? 'Yes' : 'No'; - toggleReadBtn.addEventListener('click', () => { + const toggleReadBtn = document.createElement("button"); + toggleReadBtn.className = "btn btn-success"; + toggleReadBtn.textContent = book.check ? "Yes" : "No"; + toggleReadBtn.addEventListener("click", () => { myLibrary[index].toggleRead(); saveStorage(); render(); @@ -159,8 +171,10 @@ function render() { const deleteBtn = document.createElement("button"); deleteBtn.className = "btn btn-warning"; deleteBtn.textContent = "Delete"; - deleteBtn.addEventListener('click', async () => { - const confirmed = await showConfirm(`Delete "${book.title}" from your library?`); + deleteBtn.addEventListener("click", async () => { + const confirmed = await showConfirm( + `Delete "${book.title}" from your library?` + ); if (!confirmed) return; myLibrary.splice(index, 1); saveStorage(); @@ -182,14 +196,18 @@ function render() { // Initialization // Accessibility: update aria-expanded on collapse show/hide -const toggleBtn = document.getElementById('toggleFormBtn'); -const demoEl = document.getElementById('demo'); +const toggleBtn = document.getElementById("toggleFormBtn"); +const demoEl = document.getElementById("demo"); if (demoEl && toggleBtn) { - demoEl.addEventListener('shown.bs.collapse', () => toggleBtn.setAttribute('aria-expanded', 'true')); - demoEl.addEventListener('hidden.bs.collapse', () => toggleBtn.setAttribute('aria-expanded', 'false')); + demoEl.addEventListener("shown.bs.collapse", () => + toggleBtn.setAttribute("aria-expanded", "true") + ); + demoEl.addEventListener("hidden.bs.collapse", () => + toggleBtn.setAttribute("aria-expanded", "false") + ); } -document.addEventListener('DOMContentLoaded', () => { +document.addEventListener("DOMContentLoaded", () => { populateStorage(); render(); }); diff --git a/debugging/book-library/style.css b/debugging/book-library/style.css index dcb368d4..f4f36b18 100644 --- a/debugging/book-library/style.css +++ b/debugging/book-library/style.css @@ -18,11 +18,13 @@ button.btn-info { } /* Simple modal styling */ -.modal-hidden { display: none; } +.modal-hidden { + display: none; +} .modal-visible { position: fixed; inset: 0; - background: rgba(0,0,0,0.4); + background: rgba(0, 0, 0, 0.4); display: flex; align-items: center; justify-content: center; @@ -35,18 +37,25 @@ button.btn-info { max-width: 420px; width: 90%; } -.modal-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:12px; } +.modal-actions { + display: flex; + gap: 8px; + justify-content: flex-end; + margin-top: 12px; +} /* Notification */ .notification { position: fixed; right: 16px; bottom: 16px; - background: rgba(0,0,0,0.8); + background: rgba(0, 0, 0, 0.8); color: #fff; padding: 8px 12px; border-radius: 6px; display: none; z-index: 1060; } -.notification.show { display: block; } +.notification.show { + display: block; +} From a7ae92ef5a550d6b63c8b6c342e1417f6bb17a98 Mon Sep 17 00:00:00 2001 From: Baba05206 Date: Tue, 16 Dec 2025 22:46:28 +0000 Subject: [PATCH 8/9] chore(book-library): remove Book class and validation functions --- debugging/book-library/lib.cjs | 22 ---------------------- debugging/book-library/lib.test.js | 24 ------------------------ 2 files changed, 46 deletions(-) delete mode 100644 debugging/book-library/lib.cjs delete mode 100644 debugging/book-library/lib.test.js diff --git a/debugging/book-library/lib.cjs b/debugging/book-library/lib.cjs deleted file mode 100644 index cb0ca963..00000000 --- a/debugging/book-library/lib.cjs +++ /dev/null @@ -1,22 +0,0 @@ -class Book { - constructor(title, author, pages, check) { - this.title = title; - this.author = author; - this.pages = Number(pages); - this.check = Boolean(check); - } - toggleRead() { - this.check = !this.check; - } -} - -function validateTitle(title) { - return typeof title === "string" && title.trim().length > 0; -} - -function validatePages(pages) { - const n = Number(pages); - return Number.isFinite(n) && n > 0; -} - -module.exports = { Book, validateTitle, validatePages }; diff --git a/debugging/book-library/lib.test.js b/debugging/book-library/lib.test.js deleted file mode 100644 index 7addf39b..00000000 --- a/debugging/book-library/lib.test.js +++ /dev/null @@ -1,24 +0,0 @@ -const { Book, validateTitle, validatePages } = require("./lib.cjs"); - -test("Book class stores values and toggles read", () => { - const b = new Book("T", "A", 100, false); - expect(b.title).toBe("T"); - expect(b.author).toBe("A"); - expect(b.pages).toBe(100); - expect(b.check).toBe(false); - b.toggleRead(); - expect(b.check).toBe(true); -}); - -test("validateTitle rejects empty/whitespace", () => { - expect(validateTitle("")).toBe(false); - expect(validateTitle(" ")).toBe(false); - expect(validateTitle("Name")).toBe(true); -}); - -test("validatePages accepts positive numbers", () => { - expect(validatePages("12")).toBe(true); - expect(validatePages(0)).toBe(false); - expect(validatePages(-5)).toBe(false); - expect(validatePages("abc")).toBe(false); -}); From abb4a76e7c5fdf2ef8126ef54e87d477a9e2c7b6 Mon Sep 17 00:00:00 2001 From: Baba05206 Date: Fri, 19 Dec 2025 10:22:52 +0000 Subject: [PATCH 9/9] feat(book-library): refactor form handling and storage management; improve accessibility --- debugging/book-library/index.html | 82 +++--------- debugging/book-library/script.js | 208 +++++++++++------------------- 2 files changed, 92 insertions(+), 198 deletions(-) diff --git a/debugging/book-library/index.html b/debugging/book-library/index.html index f7a1f74c..17792844 100644 --- a/debugging/book-library/index.html +++ b/debugging/book-library/index.html @@ -4,14 +4,16 @@ Book Library + + - + @@ -32,93 +34,39 @@

      Library

      -
      - - + + + - - + + - - + + - +
      - - - - -
      +
      - + - - - - - - - - - +
      Title AuthorNumber of PagesPages Read
      - + diff --git a/debugging/book-library/script.js b/debugging/book-library/script.js index db4a8a9d..3b0a7f9b 100644 --- a/debugging/book-library/script.js +++ b/debugging/book-library/script.js @@ -1,14 +1,18 @@ let myLibrary = []; const STORAGE_KEY = "bookLibrary_v1"; +/* ---------- Storage ---------- */ + function loadStorage() { try { const raw = localStorage.getItem(STORAGE_KEY); if (!raw) return false; + const parsed = JSON.parse(raw); if (!Array.isArray(parsed)) return false; + myLibrary = parsed.map( - (o) => new Book(o.title, o.author, Number(o.pages), !!o.check) + (o) => new Book(o.title, o.author, o.pages, o.check) ); return true; } catch (e) { @@ -18,194 +22,136 @@ function loadStorage() { } function saveStorage() { - try { - const plain = myLibrary.map((b) => ({ - title: b.title, - author: b.author, - pages: b.pages, - check: b.check, - })); - localStorage.setItem(STORAGE_KEY, JSON.stringify(plain)); - } catch (e) { - console.warn("Failed to save storage", e); - } + const plain = myLibrary.map((b) => ({ + title: b.title, + author: b.author, + pages: b.pages, + check: b.check, + })); + localStorage.setItem(STORAGE_KEY, JSON.stringify(plain)); } function populateStorage() { if (loadStorage()) return; - const book1 = new Book("Robinson Crusoe", "Daniel Defoe", 252, true); - const book2 = new Book( - "The Old Man and the Sea", - "Ernest Hemingway", - 127, - true + + myLibrary.push( + new Book("Robinson Crusoe", "Daniel Defoe", 252, true), + new Book("The Old Man and the Sea", "Ernest Hemingway", 127, true) ); - myLibrary.push(book1, book2); saveStorage(); } -// DOM elements (suffix "El" to indicate element) +/* ---------- Book Model ---------- */ + +class Book { + constructor(title, author, pages, check) { + this.title = title; + this.author = author; + this.pages = pages; + this.check = check; + } + + toggleRead() { + this.check = !this.check; + } +} + +/* ---------- DOM ---------- */ + const titleEl = document.getElementById("title"); const authorEl = document.getElementById("author"); const pagesEl = document.getElementById("pages"); const readEl = document.getElementById("check"); const formEl = document.getElementById("bookForm"); const tableEl = document.getElementById("display"); +const notificationEl = document.getElementById("notification"); -formEl.addEventListener("submit", function (ev) { - ev.preventDefault(); - handleSubmit(); -}); +/* ---------- Helpers ---------- */ + +function showToast(message, ms = 2500) { + notificationEl.textContent = message; + notificationEl.classList.add("show"); + setTimeout(() => notificationEl.classList.remove("show"), ms); +} + +function showConfirm(message) { + return window.confirm(message); +} + +/* ---------- Form ---------- */ + +formEl.addEventListener("submit", (e) => { + e.preventDefault(); -function handleSubmit() { const title = titleEl.value.trim(); const author = authorEl.value.trim(); - const pagesRaw = pagesEl.value.trim(); - const pages = Number(pagesRaw); + const pages = Number(pagesEl.value); const isRead = readEl.checked; if (!title || !author) { - showToast("Please provide both title and author."); + showToast("Title and author are required"); return; } - if (!pagesRaw || !Number.isFinite(pages) || pages <= 0) { - showToast("Please provide a valid positive number for pages."); + if (!Number.isFinite(pages) || pages <= 0) { + showToast("Pages must be a positive number"); return; } - const book = new Book(title, author, pages, isRead); - myLibrary.push(book); + myLibrary.push(new Book(title, author, pages, isRead)); saveStorage(); - - // clear form formEl.reset(); - render(); -} - -class Book { - constructor(title, author, pages, check) { - this.title = title; - this.author = author; - this.pages = Number(pages); - this.check = Boolean(check); - } - - toggleRead() { - this.check = !this.check; - } -} - -// Modal / notification helpers -const confirmModalEl = document.getElementById("confirmModal"); -const confirmDescEl = document.getElementById("confirmDesc"); -const confirmYesEl = document.getElementById("confirmYes"); -const confirmNoEl = document.getElementById("confirmNo"); -const notificationEl = document.getElementById("notification"); - -function showConfirm(message) { - return new Promise((resolve) => { - confirmDescEl.textContent = message; - confirmModalEl.classList.remove("modal-hidden"); - confirmModalEl.classList.add("modal-visible"); - - function cleanup() { - confirmYesEl.removeEventListener("click", onYes); - confirmNoEl.removeEventListener("click", onNo); - confirmModalEl.classList.remove("modal-visible"); - confirmModalEl.classList.add("modal-hidden"); - } - - function onYes() { - cleanup(); - resolve(true); - } - - function onNo() { - cleanup(); - resolve(false); - } - - confirmYesEl.addEventListener("click", onYes); - confirmNoEl.addEventListener("click", onNo); - }); -} +}); -function showToast(message, ms = 2500) { - notificationEl.textContent = message; - notificationEl.classList.add("show"); - setTimeout(() => notificationEl.classList.remove("show"), ms); -} +/* ---------- Render ---------- */ function render() { const tbody = tableEl.querySelector("tbody"); - - // Clear existing rows in one operation tbody.innerHTML = ""; myLibrary.forEach((book, index) => { const row = document.createElement("tr"); const titleCell = document.createElement("td"); - const authorCell = document.createElement("td"); - const pagesCell = document.createElement("td"); - const readCell = document.createElement("td"); - const actionsCell = document.createElement("td"); - titleCell.textContent = book.title; + + const authorCell = document.createElement("td"); authorCell.textContent = book.author; - pagesCell.textContent = String(book.pages); - const toggleReadBtn = document.createElement("button"); - toggleReadBtn.className = "btn btn-success"; - toggleReadBtn.textContent = book.check ? "Yes" : "No"; - toggleReadBtn.addEventListener("click", () => { - myLibrary[index].toggleRead(); + const pagesCell = document.createElement("td"); + pagesCell.textContent = book.pages; + + const readCell = document.createElement("td"); + const readBtn = document.createElement("button"); + readBtn.className = "btn btn-success"; + readBtn.textContent = book.check ? "Yes" : "No"; + readBtn.onclick = () => { + book.toggleRead(); saveStorage(); render(); - }); - - readCell.appendChild(toggleReadBtn); + }; + readCell.appendChild(readBtn); + const actionsCell = document.createElement("td"); const deleteBtn = document.createElement("button"); deleteBtn.className = "btn btn-warning"; deleteBtn.textContent = "Delete"; - deleteBtn.addEventListener("click", async () => { - const confirmed = await showConfirm( - `Delete "${book.title}" from your library?` - ); - if (!confirmed) return; + deleteBtn.onclick = () => { + if (!showConfirm(`Delete "${book.title}"?`)) return; myLibrary.splice(index, 1); saveStorage(); render(); - showToast(`Deleted "${book.title}"`); - }); - + showToast("Book deleted"); + }; actionsCell.appendChild(deleteBtn); - row.appendChild(titleCell); - row.appendChild(authorCell); - row.appendChild(pagesCell); - row.appendChild(readCell); - row.appendChild(actionsCell); - + row.append(titleCell, authorCell, pagesCell, readCell, actionsCell); tbody.appendChild(row); }); } -// Initialization -// Accessibility: update aria-expanded on collapse show/hide -const toggleBtn = document.getElementById("toggleFormBtn"); -const demoEl = document.getElementById("demo"); -if (demoEl && toggleBtn) { - demoEl.addEventListener("shown.bs.collapse", () => - toggleBtn.setAttribute("aria-expanded", "true") - ); - demoEl.addEventListener("hidden.bs.collapse", () => - toggleBtn.setAttribute("aria-expanded", "false") - ); -} +/* ---------- Init ---------- */ document.addEventListener("DOMContentLoaded", () => { populateStorage();