From 4abc193544d2e453b3d1d9503101456188c0bb7b Mon Sep 17 00:00:00 2001 From: Daniel Schiavini Date: Thu, 12 Dec 2024 11:42:41 +0100 Subject: [PATCH 1/4] chore: update dependencies and get rid of axios --- .eslintrc.json | 2 +- package-lock.json | 2196 ++++++++++++++++-------------- package.json | 31 +- src/boosting.ts | 4 +- src/constants/factory/crypto.ts | 6 +- src/constants/factory/stable.ts | 76 +- src/constants/pools/arbitrum.ts | 16 +- src/constants/pools/aurora.ts | 4 +- src/constants/pools/avalanche.ts | 14 +- src/constants/pools/ethereum.ts | 180 +-- src/constants/pools/fantom.ts | 22 +- src/constants/pools/moonbeam.ts | 4 +- src/constants/pools/optimism.ts | 6 +- src/constants/pools/polygon.ts | 16 +- src/constants/pools/xdai.ts | 20 +- src/curve.ts | 54 +- src/dao.ts | 2 +- src/external-api.ts | 175 +-- src/factory/deploy.ts | 6 +- src/factory/factory-api.ts | 20 +- src/factory/factory-crypto.ts | 8 +- src/factory/factory-tricrypto.ts | 10 +- src/factory/factory-twocrypto.ts | 8 +- src/factory/factory.ts | 10 +- src/pools/PoolTemplate.ts | 2 +- src/pools/utils.ts | 2 +- src/router.ts | 5 +- src/utils.ts | 20 +- 28 files changed, 1537 insertions(+), 1382 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 9511148c..ed622320 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -6,7 +6,7 @@ "extends": "eslint:recommended", "parser": "vue-eslint-parser", "parserOptions": { - "parser": "babel-eslint", + "parser": "@babel/eslint-parser", "sourceType": "module", "allowImportExportEverywhere": false }, diff --git a/package-lock.json b/package-lock.json index 2151e323..5f255584 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,33 +1,32 @@ { "name": "@curvefi/api", - "version": "2.65.14", + "version": "2.65.20", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@curvefi/api", - "version": "2.65.14", + "version": "2.65.20", "license": "MIT", "dependencies": { "@curvefi/ethcall": "6.0.7", - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "ethers": "^6.11.0", - "memoizee": "^0.4.15" + "bignumber.js": "^9.1.2", + "ethers": "^6.13.4", + "memoizee": "^0.4.17" }, "devDependencies": { - "@types/chai": "^4.3.4", - "@types/memoizee": "^0.4.7", - "@types/mocha": "^10.0.1", - "@types/node": "^14.14.37", - "@typescript-eslint/eslint-plugin": "^4.33.0", - "@typescript-eslint/parser": "^4.20.0", - "babel-eslint": "^10.1.0", - "chai": "^4.3.7", - "eslint": "^7.32.0", - "mocha": "^10.2.0", - "typescript": "^4.5.2", - "vue-eslint-parser": "^7.6.0" + "@babel/eslint-parser": "^7.25.9", + "@types/chai": "^5.0.1", + "@types/memoizee": "^0.4.11", + "@types/mocha": "^10.0.10", + "@types/node": "^22.10.2", + "@typescript-eslint/eslint-plugin": "^8.18.0", + "@typescript-eslint/parser": "^8.18.0", + "chai": "^5.1.2", + "eslint": "^9.16.0", + "mocha": "^11.0.1", + "typescript": "^5.7.2", + "vue-eslint-parser": "^9.4.3" }, "engines": { "node": "22" @@ -39,12 +38,28 @@ "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", "license": "MIT" }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", @@ -54,135 +69,184 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "node_modules/@babel/compat-data": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", + "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@babel/parser": "^7.26.2", + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", "@babel/types": "^7.26.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/helper-string-parser": { + "node_modules/@babel/eslint-parser": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.9.tgz", + "integrity": "sha512-5UXfgpK0j0Xr/xIdgdLEhOFxaDZ0bRPWJJchRpqOSur/3rZoPbqqki5mm0p4NE2cs28krBEiSM2MB7//afRSQQ==", "dev": true, "license": "MIT", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, "engines": { - "node": ">=6.9.0" + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, "license": "MIT", + "peer": true, + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { + "node_modules/@babel/helper-compilation-targets": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.9.tgz", - "integrity": "sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "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==", + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "color-convert": "^1.9.0" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "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==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "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==", + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, "license": "MIT", - "dependencies": { - "color-name": "1.1.3" + "peer": true, + "engines": { + "node": ">=6.9.0" } }, - "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, - "license": "MIT" - }, - "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==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { - "node": ">=0.8.0" + "node": ">=6.9.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==", + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "license": "MIT", + "peer": true, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "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/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "has-flag": "^3.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, "node_modules/@babel/parser": { @@ -191,6 +255,7 @@ "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/types": "^7.26.0" }, @@ -207,6 +272,7 @@ "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.25.9", "@babel/parser": "^7.25.9", @@ -222,6 +288,7 @@ "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.25.9", "@babel/generator": "^7.25.9", @@ -241,6 +308,7 @@ "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -271,83 +339,370 @@ "undici-types": "~6.19.2" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, "license": "MIT", "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", + "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", "dev": true, "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "type-fest": "^0.20.2" + "levn": "^0.4.1" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { - "node": ">= 4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause" - }, "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==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -363,6 +718,7 @@ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6.0.0" } @@ -373,6 +729,7 @@ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6.0.0" } @@ -382,7 +739,8 @@ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", @@ -390,11 +748,22 @@ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, "node_modules/@noble/curves": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", @@ -457,10 +826,38 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@types/chai": { - "version": "4.3.20", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", - "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.0.1.tgz", + "integrity": "sha512-5T8ajsg3M/FOncpLYW7sdOcD6yf4+722sze/tc4KQV0P8Z2rAr3SAuHCIkYmYpt8VbcQlnz8SxlOlPQYefe4cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true, "license": "MIT" }, @@ -486,124 +883,127 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "14.18.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", - "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", + "version": "22.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", + "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/node/node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", - "integrity": "sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz", + "integrity": "sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/experimental-utils": "4.33.0", - "@typescript-eslint/scope-manager": "4.33.0", - "debug": "^4.3.1", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.1.8", - "regexpp": "^3.1.0", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.18.0", + "@typescript-eslint/type-utils": "8.18.0", + "@typescript-eslint/utils": "8.18.0", + "@typescript-eslint/visitor-keys": "8.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^4.0.0", - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz", - "integrity": "sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==", + "node_modules/@typescript-eslint/parser": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.0.tgz", + "integrity": "sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q==", "dev": true, - "license": "MIT", + "license": "MITClause", "dependencies": { - "@types/json-schema": "^7.0.7", - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "@typescript-eslint/scope-manager": "8.18.0", + "@typescript-eslint/types": "8.18.0", + "@typescript-eslint/typescript-estree": "8.18.0", + "@typescript-eslint/visitor-keys": "8.18.0", + "debug": "^4.3.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz", - "integrity": "sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz", + "integrity": "sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "4.33.0", - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/typescript-estree": "4.33.0", - "debug": "^4.3.1" + "@typescript-eslint/types": "8.18.0", + "@typescript-eslint/visitor-keys": "8.18.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz", - "integrity": "sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.0.tgz", + "integrity": "sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0" + "@typescript-eslint/typescript-estree": "8.18.0", + "@typescript-eslint/utils": "8.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.0.tgz", + "integrity": "sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==", "dev": true, "license": "MIT", "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -611,51 +1011,100 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz", + "integrity": "sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" + "@typescript-eslint/types": "8.18.0", + "@typescript-eslint/visitor-keys": "8.18.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.0.tgz", + "integrity": "sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.18.0", + "@typescript-eslint/types": "8.18.0", + "@typescript-eslint/typescript-estree": "8.18.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz", + "integrity": "sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" + "@typescript-eslint/types": "8.18.0", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/abi-coder": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/abi-coder/-/abi-coder-5.0.0.tgz", @@ -666,9 +1115,9 @@ } }, "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -762,84 +1211,20 @@ } }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "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": "MIT", - "engines": { - "node": ">=8" - } + "license": "Python-2.0" }, "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "license": "MIT", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "eslint": ">= 4.12.1" - } - }, - "node_modules/babel-eslint/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "license": "Apache-2.0", "engines": { - "node": ">=4" + "node": ">=12" } }, "node_modules/balanced-match": { @@ -872,14 +1257,13 @@ } }, "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": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -902,6 +1286,40 @@ "dev": true, "license": "ISC" }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -925,23 +1343,43 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/caniuse-lite": { + "version": "1.0.30001688", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001688.tgz", + "integrity": "sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0", + "peer": true + }, "node_modules/chai": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", - "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz", + "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==", "dev": true, "license": "MIT", "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.1.0" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, "node_modules/chalk": { @@ -962,16 +1400,13 @@ } }, "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.2" - }, "engines": { - "node": "*" + "node": ">= 16" } }, "node_modules/chokidar": { @@ -1038,6 +1473,14 @@ "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, + "license": "MIT", + "peer": true + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -1098,14 +1541,11 @@ } }, "node_modules/deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, "license": "MIT", - "dependencies": { - "type-detect": "^4.0.0" - }, "engines": { "node": ">=6" } @@ -1127,31 +1567,20 @@ "node": ">=0.3.1" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/electron-to-chromium": { + "version": "1.5.73", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.73.tgz", + "integrity": "sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } + "license": "ISC", + "peer": true }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -1160,20 +1589,6 @@ "dev": true, "license": "MIT" }, - "node_modules/enquirer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", - "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/es5-ext": { "version": "0.10.64", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", @@ -1250,62 +1665,63 @@ } }, "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", + "version": "9.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.16.0.tgz", + "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.16.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", + "cross-spawn": "^7.0.5", + "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-scope": { @@ -1322,25 +1738,6 @@ "node": ">=8.0.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, "node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", @@ -1351,66 +1748,81 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "node_modules/eslint/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==", "dev": true, "license": "MIT", "dependencies": { - "@babel/highlight": "^7.10.4" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/eslint/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": "MIT", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", "dependencies": { - "type-fest": "^0.20.2" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.13.0" } }, - "node_modules/eslint/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">= 4" + "node": "*" } }, "node_modules/esniff": { @@ -1429,42 +1841,34 @@ } }, "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=4" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { @@ -1627,13 +2031,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -1645,16 +2042,16 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { @@ -1698,18 +2095,17 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { @@ -1719,33 +2115,23 @@ "dev": true, "license": "ISC" }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, "engines": { - "node": ">=4.0" + "node": ">=14" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -1761,23 +2147,17 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "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", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peer": true, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true, - "license": "MIT" - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -1788,32 +2168,22 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=12" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1832,59 +2202,23 @@ "node": ">= 6" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "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, "license": "MIT", + "peer": true, "engines": { "node": ">=4" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", @@ -1896,19 +2230,6 @@ "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/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -1956,25 +2277,6 @@ "node": ">=0.8.19" } }, - "node_modules/inflight": { - "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" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -1988,22 +2290,6 @@ "node": ">=8" } }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -2083,22 +2369,38 @@ "dev": true, "license": "ISC" }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "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": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -2110,6 +2412,7 @@ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "license": "MIT", + "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -2138,6 +2441,20 @@ "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", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -2192,13 +2509,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true, - "license": "MIT" - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -2217,13 +2527,21 @@ } }, "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", + "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "peer": true, "dependencies": { - "get-func-name": "^2.0.1" + "yallist": "^3.0.2" } }, "node_modules/lru-queue": { @@ -2279,22 +2597,35 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" } }, "node_modules/mocha": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", - "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.0.1.tgz", + "integrity": "sha512-+3GkODfsDG71KSCQhc4IekSW+ItCK/kiez1Z28ksWvYhKXV/syxMlerR/sC7whDp7IyreZ4YxceMLdTs5hQE8A==", "dev": true, "license": "MIT", "dependencies": { @@ -2305,7 +2636,7 @@ "diff": "^5.2.0", "escape-string-regexp": "^4.0.0", "find-up": "^5.0.0", - "glob": "^8.1.0", + "glob": "^10.4.5", "he": "^1.2.0", "js-yaml": "^4.1.0", "log-symbols": "^4.1.0", @@ -2324,37 +2655,7 @@ "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/mocha/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/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/mocha/node_modules/minimatch": { @@ -2406,6 +2707,14 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "license": "ISC" }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -2416,16 +2725,6 @@ "node": ">=0.10.0" } }, - "node_modules/once": { - "version": "1.4.0", - "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" - } - }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -2476,6 +2775,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -2499,16 +2805,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "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" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -2519,31 +2815,38 @@ "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, - "license": "MIT" + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "ISC" }, "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, "license": "MIT", "engines": { - "node": "*" + "node": ">= 14.16" } }, "node_modules/picocolors": { @@ -2551,7 +2854,8 @@ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/picomatch": { "version": "2.3.1", @@ -2576,16 +2880,6 @@ "node": ">= 0.8.0" } }, - "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/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -2640,19 +2934,6 @@ "node": ">=8.10.0" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -2663,34 +2944,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -2712,45 +2965,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -2797,16 +3011,13 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "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" - }, - "engines": { - "node": ">=10" } }, "node_modules/serialize-javascript": { @@ -2842,42 +3053,36 @@ "node": ">=8" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=8" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=8" } }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/string-width": { + "node_modules/string-width-cjs": { + "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", @@ -2905,6 +3110,20 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -2931,67 +3150,6 @@ "node": ">=8" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "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" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, "node_modules/timers-ext": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz", @@ -3018,33 +3176,23 @@ "node": ">=8.0" } }, - "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", "dev": true, "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, "engines": { - "node": ">= 6" + "node": ">=16" }, "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "typescript": ">=4.2.0" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, + "node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "license": "0BSD" }, "node_modules/type": { @@ -3066,33 +3214,10 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", - "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -3100,7 +3225,7 @@ "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/undici-types": { @@ -3109,6 +3234,38 @@ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "license": "MIT" }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -3119,71 +3276,100 @@ "punycode": "^2.1.0" } }, - "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true, - "license": "MIT" - }, "node_modules/vue-eslint-parser": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz", - "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==", + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.1.1", - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.2.1", + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", "esquery": "^1.4.0", "lodash": "^4.17.21", - "semver": "^6.3.0" + "semver": "^7.3.6" }, "engines": { - "node": ">=8.10" + "node": "^14.17.0 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/mysticatea" }, "peerDependencies": { - "eslint": ">=5.0.0" + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/vue-eslint-parser/node_modules/espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=6.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/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/vue-eslint-parser/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/which": { @@ -3237,12 +3423,24 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } }, "node_modules/ws": { "version": "8.17.1", @@ -3275,6 +3473,14 @@ "node": ">=10" } }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC", + "peer": true + }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", diff --git a/package.json b/package.json index 6e58b46d..a2725e4d 100644 --- a/package.json +++ b/package.json @@ -22,24 +22,23 @@ }, "type": "module", "devDependencies": { - "@types/chai": "^4.3.4", - "@types/memoizee": "^0.4.7", - "@types/mocha": "^10.0.1", - "@types/node": "^14.14.37", - "@typescript-eslint/eslint-plugin": "^4.33.0", - "@typescript-eslint/parser": "^4.20.0", - "babel-eslint": "^10.1.0", - "chai": "^4.3.7", - "eslint": "^7.32.0", - "mocha": "^10.2.0", - "typescript": "^4.5.2", - "vue-eslint-parser": "^7.6.0" + "@types/chai": "^5.0.1", + "@types/memoizee": "^0.4.11", + "@types/mocha": "^10.0.10", + "@types/node": "^22.10.2", + "@typescript-eslint/eslint-plugin": "^8.18.0", + "@typescript-eslint/parser": "^8.18.0", + "@babel/eslint-parser": "^7.25.9", + "chai": "^5.1.2", + "eslint": "^9.16.0", + "mocha": "^11.0.1", + "typescript": "^5.7.2", + "vue-eslint-parser": "^9.4.3" }, "dependencies": { - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", + "bignumber.js": "^9.1.2", "@curvefi/ethcall": "6.0.7", - "ethers": "^6.11.0", - "memoizee": "^0.4.15" + "ethers": "^6.13.4", + "memoizee": "^0.4.17" } } diff --git a/src/boosting.ts b/src/boosting.ts index da67100d..2b453779 100644 --- a/src/boosting.ts +++ b/src/boosting.ts @@ -2,8 +2,8 @@ import { Contract } from "ethers"; import BigNumber from "bignumber.js"; import { curve } from "./curve.js"; import { IDict, IChainId } from "./interfaces"; -import feeDistributorViewABI from "./constants/abis/fee_distributor_view.json" assert { type: 'json' }; -import feeDistributorCrvUSDViewABI from "./constants/abis/fee_distributor_crvusd_view.json" assert { type: 'json' }; +import feeDistributorViewABI from "./constants/abis/fee_distributor_view.json" with { type: 'json' }; +import feeDistributorCrvUSDViewABI from "./constants/abis/fee_distributor_crvusd_view.json" with { type: 'json' }; import { _getBalances, _prepareAddresses, DIGas, diff --git a/src/constants/factory/crypto.ts b/src/constants/factory/crypto.ts index 858a4555..07f61aec 100644 --- a/src/constants/factory/crypto.ts +++ b/src/constants/factory/crypto.ts @@ -1,9 +1,9 @@ import { IDict } from "../../interfaces"; import { lowerCaseKeys } from "../utils.js"; // --- ZAPS -- -import atricrypto3ZapABI from "../abis/atricrypto3/base_pool_zap.json" assert { type: 'json' }; -import tripoolZapABI from "../abis/3pool/meta_zap_crypto.json" assert { type: 'json' }; -import fraxusdcZapABI from "../abis/fraxusdc/meta_zap_crypto.json" assert { type: 'json' }; +import atricrypto3ZapABI from "../abis/atricrypto3/base_pool_zap.json" with { type: 'json' }; +import tripoolZapABI from "../abis/3pool/meta_zap_crypto.json" with { type: 'json' }; +import fraxusdcZapABI from "../abis/fraxusdc/meta_zap_crypto.json" with { type: 'json' }; export const lpTokenBasePoolIdDictEthereum: IDict = lowerCaseKeys({ diff --git a/src/constants/factory/stable.ts b/src/constants/factory/stable.ts index ac2f319b..dc4effcd 100644 --- a/src/constants/factory/stable.ts +++ b/src/constants/factory/stable.ts @@ -1,43 +1,43 @@ import { IDict } from "../../interfaces"; -import factorySwapABI from "../abis/factoryPools/swap.json" assert { type: 'json' }; -import MetaUSDABI from "../abis/factory-v2/MetaUSD.json" assert { type: 'json' }; -import MetaUSDBalancesABI from "../abis/factory-v2/MetaUSDBalances.json" assert { type: 'json' }; -import MetaFraxUSDABI from "../abis/factory-v2/MetaFraxUSD.json" assert { type: 'json' }; -import MetaFraxUSDBalancesABI from "../abis/factory-v2/MetaFraxUSDBalances.json" assert { type: 'json' }; -import MetaBTCABI from "../abis/factory-v2/MetaBTC.json" assert { type: 'json' }; -import MetaBTCBalancesABI from "../abis/factory-v2/MetaBTCBalances.json" assert { type: 'json' }; -import MetaBTCRenABI from "../abis/factory-v2/MetaBTCRen.json" assert { type: 'json' }; -import MetaBTCRenBalancesABI from "../abis/factory-v2/MetaBTCBalancesRen.json" assert { type: 'json' }; -import MetaSbtc2ABI from "../abis/factory-v2/MetaSbtc2.json" assert { type: 'json' }; -import MetaSbtc2BalancesABI from "../abis/factory-v2/MetaSbtc2Balance.json" assert { type: 'json' }; -import MetaUSDGeistABI from "../abis/factory-v2/MetaUSDGeist.json" assert { type: 'json' }; -import Plain2BasicABI from "../abis/factory-v2/Plain2Basic.json" assert { type: 'json' }; -import Plain2BasicWithRatesABI from "../abis/factory-v2/Plain2BasicWithRates.json" assert { type: 'json' }; -import Plain2BalancesABI from "../abis/factory-v2/Plain2Balances.json" assert { type: 'json' }; -import Plain2ETHABI from "../abis/factory-v2/Plain2ETH.json" assert { type: 'json' }; -import Plain2ETHOracleABI from "../abis/factory-v2/Plain2ETHOracle.json" assert { type: 'json' }; -import Plain2OptimizedABI from "../abis/factory-v2/Plain2Optimized.json" assert { type: 'json' }; -import Plain3BasicABI from "../abis/factory-v2/Plain3Basic.json" assert { type: 'json' }; -import Plain3BalancesABI from "../abis/factory-v2/Plain3Balances.json" assert { type: 'json' }; -import Plain3ETHABI from "../abis/factory-v2/Plain3ETH.json" assert { type: 'json' }; -import Plain3OptimizedABI from "../abis/factory-v2/Plain3Optimized.json" assert { type: 'json' }; -import Plain4BasicABI from "../abis/factory-v2/Plain4Basic.json" assert { type: 'json' }; -import Plain4BalancesABI from "../abis/factory-v2/Plain4Balances.json" assert { type: 'json' }; -import Plain4ETHABI from "../abis/factory-v2/Plain4ETH.json" assert { type: 'json' }; -import Plain4OptimizedABI from "../abis/factory-v2/Plain4Optimized.json" assert { type: 'json' }; -import Plain6BasicABI from "../abis/factory-v2/Plain6Basic.json" assert { type: 'json' }; -import Plain6BalancesABI from "../abis/factory-v2/Plain6Balances.json" assert { type: 'json' }; -import Plain6ETHABI from "../abis/factory-v2/Plain6ETH.json" assert { type: 'json' }; -import Plain6OptimizedABI from "../abis/factory-v2/Plain6Optimized.json" assert { type: 'json' }; +import factorySwapABI from "../abis/factoryPools/swap.json" with { type: 'json' }; +import MetaUSDABI from "../abis/factory-v2/MetaUSD.json" with { type: 'json' }; +import MetaUSDBalancesABI from "../abis/factory-v2/MetaUSDBalances.json" with { type: 'json' }; +import MetaFraxUSDABI from "../abis/factory-v2/MetaFraxUSD.json" with { type: 'json' }; +import MetaFraxUSDBalancesABI from "../abis/factory-v2/MetaFraxUSDBalances.json" with { type: 'json' }; +import MetaBTCABI from "../abis/factory-v2/MetaBTC.json" with { type: 'json' }; +import MetaBTCBalancesABI from "../abis/factory-v2/MetaBTCBalances.json" with { type: 'json' }; +import MetaBTCRenABI from "../abis/factory-v2/MetaBTCRen.json" with { type: 'json' }; +import MetaBTCRenBalancesABI from "../abis/factory-v2/MetaBTCBalancesRen.json" with { type: 'json' }; +import MetaSbtc2ABI from "../abis/factory-v2/MetaSbtc2.json" with { type: 'json' }; +import MetaSbtc2BalancesABI from "../abis/factory-v2/MetaSbtc2Balance.json" with { type: 'json' }; +import MetaUSDGeistABI from "../abis/factory-v2/MetaUSDGeist.json" with { type: 'json' }; +import Plain2BasicABI from "../abis/factory-v2/Plain2Basic.json" with { type: 'json' }; +import Plain2BasicWithRatesABI from "../abis/factory-v2/Plain2BasicWithRates.json" with { type: 'json' }; +import Plain2BalancesABI from "../abis/factory-v2/Plain2Balances.json" with { type: 'json' }; +import Plain2ETHABI from "../abis/factory-v2/Plain2ETH.json" with { type: 'json' }; +import Plain2ETHOracleABI from "../abis/factory-v2/Plain2ETHOracle.json" with { type: 'json' }; +import Plain2OptimizedABI from "../abis/factory-v2/Plain2Optimized.json" with { type: 'json' }; +import Plain3BasicABI from "../abis/factory-v2/Plain3Basic.json" with { type: 'json' }; +import Plain3BalancesABI from "../abis/factory-v2/Plain3Balances.json" with { type: 'json' }; +import Plain3ETHABI from "../abis/factory-v2/Plain3ETH.json" with { type: 'json' }; +import Plain3OptimizedABI from "../abis/factory-v2/Plain3Optimized.json" with { type: 'json' }; +import Plain4BasicABI from "../abis/factory-v2/Plain4Basic.json" with { type: 'json' }; +import Plain4BalancesABI from "../abis/factory-v2/Plain4Balances.json" with { type: 'json' }; +import Plain4ETHABI from "../abis/factory-v2/Plain4ETH.json" with { type: 'json' }; +import Plain4OptimizedABI from "../abis/factory-v2/Plain4Optimized.json" with { type: 'json' }; +import Plain6BasicABI from "../abis/factory-v2/Plain6Basic.json" with { type: 'json' }; +import Plain6BalancesABI from "../abis/factory-v2/Plain6Balances.json" with { type: 'json' }; +import Plain6ETHABI from "../abis/factory-v2/Plain6ETH.json" with { type: 'json' }; +import Plain6OptimizedABI from "../abis/factory-v2/Plain6Optimized.json" with { type: 'json' }; // --- ZAPS -- -import factoryDepositABI from "../abis/factoryPools/deposit.json" assert { type: 'json' }; -import fraxusdcMetaZapABI from "../abis/fraxusdc/meta_zap.json" assert { type: 'json' }; -import MetaUsdZapPolygonABI from "../abis/factory-v2/DepositZapMetaUsdPolygon.json" assert { type: 'json' }; -import MetaBtcZapPolygonABI from "../abis/factory-v2/DepositZapMetaBtcPolygon.json" assert { type: 'json' }; -import MetaZapFantomABI from "../abis/factory-v2/DepositZapFantom.json" assert { type: 'json' }; -import MetaGeistUsdZapFantomABI from "../abis/factory-v2/DepositZapMetaUsd2Fantom.json" assert { type: 'json' }; -import RenMetaZapABI from "../abis/ren/meta_zap.json" assert { type: 'json' }; -import Sbtc2MetaZapABI from "../abis/sbtc2/meta_zap.json" assert { type: 'json' }; +import factoryDepositABI from "../abis/factoryPools/deposit.json" with { type: 'json' }; +import fraxusdcMetaZapABI from "../abis/fraxusdc/meta_zap.json" with { type: 'json' }; +import MetaUsdZapPolygonABI from "../abis/factory-v2/DepositZapMetaUsdPolygon.json" with { type: 'json' }; +import MetaBtcZapPolygonABI from "../abis/factory-v2/DepositZapMetaBtcPolygon.json" with { type: 'json' }; +import MetaZapFantomABI from "../abis/factory-v2/DepositZapFantom.json" with { type: 'json' }; +import MetaGeistUsdZapFantomABI from "../abis/factory-v2/DepositZapMetaUsd2Fantom.json" with { type: 'json' }; +import RenMetaZapABI from "../abis/ren/meta_zap.json" with { type: 'json' }; +import Sbtc2MetaZapABI from "../abis/sbtc2/meta_zap.json" with { type: 'json' }; import { lowerCaseKeys } from "../utils.js"; diff --git a/src/constants/pools/arbitrum.ts b/src/constants/pools/arbitrum.ts index f773a2bd..4d063f25 100644 --- a/src/constants/pools/arbitrum.ts +++ b/src/constants/pools/arbitrum.ts @@ -1,13 +1,13 @@ import { IDict, IPoolData } from "../../interfaces"; import { lowerCasePoolDataAddresses } from "../utils.js"; -import twopoolSwapABI from '../abis/2pool/swap.json' assert { type: 'json' }; -import tricrypto2SwapABI from '../abis/tricrypto2/swap.json' assert { type: 'json' }; -import tricrypto2DepositABI from '../abis/tricrypto2/deposit.json' assert { type: 'json' }; -import eursusdSwapABI from '../abis/eursusd2/swap.json' assert { type: 'json' }; -import eursusdZapABI from '../abis/eursusd2/zap.json' assert { type: 'json' }; -import renSwapABI from '../abis/ren-arbitrum/swap.json' assert { type: 'json' }; -import gaugeChildABI from '../abis/gauge_child.json' assert { type: 'json' }; -import wstETHSwapABI from "../abis/wsteth/swap.json" assert { type: 'json' }; +import twopoolSwapABI from '../abis/2pool/swap.json' with { type: 'json' }; +import tricrypto2SwapABI from '../abis/tricrypto2/swap.json' with { type: 'json' }; +import tricrypto2DepositABI from '../abis/tricrypto2/deposit.json' with { type: 'json' }; +import eursusdSwapABI from '../abis/eursusd2/swap.json' with { type: 'json' }; +import eursusdZapABI from '../abis/eursusd2/zap.json' with { type: 'json' }; +import renSwapABI from '../abis/ren-arbitrum/swap.json' with { type: 'json' }; +import gaugeChildABI from '../abis/gauge_child.json' with { type: 'json' }; +import wstETHSwapABI from "../abis/wsteth/swap.json" with { type: 'json' }; export const POOLS_DATA_ARBITRUM: IDict = lowerCasePoolDataAddresses({ diff --git a/src/constants/pools/aurora.ts b/src/constants/pools/aurora.ts index ad876a4f..1734508e 100644 --- a/src/constants/pools/aurora.ts +++ b/src/constants/pools/aurora.ts @@ -1,7 +1,7 @@ import { IDict, IPoolData } from "../../interfaces"; import { lowerCasePoolDataAddresses } from "../utils.js"; -import tripoolSwapABI from '../abis/3pool-optimism/swap.json' assert { type: 'json' }; -import gaugeRewardsOnlyABI from '../abis/gauge_rewards_only.json' assert { type: 'json' }; +import tripoolSwapABI from '../abis/3pool-optimism/swap.json' with { type: 'json' }; +import gaugeRewardsOnlyABI from '../abis/gauge_rewards_only.json' with { type: 'json' }; export const POOLS_DATA_AURORA: IDict = lowerCasePoolDataAddresses({ '3pool': { diff --git a/src/constants/pools/avalanche.ts b/src/constants/pools/avalanche.ts index 1970bab6..4eb5daf3 100644 --- a/src/constants/pools/avalanche.ts +++ b/src/constants/pools/avalanche.ts @@ -1,12 +1,12 @@ import { IDict, IPoolData } from "../../interfaces"; import { lowerCasePoolDataAddresses } from "../utils.js"; -import aaveSwapABI from '../abis/aave/swap.json' assert { type: 'json' }; -import renSwapABI from '../abis/ren-polygon/swap.json' assert { type: 'json' }; -import atricrypto3Swap from '../abis/atricrypto3/swap.json' assert { type: 'json' }; -import atricrypto3Zap from '../abis/atricrypto3/zap.json' assert { type: 'json' }; -import AVAXCryptoSwapABI from "../abis/avaxcrypto/swap.json" assert { type: 'json' }; -import AVAXCryptoZapABI from "../abis/avaxcrypto/zap.json" assert { type: 'json' }; -import gaugeChildABI from '../abis/gauge_child.json' assert { type: 'json' }; +import aaveSwapABI from '../abis/aave/swap.json' with { type: 'json' }; +import renSwapABI from '../abis/ren-polygon/swap.json' with { type: 'json' }; +import atricrypto3Swap from '../abis/atricrypto3/swap.json' with { type: 'json' }; +import atricrypto3Zap from '../abis/atricrypto3/zap.json' with { type: 'json' }; +import AVAXCryptoSwapABI from "../abis/avaxcrypto/swap.json" with { type: 'json' }; +import AVAXCryptoZapABI from "../abis/avaxcrypto/zap.json" with { type: 'json' }; +import gaugeChildABI from '../abis/gauge_child.json' with { type: 'json' }; export const POOLS_DATA_AVALANCHE: IDict = lowerCasePoolDataAddresses({ diff --git a/src/constants/pools/ethereum.ts b/src/constants/pools/ethereum.ts index 1013510b..0e6ea1d3 100644 --- a/src/constants/pools/ethereum.ts +++ b/src/constants/pools/ethereum.ts @@ -1,95 +1,95 @@ import { IDict, IPoolData } from "../../interfaces"; import { lowerCasePoolDataAddresses } from "../utils.js"; -import gaugeABI from "../abis/gauge.json" assert { type: 'json' }; -import gaugeSynthetixABI from "../abis/gauge_synthetix.json" assert { type: 'json' }; -import gaugeV2ABI from "../abis/gauge_v2.json" assert { type: 'json' }; -import gaugeV3ABI from "../abis/gauge_v3.json" assert { type: 'json' }; -import gaugeV4ABI from "../abis/gauge_v4.json" assert { type: 'json' }; -import gaugeV5ABI from "../abis/gauge_v5.json" assert { type: 'json' }; -import gaugeFactoryABI from "../abis/gauge_factory.json" assert { type: 'json' } -import compoundDepositABI from '../abis/compound/deposit.json' assert { type: 'json' }; -import compoundSwapABI from '../abis/compound/swap.json' assert { type: 'json' }; -import usdtDepositABI from '../abis/usdt/deposit.json' assert { type: 'json' }; -import usdtSwapABI from '../abis/usdt/swap.json' assert { type: 'json' }; -import iearnDepositABI from '../abis/iearn/deposit.json' assert { type: 'json' }; -import iearnSwapABI from '../abis/iearn/swap.json' assert { type: 'json' }; -import iearnSCurveRewardsABI from '../abis/iearn/sCurveRewards.json' assert { type: 'json' }; -import busdDepositABI from '../abis/busd/deposit.json' assert { type: 'json' }; -import busdSwapABI from '../abis/busd/swap.json' assert { type: 'json' }; -import susdv2DepositABI from '../abis/susdv2/deposit.json' assert { type: 'json' }; -import susdv2SwapABI from '../abis/susdv2/swap.json' assert { type: 'json' }; -import susdv2SCurveRewards_abi from '../abis/susdv2/sCurveRewards.json' assert { type: 'json' }; -import paxDepositABI from '../abis/pax/deposit.json' assert { type: 'json' }; -import paxSwapABI from '../abis/pax/swap.json' assert { type: 'json' }; -import renSwapABI from '../abis/ren/swap.json' assert { type: 'json' }; -import sbtcSwapABI from '../abis/sbtc/swap.json' assert { type: 'json' }; -import sbtcSCurveRewardsABI from '../abis/sbtc/sCurveRewards.json' assert { type: 'json' }; -import hbtcSwapABI from '../abis/hbtc/swap.json' assert { type: 'json' }; -import tripoolSwapABI from '../abis/3pool/swap.json' assert { type: 'json' }; -import gusdSwapABI from '../abis/gusd/swap.json' assert { type: 'json' }; -import gusdDepositABI from '../abis/gusd/deposit.json' assert { type: 'json' }; -import husdSwapABI from '../abis/husd/swap.json' assert { type: 'json' }; -import husdDepositABI from '../abis/husd/deposit.json' assert { type: 'json' }; -import usdkSwapABI from '../abis/usdk/swap.json' assert { type: 'json' }; -import usdkDepositABI from '../abis/usdk/deposit.json' assert { type: 'json' }; -import usdnSwapABI from '../abis/usdn/swap.json' assert { type: 'json' }; -import usdnDepositABI from '../abis/usdn/deposit.json' assert { type: 'json' }; -import musdSwapABI from '../abis/musd/swap.json' assert { type: 'json' }; -import musdDepositABI from '../abis/musd/deposit.json' assert { type: 'json' }; -import musdSCurveRewards_abi from '../abis/musd/sCurveRewards.json' assert { type: 'json' }; -import rsvSwapABI from '../abis/rsv/swap.json' assert { type: 'json' }; -import rsvDepositABI from '../abis/rsv/deposit.json' assert { type: 'json' }; -import rsvSCurveRewards_abi from '../abis/rsv/sCurveRewards.json' assert { type: 'json' }; -import tbtcSwapABI from '../abis/tbtc/swap.json' assert { type: 'json' }; -import tbtcDepositABI from '../abis/tbtc/deposit.json' assert { type: 'json' }; -import tbtcSCurveRewards_abi from '../abis/tbtc/sCurveRewards.json' assert { type: 'json' }; -import dusdSwapABI from '../abis/dusd/swap.json' assert { type: 'json' }; -import dusdDepositABI from '../abis/dusd/deposit.json' assert { type: 'json' }; -import dusdSCurveRewards_abi from '../abis/dusd/sCurveRewards.json' assert { type: 'json' }; -import pbtcSwapABI from '../abis/pbtc/swap.json' assert { type: 'json' }; -import pbtcDepositABI from '../abis/pbtc/deposit.json' assert { type: 'json' }; -import pbtcSCurveRewards_abi from '../abis/pbtc/sCurveRewards.json' assert { type: 'json' }; -import bbtcSwapABI from '../abis/bbtc/swap.json' assert { type: 'json' }; -import bbtcDepositABI from '../abis/bbtc/deposit.json' assert { type: 'json' }; -import obtcSwapABI from '../abis/obtc/swap.json' assert { type: 'json' }; -import obtcDepositABI from '../abis/obtc/deposit.json' assert { type: 'json' }; -import obtcSCurveRewards_abi from '../abis/obtc/sCurveRewards.json' assert { type: 'json' }; -import sethSwapABI from '../abis/seth/swap.json' assert { type: 'json' }; -import eursSwapABI from '../abis/eurs/swap.json' assert { type: 'json' }; -import eursSCurveRewards_abi from '../abis/eurs/sCurveRewards.json' assert { type: 'json' }; -import ustSwapABI from '../abis/ust/swap.json' assert { type: 'json' }; -import ustDepositABI from '../abis/ust/deposit.json' assert { type: 'json' }; -import aaveSwapABI from '../abis/aave/swap.json' assert { type: 'json' }; -import aaveRewardsABI from '../abis/aave/rewards.json' assert { type: 'json' }; -import stethSwapABI from '../abis/steth/swap.json' assert { type: 'json' }; -import stethSCurveRewards_abi from '../abis/steth/sCurveRewards.json' assert { type: 'json' }; -import saaveSwapABI from '../abis/saave/swap.json' assert { type: 'json' }; -import ankrethSwapABI from '../abis/ankreth/swap.json' assert { type: 'json' }; -import ankrethSCurveRewards_abi from '../abis/ankreth/sCurveRewards.json' assert { type: 'json' }; -import usdpSwapABI from '../abis/usdp/swap.json' assert { type: 'json' }; -import usdpDepositABI from '../abis/usdp/deposit.json' assert { type: 'json' }; -import ibSwapABI from '../abis/ib/swap.json' assert { type: 'json' }; -import linkSwapABI from '../abis/link/swap.json' assert { type: 'json' }; -import rethSwapABI from '../abis/reth/swap.json' assert { type: 'json' }; -import factorySwapABI from '../abis/factoryPools/swap.json' assert { type: 'json' }; -import factoryDepositABI from '../abis/factoryPools/deposit.json' assert { type: 'json' }; -import factoryRewardsABI from '../abis/factoryPools/rewards.json' assert { type: 'json' }; -import tricrypto2SwapABI from '../abis/tricrypto2/swap.json' assert { type: 'json' }; -import tricrypto2DepositABI from '../abis/tricrypto2/deposit.json' assert { type: 'json' }; -import eurtSwapABI from '../abis/eurt/swap.json' assert { type: 'json' }; -import eurtusdSwapABI from '../abis/eurtusd/swap.json' assert { type: 'json' }; -import eurtusdDepositABI from '../abis/eurtusd/deposit.json' assert { type: 'json' }; -import eursusdSwapABI from '../abis/eursusd/swap.json' assert { type: 'json' }; -import crvethSwapABI from '../abis/crveth/swap.json' assert { type: 'json' }; -import raiSwapABI from '../abis/rai/swap.json' assert { type: 'json' }; -import raiDepositABI from '../abis/rai/deposit.json' assert { type: 'json' }; -import twopoolSwapABI from '../abis/2pool/swap.json' assert { type: 'json' }; -import fourpoolSwapABI from '../abis/4pool/swap.json' assert { type: 'json' }; -import fraxusdcSwapABI from '../abis/fraxusdc/swap.json' assert { type: 'json' }; -import frxethSwapABI from '../abis/frxeth/swap.json' assert { type: 'json' }; -import sbtc2SwapABI from '../abis/sbtc2/swap.json' assert { type: 'json' }; -import wbethSwapABI from '../abis/wbeth/swap.json' assert { type: 'json' }; -import LlammaABI from '../abis/llamma.json' assert { type: 'json' }; +import gaugeABI from "../abis/gauge.json" with { type: 'json' }; +import gaugeSynthetixABI from "../abis/gauge_synthetix.json" with { type: 'json' }; +import gaugeV2ABI from "../abis/gauge_v2.json" with { type: 'json' }; +import gaugeV3ABI from "../abis/gauge_v3.json" with { type: 'json' }; +import gaugeV4ABI from "../abis/gauge_v4.json" with { type: 'json' }; +import gaugeV5ABI from "../abis/gauge_v5.json" with { type: 'json' }; +import gaugeFactoryABI from "../abis/gauge_factory.json" with { type: 'json' } +import compoundDepositABI from '../abis/compound/deposit.json' with { type: 'json' }; +import compoundSwapABI from '../abis/compound/swap.json' with { type: 'json' }; +import usdtDepositABI from '../abis/usdt/deposit.json' with { type: 'json' }; +import usdtSwapABI from '../abis/usdt/swap.json' with { type: 'json' }; +import iearnDepositABI from '../abis/iearn/deposit.json' with { type: 'json' }; +import iearnSwapABI from '../abis/iearn/swap.json' with { type: 'json' }; +import iearnSCurveRewardsABI from '../abis/iearn/sCurveRewards.json' with { type: 'json' }; +import busdDepositABI from '../abis/busd/deposit.json' with { type: 'json' }; +import busdSwapABI from '../abis/busd/swap.json' with { type: 'json' }; +import susdv2DepositABI from '../abis/susdv2/deposit.json' with { type: 'json' }; +import susdv2SwapABI from '../abis/susdv2/swap.json' with { type: 'json' }; +import susdv2SCurveRewards_abi from '../abis/susdv2/sCurveRewards.json' with { type: 'json' }; +import paxDepositABI from '../abis/pax/deposit.json' with { type: 'json' }; +import paxSwapABI from '../abis/pax/swap.json' with { type: 'json' }; +import renSwapABI from '../abis/ren/swap.json' with { type: 'json' }; +import sbtcSwapABI from '../abis/sbtc/swap.json' with { type: 'json' }; +import sbtcSCurveRewardsABI from '../abis/sbtc/sCurveRewards.json' with { type: 'json' }; +import hbtcSwapABI from '../abis/hbtc/swap.json' with { type: 'json' }; +import tripoolSwapABI from '../abis/3pool/swap.json' with { type: 'json' }; +import gusdSwapABI from '../abis/gusd/swap.json' with { type: 'json' }; +import gusdDepositABI from '../abis/gusd/deposit.json' with { type: 'json' }; +import husdSwapABI from '../abis/husd/swap.json' with { type: 'json' }; +import husdDepositABI from '../abis/husd/deposit.json' with { type: 'json' }; +import usdkSwapABI from '../abis/usdk/swap.json' with { type: 'json' }; +import usdkDepositABI from '../abis/usdk/deposit.json' with { type: 'json' }; +import usdnSwapABI from '../abis/usdn/swap.json' with { type: 'json' }; +import usdnDepositABI from '../abis/usdn/deposit.json' with { type: 'json' }; +import musdSwapABI from '../abis/musd/swap.json' with { type: 'json' }; +import musdDepositABI from '../abis/musd/deposit.json' with { type: 'json' }; +import musdSCurveRewards_abi from '../abis/musd/sCurveRewards.json' with { type: 'json' }; +import rsvSwapABI from '../abis/rsv/swap.json' with { type: 'json' }; +import rsvDepositABI from '../abis/rsv/deposit.json' with { type: 'json' }; +import rsvSCurveRewards_abi from '../abis/rsv/sCurveRewards.json' with { type: 'json' }; +import tbtcSwapABI from '../abis/tbtc/swap.json' with { type: 'json' }; +import tbtcDepositABI from '../abis/tbtc/deposit.json' with { type: 'json' }; +import tbtcSCurveRewards_abi from '../abis/tbtc/sCurveRewards.json' with { type: 'json' }; +import dusdSwapABI from '../abis/dusd/swap.json' with { type: 'json' }; +import dusdDepositABI from '../abis/dusd/deposit.json' with { type: 'json' }; +import dusdSCurveRewards_abi from '../abis/dusd/sCurveRewards.json' with { type: 'json' }; +import pbtcSwapABI from '../abis/pbtc/swap.json' with { type: 'json' }; +import pbtcDepositABI from '../abis/pbtc/deposit.json' with { type: 'json' }; +import pbtcSCurveRewards_abi from '../abis/pbtc/sCurveRewards.json' with { type: 'json' }; +import bbtcSwapABI from '../abis/bbtc/swap.json' with { type: 'json' }; +import bbtcDepositABI from '../abis/bbtc/deposit.json' with { type: 'json' }; +import obtcSwapABI from '../abis/obtc/swap.json' with { type: 'json' }; +import obtcDepositABI from '../abis/obtc/deposit.json' with { type: 'json' }; +import obtcSCurveRewards_abi from '../abis/obtc/sCurveRewards.json' with { type: 'json' }; +import sethSwapABI from '../abis/seth/swap.json' with { type: 'json' }; +import eursSwapABI from '../abis/eurs/swap.json' with { type: 'json' }; +import eursSCurveRewards_abi from '../abis/eurs/sCurveRewards.json' with { type: 'json' }; +import ustSwapABI from '../abis/ust/swap.json' with { type: 'json' }; +import ustDepositABI from '../abis/ust/deposit.json' with { type: 'json' }; +import aaveSwapABI from '../abis/aave/swap.json' with { type: 'json' }; +import aaveRewardsABI from '../abis/aave/rewards.json' with { type: 'json' }; +import stethSwapABI from '../abis/steth/swap.json' with { type: 'json' }; +import stethSCurveRewards_abi from '../abis/steth/sCurveRewards.json' with { type: 'json' }; +import saaveSwapABI from '../abis/saave/swap.json' with { type: 'json' }; +import ankrethSwapABI from '../abis/ankreth/swap.json' with { type: 'json' }; +import ankrethSCurveRewards_abi from '../abis/ankreth/sCurveRewards.json' with { type: 'json' }; +import usdpSwapABI from '../abis/usdp/swap.json' with { type: 'json' }; +import usdpDepositABI from '../abis/usdp/deposit.json' with { type: 'json' }; +import ibSwapABI from '../abis/ib/swap.json' with { type: 'json' }; +import linkSwapABI from '../abis/link/swap.json' with { type: 'json' }; +import rethSwapABI from '../abis/reth/swap.json' with { type: 'json' }; +import factorySwapABI from '../abis/factoryPools/swap.json' with { type: 'json' }; +import factoryDepositABI from '../abis/factoryPools/deposit.json' with { type: 'json' }; +import factoryRewardsABI from '../abis/factoryPools/rewards.json' with { type: 'json' }; +import tricrypto2SwapABI from '../abis/tricrypto2/swap.json' with { type: 'json' }; +import tricrypto2DepositABI from '../abis/tricrypto2/deposit.json' with { type: 'json' }; +import eurtSwapABI from '../abis/eurt/swap.json' with { type: 'json' }; +import eurtusdSwapABI from '../abis/eurtusd/swap.json' with { type: 'json' }; +import eurtusdDepositABI from '../abis/eurtusd/deposit.json' with { type: 'json' }; +import eursusdSwapABI from '../abis/eursusd/swap.json' with { type: 'json' }; +import crvethSwapABI from '../abis/crveth/swap.json' with { type: 'json' }; +import raiSwapABI from '../abis/rai/swap.json' with { type: 'json' }; +import raiDepositABI from '../abis/rai/deposit.json' with { type: 'json' }; +import twopoolSwapABI from '../abis/2pool/swap.json' with { type: 'json' }; +import fourpoolSwapABI from '../abis/4pool/swap.json' with { type: 'json' }; +import fraxusdcSwapABI from '../abis/fraxusdc/swap.json' with { type: 'json' }; +import frxethSwapABI from '../abis/frxeth/swap.json' with { type: 'json' }; +import sbtc2SwapABI from '../abis/sbtc2/swap.json' with { type: 'json' }; +import wbethSwapABI from '../abis/wbeth/swap.json' with { type: 'json' }; +import LlammaABI from '../abis/llamma.json' with { type: 'json' }; export const POOLS_DATA_ETHEREUM: IDict = lowerCasePoolDataAddresses({ diff --git a/src/constants/pools/fantom.ts b/src/constants/pools/fantom.ts index 5a595b2c..85d06238 100644 --- a/src/constants/pools/fantom.ts +++ b/src/constants/pools/fantom.ts @@ -1,16 +1,16 @@ import { IDict, IPoolData } from "../../interfaces"; import { lowerCasePoolDataAddresses } from "../utils.js"; -import twopoolSwapABI from '../abis/2pool/swap.json' assert { type: 'json' }; -import fusdtSwapABI from '../abis/fusdt/swap.json' assert { type: 'json' }; -import fusdtZapABI from '../abis/fusdt/zap.json' assert { type: 'json' }; -import renSwapABI from '../abis/ren-fantom/swap.json' assert { type: 'json' }; -import triCryptoSwapNoZap from '../abis/tricrypto/swapNoZap.json' assert { type: 'json' }; -import ibSwapABI from '../abis/ib/swap.json' assert { type: 'json' }; -import aaveSwapABI from '../abis/aave/swap.json' assert { type: 'json' }; -// import paaveRewardsabi from '../abis/paave/rewards.json' assert { type: 'json' }; -import gaugeChildABI from '../abis/gauge_child.json' assert { type: 'json' }; -import gaugeRewardsOnlyABI from '../abis/gauge_rewards_only.json' assert { type: 'json' }; -import streamerABI from '../abis/streamer.json' assert { type: 'json' }; +import twopoolSwapABI from '../abis/2pool/swap.json' with { type: 'json' }; +import fusdtSwapABI from '../abis/fusdt/swap.json' with { type: 'json' }; +import fusdtZapABI from '../abis/fusdt/zap.json' with { type: 'json' }; +import renSwapABI from '../abis/ren-fantom/swap.json' with { type: 'json' }; +import triCryptoSwapNoZap from '../abis/tricrypto/swapNoZap.json' with { type: 'json' }; +import ibSwapABI from '../abis/ib/swap.json' with { type: 'json' }; +import aaveSwapABI from '../abis/aave/swap.json' with { type: 'json' }; +// import paaveRewardsabi from '../abis/paave/rewards.json' with { type: 'json' }; +import gaugeChildABI from '../abis/gauge_child.json' with { type: 'json' }; +import gaugeRewardsOnlyABI from '../abis/gauge_rewards_only.json' with { type: 'json' }; +import streamerABI from '../abis/streamer.json' with { type: 'json' }; export const POOLS_DATA_FANTOM: IDict = lowerCasePoolDataAddresses({ diff --git a/src/constants/pools/moonbeam.ts b/src/constants/pools/moonbeam.ts index db0d53ab..6b26b202 100644 --- a/src/constants/pools/moonbeam.ts +++ b/src/constants/pools/moonbeam.ts @@ -1,7 +1,7 @@ import { IDict, IPoolData } from "../../interfaces"; import { lowerCasePoolDataAddresses } from "../utils.js"; -import tripoolSwapABI from '../abis/3pool-optimism/swap.json' assert { type: 'json' }; -import gaugeChildABI from '../abis/gauge_child.json' assert { type: 'json' }; +import tripoolSwapABI from '../abis/3pool-optimism/swap.json' with { type: 'json' }; +import gaugeChildABI from '../abis/gauge_child.json' with { type: 'json' }; export const POOLS_DATA_MOONBEAM: IDict = lowerCasePoolDataAddresses({ diff --git a/src/constants/pools/optimism.ts b/src/constants/pools/optimism.ts index b49ef52a..c2332e6c 100644 --- a/src/constants/pools/optimism.ts +++ b/src/constants/pools/optimism.ts @@ -1,8 +1,8 @@ import { IDict, IPoolData } from "../../interfaces"; import { lowerCasePoolDataAddresses } from "../utils.js"; -import tripoolSwapABI from '../abis/3pool-optimism/swap.json' assert { type: 'json' }; -import wstETHSwapABI from '../abis/wsteth/swap.json' assert { type: 'json' }; -import gaugeChildABI from '../abis/gauge_child.json' assert { type: 'json' }; +import tripoolSwapABI from '../abis/3pool-optimism/swap.json' with { type: 'json' }; +import wstETHSwapABI from '../abis/wsteth/swap.json' with { type: 'json' }; +import gaugeChildABI from '../abis/gauge_child.json' with { type: 'json' }; export const POOLS_DATA_OPTIMISM: IDict = lowerCasePoolDataAddresses({ '3pool': { diff --git a/src/constants/pools/polygon.ts b/src/constants/pools/polygon.ts index 22006230..bce3ec6e 100644 --- a/src/constants/pools/polygon.ts +++ b/src/constants/pools/polygon.ts @@ -1,13 +1,13 @@ import { IDict, IPoolData } from "../../interfaces"; import { lowerCasePoolDataAddresses } from "../utils.js"; -import aaveSwapABI from '../abis/aave/swap.json' assert { type: 'json' }; -import paaveRewardsabi from '../abis/paave/rewards.json' assert { type: 'json' }; -import renSwapABI from '../abis/ren-polygon/swap.json' assert { type: 'json' }; -import atricrypto3Swap from '../abis/atricrypto3/swap.json' assert { type: 'json' }; -import atricrypto3Zap from '../abis/atricrypto3/zap.json' assert { type: 'json' }; -import eurtusdSwap from '../abis/eurtusd/swap.json' assert { type: 'json' }; -import eurtusdZap from '../abis/eurtusd/deposit.json' assert { type: 'json' }; -import gaugeChildABI from '../abis/gauge_child.json' assert { type: 'json' }; +import aaveSwapABI from '../abis/aave/swap.json' with { type: 'json' }; +import paaveRewardsabi from '../abis/paave/rewards.json' with { type: 'json' }; +import renSwapABI from '../abis/ren-polygon/swap.json' with { type: 'json' }; +import atricrypto3Swap from '../abis/atricrypto3/swap.json' with { type: 'json' }; +import atricrypto3Zap from '../abis/atricrypto3/zap.json' with { type: 'json' }; +import eurtusdSwap from '../abis/eurtusd/swap.json' with { type: 'json' }; +import eurtusdZap from '../abis/eurtusd/deposit.json' with { type: 'json' }; +import gaugeChildABI from '../abis/gauge_child.json' with { type: 'json' }; export const POOLS_DATA_POLYGON: IDict = lowerCasePoolDataAddresses({ diff --git a/src/constants/pools/xdai.ts b/src/constants/pools/xdai.ts index 1bf70845..2c85e02f 100644 --- a/src/constants/pools/xdai.ts +++ b/src/constants/pools/xdai.ts @@ -1,15 +1,15 @@ import { IDict, IPoolData } from "../../interfaces"; import { lowerCasePoolDataAddresses } from "../utils.js"; -import tripoolSwapABI from '../abis/3pool/swap.json' assert { type: 'json' }; -import raiSwapABI from '../abis/rai/swap.json' assert { type: 'json' }; -import raiZapABI from '../abis/rai/deposit.json' assert { type: 'json' }; -import tricryptoSwapABI from '../abis/tricrypto-xdai/swap.json' assert { type: 'json' }; -import tricryptoZapABI from '../abis/tricrypto-xdai/zap.json' assert { type: 'json' }; -import eureSwapABI from "../abis/eureusd/swap.json" assert { type: 'json' }; -import eureDepositABI from "../abis/eureusd/zap.json" assert { type: 'json' }; -import gaugeRewardsOnlyABI from '../abis/gauge_rewards_only.json' assert { type: 'json' }; -import gaugeChildABI from '../abis/gauge_child.json' assert { type: 'json' }; -import streamerABI from '../abis/streamer.json' assert { type: 'json' }; +import tripoolSwapABI from '../abis/3pool/swap.json' with { type: 'json' }; +import raiSwapABI from '../abis/rai/swap.json' with { type: 'json' }; +import raiZapABI from '../abis/rai/deposit.json' with { type: 'json' }; +import tricryptoSwapABI from '../abis/tricrypto-xdai/swap.json' with { type: 'json' }; +import tricryptoZapABI from '../abis/tricrypto-xdai/zap.json' with { type: 'json' }; +import eureSwapABI from "../abis/eureusd/swap.json" with { type: 'json' }; +import eureDepositABI from "../abis/eureusd/zap.json" with { type: 'json' }; +import gaugeRewardsOnlyABI from '../abis/gauge_rewards_only.json' with { type: 'json' }; +import gaugeChildABI from '../abis/gauge_child.json' with { type: 'json' }; +import streamerABI from '../abis/streamer.json' with { type: 'json' }; export const POOLS_DATA_XDAI: IDict = lowerCasePoolDataAddresses({ '3pool': { diff --git a/src/curve.ts b/src/curve.ts index f14e28fe..ccc5219f 100644 --- a/src/curve.ts +++ b/src/curve.ts @@ -17,34 +17,34 @@ import { getFactoryPoolsDataFromApi } from "./factory/factory-api.js"; import { getCryptoFactoryPoolData } from "./factory/factory-crypto.js"; import { getTricryptoFactoryPoolData } from "./factory/factory-tricrypto.js"; import {IPoolData, IDict, ICurve, IChainId, IFactoryPoolType, Abi, INetworkConstants} from "./interfaces"; -import ERC20Abi from './constants/abis/ERC20.json' assert { type: 'json' }; -import cERC20Abi from './constants/abis/cERC20.json' assert { type: 'json' }; -import yERC20Abi from './constants/abis/yERC20.json' assert { type: 'json' }; -import childGaugeFactoryABI from './constants/abis/gauge_factory/child_gauge_factory.json' assert { type: 'json' }; -import minterMainnetABI from './constants/abis/minter_mainnet.json' assert { type: 'json' }; -import votingEscrowABI from './constants/abis/votingescrow.json' assert { type: 'json' }; -import anycallABI from './constants/abis/anycall.json' assert { type: 'json' }; -import votingEscrowOracleABI from './constants/abis/voting_escrow_oracle.json' assert { type: 'json' }; -import votingEscrowOracleEthABI from './constants/abis/voting_escrow_oracle_eth.json' assert { type: 'json' }; -import feeDistributorABI from './constants/abis/fee_distributor.json' assert { type: 'json' }; -import feeDistributorCrvUSDABI from './constants/abis/fee_distributor_crvusd.json' assert { type: 'json' }; -import gaugeControllerABI from './constants/abis/gaugecontroller.json' assert { type: 'json' }; -import depositAndStakeABI from './constants/abis/deposit_and_stake.json' assert { type: 'json' }; -import depositAndStakeNgOnlyABI from './constants/abis/deposit_and_stake_ng_only.json' assert { type: 'json' }; +import ERC20Abi from './constants/abis/ERC20.json' with { type: 'json' }; +import cERC20Abi from './constants/abis/cERC20.json' with { type: 'json' }; +import yERC20Abi from './constants/abis/yERC20.json' with { type: 'json' }; +import childGaugeFactoryABI from './constants/abis/gauge_factory/child_gauge_factory.json' with { type: 'json' }; +import minterMainnetABI from './constants/abis/minter_mainnet.json' with { type: 'json' }; +import votingEscrowABI from './constants/abis/votingescrow.json' with { type: 'json' }; +import anycallABI from './constants/abis/anycall.json' with { type: 'json' }; +import votingEscrowOracleABI from './constants/abis/voting_escrow_oracle.json' with { type: 'json' }; +import votingEscrowOracleEthABI from './constants/abis/voting_escrow_oracle_eth.json' with { type: 'json' }; +import feeDistributorABI from './constants/abis/fee_distributor.json' with { type: 'json' }; +import feeDistributorCrvUSDABI from './constants/abis/fee_distributor_crvusd.json' with { type: 'json' }; +import gaugeControllerABI from './constants/abis/gaugecontroller.json' with { type: 'json' }; +import depositAndStakeABI from './constants/abis/deposit_and_stake.json' with { type: 'json' }; +import depositAndStakeNgOnlyABI from './constants/abis/deposit_and_stake_ng_only.json' with { type: 'json' }; import cryptoCalcZapABI from './constants/abis/crypto_calc.json' assert { type: 'json'}; -import StableCalcZapABI from './constants/abis/stable_calc.json' assert { type: 'json' }; -import routerABI from './constants/abis/router.json' assert { type: 'json' }; -import routerPolygonABI from './constants/abis/routerPolygon.json' assert { type: 'json' }; -import routerNgPoolsOnlyABI from './constants/abis/router-ng-pools-only.json' assert { type: 'json' }; -import streamerABI from './constants/abis/streamer.json' assert { type: 'json' }; -import factoryABI from './constants/abis/factory.json' assert { type: 'json' }; -import factoryEywaABI from './constants/abis/factory-eywa.json' assert { type: 'json' }; -import factoryAdminABI from './constants/abis/factory-admin.json' assert { type: 'json' }; -import cryptoFactoryABI from './constants/abis/factory-crypto.json' assert { type: 'json' }; -import twocryptoFactoryABI from './constants/abis/factory-twocrypto-ng.json' assert { type: 'json' }; -import tricryptoFactoryMainnetABI from './constants/abis/factory-tricrypto-mainnet.json' assert { type: 'json' }; -import tricryptoFactorySidechainABI from './constants/abis/factory-tricrypto-sidechain.json' assert { type: 'json' }; -import stableNgFactoryABI from './constants/abis/factory-stable-ng.json' assert { type: 'json' }; +import StableCalcZapABI from './constants/abis/stable_calc.json' with { type: 'json' }; +import routerABI from './constants/abis/router.json' with { type: 'json' }; +import routerPolygonABI from './constants/abis/routerPolygon.json' with { type: 'json' }; +import routerNgPoolsOnlyABI from './constants/abis/router-ng-pools-only.json' with { type: 'json' }; +import streamerABI from './constants/abis/streamer.json' with { type: 'json' }; +import factoryABI from './constants/abis/factory.json' with { type: 'json' }; +import factoryEywaABI from './constants/abis/factory-eywa.json' with { type: 'json' }; +import factoryAdminABI from './constants/abis/factory-admin.json' with { type: 'json' }; +import cryptoFactoryABI from './constants/abis/factory-crypto.json' with { type: 'json' }; +import twocryptoFactoryABI from './constants/abis/factory-twocrypto-ng.json' with { type: 'json' }; +import tricryptoFactoryMainnetABI from './constants/abis/factory-tricrypto-mainnet.json' with { type: 'json' }; +import tricryptoFactorySidechainABI from './constants/abis/factory-tricrypto-sidechain.json' with { type: 'json' }; +import stableNgFactoryABI from './constants/abis/factory-stable-ng.json' with { type: 'json' }; import gasOracleABI from './constants/abis/gas_oracle_optimism.json' assert { type: 'json'}; import gasOracleBlobABI from './constants/abis/gas_oracle_optimism_blob.json' assert { type: 'json'}; import votingProposalABI from './constants/abis/voting_proposal.json' assert { type: 'json'}; diff --git a/src/dao.ts b/src/dao.ts index 3ed2e160..e6a39a4b 100644 --- a/src/dao.ts +++ b/src/dao.ts @@ -19,7 +19,7 @@ import { IDict, TVoteType, } from './interfaces'; -import feeDistributorViewABI from "./constants/abis/fee_distributor_view.json" assert { type: 'json' }; +import feeDistributorViewABI from "./constants/abis/fee_distributor_view.json" with { type: 'json' }; // ----------------- Refactored boosting stuff ----------------- diff --git a/src/external-api.ts b/src/external-api.ts index f2e2c5ce..766b653c 100644 --- a/src/external-api.ts +++ b/src/external-api.ts @@ -1,4 +1,3 @@ -import axios from "axios"; import memoize from "memoizee"; import { ICurveLiteNetwork, @@ -17,8 +16,7 @@ export const _getPoolsFromApi = memoize( async (network: INetworkName, poolType: IPoolType, isLiteChain = false): Promise => { const api = isLiteChain ? "https://api-core.curve.fi/v1/" : "https://api.curve.fi/api"; const url = `${api}/getPools/${network}/${poolType}`; - const response = await axios.get(url, { validateStatus: () => true }); - return response.data.data ?? { poolData: [], tvl: 0, tvlAll: 0 }; + return await fetchData(url) ?? { poolData: [], tvl: 0, tvlAll: 0 }; }, { promise: true, @@ -50,23 +48,19 @@ export const _getAllPoolsFromApi = async (network: INetworkName, isLiteChain = f export const _getSubgraphData = memoize( async (network: INetworkName): Promise => { - const url = `https://api.curve.fi/api/getSubgraphData/${network}`; - const response = await axios.get(url, { validateStatus: () => true }); - - const poolsData = response.data.data.poolList.map((item: any) => { - return { - address: item.address, - volumeUSD: item.volumeUSD, - day: item.latestDailyApy, - week: item.latestWeeklyApy, - } - }) + const data = await fetchData(`https://api.curve.fi/api/getSubgraphData/${network}`); + const poolsData = data.poolList.map((data: any) => ({ + address: data.address, + volumeUSD: data.volumeUSD, + day: data.latestDailyApy, + week: data.latestWeeklyApy, + })); return { - poolsData: poolsData ?? [], - totalVolume: response.data.data.totalVolume ?? 0, - cryptoVolume: response.data.data.cryptoVolume ?? 0, - cryptoShare: response.data.data.cryptoShare ?? 0, + poolsData: poolsData, + totalVolume: data.totalVolume ?? 0, + cryptoVolume: data.cryptoVolume ?? 0, + cryptoShare: data.cryptoShare ?? 0, }; }, { @@ -78,23 +72,19 @@ export const _getSubgraphData = memoize( export const _getVolumes = memoize( async (network: string): Promise => { - const url = `https://api.curve.fi/api/getVolumes/${network}`; - const response = await axios.get(url, { validateStatus: () => true }); - - const poolsData = response.data.data.pools.map((item: any) => { - return { - address: item.address, - volumeUSD: item.volumeUSD, - day: item.latestDailyApyPcent, - week: item.latestWeeklyApyPcent, - } - }) + const { pools, totalVolumes } = await fetchData(`https://api.curve.fi/api/getVolumes/${network}`); + const poolsData = pools.map((data: any) => ({ + address: data.address, + volumeUSD: data.volumeUSD, + day: data.latestDailyApyPcent, + week: data.latestWeeklyApyPcent, + })); return { poolsData: poolsData ?? [], - totalVolume: response.data.data.totalVolumes.totalVolume ?? 0, - cryptoVolume: response.data.data.totalVolumes.totalCryptoVolume ?? 0, - cryptoShare: response.data.data.totalVolumes.cryptoVolumeSharePcent ?? 0, + totalVolume: totalVolumes.totalVolume ?? 0, + cryptoVolume: totalVolumes.totalCryptoVolume ?? 0, + cryptoShare: totalVolumes.cryptoVolumeSharePcent ?? 0, }; }, { @@ -105,30 +95,21 @@ export const _getVolumes = memoize( export const _getFactoryAPYs = memoize( async (network: string): Promise => { - const urlStable = `https://api.curve.fi/api/getFactoryAPYs/${network}/stable`; - const urlCrypto = `https://api.curve.fi/api/getFactoryAPYs/${network}/crypto`; - const response = await Promise.all([ - axios.get(urlStable, { validateStatus: () => true }), - axios.get(urlCrypto, { validateStatus: () => true }), - ]); - - const stableVolume = response[0].data.data.totalVolumeUsd || response[0].data.data.totalVolume || 0; - const cryptoVolume = response[1].data.data.totalVolumeUsd || response[1].data.data.totalVolume || 0; - - const poolsData = [...response[0].data.data.poolDetails, ...response[1].data.data.poolDetails].map((item) => { - return { + const [stableData, cryptoData] = await Promise.all( + ['stable', 'crypto'].map((type) => fetchData(`https://api.curve.fi/api/getFactoryAPYs/${network}/${type}`)) + ); + const stableVolume = stableData.totalVolumeUsd || stableData.totalVolume || 0; + const cryptoVolume = cryptoData.totalVolumeUsd || cryptoData.totalVolume || 0; + return { + poolsData: [...stableData.poolDetails, ...cryptoData.poolDetails].map((item) => ({ address: item.poolAddress, volumeUSD: item.totalVolumeUsd ?? 0, day: item.apy ?? 0, - week: item.apy*7 ?? 0, //Because api does not return week apy - } - }) - - return { - poolsData: poolsData ?? [], - totalVolume: stableVolume + cryptoVolume ?? 0, - cryptoVolume: cryptoVolume ?? 0, - cryptoShare: 100*cryptoVolume/(stableVolume + cryptoVolume) || 0, + week: (item.apy ?? 0) * 7, // Because api does not return week apy + })), + totalVolume: stableVolume + cryptoVolume, + cryptoVolume, + cryptoShare: 100 * cryptoVolume / (stableVolume + cryptoVolume), }; }, { @@ -137,37 +118,8 @@ export const _getFactoryAPYs = memoize( } ) -//4 -export const _getTotalVolumes = memoize( - async (network: string): Promise<{ - totalVolume: number; - cryptoVolume: number; - cryptoShare: number; - }> => { - if (network === "aurora") return { - totalVolume: 0, - cryptoVolume: 0, - cryptoShare: 0, - }; // Exclude Aurora - - const url = `https://api.curve.fi/api/getSubgraphData/${network}`; - const response = await axios.get(url, { validateStatus: () => true }); - - return response.data.data; - }, - { - promise: true, - maxAge: 5 * 60 * 1000, // 5m - } -) - export const _getAllGauges = memoize( - async (): Promise> => { - const url = `https://api.curve.fi/api/getAllGauges`; - const response = await axios.get(url, { validateStatus: () => true }); - - return response.data.data; - }, + (): Promise> => fetchData(`https://api.curve.fi/api/getAllGauges`), { promise: true, maxAge: 5 * 60 * 1000, // 5m @@ -176,12 +128,11 @@ export const _getAllGauges = memoize( export const _getAllGaugesFormatted = memoize( async (): Promise> => { - const url = `https://api.curve.fi/api/getAllGauges`; - const response = await axios.get(url, { validateStatus: () => true }); + const data = await fetchData(`https://api.curve.fi/api/getAllGauges`); const gaugesDict: Record = {} - Object.values(response.data.data).forEach((d: any) => { + Object.values(data).forEach((d: any) => { gaugesDict[d.gauge.toLowerCase()] = { is_killed: d.is_killed ?? false, gaugeStatus: d.gaugeStatus ?? null, @@ -197,12 +148,7 @@ export const _getAllGaugesFormatted = memoize( ) export const _getHiddenPools = memoize( - async (): Promise> => { - const url = `https://api.curve.fi/api/getHiddenPools`; - const response = await axios.get(url, { validateStatus: () => true }); - - return response.data.data; - }, + (): Promise> => fetchData(`https://api.curve.fi/api/getHiddenPools`), { promise: true, maxAge: 5 * 60 * 1000, // 5m @@ -212,9 +158,8 @@ export const _getHiddenPools = memoize( export const _generateBoostingProof = memoize( async (block: number, address: string): Promise<{ block_header_rlp: string, proof_rlp: string }> => { const url = `https://prices.curve.fi/v1/general/get_merkle_proof?block=${block}&account_address=${address}`; - const response = await axios.get(url, { validateStatus: () => true }); - - return { block_header_rlp: response.data.block_header_rlp, proof_rlp: response.data.proof_rlp }; + const { block_header_rlp, proof_rlp } = await fetchJson(url); + return { block_header_rlp, proof_rlp }; }, { promise: true, @@ -227,21 +172,16 @@ export const _generateBoostingProof = memoize( export const _getDaoProposalList = memoize(async (): Promise => { const url = "https://api-py.llama.airforce/curve/v1/dao/proposals"; - const response = await axios.get(url, { validateStatus: () => true }); - - return response.data.proposals; + const {proposals} = await fetchJson(url); + return proposals; }, { promise: true, maxAge: 5 * 60 * 1000, // 5m }) -export const _getDaoProposal = memoize(async (type: "PARAMETER" | "OWNERSHIP", id: number): Promise => { - const url = `https://api-py.llama.airforce/curve/v1/dao/proposals/${type.toLowerCase()}/${id}`; - const response = await axios.get(url, { validateStatus: () => true }); - - return response.data; -}, +export const _getDaoProposal = memoize((type: "PARAMETER" | "OWNERSHIP", id: number): Promise => + fetchJson(`https://api-py.llama.airforce/curve/v1/dao/proposals/${type.toLowerCase()}/${id}`), { promise: true, maxAge: 5 * 60 * 1000, // 5m @@ -253,14 +193,15 @@ export const _getLiteNetworksData = memoize( async (networkName: string): Promise => { try { const url = `https://api-core.curve.fi/v1/getDeployment/${networkName}`; - const response = await axios.get(url, { validateStatus: () => true }); + const response = await fetch(url); + const {data} = await response.json() ?? {}; - if (response.status !== 200 || !response.data?.data) { - console.error('Failed to fetch network data:', response); + if (response.status !== 200 || !data) { + console.error('Failed to fetch network data:', response.status, data); return null; } - const { config, contracts } = response.data.data; + const { config, contracts } = data; const network_name = config.network_name || 'Unknown Network'; const native_currency_symbol = config.native_currency_symbol || 'N/A'; @@ -308,15 +249,15 @@ export const _getLiteNetworksData = memoize( export const _getCurveLiteNetworks = memoize( async (): Promise => { - const url = `https://api-core.curve.fi/v1/getPlatforms`; - const response = await axios.get(url, { validateStatus: () => true }); + const response = await fetch(`https://api-core.curve.fi/v1/getPlatforms`); + const {data} = await response.json() ?? {}; - if (response.status !== 200 || !response.data?.data?.platforms) { + if (response.status !== 200 || !data?.platforms) { console.error('Failed to fetch Curve platforms:', response); return []; } - const { platforms, platformsMetadata } = response.data.data; + const { platforms, platformsMetadata } = data; return Object.keys(platforms) .map((id) => { const { name, rpcUrl, nativeCurrencySymbol, explorerBaseUrl, isMainnet, chainId} = platformsMetadata[id] ?? {}; @@ -337,3 +278,13 @@ export const _getCurveLiteNetworks = memoize( maxAge: 5 * 60 * 1000, // 5 minutes } ); + +async function fetchJson(url: string) { + const response = await fetch(url); + return await response.json() ?? {}; +} + +async function fetchData(url: string) { + const {data} = await fetchJson(url); + return data; +} \ No newline at end of file diff --git a/src/factory/deploy.ts b/src/factory/deploy.ts index 04d1109f..a299bf0f 100644 --- a/src/factory/deploy.ts +++ b/src/factory/deploy.ts @@ -3,9 +3,9 @@ import { curve } from "../curve.js"; import { NETWORK_CONSTANTS } from "../constants/network_constants.js"; import { getPool } from "../pools/index.js"; import { parseUnits, BN, mulBy1_3, getPoolIdBySwapAddress, DIGas, smartNumber } from '../utils.js'; -import CurveLpTokenV5ABI from "../constants/abis/curve_lp_token_v5.json" assert { type: 'json' }; -import Plain2ETHOracleABIABI from "../constants/abis/factory-v2/Plain2ETHOracle.json" assert { type: 'json' }; -import rootGaugeFactoryABI from '../constants/abis/gauge_factory/root_gauge_factory.json' assert { type: 'json' }; +import CurveLpTokenV5ABI from "../constants/abis/curve_lp_token_v5.json" with { type: 'json' }; +import Plain2ETHOracleABIABI from "../constants/abis/factory-v2/Plain2ETHOracle.json" with { type: 'json' }; +import rootGaugeFactoryABI from '../constants/abis/gauge_factory/root_gauge_factory.json' with { type: 'json' }; // ------- STABLE PLAIN POOLS ------- diff --git a/src/factory/factory-api.ts b/src/factory/factory-api.ts index 6138c79f..ba51ae5c 100644 --- a/src/factory/factory-api.ts +++ b/src/factory/factory-api.ts @@ -1,18 +1,18 @@ import { curve } from "../curve.js"; import { IDict, IFactoryPoolType, IPoolData, ICurve, IPoolDataFromApi } from "../interfaces"; -import factoryGaugeABI from "../constants/abis/gauge_factory.json" assert { type: 'json' }; -import gaugeChildABI from "../constants/abis/gauge_child.json" assert { type: 'json' }; -import ERC20ABI from "../constants/abis/ERC20.json" assert { type: 'json' }; -import cryptoFactorySwapABI from "../constants/abis/factory-crypto/factory-crypto-pool-2.json" assert { type: 'json' }; -import twocryptoFactorySwapABI from "../constants/abis/factory-twocrypto/factory-twocrypto-pool.json" assert { type: 'json' }; -import tricryptoFactorySwapABI from "../constants/abis/factory-tricrypto/factory-tricrypto-pool.json" assert { type: 'json' }; -import tricryptoFactoryEthDisabledSwapABI from "../constants/abis/factory-tricrypto/factory-tricrypto-pool-eth-disabled.json" assert { type: 'json' }; +import factoryGaugeABI from "../constants/abis/gauge_factory.json" with { type: 'json' }; +import gaugeChildABI from "../constants/abis/gauge_child.json" with { type: 'json' }; +import ERC20ABI from "../constants/abis/ERC20.json" with { type: 'json' }; +import cryptoFactorySwapABI from "../constants/abis/factory-crypto/factory-crypto-pool-2.json" with { type: 'json' }; +import twocryptoFactorySwapABI from "../constants/abis/factory-twocrypto/factory-twocrypto-pool.json" with { type: 'json' }; +import tricryptoFactorySwapABI from "../constants/abis/factory-tricrypto/factory-tricrypto-pool.json" with { type: 'json' }; +import tricryptoFactoryEthDisabledSwapABI from "../constants/abis/factory-tricrypto/factory-tricrypto-pool-eth-disabled.json" with { type: 'json' }; import { getPoolIdByAddress, setFactoryZapContracts } from "./common.js"; import { _getPoolsFromApi } from "../external-api.js"; import {assetTypeNameHandler, getPoolName, isStableNgPool} from "../utils.js"; -import StableNgBasePoolZapABI from "../constants/abis/stable-ng-base-pool-zap.json" assert { type: 'json' }; -import MetaStableSwapNGABI from "../constants/abis/factory-stable-ng/meta-stableswap-ng.json" assert { type: 'json' }; -import PlainStableSwapNGABI from "../constants/abis/factory-stable-ng/plain-stableswap-ng.json" assert { type: 'json' }; +import StableNgBasePoolZapABI from "../constants/abis/stable-ng-base-pool-zap.json" with { type: 'json' }; +import MetaStableSwapNGABI from "../constants/abis/factory-stable-ng/meta-stableswap-ng.json" with { type: 'json' }; +import PlainStableSwapNGABI from "../constants/abis/factory-stable-ng/plain-stableswap-ng.json" with { type: 'json' }; export const lowerCasePoolDataAddresses = (poolsData: IPoolDataFromApi[]): IPoolDataFromApi[] => { for (const poolData of poolsData) { diff --git a/src/factory/factory-crypto.ts b/src/factory/factory-crypto.ts index c17f7d3c..9685d18d 100644 --- a/src/factory/factory-crypto.ts +++ b/src/factory/factory-crypto.ts @@ -1,9 +1,9 @@ import { IDict, IPoolData, ICurve } from "../interfaces"; import { curve } from "../curve.js"; -import ERC20ABI from "../constants/abis/ERC20.json" assert { type: 'json' }; -import cryptoFactorySwapABI from "../constants/abis/factory-crypto/factory-crypto-pool-2.json" assert { type: 'json' }; -import factoryGaugeABI from "../constants/abis/gauge_factory.json" assert { type: 'json' }; -import gaugeChildABI from "../constants/abis/gauge_child.json" assert { type: 'json' }; +import ERC20ABI from "../constants/abis/ERC20.json" with { type: 'json' }; +import cryptoFactorySwapABI from "../constants/abis/factory-crypto/factory-crypto-pool-2.json" with { type: 'json' }; +import factoryGaugeABI from "../constants/abis/gauge_factory.json" with { type: 'json' }; +import gaugeChildABI from "../constants/abis/gauge_child.json" with { type: 'json' }; import { setFactoryZapContracts } from "./common.js"; diff --git a/src/factory/factory-tricrypto.ts b/src/factory/factory-tricrypto.ts index abcf7b4e..007fdad9 100644 --- a/src/factory/factory-tricrypto.ts +++ b/src/factory/factory-tricrypto.ts @@ -1,10 +1,10 @@ import { IDict, IPoolData, ICurve } from "../interfaces"; import { curve } from "../curve.js"; -import ERC20ABI from "../constants/abis/ERC20.json" assert { type: 'json' }; -import tricryptoFactorySwapABI from "../constants/abis/factory-tricrypto/factory-tricrypto-pool.json" assert { type: 'json' }; -import tricryptoFactoryEthDisabledSwapABI from "../constants/abis/factory-tricrypto/factory-tricrypto-pool-eth-disabled.json" assert { type: 'json' }; -import factoryGaugeABI from "../constants/abis/gauge_factory.json" assert { type: 'json' }; -import gaugeChildABI from "../constants/abis/gauge_child.json" assert { type: 'json' }; +import ERC20ABI from "../constants/abis/ERC20.json" with { type: 'json' }; +import tricryptoFactorySwapABI from "../constants/abis/factory-tricrypto/factory-tricrypto-pool.json" with { type: 'json' }; +import tricryptoFactoryEthDisabledSwapABI from "../constants/abis/factory-tricrypto/factory-tricrypto-pool-eth-disabled.json" with { type: 'json' }; +import factoryGaugeABI from "../constants/abis/gauge_factory.json" with { type: 'json' }; +import gaugeChildABI from "../constants/abis/gauge_child.json" with { type: 'json' }; const deepFlatten = (arr: any[]): any[] => [].concat(...arr.map((v) => (Array.isArray(v) ? deepFlatten(v) : v))); diff --git a/src/factory/factory-twocrypto.ts b/src/factory/factory-twocrypto.ts index 33b448c4..68bf5d3a 100644 --- a/src/factory/factory-twocrypto.ts +++ b/src/factory/factory-twocrypto.ts @@ -1,9 +1,9 @@ import { IDict, IPoolData, ICurve } from "../interfaces"; import { curve } from "../curve.js"; -import ERC20ABI from "../constants/abis/ERC20.json" assert { type: 'json' }; -import twocryptoFactorySwapABI from "../constants/abis/factory-twocrypto/factory-twocrypto-pool.json" assert { type: 'json' }; -import factoryGaugeABI from "../constants/abis/gauge_factory.json" assert { type: 'json' }; -import gaugeChildABI from "../constants/abis/gauge_child.json" assert { type: 'json' }; +import ERC20ABI from "../constants/abis/ERC20.json" with { type: 'json' }; +import twocryptoFactorySwapABI from "../constants/abis/factory-twocrypto/factory-twocrypto-pool.json" with { type: 'json' }; +import factoryGaugeABI from "../constants/abis/gauge_factory.json" with { type: 'json' }; +import gaugeChildABI from "../constants/abis/gauge_child.json" with { type: 'json' }; const deepFlatten = (arr: any[]): any[] => [].concat(...arr.map((v) => (Array.isArray(v) ? deepFlatten(v) : v))); diff --git a/src/factory/factory.ts b/src/factory/factory.ts index 5601f1c6..a1c10cd3 100644 --- a/src/factory/factory.ts +++ b/src/factory/factory.ts @@ -1,12 +1,12 @@ import { Contract as MulticallContract } from "@curvefi/ethcall"; import { curve } from "../curve.js"; import {IDict, IPoolData, ICurve, REFERENCE_ASSET, IPoolDataShort} from "../interfaces"; -import ERC20ABI from "../constants/abis/ERC20.json" assert { type: 'json' }; -import PlainStableSwapNGABI from "../constants/abis/factory-stable-ng/plain-stableswap-ng.json" assert { type: 'json' }; +import ERC20ABI from "../constants/abis/ERC20.json" with { type: 'json' }; +import PlainStableSwapNGABI from "../constants/abis/factory-stable-ng/plain-stableswap-ng.json" with { type: 'json' }; import MetaStableSwapNGABI from "../constants/abis/factory-stable-ng/meta-stableswap-ng.json" assert {type: 'json'}; -import factoryGaugeABI from "../constants/abis/gauge_factory.json" assert { type: 'json' }; -import gaugeChildABI from "../constants/abis/gauge_child.json" assert { type: 'json' }; -import StableNgBasePoolZapABI from "../constants/abis/stable-ng-base-pool-zap.json" assert { type: 'json' }; +import factoryGaugeABI from "../constants/abis/gauge_factory.json" with { type: 'json' }; +import gaugeChildABI from "../constants/abis/gauge_child.json" with { type: 'json' }; +import StableNgBasePoolZapABI from "../constants/abis/stable-ng-base-pool-zap.json" with { type: 'json' }; import { getPoolIdByAddress, setFactoryZapContracts } from "./common.js"; import {getPoolName, isStableNgPool} from "../utils.js"; diff --git a/src/pools/PoolTemplate.ts b/src/pools/PoolTemplate.ts index 1e3ab5c4..62496b56 100644 --- a/src/pools/PoolTemplate.ts +++ b/src/pools/PoolTemplate.ts @@ -29,7 +29,7 @@ import { } from '../utils.js'; import {IDict, IProfit} from '../interfaces'; import { curve, OLD_CHAINS } from "../curve.js"; -import ERC20Abi from '../constants/abis/ERC20.json' assert { type: 'json' }; +import ERC20Abi from '../constants/abis/ERC20.json' with { type: 'json' }; import {CorePool} from "./subClasses/corePool.js"; import {StatsPool} from "./subClasses/statsPool.js"; import {WalletPool} from "./subClasses/walletPool.js"; diff --git a/src/pools/utils.ts b/src/pools/utils.ts index f90811e5..c7f44405 100644 --- a/src/pools/utils.ts +++ b/src/pools/utils.ts @@ -3,7 +3,7 @@ import { IDict } from "../interfaces"; import { curve } from "../curve.js"; import { _getRewardsFromApi, _getUsdRate, _setContracts, toBN } from "../utils.js"; import { _getAllPoolsFromApi } from "../external-api.js"; -import ERC20Abi from "../constants/abis/ERC20.json" assert { type: 'json' }; +import ERC20Abi from "../constants/abis/ERC20.json" with { type: 'json' }; // _userLpBalance: { address: { poolId: { _lpBalance: 0, time: 0 } } } const _userLpBalanceCache: IDict> = {}; diff --git a/src/router.ts b/src/router.ts index d404d3fd..bdcfb298 100644 --- a/src/router.ts +++ b/src/router.ts @@ -1,4 +1,3 @@ -import axios from "axios"; import memoize from "memoizee"; import BigNumber from "bignumber.js"; import {ethers} from "ethers"; @@ -257,10 +256,10 @@ const _getBestRoute = memoize( const [gasAmounts, outputCoinUsdRate, gasData, ethUsdRate] = await Promise.all([ _estimateGasForDifferentRoutes(routes.map((r) => r.route), inputCoinAddress, outputCoinAddress, _amount), _getUsdRate(outputCoinAddress), - axios.get("https://api.curve.fi/api/getGas"), + fetch("https://api.curve.fi/api/getGas").then((res) => res.json()), _getUsdRate(ETH_ADDRESS), ]); - const gasPrice = gasData.data.data.gas.standard; + const gasPrice = gasData.data.gas.standard; const expectedAmounts = (routes).map( (route) => Number(curve.formatUnits(route._output, outputCoinDecimals)) ); diff --git a/src/utils.ts b/src/utils.ts index 7f77e0dc..b09669b6 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,9 +1,9 @@ -import axios from 'axios'; import {Contract} from 'ethers'; import {Contract as MulticallContract} from "@curvefi/ethcall"; import BigNumber from 'bignumber.js'; import { - Abi, AbiFunction, + Abi, + AbiFunction, IBasePoolShortItem, IChainId, ICurveLiteNetwork, @@ -13,11 +13,12 @@ import { IVolumeAndAPYs, REFERENCE_ASSET, } from './interfaces'; -import { curve } from "./curve.js"; +import {curve} from "./curve.js"; import { _getAllPoolsFromApi, _getCurveLiteNetworks, - _getFactoryAPYs, _getLiteNetworksData, + _getFactoryAPYs, + _getLiteNetworksData, _getSubgraphData, _getVolumes, } from "./external-api.js"; @@ -510,18 +511,17 @@ export const _getUsdRate = async (assetId: string): Promise => { `https://api.coingecko.com/api/v3/simple/token_price/${chainName}?contract_addresses=${assetId}&vs_currencies=usd`; try { - const response = await axios.get(url, { - validateStatus: (status) => status < 500, - }); + const response = await fetch(url); + const data = await response.json() ?? {}; - if (response.status === 200 && response.data[assetId]?.usd !== undefined) { + if (response.status === 200 && data[assetId]?.usd !== undefined) { _usdRatesCache[assetId] = { - 'rate': response.data[assetId].usd, + 'rate': data[assetId].usd, 'time': Date.now(), }; } else { if (!curve.isLiteChain) { - console.warn(`Non-200 response for ${assetId}:`, response.status, response.data); + console.warn(`Non-200 response for ${assetId}:`, response.status, data); } _usdRatesCache[assetId] = { 'rate': 0, From 27e4c43e1b5d34ac74a1572f78ec4fe69cbf0d0d Mon Sep 17 00:00:00 2001 From: Daniel Schiavini Date: Thu, 12 Dec 2024 11:57:26 +0100 Subject: [PATCH 2/4] fix: update eslint config --- .eslintrc.json | 40 --------------------- eslint.config.mjs | 88 +++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 26 +++++++++++--- package.json | 9 +++-- src/external-api.ts | 2 +- 5 files changed, 116 insertions(+), 49 deletions(-) delete mode 100644 .eslintrc.json create mode 100644 eslint.config.mjs diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index ed622320..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "env": { - "browser": true, - "es6": true - }, - "extends": "eslint:recommended", - "parser": "vue-eslint-parser", - "parserOptions": { - "parser": "@babel/eslint-parser", - "sourceType": "module", - "allowImportExportEverywhere": false - }, - "rules": { - "func-names": 0, - "no-nested-ternary": 0, - "max-len": 0, - "arrow-parens": ["error", "always"], - "no-underscore-dangle": 0, - "comma-dangle": ["error", { - "arrays": "always-multiline", - "objects": "always-multiline", - "imports": "always-multiline", - "exports": "always-multiline", - "functions": "never" - }], - "no-use-before-define": ["error", "nofunc"], - "no-empty": ["error", { "allowEmptyCatch": true }], - "no-mixed-operators": ["error", { "allowSamePrecedence": true }], - "indent": ["error", 4, { "flatTernaryExpressions": true, "SwitchCase": 1 }] - }, - "overrides": [{ - "files": ["**/*.ts"], - "parser": "@typescript-eslint/parser", - "plugins": ["@typescript-eslint"], - "extends": ["plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended"], - "rules": { - "@typescript-eslint/ban-ts-comment": "off" - } - }] -} \ No newline at end of file diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..45da4605 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,88 @@ +import globals from "globals"; +import parser from "vue-eslint-parser"; +import typescriptEslint from "@typescript-eslint/eslint-plugin"; +import tsParser from "@typescript-eslint/parser"; +import path from "node:path"; +import {fileURLToPath} from "node:url"; +import js from "@eslint/js"; +import {FlatCompat} from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +const config = [...compat.extends("eslint:recommended"), { + languageOptions: { + globals: { + ...globals.browser, + }, + + parser: parser, + ecmaVersion: 5, + sourceType: "module", + + parserOptions: { + parser: "@babel/eslint-parser", + allowImportExportEverywhere: false, + }, + }, + + rules: { + "func-names": 0, + "no-nested-ternary": 0, + "max-len": 0, + "arrow-parens": ["error", "always"], + "no-underscore-dangle": 0, + + "comma-dangle": ["error", { + arrays: "always-multiline", + objects: "always-multiline", + imports: "always-multiline", + exports: "always-multiline", + functions: "never", + }], + + "no-use-before-define": ["error", "nofunc"], + + "no-empty": ["error", { + allowEmptyCatch: true, + }], + + "no-mixed-operators": ["error", { + allowSamePrecedence: true, + }], + + indent: ["error", 4, { + flatTernaryExpressions: true, + SwitchCase: 1, + }], + }, +}, ...compat.extends( + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", +).map(config => ({ + ...config, + files: ["**/*.ts"], +})), { + files: ["**/*.ts"], + + plugins: { + "@typescript-eslint": typescriptEslint, + }, + + languageOptions: { + parser: tsParser, + }, + + rules: { + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/no-unused-vars": "warn", + "@typescript-eslint/no-explicit-any": "off", + }, +}]; + +export default config; diff --git a/package-lock.json b/package-lock.json index 5f255584..c464a489 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,8 @@ }, "devDependencies": { "@babel/eslint-parser": "^7.25.9", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.16.0", "@types/chai": "^5.0.1", "@types/memoizee": "^0.4.11", "@types/mocha": "^10.0.10", @@ -24,6 +26,7 @@ "@typescript-eslint/parser": "^8.18.0", "chai": "^5.1.2", "eslint": "^9.16.0", + "globals": "^15.13.0", "mocha": "^11.0.1", "typescript": "^5.7.2", "vue-eslint-parser": "^9.4.3" @@ -302,6 +305,17 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/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, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", @@ -2203,14 +2217,16 @@ } }, "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==", + "version": "15.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", + "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", "dev": true, "license": "MIT", - "peer": true, "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/graphemer": { diff --git a/package.json b/package.json index a2725e4d..441c4c92 100644 --- a/package.json +++ b/package.json @@ -18,26 +18,29 @@ }, "scripts": { "build": "rm -rf lib && tsc -p tsconfig.build.json", - "lint": "eslint src --ext .ts" + "lint": "eslint src" }, "type": "module", "devDependencies": { + "@babel/eslint-parser": "^7.25.9", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "^9.16.0", "@types/chai": "^5.0.1", "@types/memoizee": "^0.4.11", "@types/mocha": "^10.0.10", "@types/node": "^22.10.2", "@typescript-eslint/eslint-plugin": "^8.18.0", "@typescript-eslint/parser": "^8.18.0", - "@babel/eslint-parser": "^7.25.9", "chai": "^5.1.2", "eslint": "^9.16.0", + "globals": "^15.13.0", "mocha": "^11.0.1", "typescript": "^5.7.2", "vue-eslint-parser": "^9.4.3" }, "dependencies": { - "bignumber.js": "^9.1.2", "@curvefi/ethcall": "6.0.7", + "bignumber.js": "^9.1.2", "ethers": "^6.13.4", "memoizee": "^0.4.17" } diff --git a/src/external-api.ts b/src/external-api.ts index 766b653c..8497dce7 100644 --- a/src/external-api.ts +++ b/src/external-api.ts @@ -181,7 +181,7 @@ export const _getDaoProposalList = memoize(async (): Promise => - fetchJson(`https://api-py.llama.airforce/curve/v1/dao/proposals/${type.toLowerCase()}/${id}`), + fetchJson(`https://api-py.llama.airforce/curve/v1/dao/proposals/${type.toLowerCase()}/${id}`), { promise: true, maxAge: 5 * 60 * 1000, // 5m From a54dc488b6fe14cad07816c62d9599dcb8010d6b Mon Sep 17 00:00:00 2001 From: macket Date: Thu, 12 Dec 2024 17:26:56 +0400 Subject: [PATCH 3/4] chore: npm run tsc script --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 441c4c92..53d4976d 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ }, "scripts": { "build": "rm -rf lib && tsc -p tsconfig.build.json", - "lint": "eslint src" + "lint": "eslint src", + "tsc": "tsc -w" }, "type": "module", "devDependencies": { From 100d07021355efe4167c7ab96f51f13f26cd508d Mon Sep 17 00:00:00 2001 From: Daniel Schiavini Date: Sat, 18 Jan 2025 10:26:41 +0100 Subject: [PATCH 4/4] build: v2.65.29 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c962bbde..ed2fdfca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@curvefi/api", - "version": "2.65.28", + "version": "2.65.29", "description": "JavaScript library for curve.fi", "main": "lib/index.js", "author": "Macket",