commit b4c2c5c: [Test] Migrate ESLint to 9.7.0

moisseev moiseev at mezonplus.ru
Mon Jul 29 17:59:36 UTC 2024


Author: moisseev
Date: 2024-07-18 17:30:45 +0300
URL: https://github.com/rspamd/rspamd/commit/b4c2c5c07ca44a28a59363f6804bc28378d50c88 (refs/pull/5063/head)

[Test] Migrate ESLint to 9.7.0

---
 .eslintrc.json              |  77 -------
 eslint.config.mjs           |  84 ++++++++
 interface/js/app/libft.js   |   6 +-
 interface/js/app/stats.js   |   1 +
 interface/js/app/symbols.js |   4 +-
 package-lock.json           | 506 +++++++++++++-------------------------------
 package.json                |  13 +-
 7 files changed, 240 insertions(+), 451 deletions(-)

diff --git a/.eslintrc.json b/.eslintrc.json
deleted file mode 100644
index a6f4e1129..000000000
--- a/.eslintrc.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
-    "env": {
-        "browser": true,
-        "es6": true
-    },
-    "extends": [
-        "eslint:all",
-        "plugin:@stylistic/all-extends"
-    ],
-    "globals": {
-        "define": false
-    },
-    "parserOptions": {
-        "ecmaVersion": 2016
-    },
-    "plugins": [
-      "@stylistic"
-    ],
-    "rules": {
-        "camelcase": "off",
-        "capitalized-comments": "off",
-        "curly": ["error", "multi-line"],
-        "func-names": "off",
-        "func-style": ["error", "declaration"],
-        "id-length": ["error", { "min": 1 }],
-        "line-comment-position": "off",
-        "logical-assignment-operators": ["error", "never"],
-        "max-params": ["warn", 6],
-        "max-statements": ["warn", 55],
-        "multiline-comment-style": "off",
-        "no-continue": "off",
-        "no-inline-comments": "off",
-        "no-magic-numbers": "off",
-        "no-negated-condition": "off",
-        "no-plusplus": "off",
-        "no-ternary": "off",
-        "object-shorthand": "off",
-        "one-var": ["error", { "initialized": "never" }],
-        "prefer-named-capture-group": "off",
-        "prefer-object-has-own": "off",
-        "prefer-spread": "off",
-        "prefer-template": "off",
-        "require-unicode-regexp": "off",
-
-        "@stylistic/array-bracket-newline": ["error", "consistent"],
-        "@stylistic/array-element-newline": "off",
-        "@stylistic/brace-style": ["error", "1tbs", { "allowSingleLine": true }],
-        "@stylistic/comma-dangle": ["error", "only-multiline"],
-        "@stylistic/dot-location": ["error", "property"],
-        "@stylistic/function-call-argument-newline": "off",
-        "@stylistic/max-len": ["error", { "code": 128 }],
-        "@stylistic/max-statements-per-line": ["error", { "max": 2 }],
-        "@stylistic/multiline-comment-style": "off",
-        "@stylistic/multiline-ternary": ["error", "always-multiline"],
-        "@stylistic/newline-per-chained-call": ["error", { "ignoreChainWithDepth": 5 }],
-        "@stylistic/no-extra-parens": ["error", "functions"],
-        "@stylistic/object-property-newline": ["error", { "allowAllPropertiesOnSameLine": true }],
-        "@stylistic/padded-blocks": ["error", "never"],
-        "@stylistic/quote-props" : ["error", "consistent-as-needed"],
-        "@stylistic/quotes": ["error", "double", { "avoidEscape": true }],
-        "@stylistic/semi": ["error", "always"],
-        "@stylistic/space-before-function-paren": ["error", {
-            "anonymous": "always",
-            "named": "never"
-        }],
-
-
-        // Temporarily disabled rules
-        "max-lines": "off",
-        "max-lines-per-function": "off",
-        "no-invalid-this": "off",
-        "sort-keys": "off",
-
-        "@stylistic/function-paren-newline": "off",
-        "@stylistic/indent-binary-ops": "off"
-    }
-}
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 000000000..2f256afcb
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,84 @@
+import globals from "globals";
+import js from "@eslint/js";
+import stylistic from "@stylistic/eslint-plugin";
+
+export default [
+    js.configs.all,
+    stylistic.configs["all-flat"],
+    {ignores: ["interface/js/lib/"]},
+    {
+        languageOptions: {
+            ecmaVersion: 2016,
+            globals: {
+                ...globals.browser,
+                define: false,
+            },
+            sourceType: "script",
+        },
+        plugins: {
+            "@stylistic": stylistic,
+        },
+        rules: {
+            "@stylistic/array-bracket-newline": ["error", "consistent"],
+            "@stylistic/array-element-newline": "off",
+            "@stylistic/brace-style": ["error", "1tbs", {allowSingleLine: true}],
+            "@stylistic/comma-dangle": ["error", "only-multiline"],
+            "@stylistic/dot-location": ["error", "property"],
+            "@stylistic/function-call-argument-newline": "off",
+            "@stylistic/function-paren-newline": "off",
+            "@stylistic/indent-binary-ops": "off",
+            "@stylistic/max-len": ["error", {code: 128}],
+            "@stylistic/max-statements-per-line": ["error", {max: 2}],
+            "@stylistic/multiline-comment-style": "off",
+            "@stylistic/multiline-ternary": ["error", "always-multiline"],
+            "@stylistic/newline-per-chained-call": ["error", {ignoreChainWithDepth: 5}],
+            "@stylistic/no-extra-parens": ["error", "functions"],
+            "@stylistic/object-property-newline": ["error", {allowAllPropertiesOnSameLine: true}],
+            "@stylistic/padded-blocks": ["error", "never"],
+            "@stylistic/quote-props": ["error", "consistent-as-needed"],
+            "@stylistic/quotes": ["error", "double", {avoidEscape: true}],
+            "@stylistic/semi": ["error", "always"],
+            "@stylistic/space-before-function-paren": ["error", {
+                anonymous: "always",
+                named: "never",
+            }],
+
+            "camelcase": "off",
+            "capitalized-comments": "off",
+            "curly": ["error", "multi-line"],
+            "func-names": "off",
+            "func-style": ["error", "declaration"],
+            "id-length": ["error", {min: 1}],
+            "line-comment-position": "off",
+            "logical-assignment-operators": ["error", "never"],
+            "max-lines": "off",
+            "max-lines-per-function": "off",
+            "max-params": ["warn", 6],
+            "max-statements": ["warn", 55],
+            "multiline-comment-style": "off",
+            "no-continue": "off",
+            "no-inline-comments": "off",
+            "no-invalid-this": "off",
+            "no-magic-numbers": "off",
+            "no-negated-condition": "off",
+            "no-plusplus": "off",
+            "no-ternary": "off",
+            "no-unused-vars": ["error", {caughtErrors: "none"}],
+            "object-shorthand": "off",
+            "one-var": ["error", {initialized: "never"}],
+            "prefer-named-capture-group": "off",
+            "prefer-object-has-own": "off",
+            "prefer-spread": "off",
+            "prefer-template": "off",
+            "require-unicode-regexp": "off",
+            "sort-keys": "off",
+        },
+    },
+    {
+        files: ["**/*.mjs"],
+        languageOptions: {ecmaVersion: 2020, sourceType: "module"},
+        rules: {
+            "sort-keys": "error",
+        },
+    },
+];
diff --git a/interface/js/app/libft.js b/interface/js/app/libft.js
index 1e81cfd26..84ee2667e 100644
--- a/interface/js/app/libft.js
+++ b/interface/js/app/libft.js
@@ -249,7 +249,7 @@ define(["jquery", "app/common", "footable"],
             });
             /* eslint-enable no-underscore-dangle */
 
