From 49b62168837cc021d4da8fb19ff44b672ec67772 Mon Sep 17 00:00:00 2001 From: ff6347 Date: Fri, 7 Jun 2024 15:41:24 +0200 Subject: [PATCH] feat(eslint 9): Update package to use latest eslint --- .gitignore | 1 + .nvmrc | 2 +- .vscode/settings.json | 32 -- README.md | 16 +- package-lock.json | 862 +++++++++++++++++++++++++++--------- package.json | 14 +- test/snapshots/test.js.md | 123 +++-- test/snapshots/test.js.snap | Bin 11497 -> 11566 bytes 8 files changed, 725 insertions(+), 325 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.gitignore b/.gitignore index f836113..51cb586 100644 --- a/.gitignore +++ b/.gitignore @@ -271,3 +271,4 @@ cython_debug/ # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ .envrc +.vscode/settings.json diff --git a/.nvmrc b/.nvmrc index ee09fac..7bceec7 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20.11.1 +v22.2.0 diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index c6e26e3..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "workbench.colorCustomizations": { - "activityBar.activeBackground": "#185ded", - "activityBar.activeBorder": "#76092d", - "activityBar.background": "#185ded", - "activityBar.foreground": "#e7e7e7", - "activityBar.inactiveForeground": "#e7e7e799", - "activityBarBadge.background": "#76092d", - "activityBarBadge.foreground": "#e7e7e7", - "sash.hoverBorder": "#185ded", - "statusBar.background": "#0f49c3", - "statusBar.foreground": "#e7e7e7", - "statusBarItem.hoverBackground": "#185ded", - "statusBarItem.remoteBackground": "#0f49c3", - "statusBarItem.remoteForeground": "#e7e7e7", - "titleBar.activeBackground": "#0f49c3", - "titleBar.activeForeground": "#e7e7e7", - "titleBar.inactiveBackground": "#0f49c399", - "titleBar.inactiveForeground": "#e7e7e799", - "commandCenter.border": "#e7e7e799", - "editorGroup.border": "#185ded", - "panel.border": "#185ded", - "sideBar.border": "#185ded", - "statusBar.border": "#0f49c3", - "statusBar.debuggingBackground": "#c3890f", - "statusBar.debuggingBorder": "#c3890f", - "statusBar.debuggingForeground": "#15202b", - "tab.activeBorder": "#185ded", - "titleBar.border": "#0f49c3" - }, - "peacock.color": "#0f49c3" -} diff --git a/README.md b/README.md index 7cc0b45..e9fd0ea 100644 --- a/README.md +++ b/README.md @@ -10,17 +10,13 @@ This is a sharable eslint config for the @technologiestiftung organization. Should be the basis for JS and TS. Still WIP -~~The idea here is to start out with a flat config but still be backwards compatible with the old config. So our team does not have to set the env variable `ESLINT_USE_FLAT_CONFIG=true` but can just reference this config as extend in the old config style if they need to.~~ -After some testing it is not that easy to turn the config from flat file to commonjs. Since the old config will be deprecated soon with the release of eslint 9.0 this is actually to much effort. So we will just use the flat config and be done with it. \o/ - The rules we apply should also be only for coding style not formatting. We should use prettier for that. ## TODO -- [ ] Add more relevant rules - [x] Figure out how we can use this for javascript and typescript projects -- [x] Add tests -- [ ] ~~Figure out how we can leverage the flat config already and be backwards compatible~~ +- [ ] Add more relevant rules +- [ ] Add relevant tests ## Prerequisites @@ -51,13 +47,7 @@ export default [ ``` ```bash -ESLINT_USE_FLAT_CONFIG=true npx eslint -``` - -If you are using VSCode set the following in your settings: - -```json -{ "eslint.experimental.useFlatConfig": true } +npx eslint ``` ## Examples diff --git a/package-lock.json b/package-lock.json index be50059..8ca7e09 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,26 +8,27 @@ "name": "@technologiestiftung/eslint-config", "version": "0.1.4", "license": "MIT", - "dependencies": { - "@eslint/js": "8.57.0", - "typescript-eslint": "7.1.0" - }, "devDependencies": { + "@eslint/js": "9.4.0", "@technologiestiftung/semantic-release-config": "1.2.4", "@types/eslint": "8.56.10", + "@types/eslint__js": "8.42.3", "ava": "6.1.3", - "eslint": "8.57.0", + "eslint": "9.4.0", "prettier": "3.3.0", - "semantic-release": "23.1.1" + "semantic-release": "23.1.1", + "typescript": "5.4.5", + "typescript-eslint": "8.0.0-alpha.10" }, "peerDependencies": { - "eslint": ">= 8.57.0" + "eslint": ">= 9.0.0" } }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -224,6 +225,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -238,19 +240,35 @@ "version": "4.10.0", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.15.1.tgz", + "integrity": "sha512-K4gzNq+yymn/EVsXYmf+SBcBro8MTf+aXJZUphM96CdzUEr+ClGDvAbpmaEK+cGVigVXIgs9gNmvHAlrzzY5JQ==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -258,37 +276,35 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.4.0.tgz", + "integrity": "sha512-fdI7VJjP3Rvc70lC4xkFXHB0fiPeojiL1PxVG6t1ZvXQrarj893PweuBTujxDUFk0Fxj4R7PIIAZ/aiiyZPZcg==", + "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, + "node_modules/@eslint/object-schema": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.3.tgz", + "integrity": "sha512-HAbhAYKfsAC2EkTqve00ibWIZlaU74Z1EHwAjYr4PXF0YU2VEA1zSIKSSpKszRLRWwHzzRZXvK632u+uXzvsvw==", + "dev": true, "engines": { - "node": ">=10.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "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, "engines": { "node": ">=12.22" }, @@ -297,10 +313,18 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==" + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.11", @@ -326,6 +350,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -338,6 +363,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, "engines": { "node": ">= 8" } @@ -346,6 +372,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1086,6 +1113,15 @@ "@types/json-schema": "*" } }, + "node_modules/@types/eslint__js": { + "version": "8.42.3", + "resolved": "https://registry.npmjs.org/@types/eslint__js/-/eslint__js-8.42.3.tgz", + "integrity": "sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==", + "dev": true, + "dependencies": { + "@types/eslint": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -1095,7 +1131,8 @@ "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", @@ -1106,27 +1143,29 @@ "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.1.0.tgz", - "integrity": "sha512-j6vT/kCulhG5wBmGtstKeiVr1rdXE4nk+DT1k6trYkwlrvW9eOF5ZbgKnd/YR6PcM4uTEXa0h6Fcvf6X7Dxl0w==", - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.1.0", - "@typescript-eslint/type-utils": "7.1.0", - "@typescript-eslint/utils": "7.1.0", - "@typescript-eslint/visitor-keys": "7.1.0", + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.0.0-alpha.10.tgz", + "integrity": "sha512-jsNKqn41nIS8jz5Li5xsueGEBBmRYLaflUKlclEkj8cWrO1tMK1/7xITeiVz7ZlNFZF2nop2NlXrbLtRpLEzhg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.0.0-alpha.10", + "@typescript-eslint/type-utils": "8.0.0-alpha.10", + "@typescript-eslint/utils": "8.0.0-alpha.10", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.10", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -1134,7 +1173,7 @@ }, "peerDependencies": { "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -1143,18 +1182,20 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.1.0.tgz", - "integrity": "sha512-V1EknKUubZ1gWFjiOZhDSNToOjs63/9O0puCgGS8aDOgpZY326fzFu15QAUjwaXzRZjf/qdsdBrckYdv9YxB8w==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.12.0.tgz", + "integrity": "sha512-dm/J2UDY3oV3TKius2OUZIFHsomQmpHtsV0FTh1WO8EKgHLQ1QCADUqscPgTpU+ih1e21FQSRjXckHn3txn6kQ==", + "dev": true, + "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.1.0", - "@typescript-eslint/types": "7.1.0", - "@typescript-eslint/typescript-estree": "7.1.0", - "@typescript-eslint/visitor-keys": "7.1.0", + "@typescript-eslint/scope-manager": "7.12.0", + "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/typescript-estree": "7.12.0", + "@typescript-eslint/visitor-keys": "7.12.0", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1169,16 +1210,66 @@ } } }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.12.0.tgz", + "integrity": "sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg==", + "dev": true, + "peer": true, + "dependencies": { + "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/visitor-keys": "7.12.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.12.0.tgz", + "integrity": "sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==", + "dev": true, + "peer": true, + "dependencies": { + "@typescript-eslint/types": "7.12.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.1.0.tgz", - "integrity": "sha512-6TmN4OJiohHfoOdGZ3huuLhpiUgOGTpgXNUPJgeZOZR3DnIpdSgtt83RS35OYNNXxM4TScVlpVKC9jyQSETR1A==", + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.0.0-alpha.10.tgz", + "integrity": "sha512-SUU0yhqehjuWilWRJWfhcxf6eMKVrZ3bpV2w6NF6GmBHR3FJo6oWZYLVXP04s6//INxpC2ynvKSglo4LRzWVTw==", + "dev": true, "dependencies": { - "@typescript-eslint/types": "7.1.0", - "@typescript-eslint/visitor-keys": "7.1.0" + "@typescript-eslint/types": "8.0.0-alpha.10", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.10" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.0-alpha.10.tgz", + "integrity": "sha512-prbN+b/I4yH6H43WmyenMz8K5e34Hs73BQuWXR4wwij3Cg2xNGLPcpjr2cKWKlH4dZQPTz6R6oBeC+LfaoKi8g==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -1186,24 +1277,63 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.1.0.tgz", - "integrity": "sha512-UZIhv8G+5b5skkcuhgvxYWHjk7FW7/JP5lPASMEUoliAPwIH/rxoUSQPia2cuOj9AmDZmwUl1usKm85t5VUMew==", + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.0.0-alpha.10.tgz", + "integrity": "sha512-6aTcbnDZWKgKr3gquECJSFyvXWLSKtUHrk2ZXDP4DEzmzTDjrkY7tIQpqv4SczPQJ+3/aky3ArPhtnQYJbAMzg==", + "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.1.0", - "@typescript-eslint/utils": "7.1.0", + "@typescript-eslint/typescript-estree": "8.0.0-alpha.10", + "@typescript-eslint/utils": "8.0.0-alpha.10", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "eslint": "^8.56.0" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.0-alpha.10.tgz", + "integrity": "sha512-prbN+b/I4yH6H43WmyenMz8K5e34Hs73BQuWXR4wwij3Cg2xNGLPcpjr2cKWKlH4dZQPTz6R6oBeC+LfaoKi8g==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.0-alpha.10.tgz", + "integrity": "sha512-8wBUIhu6IRa440hv5/0ZEnb5JLp/UsfzIXYKRwICUOMTVj2ss1n+w3m1CtT5ghVWy5Z05qkscsbhlKFmZguU8w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.10", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.10", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependenciesMeta": { "typescript": { @@ -1211,12 +1341,38 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/types": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.1.0.tgz", - "integrity": "sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.12.0.tgz", + "integrity": "sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg==", + "dev": true, + "peer": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1224,21 +1380,23 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.1.0.tgz", - "integrity": "sha512-k7MyrbD6E463CBbSpcOnwa8oXRdHzH1WiVzOipK3L5KSML92ZKgUBrTlehdi7PEIMT8k0bQixHUGXggPAlKnOQ==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.12.0.tgz", + "integrity": "sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ==", + "dev": true, + "peer": true, "dependencies": { - "@typescript-eslint/types": "7.1.0", - "@typescript-eslint/visitor-keys": "7.1.0", + "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/visitor-keys": "7.12.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1250,18 +1408,40 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.12.0.tgz", + "integrity": "sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==", + "dev": true, + "peer": true, + "dependencies": { + "@typescript-eslint/types": "7.12.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/typescript-estree/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, + "peer": true, "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -1273,49 +1453,124 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.1.0.tgz", - "integrity": "sha512-WUFba6PZC5OCGEmbweGpnNJytJiLG7ZvDBJJoUcX4qZYf1mGZ97mO2Mps6O2efxJcJdRNpqweCistDbZMwIVHw==", + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.0.0-alpha.10.tgz", + "integrity": "sha512-WZyNf49CuvaW/whz/B8XjYwXE/wm/EQAXq+Vqgp6BrJb8SC3bMCwGuUxReNDN1o+dNdOC96ofVSvqa8NUQ65Jg==", + "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.1.0", - "@typescript-eslint/types": "7.1.0", - "@typescript-eslint/typescript-estree": "7.1.0", - "semver": "^7.5.4" + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "8.0.0-alpha.10", + "@typescript-eslint/types": "8.0.0-alpha.10", + "@typescript-eslint/typescript-estree": "8.0.0-alpha.10", + "semver": "^7.6.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.0-alpha.10.tgz", + "integrity": "sha512-prbN+b/I4yH6H43WmyenMz8K5e34Hs73BQuWXR4wwij3Cg2xNGLPcpjr2cKWKlH4dZQPTz6R6oBeC+LfaoKi8g==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.0-alpha.10.tgz", + "integrity": "sha512-8wBUIhu6IRa440hv5/0ZEnb5JLp/UsfzIXYKRwICUOMTVj2ss1n+w3m1CtT5ghVWy5Z05qkscsbhlKFmZguU8w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.10", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.10", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.1.0.tgz", - "integrity": "sha512-FhUqNWluiGNzlvnDZiXad4mZRhtghdoKW6e98GoEOYSu5cND+E39rG5KwJMUzeENwm1ztYBRqof8wMLP+wNPIA==", + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.0-alpha.10.tgz", + "integrity": "sha512-UohTNnT7S29uQgXsGZY489nWmoBBSJucNdRvog62R1QX9pQQb2pKVV1kHepUxoY2vd+M4tb9SQwZQ3gPNgqQ6w==", + "dev": true, "dependencies": { - "@typescript-eslint/types": "7.1.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "8.0.0-alpha.10", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + "node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": { + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.0-alpha.10.tgz", + "integrity": "sha512-prbN+b/I4yH6H43WmyenMz8K5e34Hs73BQuWXR4wwij3Cg2xNGLPcpjr2cKWKlH4dZQPTz6R6oBeC+LfaoKi8g==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } }, "node_modules/@vercel/nft": { "version": "0.26.4", @@ -1362,6 +1617,7 @@ "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, "bin": { "acorn": "bin/acorn" }, @@ -1382,6 +1638,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -1433,6 +1690,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1475,6 +1733,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -1483,6 +1742,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -1521,7 +1781,8 @@ "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==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/argv-formatter": { "version": "1.0.0", @@ -1548,6 +1809,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, "engines": { "node": ">=8" } @@ -1769,7 +2031,8 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/before-after-hook": { "version": "2.2.3", @@ -1802,6 +2065,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1811,6 +2075,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "dependencies": { "fill-range": "^7.0.1" }, @@ -1822,6 +2087,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, "engines": { "node": ">=6" } @@ -1842,6 +2108,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2114,6 +2381,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -2124,7 +2392,8 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/color-support": { "version": "1.1.3", @@ -2154,7 +2423,8 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true }, "node_modules/concordance": { "version": "5.0.4", @@ -2337,6 +2607,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2401,6 +2672,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -2425,7 +2697,8 @@ "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true }, "node_modules/delegates": { "version": "1.0.0", @@ -2452,6 +2725,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, "dependencies": { "path-type": "^4.0.0" }, @@ -2459,17 +2733,6 @@ "node": ">=8" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -2723,6 +2986,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "engines": { "node": ">=10" }, @@ -2731,40 +2995,37 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.4.0.tgz", + "integrity": "sha512-sjc7Y8cUD1IlwYcTS9qPSvGjAC8Ne9LctpxKKu3x/1IC9bnOg98Zy6GxEJUfr1NojMgVPlyANXYns8oE2c1TAA==", + "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint/config-array": "^0.15.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.4.0", "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", + "eslint-scope": "^8.0.1", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.0.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -2778,22 +3039,23 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "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==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.1.tgz", + "integrity": "sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==", + "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2803,6 +3065,7 @@ "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, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -2810,17 +3073,42 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.0.1.tgz", + "integrity": "sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==", + "dev": true, "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.11.3", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.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": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2843,6 +3131,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -2854,6 +3143,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -2865,6 +3155,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, "engines": { "node": ">=4.0" } @@ -2879,6 +3170,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -2921,7 +3213,8 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-diff": { "version": "1.3.0", @@ -2933,6 +3226,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -2948,6 +3242,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -2958,17 +3253,20 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, "dependencies": { "reusify": "^1.0.4" } @@ -2990,14 +3288,15 @@ } }, "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, "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/file-uri-to-path": { @@ -3010,6 +3309,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -3021,6 +3321,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -3061,22 +3362,23 @@ } }, "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, "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": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true }, "node_modules/from2": { "version": "2.3.0", @@ -3159,7 +3461,8 @@ "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==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true }, "node_modules/function-bind": { "version": "1.1.2", @@ -3291,6 +3594,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3310,6 +3614,7 @@ "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, "dependencies": { "is-glob": "^4.0.3" }, @@ -3318,14 +3623,12 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dependencies": { - "type-fest": "^0.20.2" - }, + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3335,6 +3638,7 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -3359,7 +3663,8 @@ "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true }, "node_modules/handlebars": { "version": "4.7.8", @@ -3386,6 +3691,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -3501,6 +3807,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, "engines": { "node": ">= 4" } @@ -3518,6 +3825,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -3568,6 +3876,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, "engines": { "node": ">=0.8.19" } @@ -3600,6 +3909,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3608,7 +3918,8 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true }, "node_modules/ini": { "version": "1.3.8", @@ -3663,6 +3974,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -3683,6 +3995,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -3694,6 +4007,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "engines": { "node": ">=0.12.0" } @@ -3711,6 +4025,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -3788,7 +4103,8 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "node_modules/issue-parser": { "version": "6.0.0", @@ -3834,6 +4150,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "dependencies": { "argparse": "^2.0.1" }, @@ -3844,7 +4161,8 @@ "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true }, "node_modules/json-parse-better-errors": { "version": "1.0.2", @@ -3864,12 +4182,14 @@ "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -3918,6 +4238,7 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "dependencies": { "json-buffer": "3.0.1" } @@ -3926,6 +4247,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -3959,6 +4281,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -4008,7 +4331,8 @@ "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true }, "node_modules/lodash.uniqby": { "version": "4.7.0", @@ -4020,6 +4344,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -4171,6 +4496,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "engines": { "node": ">= 8" } @@ -4179,6 +4505,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -4224,6 +4551,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4289,7 +4617,8 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/mz": { "version": "2.7.0", @@ -4305,7 +4634,8 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, "node_modules/neo-async": { "version": "2.6.2", @@ -7218,6 +7548,7 @@ "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, "dependencies": { "wrappy": "1" } @@ -7241,6 +7572,7 @@ "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -7351,6 +7683,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -7365,6 +7698,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -7425,6 +7759,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, "dependencies": { "callsites": "^3.0.0" }, @@ -7500,6 +7835,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "engines": { "node": ">=8" } @@ -7508,6 +7844,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -7516,6 +7853,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, "engines": { "node": ">=8" } @@ -7524,6 +7862,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, "engines": { "node": ">=8" } @@ -7532,6 +7871,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -7666,6 +8006,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, "engines": { "node": ">= 0.8.0" } @@ -7717,6 +8058,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "engines": { "node": ">=6" } @@ -7725,6 +8067,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -8030,6 +8373,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, "engines": { "node": ">=4" } @@ -8038,6 +8382,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -8047,6 +8392,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -8061,6 +8407,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, "funding": [ { "type": "github", @@ -8855,6 +9202,7 @@ "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -8929,6 +9277,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -8940,6 +9289,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "engines": { "node": ">=8" } @@ -9063,6 +9413,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "engines": { "node": ">=8" } @@ -9275,6 +9626,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -9304,6 +9656,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "engines": { "node": ">=8" }, @@ -9395,6 +9748,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -9498,7 +9852,8 @@ "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==" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, "node_modules/thenify": { "version": "3.3.1", @@ -9595,6 +9950,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "dependencies": { "is-number": "^7.0.0" }, @@ -9621,9 +9977,10 @@ } }, "node_modules/ts-api-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz", - "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, "engines": { "node": ">=16" }, @@ -9635,6 +9992,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -9642,22 +10000,11 @@ "node": ">= 0.8.0" } }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "peer": true, + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9667,22 +10014,49 @@ } }, "node_modules/typescript-eslint": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.1.0.tgz", - "integrity": "sha512-GfAALH4zoqae5mIfHr7WU3BsULHP73hjwF8vCmyTkH3IXHXjqg3JNWwUcd8CwOTLIr4tjRTZQWpToyESPnpOhg==", + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.0.0-alpha.10.tgz", + "integrity": "sha512-iMbN7boDtUmcSDor/J022+H4G018W3r3RSUUr7yoghMTmFuKVIkI89xJHDg82DBGYkA0xOoDNPBr7XfRFbEXKQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.0.0-alpha.10", + "@typescript-eslint/parser": "8.0.0-alpha.10", + "@typescript-eslint/utils": "8.0.0-alpha.10" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.0.0-alpha.10.tgz", + "integrity": "sha512-4EerPviLfBKgExHARehJgWrCtX2a7+PXBc0LBPlH93ypSgj0LU1ejMgjrB0gcfd6bJ7LN/UGNAAy3B7/Y785sA==", + "dev": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "7.1.0", - "@typescript-eslint/parser": "7.1.0" + "@typescript-eslint/scope-manager": "8.0.0-alpha.10", + "@typescript-eslint/types": "8.0.0-alpha.10", + "@typescript-eslint/typescript-estree": "8.0.0-alpha.10", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.10", + "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -9690,6 +10064,71 @@ } } }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.0-alpha.10.tgz", + "integrity": "sha512-prbN+b/I4yH6H43WmyenMz8K5e34Hs73BQuWXR4wwij3Cg2xNGLPcpjr2cKWKlH4dZQPTz6R6oBeC+LfaoKi8g==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.0.0-alpha.10", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.0-alpha.10.tgz", + "integrity": "sha512-8wBUIhu6IRa440hv5/0ZEnb5JLp/UsfzIXYKRwICUOMTVj2ss1n+w3m1CtT5ghVWy5Z05qkscsbhlKFmZguU8w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.10", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.10", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/typescript-eslint/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typescript-eslint/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", @@ -9758,6 +10197,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -9816,6 +10256,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -9919,7 +10360,8 @@ "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==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "node_modules/write-file-atomic": { "version": "5.0.1", @@ -9967,7 +10409,8 @@ "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/yargs": { "version": "17.7.2", @@ -10029,6 +10472,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index 3a3eae1..11b6612 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "author": "ff6347 ", "license": "MIT", "peerDependencies": { - "eslint": ">= 8.57.0" + "eslint": ">= 9.0.0" }, "ava": { "files": [ @@ -51,15 +51,15 @@ ] }, "devDependencies": { + "@eslint/js": "9.4.0", "@technologiestiftung/semantic-release-config": "1.2.4", "@types/eslint": "8.56.10", + "@types/eslint__js": "8.42.3", "ava": "6.1.3", - "eslint": "8.57.0", + "eslint": "9.4.0", "prettier": "3.3.0", - "semantic-release": "23.1.1" - }, - "dependencies": { - "@eslint/js": "8.57.0", - "typescript-eslint": "7.1.0" + "semantic-release": "23.1.1", + "typescript": "5.4.5", + "typescript-eslint": "8.0.0-alpha.10" } } diff --git a/test/snapshots/test.js.md b/test/snapshots/test.js.md index 0b99b64..ac3a240 100644 --- a/test/snapshots/test.js.md +++ b/test/snapshots/test.js.md @@ -14,7 +14,7 @@ Generated by [AVA](https://avajs.dev). fatalErrorCount: 0, filePath: '/files/broken-rules-1.js', fixableErrorCount: 7, - fixableWarningCount: 0, + fixableWarningCount: 2, messages: [ { column: 5, @@ -126,7 +126,7 @@ Generated by [AVA](https://avajs.dev). line: 13, message: '\'b\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, }, @@ -137,7 +137,7 @@ Generated by [AVA](https://avajs.dev). line: 29, message: '\'val2\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, }, @@ -159,6 +159,21 @@ Generated by [AVA](https://avajs.dev). ruleId: 'arrow-parens', severity: 2, }, + { + column: 1, + fix: { + range: [ + 450, + 511, + ], + text: ' ', + }, + line: 39, + message: 'Unused eslint-disable directive (no problems were reported from \'@typescript-eslint/no-unused-vars\').', + nodeType: null, + ruleId: null, + severity: 1, + }, { column: 9, endColumn: 3, @@ -293,6 +308,21 @@ Generated by [AVA](https://avajs.dev). ruleId: 'func-style', severity: 2, }, + { + column: 3, + fix: { + range: [ + 1449, + 1498, + ], + text: ' ', + }, + line: 78, + message: 'Unused eslint-disable directive (no problems were reported from \'no-constant-condition\').', + nodeType: null, + ruleId: null, + severity: 1, + }, { column: 10, endColumn: 11, @@ -655,7 +685,7 @@ Generated by [AVA](https://avajs.dev). line: 48, message: '\'doSomethingElse\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -672,7 +702,7 @@ Generated by [AVA](https://avajs.dev). line: 56, message: '\'f\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -689,7 +719,7 @@ Generated by [AVA](https://avajs.dev). line: 56, message: '\'a\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -706,7 +736,7 @@ Generated by [AVA](https://avajs.dev). line: 56, message: '\'b\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -723,7 +753,7 @@ Generated by [AVA](https://avajs.dev). line: 58, message: '\'g\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -740,7 +770,7 @@ Generated by [AVA](https://avajs.dev). line: 58, message: '\'b\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -757,7 +787,7 @@ Generated by [AVA](https://avajs.dev). line: 58, message: '\'c\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -873,7 +903,7 @@ Generated by [AVA](https://avajs.dev). line: 73, message: '\'expr1\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -890,7 +920,7 @@ Generated by [AVA](https://avajs.dev). line: 76, message: '\'maxDepth\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -900,23 +930,6 @@ Generated by [AVA](https://avajs.dev). }, ], }, - { - column: 10, - endColumn: 14, - endLine: 79, - line: 79, - message: 'Unexpected constant condition.', - messageId: 'unexpected', - nodeType: 'Literal', - ruleId: 'no-constant-condition', - severity: 2, - suppressions: [ - { - justification: '', - kind: 'directive', - }, - ], - }, { column: 8, endColumn: 12, @@ -975,7 +988,7 @@ Generated by [AVA](https://avajs.dev). line: 94, message: '\'maxParams\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -992,7 +1005,7 @@ Generated by [AVA](https://avajs.dev). line: 94, message: '\'bar\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1009,7 +1022,7 @@ Generated by [AVA](https://avajs.dev). line: 94, message: '\'baz\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1026,7 +1039,7 @@ Generated by [AVA](https://avajs.dev). line: 94, message: '\'qux\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1043,7 +1056,7 @@ Generated by [AVA](https://avajs.dev). line: 94, message: '\'qxx\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1060,7 +1073,7 @@ Generated by [AVA](https://avajs.dev). line: 99, message: '\'complexity\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1111,7 +1124,7 @@ Generated by [AVA](https://avajs.dev). line: 122, message: '\'friend\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1128,7 +1141,7 @@ Generated by [AVA](https://avajs.dev). line: 125, message: '\'noElseReturn\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1191,20 +1204,12 @@ Generated by [AVA](https://avajs.dev). }, ], usedDeprecatedRules: [ - { - replacedBy: [], - ruleId: 'no-extra-semi', - }, - { - replacedBy: [], - ruleId: 'no-mixed-spaces-and-tabs', - }, { replacedBy: [], ruleId: 'arrow-parens', }, ], - warningCount: 0, + warningCount: 2, }, { errorCount: 11, @@ -1391,7 +1396,7 @@ Generated by [AVA](https://avajs.dev). line: 3, message: '\'a\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1408,7 +1413,7 @@ Generated by [AVA](https://avajs.dev). line: 3, message: '\'b\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1442,7 +1447,7 @@ Generated by [AVA](https://avajs.dev). line: 8, message: '\'thing\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1561,7 +1566,7 @@ Generated by [AVA](https://avajs.dev). line: 18, message: '\'noReassign\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1578,7 +1583,7 @@ Generated by [AVA](https://avajs.dev). line: 19, message: '\'bar\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1595,7 +1600,7 @@ Generated by [AVA](https://avajs.dev). line: 22, message: '\'doSomething\' is defined but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1646,7 +1651,7 @@ Generated by [AVA](https://avajs.dev). line: 26, message: '\'a1\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1663,7 +1668,7 @@ Generated by [AVA](https://avajs.dev). line: 29, message: '\'a1\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1680,7 +1685,7 @@ Generated by [AVA](https://avajs.dev). line: 32, message: '\'unnnededTernary\' is assigned a value but never used.', messageId: 'unusedVar', - nodeType: 'Identifier', + nodeType: null, ruleId: '@typescript-eslint/no-unused-vars', severity: 2, suppressions: [ @@ -1692,14 +1697,6 @@ Generated by [AVA](https://avajs.dev). }, ], usedDeprecatedRules: [ - { - replacedBy: [], - ruleId: 'no-extra-semi', - }, - { - replacedBy: [], - ruleId: 'no-mixed-spaces-and-tabs', - }, { replacedBy: [], ruleId: 'arrow-parens', diff --git a/test/snapshots/test.js.snap b/test/snapshots/test.js.snap index fdebec7666ef0b9b3eb3710a28f4133f9db1e3c2..a436da0a0692c18e837519a36e7437d3a3be0d5e 100644 GIT binary patch literal 11566 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 literal 11497 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

;y3LKdN5mVu+sc_3wm^&3VO@*UV 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