From 510ede3985f3af197cec220c8ab1520f252c21cf Mon Sep 17 00:00:00 2001 From: Akita Noek Date: Thu, 18 Jul 2024 04:39:37 -0600 Subject: [PATCH 1/2] Migrate to eslint.config.js --- .eslintrc.js | 140 --------------------------- eslint.config.mjs | 187 ++++++++++++++++++++++++++++++++++++ package.json | 7 +- src/views/Game/AIReview.tsx | 17 ++-- yarn.lock | 30 ++++++ 5 files changed, 231 insertions(+), 150 deletions(-) delete mode 100644 .eslintrc.js create mode 100644 eslint.config.mjs diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 801918ca30..0000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,140 +0,0 @@ -module.exports = { - ignorePatterns: ["node_modules", "dist", "i18n", "typings_manual", ".github"], - env: { - browser: true, - es6: true, - }, - parser: "@typescript-eslint/parser", - parserOptions: { - project: "tsconfig.json", - sourceType: "module", - }, - plugins: ["eslint-plugin-jsdoc", "header", "prettier", "react-hooks", "@typescript-eslint"], - extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"], - rules: { - // Recommended rules with errors - // TODO: Fix these and re-enable them - - "@typescript-eslint/ban-types": "off", // 35 errors - "@typescript-eslint/explicit-module-boundary-types": "off", // 1242 warnings - "@typescript-eslint/no-empty-interface": "off", // 45 errors - "@typescript-eslint/no-explicit-any": "off", // 535 warnings - "@typescript-eslint/no-namespace": "off", // 1 error - "@typescript-eslint/no-this-alias": "off", // 4 errors - "@typescript-eslint/triple-slash-reference": "off", // 1 error - - "no-misleading-character-class": "off", // 2 errors - "no-prototype-builtins": "off", // 8 errors - "no-self-assign": "off", // 2 errors - "no-useless-escape": "off", // 24 errors - "prefer-spread": "off", // 7 errors - "react-hooks/exhaustive-deps": "off", // 41 errors - - //============================================================== - - "@typescript-eslint/adjacent-overload-signatures": "error", - "@typescript-eslint/consistent-type-assertions": "error", - "@typescript-eslint/member-delimiter-style": "error", - "@typescript-eslint/no-floating-promises": "error", - "@typescript-eslint/no-inferrable-types": [ - "error", - { - ignoreParameters: true, - ignoreProperties: true, - }, - ], - "@typescript-eslint/no-unused-vars": [ - "error", - { - varsIgnorePattern: "^_[a-zA-Z_]", - argsIgnorePattern: "^_[a-zA-Z_]", - }, - ], - "@typescript-eslint/no-var-requires": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/semi": "error", - "@typescript-eslint/type-annotation-spacing": "error", - "computed-property-spacing": ["error", "never"], - curly: "error", - "eol-last": "error", - eqeqeq: ["error", "smart"], - "id-denylist": [ - "error", - "any", - "Number", - "number", - "String", - "string", - "Boolean", - "boolean", - "Undefined", - "undefined", - ], - "id-match": "error", - "jsdoc/check-alignment": "error", - "jsdoc/require-asterisk-prefix": "error", - "linebreak-style": ["error", "unix"], - "no-caller": "error", - "no-cond-assign": "error", - "no-debugger": "error", - "no-eval": "error", - "no-fallthrough": [ - "error", - { - commentPattern: "break[\\s\\w]*omitted", - }, - ], - // Using the typescript-eslint version of this rule because of class - // properties, which are not yet supported in ESLint. For more info, - // see: https://github.com/typescript-eslint/typescript-eslint/issues/491 - "@typescript-eslint/no-invalid-this": "error", - "no-multiple-empty-lines": [ - "error", - { - max: 3, - }, - ], - "no-new-wrappers": "error", - "no-tabs": "error", - "no-trailing-spaces": "error", - "no-undef-init": "error", - "no-unsafe-finally": "error", - "no-unused-labels": "error", - "no-var": "error", - "one-var": ["error", "never"], - "prefer-arrow-callback": ["error", { allowNamedFunctions: true }], - "prettier/prettier": "error", - "use-isnan": "error", - "header/header": [ - "error", - "block", - [ - { - pattern: "[Cc]opyright ([(][Cc][)])?\\s*[Oo]nline-[gG]o.com", // cspell: disable-line - }, - ], - ], - "react-hooks/rules-of-hooks": "error", - "prefer-const": [ - "error", - { - destructuring: "all", - }, - ], - }, - overrides: [ - { - files: ["*.test.ts", "*.test.tsx"], - // since test files are not part of tsconfig.json, - // parserOptions.project must be unset - parserOptions: { - project: null, - }, - rules: { - // rules that depend on type information (and therefore - // parserOptions.project) - "@typescript-eslint/no-floating-promises": "off", - }, - }, - ], -}; diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000000..d5044dc8d2 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,187 @@ +import jsdoc from "eslint-plugin-jsdoc"; +import header from "eslint-plugin-header"; +import prettier from "eslint-plugin-prettier"; +import reactHooks from "eslint-plugin-react-hooks"; +import typescriptEslint from "@typescript-eslint/eslint-plugin"; +import { fixupPluginRules } from "@eslint/compat"; +import globals from "globals"; +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, +}); + +export default [ + { + ignores: ["**/node_modules", "**/dist", "**/i18n", "**/typings_manual", "**/.github"], + }, + ...compat.extends("eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"), + { + plugins: { + jsdoc, + header, + prettier, + "react-hooks": fixupPluginRules(reactHooks), + "@typescript-eslint": typescriptEslint, + }, + + languageOptions: { + globals: { + ...globals.browser, + }, + + parser: tsParser, + ecmaVersion: 5, + sourceType: "module", + + parserOptions: { + project: "tsconfig.json", + }, + }, + + rules: { + "@typescript-eslint/ban-types": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + "@typescript-eslint/no-empty-interface": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-this-alias": "off", + "@typescript-eslint/triple-slash-reference": "off", + "no-misleading-character-class": "off", + "no-prototype-builtins": "off", + "no-self-assign": "off", + "no-useless-escape": "off", + "prefer-spread": "off", + "react-hooks/exhaustive-deps": "off", + "@typescript-eslint/adjacent-overload-signatures": "error", + "@typescript-eslint/consistent-type-assertions": "error", + "@typescript-eslint/member-delimiter-style": "error", + "@typescript-eslint/no-floating-promises": "error", + + "@typescript-eslint/no-inferrable-types": [ + "error", + { + ignoreParameters: true, + ignoreProperties: true, + }, + ], + + "@typescript-eslint/no-unused-vars": [ + "error", + { + varsIgnorePattern: "^_[a-zA-Z_]", + argsIgnorePattern: "^_[a-zA-Z_]", + }, + ], + + "@typescript-eslint/no-var-requires": "error", + "@typescript-eslint/prefer-namespace-keyword": "error", + "@typescript-eslint/semi": "error", + "@typescript-eslint/type-annotation-spacing": "error", + "computed-property-spacing": ["error", "never"], + curly: "error", + "eol-last": "error", + eqeqeq: ["error", "smart"], + + "id-denylist": [ + "error", + "any", + "Number", + "number", + "String", + "string", + "Boolean", + "boolean", + "Undefined", + "undefined", + ], + + "id-match": "error", + "jsdoc/check-alignment": "error", + "jsdoc/require-asterisk-prefix": "error", + "linebreak-style": ["error", "unix"], + "no-caller": "error", + "no-cond-assign": "error", + "no-debugger": "error", + "no-eval": "error", + + "no-fallthrough": [ + "error", + { + commentPattern: "break[\\s\\w]*omitted", + }, + ], + + "@typescript-eslint/no-invalid-this": "error", + + "no-multiple-empty-lines": [ + "error", + { + max: 3, + }, + ], + + "no-new-wrappers": "error", + "no-tabs": "error", + "no-trailing-spaces": "error", + "no-undef-init": "error", + "no-unsafe-finally": "error", + "no-unused-labels": "error", + "no-var": "error", + "one-var": ["error", "never"], + + "prefer-arrow-callback": [ + "error", + { + allowNamedFunctions: true, + }, + ], + + "prettier/prettier": "error", + "use-isnan": "error", + + "header/header": [ + "error", + "block", + [ + { + pattern: "[Cc]opyright ([(][Cc][)])?\\s*[Oo]nline-[gG]o.com", + }, + ], + ], + + "react-hooks/rules-of-hooks": "error", + + "prefer-const": [ + "error", + { + destructuring: "all", + }, + ], + }, + }, + { + files: ["**/*.test.ts", "**/*.test.tsx"], + + languageOptions: { + ecmaVersion: 5, + sourceType: "script", + + parserOptions: { + project: null, + }, + }, + + rules: { + "@typescript-eslint/no-floating-promises": "off", + }, + }, +]; diff --git a/package.json b/package.json index 04783c451f..1b665cc369 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "prettier:check": "prettier --check \"src/**/*.{ts,tsx}\"", "webpack": "webpack", "webpack-watch": "webpack --watch --progress --color", - "lint": "eslint src/ --ext=.ts,.tsx -c .eslintrc.js", + "lint": "eslint src/", + "lintold": "eslint src/ --ext=.ts,.tsx -c .eslintrc.js", "lint:fix": "eslint --fix src/ --ext=.ts,.tsx -c .eslintrc.js", "test": "jest", "fresh-test": "clear && jest", @@ -27,6 +28,9 @@ "defaults" ], "devDependencies": { + "@eslint/compat": "^1.1.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.7.0", "@google-cloud/translate": "^7.0.3", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.2.0", @@ -55,6 +59,7 @@ "express": "^4.19.2", "express-http-proxy": "^2.0.0", "fork-ts-checker-webpack-plugin": "^9.0.0", + "globals": "^15.8.0", "goban": "=8.3.16", "gulp": "^5.0.0", "gulp-clean-css": "^4.3.0", diff --git a/src/views/Game/AIReview.tsx b/src/views/Game/AIReview.tsx index f8cb3072a4..dd01cc0beb 100644 --- a/src/views/Game/AIReview.tsx +++ b/src/views/Game/AIReview.tsx @@ -1296,11 +1296,11 @@ export class AIReview extends React.Component show_full_ai_review_button = null; } - const [win_rate, score, next_move_delta_win_rate, next_move_pretty_coords] = + const [win_rate, score, _next_move_delta_win_rate, _next_move_pretty_coords] = this.updateHighlightsMarksAndHeatmaps(); const win_rate_p = win_rate * 100.0; - const next_move_delta_p = (next_move_delta_win_rate ?? 0) * 100.0; + //const next_move_delta_p = (next_move_delta_win_rate ?? 0) * 100.0; const ai_review_chart_entries: Array = this.ai_review.win_rates?.map((x, idx) => { @@ -1462,7 +1462,7 @@ export class AIReview extends React.Component
{children}
), MenuList: (props) => { - const goban = this.context; + //const goban = this.context; return ( @@ -1476,9 +1476,8 @@ export class AIReview extends React.Component > KataGo - {((goban?.width === 19 && - goban.height === 19 && - false) || + {/* + ((goban?.width === 19 && goban.height === 19) || null) && ( - )} + )*/} )} @@ -1620,7 +1619,7 @@ export class AIReview extends React.Component )} - {null && next_move_pretty_coords && next_move_delta_win_rate !== null && ( + {/*null && next_move_pretty_coords && next_move_delta_win_rate !== null && (
{Math.abs(next_move_delta_p).toFixed(1)}pp
- )} + )*/} {data.get("user").is_moderator && this.ai_review?.engine.includes("katago") && (
Date: Thu, 18 Jul 2024 05:02:33 -0600 Subject: [PATCH 2/2] Bump to eslint 9.7 --- eslint.config.mjs | 2 +- package.json | 10 +- src/components/Chat/ChatLog.tsx | 2 - src/views/Ladder/Ladder.tsx | 2 +- yarn.lock | 225 ++++++++++++++++++++++---------- 5 files changed, 165 insertions(+), 76 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index d5044dc8d2..0e71ca0fe9 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,5 +1,5 @@ import jsdoc from "eslint-plugin-jsdoc"; -import header from "eslint-plugin-header"; +import header from "@tony.ganchev/eslint-plugin-header"; import prettier from "eslint-plugin-prettier"; import reactHooks from "eslint-plugin-react-hooks"; import typescriptEslint from "@typescript-eslint/eslint-plugin"; diff --git a/package.json b/package.json index 1b665cc369..aa20f0b5c9 100644 --- a/package.json +++ b/package.json @@ -38,8 +38,8 @@ "@types/react-linkify": "^1.0.4", "@types/testing-library__jest-dom": "^5.14.5", "@types/valid-url": "^1.0.7", - "@typescript-eslint/eslint-plugin": "^7.13.1", - "@typescript-eslint/parser": "^7.13.1", + "@typescript-eslint/eslint-plugin": "^7.16.1", + "@typescript-eslint/parser": "^7.16.1", "autoprefixer": "^10.4.19", "body-parser": "^1.20.2", "circular-dependency-plugin": "^5.2.2", @@ -47,9 +47,9 @@ "css-what": "^6.1.0", "cssnano": "^6.0.1", "deepl-node": "^1.10.1", - "eslint": "^8.56.0", + "eslint": "^9.7.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-header": "^3.1.1", + "@tony.ganchev/eslint-plugin-header": "^3.1.2", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsdoc": "^46.9.1", "eslint-plugin-prefer-arrow": "^1.2.3", @@ -63,7 +63,7 @@ "goban": "=8.3.16", "gulp": "^5.0.0", "gulp-clean-css": "^4.3.0", - "gulp-eslint-new": "^2.0.0", + "gulp-eslint-new": "^2.2.0", "gulp-livereload": "^4.0.2", "gulp-postcss": "^9.0.0", "gulp-rename": "^2.0.0", diff --git a/src/components/Chat/ChatLog.tsx b/src/components/Chat/ChatLog.tsx index effceb18b0..bee83f62f8 100644 --- a/src/components/Chat/ChatLog.tsx +++ b/src/components/Chat/ChatLog.tsx @@ -76,12 +76,10 @@ function saveSplitSizes(sizes: Array): void { } export function ChatLog(props: ChatLogProperties): JSX.Element { - /* eslint-disable prefer-const */ let [showing_games, set_showing_games]: [boolean, (tf: boolean) => void] = useState( data.get("chat.show-games", true) as boolean, ); let [height, set_height]: [number, (tf: number) => void] = useState(document.body.clientHeight); - /* eslint-enable prefer-const */ const onShowGames = useCallback( (tf: boolean) => { //if (tf !== showing_games) { diff --git a/src/views/Ladder/Ladder.tsx b/src/views/Ladder/Ladder.tsx index 2ef24530c7..38aa1e3d88 100644 --- a/src/views/Ladder/Ladder.tsx +++ b/src/views/Ladder/Ladder.tsx @@ -236,7 +236,7 @@ class _Ladder extends React.PureComponent { ); } - // eslint-disable-next-line @typescript-eslint/no-unused-vars + // @typescript-eslint/no-unused-vars renderRow = ({ index, isScrolling, diff --git a/yarn.lock b/yarn.lock index 2bdb585d83..8f3274ce2f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -807,11 +807,25 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== +"@eslint-community/regexpp@^4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== + "@eslint/compat@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@eslint/compat/-/compat-1.1.1.tgz#5736523f5105c94dfae5f35e31debc38443722cd" integrity sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA== +"@eslint/config-array@^0.17.0": + version "0.17.0" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.17.0.tgz#ff305e1ee618a00e6e5d0485454c8d92d94a860d" + integrity sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA== + dependencies: + "@eslint/object-schema" "^2.1.4" + debug "^4.3.1" + minimatch "^3.1.2" + "@eslint/eslintrc@^2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" @@ -867,11 +881,16 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.0.0.tgz#1a9e4b4c96d8c7886e0110ed310a0135144a1691" integrity sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ== -"@eslint/js@^9.7.0": +"@eslint/js@9.7.0", "@eslint/js@^9.7.0": version "9.7.0" resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.7.0.tgz#b712d802582f02b11cfdf83a85040a296afec3f0" integrity sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng== +"@eslint/object-schema@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" + integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== + "@floating-ui/core@^1.0.0": version "1.6.0" resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.0.tgz#fa41b87812a16bf123122bf945946bae3fdf7fc1" @@ -1051,6 +1070,11 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@humanwhocodes/retry@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570" + integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew== + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -1697,6 +1721,11 @@ "@testing-library/dom" "^8.5.0" "@types/react-dom" "^18.0.0" +"@tony.ganchev/eslint-plugin-header@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@tony.ganchev/eslint-plugin-header/-/eslint-plugin-header-3.1.2.tgz#6478e824857f590e7ebfd163d68f60ec907784a5" + integrity sha512-u9sJvwqAw26+2MlUfVMTbVAygcNpp+wQA3YbJ5qtkltEBzEJN8I+VKJxRKC2MSG/26uxHk9LA/rXz8iaYLmu5A== + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" @@ -1991,10 +2020,10 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/eslint@^8.56.7": - version "8.56.9" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.9.tgz#403e9ced04a34e63f1c383c5b8ee1a94442c8cc4" - integrity sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg== +"@types/eslint@^8.56.10": + version "8.56.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d" + integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -2258,16 +2287,16 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^7.13.1": - version "7.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.1.tgz#cdc521c8bca38b55585cf30db787fb2abad3f9fd" - integrity sha512-kZqi+WZQaZfPKnsflLJQCz6Ze9FFSMfXrrIOcyargekQxG37ES7DJNpJUE9Q/X5n3yTIP/WPutVNzgknQ7biLg== +"@typescript-eslint/eslint-plugin@^7.16.1": + version "7.16.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.1.tgz#f5f5da52db674b1f2cdb9d5f3644e5b2ec750465" + integrity sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "7.13.1" - "@typescript-eslint/type-utils" "7.13.1" - "@typescript-eslint/utils" "7.13.1" - "@typescript-eslint/visitor-keys" "7.13.1" + "@typescript-eslint/scope-manager" "7.16.1" + "@typescript-eslint/type-utils" "7.16.1" + "@typescript-eslint/utils" "7.16.1" + "@typescript-eslint/visitor-keys" "7.16.1" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" @@ -2284,15 +2313,15 @@ "@typescript-eslint/visitor-keys" "6.21.0" debug "^4.3.4" -"@typescript-eslint/parser@^7.13.1": - version "7.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.13.1.tgz#fac57811b3e519185f7259bac312291f7b9c4e72" - integrity sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A== +"@typescript-eslint/parser@^7.16.1": + version "7.16.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.16.1.tgz#84c581cf86c8b2becd48d33ddc41a6303d57b274" + integrity sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA== dependencies: - "@typescript-eslint/scope-manager" "7.13.1" - "@typescript-eslint/types" "7.13.1" - "@typescript-eslint/typescript-estree" "7.13.1" - "@typescript-eslint/visitor-keys" "7.13.1" + "@typescript-eslint/scope-manager" "7.16.1" + "@typescript-eslint/types" "7.16.1" + "@typescript-eslint/typescript-estree" "7.16.1" + "@typescript-eslint/visitor-keys" "7.16.1" debug "^4.3.4" "@typescript-eslint/scope-manager@6.21.0": @@ -2303,21 +2332,21 @@ "@typescript-eslint/types" "6.21.0" "@typescript-eslint/visitor-keys" "6.21.0" -"@typescript-eslint/scope-manager@7.13.1": - version "7.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.13.1.tgz#c08041206904bf36f0e6997efdb0ca775e0c452e" - integrity sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg== +"@typescript-eslint/scope-manager@7.16.1": + version "7.16.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.16.1.tgz#2b43041caabf8ddd74512b8b550b9fc53ca3afa1" + integrity sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw== dependencies: - "@typescript-eslint/types" "7.13.1" - "@typescript-eslint/visitor-keys" "7.13.1" + "@typescript-eslint/types" "7.16.1" + "@typescript-eslint/visitor-keys" "7.16.1" -"@typescript-eslint/type-utils@7.13.1": - version "7.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.13.1.tgz#63bec3f1fb43cf0bc409cbdb88ef96d118ca8632" - integrity sha512-aWDbLu1s9bmgPGXSzNCxELu+0+HQOapV/y+60gPXafR8e2g1Bifxzevaa+4L2ytCWm+CHqpELq4CSoN9ELiwCg== +"@typescript-eslint/type-utils@7.16.1": + version "7.16.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.16.1.tgz#4d7ae4f3d9e3c8cbdabae91609b1a431de6aa6ca" + integrity sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA== dependencies: - "@typescript-eslint/typescript-estree" "7.13.1" - "@typescript-eslint/utils" "7.13.1" + "@typescript-eslint/typescript-estree" "7.16.1" + "@typescript-eslint/utils" "7.16.1" debug "^4.3.4" ts-api-utils "^1.3.0" @@ -2326,10 +2355,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== -"@typescript-eslint/types@7.13.1": - version "7.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.13.1.tgz#787db283bd0b58751094c90d5b58bbf5e9fc9bd8" - integrity sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw== +"@typescript-eslint/types@7.16.1": + version "7.16.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.16.1.tgz#bbab066276d18e398bc64067b23f1ce84dfc6d8c" + integrity sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ== "@typescript-eslint/typescript-estree@6.21.0": version "6.21.0" @@ -2345,13 +2374,13 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/typescript-estree@7.13.1": - version "7.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.1.tgz#3412841b130e070db2f675e3d9b8cb1ae49e1c3f" - integrity sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw== +"@typescript-eslint/typescript-estree@7.16.1": + version "7.16.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.1.tgz#9b145ba4fd1dde1986697e1ce57dc501a1736dd3" + integrity sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ== dependencies: - "@typescript-eslint/types" "7.13.1" - "@typescript-eslint/visitor-keys" "7.13.1" + "@typescript-eslint/types" "7.16.1" + "@typescript-eslint/visitor-keys" "7.16.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -2359,15 +2388,15 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@7.13.1": - version "7.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.13.1.tgz#611083379caa0d3a2c09d126c65065a3e4337ba2" - integrity sha512-h5MzFBD5a/Gh/fvNdp9pTfqJAbuQC4sCN2WzuXme71lqFJsZtLbjxfSk4r3p02WIArOF9N94pdsLiGutpDbrXQ== +"@typescript-eslint/utils@7.16.1": + version "7.16.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.16.1.tgz#df42dc8ca5a4603016fd102db0346cdab415cdb7" + integrity sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "7.13.1" - "@typescript-eslint/types" "7.13.1" - "@typescript-eslint/typescript-estree" "7.13.1" + "@typescript-eslint/scope-manager" "7.16.1" + "@typescript-eslint/types" "7.16.1" + "@typescript-eslint/typescript-estree" "7.16.1" "@typescript-eslint/visitor-keys@6.21.0": version "6.21.0" @@ -2377,12 +2406,12 @@ "@typescript-eslint/types" "6.21.0" eslint-visitor-keys "^3.4.1" -"@typescript-eslint/visitor-keys@7.13.1": - version "7.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.1.tgz#9c229a795a919db61f2d7f2337ef584ac05fbe96" - integrity sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA== +"@typescript-eslint/visitor-keys@7.16.1": + version "7.16.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.1.tgz#4287bcf44c34df811ff3bb4d269be6cfc7d8c74b" + integrity sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg== dependencies: - "@typescript-eslint/types" "7.13.1" + "@typescript-eslint/types" "7.16.1" eslint-visitor-keys "^3.4.3" "@ungap/structured-clone@^1.2.0": @@ -2609,6 +2638,11 @@ acorn@^8.0.4, acorn@^8.1.0, acorn@^8.11.3, acorn@^8.7.1, acorn@^8.8.1, acorn@^8. resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@^8.12.0: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -4919,11 +4953,6 @@ eslint-module-utils@^2.8.0: dependencies: debug "^3.2.7" -eslint-plugin-header@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6" - integrity sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg== - eslint-plugin-import@^2.29.1: version "2.29.1" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" @@ -5024,6 +5053,14 @@ eslint-scope@^8.0.1: esrecurse "^4.3.0" estraverse "^5.2.0" +eslint-scope@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.2.tgz#5cbb33d4384c9136083a71190d548158fe128f94" + integrity sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" @@ -5074,7 +5111,7 @@ eslint-visitor-keys@^4.0.0: strip-ansi "^6.0.1" text-table "^0.2.0" -eslint@^8.56.0, eslint@^8.7.0: +eslint@^8.7.0: version "8.57.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== @@ -5118,6 +5155,46 @@ eslint@^8.56.0, eslint@^8.7.0: strip-ansi "^6.0.1" text-table "^0.2.0" +eslint@^9.7.0: + version "9.7.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.7.0.tgz#bedb48e1cdc2362a0caaa106a4c6ed943e8b09e4" + integrity sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.11.0" + "@eslint/config-array" "^0.17.0" + "@eslint/eslintrc" "^3.1.0" + "@eslint/js" "9.7.0" + "@humanwhocodes/module-importer" "^1.0.1" + "@humanwhocodes/retry" "^0.3.0" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + escape-string-regexp "^4.0.0" + eslint-scope "^8.0.2" + eslint-visitor-keys "^4.0.0" + espree "^10.1.0" + esquery "^1.5.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + 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" + is-path-inside "^3.0.3" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + esniff@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" @@ -5137,6 +5214,15 @@ espree@^10.0.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^4.0.0" +espree@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.1.0.tgz#8788dae611574c0f070691f522e4116c5a11fc56" + integrity sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA== + dependencies: + acorn "^8.12.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^4.0.0" + espree@^9.0.0, espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" @@ -6008,17 +6094,17 @@ gulp-cli@^3.0.0: v8flags "^4.0.0" yargs "^16.2.0" -gulp-eslint-new@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/gulp-eslint-new/-/gulp-eslint-new-2.0.0.tgz#41973f64ead472ecc9182e8cb159d0b6bfc71eca" - integrity sha512-g9zS8LuECn4s/HirdXjy6o9BNlZxUMQowSULmdD7N+O62yshvIRGEtYFKU4rO/Km08ks7CRuYoJcvmJ5e27MhQ== +gulp-eslint-new@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/gulp-eslint-new/-/gulp-eslint-new-2.2.0.tgz#a8013b15d1d89e7f1028670e34cb25bf09b1aa3e" + integrity sha512-B9sBfILAW563MQM81vxWOMeeNbkZTgZEYiwEVmv3fndB5zmGINlA4wbc4qjgPd4kTCtq0sTlFZJV0fpxl8b5kg== dependencies: - "@types/eslint" "^8.56.7" + "@types/eslint" "^8.56.10" "@types/node" ">=12" eslint "8 || 9" fancy-log "^2.0.0" plugin-error "^2.0.1" - semver "^7.6.0" + semver "^7.6.2" ternary-stream "^3.0.0" vinyl-fs "^4.0.0" @@ -9548,6 +9634,11 @@ semver@^7.1.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.5.3, semve dependencies: lru-cache "^6.0.0" +semver@^7.6.2: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"