-            /* eslint-disable consistent-this, no-underscore-dangle, one-var-declaration-per-line */
+            /* eslint-disable consistent-this, no-underscore-dangle */
             FooTable.actionFilter = FooTable.Filtering.extend({
                 construct: function (instance) {
                     this._super(instance);
@@ -304,6 +304,7 @@ define(["jquery", "app/common", "footable"],
                     const selected = self.$action.val();
                     if (selected !== self.def) {
                         const not = self.$not.is(":checked");
+                        // eslint-disable-next-line no-useless-assignment
                         let query = null;
 
                         if (selected === "reject") {
@@ -319,7 +320,7 @@ define(["jquery", "app/common", "footable"],
                     self.filter();
                 }
             });
-            /* eslint-enable consistent-this, no-underscore-dangle, one-var-declaration-per-line */
+            /* eslint-enable consistent-this, no-underscore-dangle */
 
             const columns = (table in columnsCustom)
                 ? columnsDefault.map((column) => $.extend({}, column, columnsCustom[table][column.name]))
@@ -600,6 +601,7 @@ define(["jquery", "app/common", "footable"],
                     item.id = item["message-id"];
 
                     if (table === "history") {
+                        // eslint-disable-next-line no-useless-assignment
                         let rcpt = {};
                         if (!item.rcpt_mime.length) {
                             rcpt = format_rcpt(true, false);
diff --git a/interface/js/app/stats.js b/interface/js/app/stats.js
index 04b4a75c5..8ac4eacdd 100644
--- a/interface/js/app/stats.js
+++ b/interface/js/app/stats.js
@@ -35,6 +35,7 @@ define(["jquery", "app/common", "d3pie", "d3"],
             const hours = seconds % 31536000 % 2628000 % 86400 / 3600 >> 0;
             const minutes = seconds % 31536000 % 2628000 % 86400 % 3600 / 60 >> 0;
             /* eslint-enable no-bitwise */
+            // eslint-disable-next-line no-useless-assignment
             let out = null;
             if (years > 0) {
                 if (months > 0) {
diff --git a/interface/js/app/symbols.js b/interface/js/app/symbols.js
index a720a696d..3ff5d5a4b 100644
--- a/interface/js/app/symbols.js
+++ b/interface/js/app/symbols.js
@@ -130,7 +130,7 @@ define(["jquery", "app/common", "footable"],
                     const [{data}] = json;
                     const items = process_symbols_data(data);
 
-                    /* eslint-disable consistent-this, no-underscore-dangle, one-var-declaration-per-line */
+                    /* eslint-disable consistent-this, no-underscore-dangle */
                     FooTable.groupFilter = FooTable.Filtering.extend({
                         construct: function (instance) {
                             this._super(instance);
@@ -183,7 +183,7 @@ define(["jquery", "app/common", "footable"],
                             }
                         }
                     });
-                    /* eslint-enable consistent-this, no-underscore-dangle, one-var-declaration-per-line */
+                    /* eslint-enable consistent-this, no-underscore-dangle */
 
                     common.tables.symbols = FooTable.init("#symbolsTable", {
                         breakpoints: common.breakpoints,
diff --git a/package-lock.json b/package-lock.json
index 38ca4188f..67504a812 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6,7 +6,7 @@
         "": {
             "devDependencies": {
                 "@stylistic/eslint-plugin": "*",
-                "eslint": "*",
+                "eslint": "^9.7.0",
                 "postcss-html": "*",
                 "stylelint": ">=13.6.0",
                 "stylelint-config-standard": "*"
@@ -258,16 +258,30 @@
                 "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
             }
         },
+        "node_modules/@eslint/config-array": {
+            "version": "0.17.0",
+            "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.0.tgz",
+            "integrity": "sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==",
+            "dev": true,
+            "dependencies": {
+                "@eslint/object-schema": "^2.1.4",
+                "debug": "^4.3.1",
+                "minimatch": "^3.1.2"
+            },
+            "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",
@@ -275,107 +289,28 @@
                 "strip-json-comments": "^3.1.1"
             },
             "engines": {
-                "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-            },
-            "funding": {
-                "url": "https://opencollective.com/eslint"
-            }
-        },
-        "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
-            "version": "1.1.11",
-            "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-            "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-            "dev": true,
-            "dependencies": {
-                "balanced-match": "^1.0.0",
-                "concat-map": "0.0.1"
-            }
-        },
-        "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": {
-            "version": "3.4.3",
-            "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
-            "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
-            "dev": true,
-            "engines": {
-                "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-            },
-            "funding": {
-                "url": "https://opencollective.com/eslint"
-            }
-        },
-        "node_modules/@eslint/eslintrc/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==",
-            "dev": true,
-            "dependencies": {
-                "acorn": "^8.9.0",
-                "acorn-jsx": "^5.3.2",
-                "eslint-visitor-keys": "^3.4.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/eslintrc/node_modules/minimatch": {
-            "version": "3.1.2",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
-            "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
-            "dev": true,
-            "dependencies": {
-                "brace-expansion": "^1.1.7"
-            },
-            "engines": {
-                "node": "*"
-            }
-        },
         "node_modules/@eslint/js": {
-            "version": "8.57.0",
-            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
-            "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
-            "dev": true,
-            "engines": {
-                "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-            }
-        },
-        "node_modules/@humanwhocodes/config-array": {
-            "version": "0.11.14",
-            "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
-            "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
-            "deprecated": "Use @eslint/config-array instead",
+            "version": "9.7.0",
+            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.7.0.tgz",
+            "integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==",
             "dev": true,
-            "dependencies": {
-                "@humanwhocodes/object-schema": "^2.0.2",
-                "debug": "^4.3.1",
-                "minimatch": "^3.0.5"
-            },
             "engines": {
-                "node": ">=10.10.0"
-            }
-        },
-        "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
-            "version": "1.1.11",
-            "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-            "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-            "dev": true,
-            "dependencies": {
-                "balanced-match": "^1.0.0",
-                "concat-map": "0.0.1"
+                "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
             }
         },
-        "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
-            "version": "3.1.2",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
-            "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+        "node_modules/@eslint/object-schema": {
+            "version": "2.1.4",
+            "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz",
+            "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==",
             "dev": true,
-            "dependencies": {
-                "brace-expansion": "^1.1.7"
-            },
             "engines": {
-                "node": "*"
+                "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
             }
         },
         "node_modules/@humanwhocodes/module-importer": {
@@ -391,12 +326,18 @@
                 "url": "https://github.com/sponsors/nzakas"
             }
         },
-        "node_modules/@humanwhocodes/object-schema": {
-            "version": "2.0.3",
-            "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
-            "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
-            "deprecated": "Use @eslint/object-schema instead",
-            "dev": true
+        "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/@nodelib/fs.scandir": {
             "version": "2.1.5",
@@ -501,6 +442,28 @@
                 "eslint": "*"
             }
         },
+        "node_modules/@stylistic/eslint-plugin-plus/node_modules/@typescript-eslint/utils": {
+            "version": "7.16.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.1.tgz",
+            "integrity": "sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==",
+            "dev": true,
+            "dependencies": {
+                "@eslint-community/eslint-utils": "^4.4.0",
+                "@typescript-eslint/scope-manager": "7.16.1",
+                "@typescript-eslint/types": "7.16.1",
+                "@typescript-eslint/typescript-estree": "7.16.1"
+            },
+            "engines": {
+                "node": "^18.18.0 || >=20.0.0"
+            },
+            "funding": {
+                "type": "opencollective",
+                "url": "https://opencollective.com/typescript-eslint"
+            },
+            "peerDependencies": {
+                "eslint": "^8.56.0"
+            }
+        },
         "node_modules/@stylistic/eslint-plugin-ts": {
             "version": "2.3.0",
             "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-ts/-/eslint-plugin-ts-2.3.0.tgz",
@@ -518,6 +481,28 @@
                 "eslint": ">=8.40.0"
             }
         },
+        "node_modules/@stylistic/eslint-plugin-ts/node_modules/@typescript-eslint/utils": {
+            "version": "7.16.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.1.tgz",
+            "integrity": "sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==",
+            "dev": true,
+            "dependencies": {
+                "@eslint-community/eslint-utils": "^4.4.0",
+                "@typescript-eslint/scope-manager": "7.16.1",
+                "@typescript-eslint/types": "7.16.1",
+                "@typescript-eslint/typescript-estree": "7.16.1"
+            },
+            "engines": {
+                "node": "^18.18.0 || >=20.0.0"
+            },
+            "funding": {
+                "type": "opencollective",
+                "url": "https://opencollective.com/typescript-eslint"
+            },
+            "peerDependencies": {
+                "eslint": "^8.56.0"
+            }
+        },
         "node_modules/@types/eslint": {
             "version": "8.56.10",
             "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz",
@@ -598,26 +583,28 @@
                 }
             }
         },
-        "node_modules/@typescript-eslint/utils": {
-            "version": "7.16.1",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.1.tgz",
-            "integrity": "sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==",
+        "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,
             "dependencies": {
-                "@eslint-community/eslint-utils": "^4.4.0",
-                "@typescript-eslint/scope-manager": "7.16.1",
-                "@typescript-eslint/types": "7.16.1",
-                "@typescript-eslint/typescript-estree": "7.16.1"
+                "balanced-match": "^1.0.0"
+            }
+        },
+        "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+            "version": "9.0.5",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+            "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+            "dev": true,
+            "dependencies": {
+                "brace-expansion": "^2.0.1"
             },
             "engines": {
-                "node": "^18.18.0 || >=20.0.0"
+                "node": ">=16 || 14 >=14.17"
             },
             "funding": {
-                "type": "opencollective",
-                "url": "https://opencollective.com/typescript-eslint"
-            },
-            "peerDependencies": {
-                "eslint": "^8.56.0"
+                "url": "https://github.com/sponsors/isaacs"
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
@@ -649,12 +636,6 @@
                 "url": "https://opencollective.com/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==",
-            "dev": true
-        },
         "node_modules/acorn": {
             "version": "8.12.1",
             "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
@@ -747,12 +728,13 @@
             "dev": true
         },
         "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==",
+            "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"
+                "balanced-match": "^1.0.0",
+                "concat-map": "0.0.1"
             }
         },
         "node_modules/braces": {
@@ -931,18 +913,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==",
-            "dev": true,
-            "dependencies": {
-                "esutils": "^2.0.2"
-            },
-            "engines": {
-                "node": ">=6.0.0"
-            }
-        },
         "node_modules/dom-serializer": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
@@ -1047,41 +1017,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.7.0",
+            "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.7.0.tgz",
+            "integrity": "sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==",
             "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-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",
-                "@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",
-                "esquery": "^1.4.2",
+                "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": "^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",
@@ -1095,23 +1061,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"
+                "url": "https://eslint.org/donate"
             }
         },
         "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.2",
+            "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz",
+            "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==",
             "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"
@@ -1129,57 +1095,6 @@
                 "url": "https://opencollective.com/eslint"
             }
         },
-        "node_modules/eslint/node_modules/brace-expansion": {
-            "version": "1.1.11",
-            "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-            "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-            "dev": true,
-            "dependencies": {
-                "balanced-match": "^1.0.0",
*** OUTPUT TRUNCATED, 345 LINES SKIPPED ***


More information about the Commits mailing list