diff --git a/.automation/test/jsx/eslint.config.cjs b/.automation/test/jsx/eslint.config.cjs new file mode 100644 index 00000000000..99aefc2f88b --- /dev/null +++ b/.automation/test/jsx/eslint.config.cjs @@ -0,0 +1,14 @@ +module.exports = [ + { + files: ['**/*.jsx'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + }, +]; diff --git a/.automation/test/jsx/eslint.config.js b/.automation/test/jsx/eslint.config.js deleted file mode 100644 index 8b37bc459d3..00000000000 --- a/.automation/test/jsx/eslint.config.js +++ /dev/null @@ -1,8 +0,0 @@ -const reactPlugin = require('eslint-plugin-react'); - -module.exports = [ - { - files: ['**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}'], - ...reactPlugin.configs.flat.recommended, // This is not a plugin object, but a shareable config object - } -]; \ No newline at end of file diff --git a/.automation/test/tsx/.eslintrc.json b/.automation/test/tsx/.eslintrc.json deleted file mode 100644 index b2a87aeae7b..00000000000 --- a/.automation/test/tsx/.eslintrc.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "env": { - "browser": true, - "es2021": true - }, - "extends": [ - "eslint:recommended", - "plugin:react/recommended", - "plugin:@typescript-eslint/recommended" - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaFeatures": { - "jsx": true - }, - "ecmaVersion": 12, - "sourceType": "module" - }, - "plugins": [ - "react", - "@typescript-eslint" - ], - "rules": { - } -} diff --git a/.automation/test/tsx/eslint.config.cjs b/.automation/test/tsx/eslint.config.cjs new file mode 100644 index 00000000000..baa5c914346 --- /dev/null +++ b/.automation/test/tsx/eslint.config.cjs @@ -0,0 +1,20 @@ +const tsParser = require('@typescript-eslint/parser'); + +module.exports = [ + { + files: ['**/*.{ts,tsx}'], + languageOptions: { + parser: tsParser, + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + ecmaVersion: 12, + sourceType: 'module', + }, + }, + rules: { + 'no-var': 'error', + }, + }, +]; diff --git a/.automation/test/tsx/eslint.config.js b/.automation/test/tsx/eslint.config.js deleted file mode 100644 index 870d90147b5..00000000000 --- a/.automation/test/tsx/eslint.config.js +++ /dev/null @@ -1,13 +0,0 @@ -const { FlatCompat } = require('@eslint/eslintrc'); -const js = require('@eslint/js'); - -const compat = new FlatCompat({ - baseDirectory: __dirname, - resolvePluginsRelativeTo: __dirname, - recommendedConfig: js.configs.recommended, - allConfig: js.configs.all, -}); - -module.exports = [ - ...compat.config(require('./.eslintrc.json')), -]; diff --git a/.automation/test/tsx/tsx_good_1.tsx b/.automation/test/tsx/tsx_good_1.tsx index 5a70845579e..d046c1203fe 100644 --- a/.automation/test/tsx/tsx_good_1.tsx +++ b/.automation/test/tsx/tsx_good_1.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types */ import * as React from "react"; export class HelloWorld extends React.Component { diff --git a/.automation/test/tsx/tsx_good_2.tsx b/.automation/test/tsx/tsx_good_2.tsx index 5a70845579e..d046c1203fe 100644 --- a/.automation/test/tsx/tsx_good_2.tsx +++ b/.automation/test/tsx/tsx_good_2.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/explicit-module-boundary-types */ import * as React from "react"; export class HelloWorld extends React.Component { diff --git a/Dockerfile b/Dockerfile index 5ad90a07cc2..9edb5f66451 100644 --- a/Dockerfile +++ b/Dockerfile @@ -241,17 +241,15 @@ ARG JAVA_CHECKSTYLE_VERSION=12.1.0 ARG PMD_VERSION=7.24.0 # renovate: datasource=npm depName=eslint -ARG NPM_ESLINT_VERSION=9.39.4 +ARG NPM_ESLINT_VERSION=10.3.0 # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 -# renovate: datasource=npm depName=eslint-config-airbnb-extended -ARG NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION=3.1.0 +# renovate: datasource=npm depName=@eslint/js +ARG NPM_ESLINT_JS_VERSION=10.0.1 # renovate: datasource=npm depName=eslint-config-prettier ARG NPM_ESLINT_CONFIG_PRETTIER_VERSION=10.1.8 -# renovate: datasource=npm depName=neostandard -ARG NPM_NEOSTANDARD_VERSION=0.13.0 -# renovate: datasource=npm depName=eslint-plugin-import -ARG NPM_ESLINT_PLUGIN_IMPORT_VERSION=2.32.0 +# renovate: datasource=npm depName=eslint-plugin-import-x +ARG NPM_ESLINT_PLUGIN_IMPORT_X_VERSION=4.16.2 # renovate: datasource=npm depName=eslint-plugin-jest ARG NPM_ESLINT_PLUGIN_JEST_VERSION=29.15.2 # renovate: datasource=npm depName=eslint-plugin-n @@ -262,10 +260,6 @@ ARG NPM_ESLINT_PLUGIN_PRETTIER_VERSION=5.5.5 ARG NPM_ESLINT_PLUGIN_PROMISE_VERSION=7.3.0 # renovate: datasource=npm depName=eslint-plugin-vue ARG NPM_ESLINT_PLUGIN_VUE_VERSION=10.9.1 -# renovate: datasource=npm depName=@babel/core -ARG NPM_BABEL_CORE_VERSION=7.29.0 -# renovate: datasource=npm depName=@babel/eslint-parser -ARG NPM_BABEL_ESLINT_PARSER_VERSION=7.28.6 # renovate: datasource=npm depName=@microsoft/eslint-formatter-sarif ARG NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION=3.1.0 # renovate: datasource=npm depName=standard @@ -280,10 +274,8 @@ ARG NPM_V8R_VERSION=6.0.0 ARG NPM_PACKAGE_JSON_LINT_VERSION=10.4.0 # renovate: datasource=npm depName=npm-package-json-lint-config-default ARG NPM_PACKAGE_JSON_LINT_CONFIG_DEFAULT_VERSION=9.0.1 -# renovate: datasource=npm depName=eslint-plugin-react -ARG NPM_ESLINT_PLUGIN_REACT_VERSION=7.37.5 -# renovate: datasource=npm depName=eslint-plugin-jsx-a11y -ARG NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION=6.10.2 +# renovate: datasource=npm depName=@eslint-react/eslint-plugin +ARG NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION=5.7.8 # renovate: datasource=github-tags depName=pinterest/ktlint ARG KTLINT_VERSION=1.8.0 @@ -758,17 +750,14 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ htmlhint@${NPM_HTMLHINT_VERSION} \ eslint@${NPM_ESLINT_VERSION} \ @eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION} \ - eslint-config-airbnb-extended@${NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION} \ + @eslint/js@${NPM_ESLINT_JS_VERSION} \ eslint-config-prettier@${NPM_ESLINT_CONFIG_PRETTIER_VERSION} \ - neostandard@${NPM_NEOSTANDARD_VERSION} \ - eslint-plugin-import@${NPM_ESLINT_PLUGIN_IMPORT_VERSION} \ + eslint-plugin-import-x@${NPM_ESLINT_PLUGIN_IMPORT_X_VERSION} \ eslint-plugin-jest@${NPM_ESLINT_PLUGIN_JEST_VERSION} \ eslint-plugin-n@${NPM_ESLINT_PLUGIN_N_VERSION} \ eslint-plugin-prettier@${NPM_ESLINT_PLUGIN_PRETTIER_VERSION} \ eslint-plugin-promise@${NPM_ESLINT_PLUGIN_PROMISE_VERSION} \ eslint-plugin-vue@${NPM_ESLINT_PLUGIN_VUE_VERSION} \ - @babel/core@${NPM_BABEL_CORE_VERSION} \ - @babel/eslint-parser@${NPM_BABEL_ESLINT_PARSER_VERSION} \ @microsoft/eslint-formatter-sarif@${NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION} \ standard@${NPM_STANDARD_VERSION} \ prettier@${NPM_PRETTIER_VERSION} \ @@ -776,8 +765,7 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ v8r@${NPM_V8R_VERSION} \ npm-package-json-lint@${NPM_PACKAGE_JSON_LINT_VERSION} \ npm-package-json-lint-config-default@${NPM_PACKAGE_JSON_LINT_CONFIG_DEFAULT_VERSION} \ - eslint-plugin-react@${NPM_ESLINT_PLUGIN_REACT_VERSION} \ - eslint-plugin-jsx-a11y@${NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION} \ + @eslint-react/eslint-plugin@${NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION} \ markdownlint-cli@${NPM_MARKDOWNLINT_CLI_VERSION} \ markdown-table-formatter@${NPM_MARKDOWN_TABLE_FORMATTER_VERSION} \ pyright@${NPM_PYRIGHT_VERSION} \ diff --git a/flavors/cupcake/Dockerfile b/flavors/cupcake/Dockerfile index d173fd56721..1515653c84e 100644 --- a/flavors/cupcake/Dockerfile +++ b/flavors/cupcake/Dockerfile @@ -180,17 +180,15 @@ ARG JAVA_CHECKSTYLE_VERSION=12.1.0 ARG PMD_VERSION=7.24.0 # renovate: datasource=npm depName=eslint -ARG NPM_ESLINT_VERSION=9.39.4 +ARG NPM_ESLINT_VERSION=10.3.0 # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 -# renovate: datasource=npm depName=eslint-config-airbnb-extended -ARG NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION=3.1.0 +# renovate: datasource=npm depName=@eslint/js +ARG NPM_ESLINT_JS_VERSION=10.0.1 # renovate: datasource=npm depName=eslint-config-prettier ARG NPM_ESLINT_CONFIG_PRETTIER_VERSION=10.1.8 -# renovate: datasource=npm depName=neostandard -ARG NPM_NEOSTANDARD_VERSION=0.13.0 -# renovate: datasource=npm depName=eslint-plugin-import -ARG NPM_ESLINT_PLUGIN_IMPORT_VERSION=2.32.0 +# renovate: datasource=npm depName=eslint-plugin-import-x +ARG NPM_ESLINT_PLUGIN_IMPORT_X_VERSION=4.16.2 # renovate: datasource=npm depName=eslint-plugin-jest ARG NPM_ESLINT_PLUGIN_JEST_VERSION=29.15.2 # renovate: datasource=npm depName=eslint-plugin-n @@ -201,10 +199,6 @@ ARG NPM_ESLINT_PLUGIN_PRETTIER_VERSION=5.5.5 ARG NPM_ESLINT_PLUGIN_PROMISE_VERSION=7.3.0 # renovate: datasource=npm depName=eslint-plugin-vue ARG NPM_ESLINT_PLUGIN_VUE_VERSION=10.9.1 -# renovate: datasource=npm depName=@babel/core -ARG NPM_BABEL_CORE_VERSION=7.29.0 -# renovate: datasource=npm depName=@babel/eslint-parser -ARG NPM_BABEL_ESLINT_PARSER_VERSION=7.28.6 # renovate: datasource=npm depName=@microsoft/eslint-formatter-sarif ARG NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION=3.1.0 # renovate: datasource=npm depName=standard @@ -219,10 +213,8 @@ ARG NPM_V8R_VERSION=6.0.0 ARG NPM_PACKAGE_JSON_LINT_VERSION=10.4.0 # renovate: datasource=npm depName=npm-package-json-lint-config-default ARG NPM_PACKAGE_JSON_LINT_CONFIG_DEFAULT_VERSION=9.0.1 -# renovate: datasource=npm depName=eslint-plugin-react -ARG NPM_ESLINT_PLUGIN_REACT_VERSION=7.37.5 -# renovate: datasource=npm depName=eslint-plugin-jsx-a11y -ARG NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION=6.10.2 +# renovate: datasource=npm depName=@eslint-react/eslint-plugin +ARG NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION=5.7.8 # renovate: datasource=github-tags depName=pinterest/ktlint ARG KTLINT_VERSION=1.8.0 @@ -623,17 +615,14 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ htmlhint@${NPM_HTMLHINT_VERSION} \ eslint@${NPM_ESLINT_VERSION} \ @eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION} \ - eslint-config-airbnb-extended@${NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION} \ + @eslint/js@${NPM_ESLINT_JS_VERSION} \ eslint-config-prettier@${NPM_ESLINT_CONFIG_PRETTIER_VERSION} \ - neostandard@${NPM_NEOSTANDARD_VERSION} \ - eslint-plugin-import@${NPM_ESLINT_PLUGIN_IMPORT_VERSION} \ + eslint-plugin-import-x@${NPM_ESLINT_PLUGIN_IMPORT_X_VERSION} \ eslint-plugin-jest@${NPM_ESLINT_PLUGIN_JEST_VERSION} \ eslint-plugin-n@${NPM_ESLINT_PLUGIN_N_VERSION} \ eslint-plugin-prettier@${NPM_ESLINT_PLUGIN_PRETTIER_VERSION} \ eslint-plugin-promise@${NPM_ESLINT_PLUGIN_PROMISE_VERSION} \ eslint-plugin-vue@${NPM_ESLINT_PLUGIN_VUE_VERSION} \ - @babel/core@${NPM_BABEL_CORE_VERSION} \ - @babel/eslint-parser@${NPM_BABEL_ESLINT_PARSER_VERSION} \ @microsoft/eslint-formatter-sarif@${NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION} \ standard@${NPM_STANDARD_VERSION} \ prettier@${NPM_PRETTIER_VERSION} \ @@ -641,8 +630,7 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ v8r@${NPM_V8R_VERSION} \ npm-package-json-lint@${NPM_PACKAGE_JSON_LINT_VERSION} \ npm-package-json-lint-config-default@${NPM_PACKAGE_JSON_LINT_CONFIG_DEFAULT_VERSION} \ - eslint-plugin-react@${NPM_ESLINT_PLUGIN_REACT_VERSION} \ - eslint-plugin-jsx-a11y@${NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION} \ + @eslint-react/eslint-plugin@${NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION} \ markdownlint-cli@${NPM_MARKDOWNLINT_CLI_VERSION} \ markdown-table-formatter@${NPM_MARKDOWN_TABLE_FORMATTER_VERSION} \ pyright@${NPM_PYRIGHT_VERSION} \ diff --git a/flavors/dotnetweb/Dockerfile b/flavors/dotnetweb/Dockerfile index bebeb9b4eec..de1a2ea6650 100644 --- a/flavors/dotnetweb/Dockerfile +++ b/flavors/dotnetweb/Dockerfile @@ -170,17 +170,15 @@ ARG PIP_DJLINT_VERSION=1.36.4 # renovate: datasource=npm depName=htmlhint ARG NPM_HTMLHINT_VERSION=1.9.2 # renovate: datasource=npm depName=eslint -ARG NPM_ESLINT_VERSION=9.39.4 +ARG NPM_ESLINT_VERSION=10.3.0 # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 -# renovate: datasource=npm depName=eslint-config-airbnb-extended -ARG NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION=3.1.0 +# renovate: datasource=npm depName=@eslint/js +ARG NPM_ESLINT_JS_VERSION=10.0.1 # renovate: datasource=npm depName=eslint-config-prettier ARG NPM_ESLINT_CONFIG_PRETTIER_VERSION=10.1.8 -# renovate: datasource=npm depName=neostandard -ARG NPM_NEOSTANDARD_VERSION=0.13.0 -# renovate: datasource=npm depName=eslint-plugin-import -ARG NPM_ESLINT_PLUGIN_IMPORT_VERSION=2.32.0 +# renovate: datasource=npm depName=eslint-plugin-import-x +ARG NPM_ESLINT_PLUGIN_IMPORT_X_VERSION=4.16.2 # renovate: datasource=npm depName=eslint-plugin-jest ARG NPM_ESLINT_PLUGIN_JEST_VERSION=29.15.2 # renovate: datasource=npm depName=eslint-plugin-n @@ -191,10 +189,6 @@ ARG NPM_ESLINT_PLUGIN_PRETTIER_VERSION=5.5.5 ARG NPM_ESLINT_PLUGIN_PROMISE_VERSION=7.3.0 # renovate: datasource=npm depName=eslint-plugin-vue ARG NPM_ESLINT_PLUGIN_VUE_VERSION=10.9.1 -# renovate: datasource=npm depName=@babel/core -ARG NPM_BABEL_CORE_VERSION=7.29.0 -# renovate: datasource=npm depName=@babel/eslint-parser -ARG NPM_BABEL_ESLINT_PARSER_VERSION=7.28.6 # renovate: datasource=npm depName=@microsoft/eslint-formatter-sarif ARG NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION=3.1.0 # renovate: datasource=npm depName=standard @@ -209,10 +203,8 @@ ARG NPM_V8R_VERSION=6.0.0 ARG NPM_PACKAGE_JSON_LINT_VERSION=10.4.0 # renovate: datasource=npm depName=npm-package-json-lint-config-default ARG NPM_PACKAGE_JSON_LINT_CONFIG_DEFAULT_VERSION=9.0.1 -# renovate: datasource=npm depName=eslint-plugin-react -ARG NPM_ESLINT_PLUGIN_REACT_VERSION=7.37.5 -# renovate: datasource=npm depName=eslint-plugin-jsx-a11y -ARG NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION=6.10.2 +# renovate: datasource=npm depName=@eslint-react/eslint-plugin +ARG NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION=5.7.8 # renovate: datasource=github-tags depName=pinterest/ktlint ARG KTLINT_VERSION=1.8.0 @@ -485,17 +477,14 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ htmlhint@${NPM_HTMLHINT_VERSION} \ eslint@${NPM_ESLINT_VERSION} \ @eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION} \ - eslint-config-airbnb-extended@${NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION} \ + @eslint/js@${NPM_ESLINT_JS_VERSION} \ eslint-config-prettier@${NPM_ESLINT_CONFIG_PRETTIER_VERSION} \ - neostandard@${NPM_NEOSTANDARD_VERSION} \ - eslint-plugin-import@${NPM_ESLINT_PLUGIN_IMPORT_VERSION} \ + eslint-plugin-import-x@${NPM_ESLINT_PLUGIN_IMPORT_X_VERSION} \ eslint-plugin-jest@${NPM_ESLINT_PLUGIN_JEST_VERSION} \ eslint-plugin-n@${NPM_ESLINT_PLUGIN_N_VERSION} \ eslint-plugin-prettier@${NPM_ESLINT_PLUGIN_PRETTIER_VERSION} \ eslint-plugin-promise@${NPM_ESLINT_PLUGIN_PROMISE_VERSION} \ eslint-plugin-vue@${NPM_ESLINT_PLUGIN_VUE_VERSION} \ - @babel/core@${NPM_BABEL_CORE_VERSION} \ - @babel/eslint-parser@${NPM_BABEL_ESLINT_PARSER_VERSION} \ @microsoft/eslint-formatter-sarif@${NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION} \ standard@${NPM_STANDARD_VERSION} \ prettier@${NPM_PRETTIER_VERSION} \ @@ -503,8 +492,7 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ v8r@${NPM_V8R_VERSION} \ npm-package-json-lint@${NPM_PACKAGE_JSON_LINT_VERSION} \ npm-package-json-lint-config-default@${NPM_PACKAGE_JSON_LINT_CONFIG_DEFAULT_VERSION} \ - eslint-plugin-react@${NPM_ESLINT_PLUGIN_REACT_VERSION} \ - eslint-plugin-jsx-a11y@${NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION} \ + @eslint-react/eslint-plugin@${NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION} \ markdownlint-cli@${NPM_MARKDOWNLINT_CLI_VERSION} \ markdown-table-formatter@${NPM_MARKDOWN_TABLE_FORMATTER_VERSION} \ secretlint@${NPM_SECRETLINT_VERSION} \ diff --git a/flavors/javascript/Dockerfile b/flavors/javascript/Dockerfile index de10abc4e51..8d2ac837f0e 100644 --- a/flavors/javascript/Dockerfile +++ b/flavors/javascript/Dockerfile @@ -151,17 +151,15 @@ ARG PIP_DJLINT_VERSION=1.36.4 # renovate: datasource=npm depName=htmlhint ARG NPM_HTMLHINT_VERSION=1.9.2 # renovate: datasource=npm depName=eslint -ARG NPM_ESLINT_VERSION=9.39.4 +ARG NPM_ESLINT_VERSION=10.3.0 # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 -# renovate: datasource=npm depName=eslint-config-airbnb-extended -ARG NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION=3.1.0 +# renovate: datasource=npm depName=@eslint/js +ARG NPM_ESLINT_JS_VERSION=10.0.1 # renovate: datasource=npm depName=eslint-config-prettier ARG NPM_ESLINT_CONFIG_PRETTIER_VERSION=10.1.8 -# renovate: datasource=npm depName=neostandard -ARG NPM_NEOSTANDARD_VERSION=0.13.0 -# renovate: datasource=npm depName=eslint-plugin-import -ARG NPM_ESLINT_PLUGIN_IMPORT_VERSION=2.32.0 +# renovate: datasource=npm depName=eslint-plugin-import-x +ARG NPM_ESLINT_PLUGIN_IMPORT_X_VERSION=4.16.2 # renovate: datasource=npm depName=eslint-plugin-jest ARG NPM_ESLINT_PLUGIN_JEST_VERSION=29.15.2 # renovate: datasource=npm depName=eslint-plugin-n @@ -172,10 +170,6 @@ ARG NPM_ESLINT_PLUGIN_PRETTIER_VERSION=5.5.5 ARG NPM_ESLINT_PLUGIN_PROMISE_VERSION=7.3.0 # renovate: datasource=npm depName=eslint-plugin-vue ARG NPM_ESLINT_PLUGIN_VUE_VERSION=10.9.1 -# renovate: datasource=npm depName=@babel/core -ARG NPM_BABEL_CORE_VERSION=7.29.0 -# renovate: datasource=npm depName=@babel/eslint-parser -ARG NPM_BABEL_ESLINT_PARSER_VERSION=7.28.6 # renovate: datasource=npm depName=@microsoft/eslint-formatter-sarif ARG NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION=3.1.0 # renovate: datasource=npm depName=standard @@ -190,10 +184,8 @@ ARG NPM_V8R_VERSION=6.0.0 ARG NPM_PACKAGE_JSON_LINT_VERSION=10.4.0 # renovate: datasource=npm depName=npm-package-json-lint-config-default ARG NPM_PACKAGE_JSON_LINT_CONFIG_DEFAULT_VERSION=9.0.1 -# renovate: datasource=npm depName=eslint-plugin-react -ARG NPM_ESLINT_PLUGIN_REACT_VERSION=7.37.5 -# renovate: datasource=npm depName=eslint-plugin-jsx-a11y -ARG NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION=6.10.2 +# renovate: datasource=npm depName=@eslint-react/eslint-plugin +ARG NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION=5.7.8 # renovate: datasource=github-tags depName=pinterest/ktlint ARG KTLINT_VERSION=1.8.0 @@ -454,17 +446,14 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ htmlhint@${NPM_HTMLHINT_VERSION} \ eslint@${NPM_ESLINT_VERSION} \ @eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION} \ - eslint-config-airbnb-extended@${NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION} \ + @eslint/js@${NPM_ESLINT_JS_VERSION} \ eslint-config-prettier@${NPM_ESLINT_CONFIG_PRETTIER_VERSION} \ - neostandard@${NPM_NEOSTANDARD_VERSION} \ - eslint-plugin-import@${NPM_ESLINT_PLUGIN_IMPORT_VERSION} \ + eslint-plugin-import-x@${NPM_ESLINT_PLUGIN_IMPORT_X_VERSION} \ eslint-plugin-jest@${NPM_ESLINT_PLUGIN_JEST_VERSION} \ eslint-plugin-n@${NPM_ESLINT_PLUGIN_N_VERSION} \ eslint-plugin-prettier@${NPM_ESLINT_PLUGIN_PRETTIER_VERSION} \ eslint-plugin-promise@${NPM_ESLINT_PLUGIN_PROMISE_VERSION} \ eslint-plugin-vue@${NPM_ESLINT_PLUGIN_VUE_VERSION} \ - @babel/core@${NPM_BABEL_CORE_VERSION} \ - @babel/eslint-parser@${NPM_BABEL_ESLINT_PARSER_VERSION} \ @microsoft/eslint-formatter-sarif@${NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION} \ standard@${NPM_STANDARD_VERSION} \ prettier@${NPM_PRETTIER_VERSION} \ @@ -472,8 +461,7 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ v8r@${NPM_V8R_VERSION} \ npm-package-json-lint@${NPM_PACKAGE_JSON_LINT_VERSION} \ npm-package-json-lint-config-default@${NPM_PACKAGE_JSON_LINT_CONFIG_DEFAULT_VERSION} \ - eslint-plugin-react@${NPM_ESLINT_PLUGIN_REACT_VERSION} \ - eslint-plugin-jsx-a11y@${NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION} \ + @eslint-react/eslint-plugin@${NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION} \ markdownlint-cli@${NPM_MARKDOWNLINT_CLI_VERSION} \ markdown-table-formatter@${NPM_MARKDOWN_TABLE_FORMATTER_VERSION} \ secretlint@${NPM_SECRETLINT_VERSION} \ diff --git a/linters/javascript_es/Dockerfile b/linters/javascript_es/Dockerfile index 63d9ce62655..780ac08246e 100644 --- a/linters/javascript_es/Dockerfile +++ b/linters/javascript_es/Dockerfile @@ -55,17 +55,15 @@ RUN python -m pip install --no-cache-dir "wheel>=0.46.2" "setuptools>=75.8.0" \ ARG TARGETPLATFORM ARG TARGETARCH # renovate: datasource=npm depName=eslint -ARG NPM_ESLINT_VERSION=9.39.4 +ARG NPM_ESLINT_VERSION=10.3.0 # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 -# renovate: datasource=npm depName=eslint-config-airbnb-extended -ARG NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION=3.1.0 +# renovate: datasource=npm depName=@eslint/js +ARG NPM_ESLINT_JS_VERSION=10.0.1 # renovate: datasource=npm depName=eslint-config-prettier ARG NPM_ESLINT_CONFIG_PRETTIER_VERSION=10.1.8 -# renovate: datasource=npm depName=neostandard -ARG NPM_NEOSTANDARD_VERSION=0.13.0 -# renovate: datasource=npm depName=eslint-plugin-import -ARG NPM_ESLINT_PLUGIN_IMPORT_VERSION=2.32.0 +# renovate: datasource=npm depName=eslint-plugin-import-x +ARG NPM_ESLINT_PLUGIN_IMPORT_X_VERSION=4.16.2 # renovate: datasource=npm depName=eslint-plugin-jest ARG NPM_ESLINT_PLUGIN_JEST_VERSION=29.15.2 # renovate: datasource=npm depName=eslint-plugin-n @@ -76,10 +74,6 @@ ARG NPM_ESLINT_PLUGIN_PRETTIER_VERSION=5.5.5 ARG NPM_ESLINT_PLUGIN_PROMISE_VERSION=7.3.0 # renovate: datasource=npm depName=eslint-plugin-vue ARG NPM_ESLINT_PLUGIN_VUE_VERSION=10.9.1 -# renovate: datasource=npm depName=@babel/core -ARG NPM_BABEL_CORE_VERSION=7.29.0 -# renovate: datasource=npm depName=@babel/eslint-parser -ARG NPM_BABEL_ESLINT_PARSER_VERSION=7.28.6 # renovate: datasource=npm depName=@microsoft/eslint-formatter-sarif ARG NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION=3.1.0 #ARG__END @@ -177,17 +171,14 @@ WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ eslint@${NPM_ESLINT_VERSION} \ @eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION} \ - eslint-config-airbnb-extended@${NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION} \ + @eslint/js@${NPM_ESLINT_JS_VERSION} \ eslint-config-prettier@${NPM_ESLINT_CONFIG_PRETTIER_VERSION} \ - neostandard@${NPM_NEOSTANDARD_VERSION} \ - eslint-plugin-import@${NPM_ESLINT_PLUGIN_IMPORT_VERSION} \ + eslint-plugin-import-x@${NPM_ESLINT_PLUGIN_IMPORT_X_VERSION} \ eslint-plugin-jest@${NPM_ESLINT_PLUGIN_JEST_VERSION} \ eslint-plugin-n@${NPM_ESLINT_PLUGIN_N_VERSION} \ eslint-plugin-prettier@${NPM_ESLINT_PLUGIN_PRETTIER_VERSION} \ eslint-plugin-promise@${NPM_ESLINT_PLUGIN_PROMISE_VERSION} \ eslint-plugin-vue@${NPM_ESLINT_PLUGIN_VUE_VERSION} \ - @babel/core@${NPM_BABEL_CORE_VERSION} \ - @babel/eslint-parser@${NPM_BABEL_ESLINT_PARSER_VERSION} \ @microsoft/eslint-formatter-sarif@${NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION} && \ echo "Cleaning npm cache…" \ && (npm cache clean --force || true) \ diff --git a/linters/json_eslint_plugin_jsonc/Dockerfile b/linters/json_eslint_plugin_jsonc/Dockerfile index bdc403f6bb1..454f59ccb1c 100644 --- a/linters/json_eslint_plugin_jsonc/Dockerfile +++ b/linters/json_eslint_plugin_jsonc/Dockerfile @@ -55,7 +55,7 @@ RUN python -m pip install --no-cache-dir "wheel>=0.46.2" "setuptools>=75.8.0" \ ARG TARGETPLATFORM ARG TARGETARCH # renovate: datasource=npm depName=eslint -ARG NPM_ESLINT_VERSION=9.39.4 +ARG NPM_ESLINT_VERSION=10.3.0 # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 # renovate: datasource=npm depName=eslint-plugin-jsonc diff --git a/linters/jsx_eslint/Dockerfile b/linters/jsx_eslint/Dockerfile index 9af82d311f0..5a4253f4b1d 100644 --- a/linters/jsx_eslint/Dockerfile +++ b/linters/jsx_eslint/Dockerfile @@ -55,13 +55,11 @@ RUN python -m pip install --no-cache-dir "wheel>=0.46.2" "setuptools>=75.8.0" \ ARG TARGETPLATFORM ARG TARGETARCH # renovate: datasource=npm depName=eslint -ARG NPM_ESLINT_VERSION=9.39.4 +ARG NPM_ESLINT_VERSION=10.3.0 # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 -# renovate: datasource=npm depName=eslint-plugin-react -ARG NPM_ESLINT_PLUGIN_REACT_VERSION=7.37.5 -# renovate: datasource=npm depName=eslint-plugin-jsx-a11y -ARG NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION=6.10.2 +# renovate: datasource=npm depName=@eslint-react/eslint-plugin +ARG NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION=5.7.8 # renovate: datasource=npm depName=@microsoft/eslint-formatter-sarif ARG NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION=3.1.0 #ARG__END @@ -159,8 +157,7 @@ WORKDIR /node-deps RUN npm --no-cache install --ignore-scripts --omit=dev \ eslint@${NPM_ESLINT_VERSION} \ @eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION} \ - eslint-plugin-react@${NPM_ESLINT_PLUGIN_REACT_VERSION} \ - eslint-plugin-jsx-a11y@${NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION} \ + @eslint-react/eslint-plugin@${NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION} \ @microsoft/eslint-formatter-sarif@${NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION} && \ echo "Cleaning npm cache…" \ && (npm cache clean --force || true) \ diff --git a/linters/tsx_eslint/Dockerfile b/linters/tsx_eslint/Dockerfile index 065699efe58..65e9d614938 100644 --- a/linters/tsx_eslint/Dockerfile +++ b/linters/tsx_eslint/Dockerfile @@ -57,21 +57,17 @@ ARG TARGETARCH # renovate: datasource=npm depName=typescript ARG NPM_TYPESCRIPT_VERSION=6.0.3 # renovate: datasource=npm depName=eslint -ARG NPM_ESLINT_VERSION=9.39.4 +ARG NPM_ESLINT_VERSION=10.3.0 # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 -# renovate: datasource=npm depName=eslint-config-airbnb-extended -ARG NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION=3.1.0 # renovate: datasource=npm depName=eslint-config-prettier ARG NPM_ESLINT_CONFIG_PRETTIER_VERSION=10.1.8 # renovate: datasource=npm depName=eslint-plugin-jest ARG NPM_ESLINT_PLUGIN_JEST_VERSION=29.15.2 # renovate: datasource=npm depName=eslint-plugin-prettier ARG NPM_ESLINT_PLUGIN_PRETTIER_VERSION=5.5.5 -# renovate: datasource=npm depName=eslint-plugin-react -ARG NPM_ESLINT_PLUGIN_REACT_VERSION=7.37.5 -# renovate: datasource=npm depName=@babel/eslint-parser -ARG NPM_BABEL_ESLINT_PARSER_VERSION=7.28.6 +# renovate: datasource=npm depName=@eslint-react/eslint-plugin +ARG NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION=5.7.8 # renovate: datasource=npm depName=prettier ARG NPM_PRETTIER_VERSION=3.8.3 # renovate: datasource=npm depName=prettyjson @@ -178,12 +174,10 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ typescript@${NPM_TYPESCRIPT_VERSION} \ eslint@${NPM_ESLINT_VERSION} \ @eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION} \ - eslint-config-airbnb-extended@${NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION} \ eslint-config-prettier@${NPM_ESLINT_CONFIG_PRETTIER_VERSION} \ eslint-plugin-jest@${NPM_ESLINT_PLUGIN_JEST_VERSION} \ eslint-plugin-prettier@${NPM_ESLINT_PLUGIN_PRETTIER_VERSION} \ - eslint-plugin-react@${NPM_ESLINT_PLUGIN_REACT_VERSION} \ - @babel/eslint-parser@${NPM_BABEL_ESLINT_PARSER_VERSION} \ + @eslint-react/eslint-plugin@${NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION} \ prettier@${NPM_PRETTIER_VERSION} \ prettyjson@${NPM_PRETTYJSON_VERSION} \ @typescript-eslint/eslint-plugin@${NPM_TYPESCRIPT_ESLINT_ESLINT_PLUGIN_VERSION} \ diff --git a/linters/typescript_es/Dockerfile b/linters/typescript_es/Dockerfile index a194ca2abe1..7f81696aab1 100644 --- a/linters/typescript_es/Dockerfile +++ b/linters/typescript_es/Dockerfile @@ -57,17 +57,15 @@ ARG TARGETARCH # renovate: datasource=npm depName=typescript ARG NPM_TYPESCRIPT_VERSION=6.0.3 # renovate: datasource=npm depName=eslint -ARG NPM_ESLINT_VERSION=9.39.4 +ARG NPM_ESLINT_VERSION=10.3.0 # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 -# renovate: datasource=npm depName=eslint-config-airbnb-extended -ARG NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION=3.1.0 +# renovate: datasource=npm depName=@eslint/js +ARG NPM_ESLINT_JS_VERSION=10.0.1 # renovate: datasource=npm depName=eslint-config-prettier ARG NPM_ESLINT_CONFIG_PRETTIER_VERSION=10.1.8 -# renovate: datasource=npm depName=neostandard -ARG NPM_NEOSTANDARD_VERSION=0.13.0 -# renovate: datasource=npm depName=eslint-plugin-import -ARG NPM_ESLINT_PLUGIN_IMPORT_VERSION=2.32.0 +# renovate: datasource=npm depName=eslint-plugin-import-x +ARG NPM_ESLINT_PLUGIN_IMPORT_X_VERSION=4.16.2 # renovate: datasource=npm depName=eslint-plugin-jest ARG NPM_ESLINT_PLUGIN_JEST_VERSION=29.15.2 # renovate: datasource=npm depName=eslint-plugin-n @@ -76,8 +74,6 @@ ARG NPM_ESLINT_PLUGIN_N_VERSION=18.0.1 ARG NPM_ESLINT_PLUGIN_PRETTIER_VERSION=5.5.5 # renovate: datasource=npm depName=eslint-plugin-promise ARG NPM_ESLINT_PLUGIN_PROMISE_VERSION=7.3.0 -# renovate: datasource=npm depName=@babel/eslint-parser -ARG NPM_BABEL_ESLINT_PARSER_VERSION=7.28.6 # renovate: datasource=npm depName=prettier ARG NPM_PRETTIER_VERSION=3.8.3 # renovate: datasource=npm depName=prettyjson @@ -184,15 +180,13 @@ RUN npm --no-cache install --ignore-scripts --omit=dev \ typescript@${NPM_TYPESCRIPT_VERSION} \ eslint@${NPM_ESLINT_VERSION} \ @eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION} \ - eslint-config-airbnb-extended@${NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION} \ + @eslint/js@${NPM_ESLINT_JS_VERSION} \ eslint-config-prettier@${NPM_ESLINT_CONFIG_PRETTIER_VERSION} \ - neostandard@${NPM_NEOSTANDARD_VERSION} \ - eslint-plugin-import@${NPM_ESLINT_PLUGIN_IMPORT_VERSION} \ + eslint-plugin-import-x@${NPM_ESLINT_PLUGIN_IMPORT_X_VERSION} \ eslint-plugin-jest@${NPM_ESLINT_PLUGIN_JEST_VERSION} \ eslint-plugin-n@${NPM_ESLINT_PLUGIN_N_VERSION} \ eslint-plugin-prettier@${NPM_ESLINT_PLUGIN_PRETTIER_VERSION} \ eslint-plugin-promise@${NPM_ESLINT_PLUGIN_PROMISE_VERSION} \ - @babel/eslint-parser@${NPM_BABEL_ESLINT_PARSER_VERSION} \ prettier@${NPM_PRETTIER_VERSION} \ prettyjson@${NPM_PRETTYJSON_VERSION} \ @typescript-eslint/eslint-plugin@${NPM_TYPESCRIPT_ESLINT_ESLINT_PLUGIN_VERSION} \ diff --git a/mega-linter-runner/eslint.config.cjs b/mega-linter-runner/eslint.config.cjs new file mode 100644 index 00000000000..81b431571ef --- /dev/null +++ b/mega-linter-runner/eslint.config.cjs @@ -0,0 +1,27 @@ +const { FlatCompat } = require('@eslint/eslintrc'); +const js = require('@eslint/js'); + +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +module.exports = [ + ...compat.config({ + env: { + node: true, + commonjs: true, + es2021: true, + mocha: true, + }, + extends: 'eslint:recommended', + parserOptions: { + ecmaVersion: 2021, + sourceType: 'module', + }, + rules: { + 'no-unused-vars': ['error', { caughtErrors: 'none' }], + }, + }), +]; diff --git a/megalinter/descriptors/javascript.megalinter-descriptor.yml b/megalinter/descriptors/javascript.megalinter-descriptor.yml index 3a76d59da47..ea280b0f9cd 100644 --- a/megalinter/descriptors/javascript.megalinter-descriptor.yml +++ b/megalinter/descriptors/javascript.megalinter-descriptor.yml @@ -87,22 +87,19 @@ linters: dockerfile: - |- # renovate: datasource=npm depName=eslint - ARG NPM_ESLINT_VERSION=9.39.4 + ARG NPM_ESLINT_VERSION=10.3.0 - |- # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 - |- - # renovate: datasource=npm depName=eslint-config-airbnb-extended - ARG NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION=3.1.0 + # renovate: datasource=npm depName=@eslint/js + ARG NPM_ESLINT_JS_VERSION=10.0.1 - |- # renovate: datasource=npm depName=eslint-config-prettier ARG NPM_ESLINT_CONFIG_PRETTIER_VERSION=10.1.8 - |- - # renovate: datasource=npm depName=neostandard - ARG NPM_NEOSTANDARD_VERSION=0.13.0 - - |- - # renovate: datasource=npm depName=eslint-plugin-import - ARG NPM_ESLINT_PLUGIN_IMPORT_VERSION=2.32.0 + # renovate: datasource=npm depName=eslint-plugin-import-x + ARG NPM_ESLINT_PLUGIN_IMPORT_X_VERSION=4.16.2 - |- # renovate: datasource=npm depName=eslint-plugin-jest ARG NPM_ESLINT_PLUGIN_JEST_VERSION=29.15.2 @@ -118,29 +115,20 @@ linters: - |- # renovate: datasource=npm depName=eslint-plugin-vue ARG NPM_ESLINT_PLUGIN_VUE_VERSION=10.9.1 - - |- - # renovate: datasource=npm depName=@babel/core - ARG NPM_BABEL_CORE_VERSION=7.29.0 - - |- - # renovate: datasource=npm depName=@babel/eslint-parser - ARG NPM_BABEL_ESLINT_PARSER_VERSION=7.28.6 - |- # renovate: datasource=npm depName=@microsoft/eslint-formatter-sarif ARG NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION=3.1.0 npm: - eslint@${NPM_ESLINT_VERSION} - "@eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION}" - - eslint-config-airbnb-extended@${NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION} + - "@eslint/js@${NPM_ESLINT_JS_VERSION}" - eslint-config-prettier@${NPM_ESLINT_CONFIG_PRETTIER_VERSION} - - neostandard@${NPM_NEOSTANDARD_VERSION} - - eslint-plugin-import@${NPM_ESLINT_PLUGIN_IMPORT_VERSION} + - eslint-plugin-import-x@${NPM_ESLINT_PLUGIN_IMPORT_X_VERSION} - eslint-plugin-jest@${NPM_ESLINT_PLUGIN_JEST_VERSION} - eslint-plugin-n@${NPM_ESLINT_PLUGIN_N_VERSION} - eslint-plugin-prettier@${NPM_ESLINT_PLUGIN_PRETTIER_VERSION} - eslint-plugin-promise@${NPM_ESLINT_PLUGIN_PROMISE_VERSION} - eslint-plugin-vue@${NPM_ESLINT_PLUGIN_VUE_VERSION} - - "@babel/core@${NPM_BABEL_CORE_VERSION}" - - "@babel/eslint-parser@${NPM_BABEL_ESLINT_PARSER_VERSION}" - "@microsoft/eslint-formatter-sarif@${NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION}" supported_platforms: platform: diff --git a/megalinter/descriptors/json.megalinter-descriptor.yml b/megalinter/descriptors/json.megalinter-descriptor.yml index 127c501e3b4..6824047139a 100644 --- a/megalinter/descriptors/json.megalinter-descriptor.yml +++ b/megalinter/descriptors/json.megalinter-descriptor.yml @@ -149,7 +149,7 @@ linters: dockerfile: - |- # renovate: datasource=npm depName=eslint - ARG NPM_ESLINT_VERSION=9.39.4 + ARG NPM_ESLINT_VERSION=10.3.0 - |- # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 diff --git a/megalinter/descriptors/jsx.megalinter-descriptor.yml b/megalinter/descriptors/jsx.megalinter-descriptor.yml index 89106973588..11de43b61da 100644 --- a/megalinter/descriptors/jsx.megalinter-descriptor.yml +++ b/megalinter/descriptors/jsx.megalinter-descriptor.yml @@ -17,20 +17,19 @@ linters: **Key Features:** - - **React-Specific Linting**: 90+ rules covering React best practices, hooks usage, JSX syntax, and component lifecycle patterns + - **React-Specific Linting**: Comprehensive rules covering React best practices, hooks usage, JSX syntax, and component lifecycle patterns - **JSX Syntax Validation**: Comprehensive validation of JSX syntax, prop types, and component structure with intelligent error reporting - **Hooks Rules**: Thorough validation of React Hooks usage patterns, dependencies arrays, and effect cleanup to prevent common bugs - - **Accessibility Integration**: Built-in support for jsx-a11y plugin ensuring accessible React components and WCAG compliance - **Performance Optimization**: Rules to detect unnecessary re-renders, missing keys in lists, and performance anti-patterns - **Modern React Patterns**: Support for latest React features including fragments, context, refs, and concurrent features ESLint requires a custom configuration file applicable to your project. You can create it by typing `npx eslint --init` in the root of your repository - linter_url: https://github.com/yannickcr/eslint-plugin-react - linter_repo: https://github.com/yannickcr/eslint-plugin-react + linter_url: https://github.com/Rel1cx/eslint-react + linter_repo: https://github.com/Rel1cx/eslint-react linter_spdx_license: MIT - linter_rules_url: https://github.com/yannickcr/eslint-plugin-react#list-of-supported-rules + linter_rules_url: https://eslint-react.xyz/docs/rules/overview linter_banner_image_url: https://d33wubrfki0l68.cloudfront.net/3b5ac7586466159bb6f237b633bfc4f5a8d5acf8/ee0a1/assets/img/posts/eslint-collective.png - linter_rules_configuration_url: https://github.com/yannickcr/eslint-plugin-react#configuration + linter_rules_configuration_url: https://eslint-react.xyz/docs/getting-started/installation linter_rules_inline_disable_url: https://eslint.org/docs/latest/use/configure/rules#disabling-rules linter_rules_ignore_config_url: https://eslint.org/docs/latest/user-guide/configuring/ignoring-code#the-eslintignore-file linter_megalinter_ref_url: https://eslint.org/docs/latest/use/integrations#source-control @@ -46,7 +45,7 @@ linters: - ".eslintrc.cjs" - "package.json:eslintConfig" cli_lint_mode: list_of_files - config_file_name: eslint.config.js + config_file_name: eslint.config.cjs cli_lint_extra_args: - "--no-ignore" cli_lint_fix_arg_name: "--fix" @@ -65,24 +64,20 @@ linters: dockerfile: - |- # renovate: datasource=npm depName=eslint - ARG NPM_ESLINT_VERSION=9.39.4 + ARG NPM_ESLINT_VERSION=10.3.0 - |- # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 - |- - # renovate: datasource=npm depName=eslint-plugin-react - ARG NPM_ESLINT_PLUGIN_REACT_VERSION=7.37.5 - - |- - # renovate: datasource=npm depName=eslint-plugin-jsx-a11y - ARG NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION=6.10.2 + # renovate: datasource=npm depName=@eslint-react/eslint-plugin + ARG NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION=5.7.8 - |- # renovate: datasource=npm depName=@microsoft/eslint-formatter-sarif ARG NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION=3.1.0 npm: - eslint@${NPM_ESLINT_VERSION} - "@eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION}" - - eslint-plugin-react@${NPM_ESLINT_PLUGIN_REACT_VERSION} - - eslint-plugin-jsx-a11y@${NPM_ESLINT_PLUGIN_JSX_ALLY_VERSION} + - "@eslint-react/eslint-plugin@${NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION}" - "@microsoft/eslint-formatter-sarif@${NPM_MICROSOFT_ESLINT_FORMATTER_SARIF_VERSION}" supported_platforms: platform: diff --git a/megalinter/descriptors/tsx.megalinter-descriptor.yml b/megalinter/descriptors/tsx.megalinter-descriptor.yml index 349e021b99f..3e884707efa 100644 --- a/megalinter/descriptors/tsx.megalinter-descriptor.yml +++ b/megalinter/descriptors/tsx.megalinter-descriptor.yml @@ -17,19 +17,18 @@ linters: **Key Features:** - - **React-Specific Linting**: 90+ rules covering React best practices, hooks usage, JSX syntax, and component lifecycle patterns + - **React-Specific Linting**: Comprehensive rules covering React best practices, hooks usage, JSX syntax, and component lifecycle patterns - **TypeScript Integration**: Full TypeScript support for type-aware linting in React components with proper TSX syntax validation - **Hooks Rules**: Comprehensive validation of React Hooks usage patterns, dependencies, and effect cleanup - - **Accessibility Integration**: Built-in support for jsx-a11y plugin ensuring accessible React components - **Performance Optimization**: Rules to detect unnecessary re-renders, missing dependency arrays, and performance anti-patterns - **Modern React Patterns**: Support for latest React features including Suspense, Error Boundaries, and concurrent features ESLint requires a custom configuration file applicable to your project. You can create it by typing `npx eslint --init` in the root of your repository - linter_url: https://github.com/jsx-eslint/eslint-plugin-react - linter_repo: https://github.com/jsx-eslint/eslint-plugin-react - linter_rules_url: https://github.com/jsx-eslint/eslint-plugin-react#list-of-supported-rules + linter_url: https://github.com/Rel1cx/eslint-react + linter_repo: https://github.com/Rel1cx/eslint-react + linter_rules_url: https://eslint-react.xyz/docs/rules/overview linter_banner_image_url: https://d33wubrfki0l68.cloudfront.net/3b5ac7586466159bb6f237b633bfc4f5a8d5acf8/ee0a1/assets/img/posts/eslint-collective.png - linter_rules_configuration_url: https://github.com/jsx-eslint/eslint-plugin-react#configuration-legacy-eslintrc + linter_rules_configuration_url: https://eslint-react.xyz/docs/getting-started/installation linter_rules_inline_disable_url: https://eslint.org/docs/latest/use/configure/rules#disabling-rules linter_rules_ignore_config_url: https://eslint.org/docs/latest/use/configure/ignore#the-eslintignore-file linter_megalinter_ref_url: https://eslint.org/docs/latest/use/integrations#source-control @@ -46,7 +45,7 @@ linters: - ".eslintrc.cjs" - "package.json:eslintConfig" cli_lint_mode: list_of_files - config_file_name: eslint.config.js + config_file_name: eslint.config.cjs cli_lint_extra_args: - "--no-ignore" cli_lint_fix_arg_name: "--fix" @@ -68,13 +67,10 @@ linters: ARG NPM_TYPESCRIPT_VERSION=6.0.3 - |- # renovate: datasource=npm depName=eslint - ARG NPM_ESLINT_VERSION=9.39.4 + ARG NPM_ESLINT_VERSION=10.3.0 - |- # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 - - |- - # renovate: datasource=npm depName=eslint-config-airbnb-extended - ARG NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION=3.1.0 - |- # renovate: datasource=npm depName=eslint-config-prettier ARG NPM_ESLINT_CONFIG_PRETTIER_VERSION=10.1.8 @@ -85,11 +81,8 @@ linters: # renovate: datasource=npm depName=eslint-plugin-prettier ARG NPM_ESLINT_PLUGIN_PRETTIER_VERSION=5.5.5 - |- - # renovate: datasource=npm depName=eslint-plugin-react - ARG NPM_ESLINT_PLUGIN_REACT_VERSION=7.37.5 - - |- - # renovate: datasource=npm depName=@babel/eslint-parser - ARG NPM_BABEL_ESLINT_PARSER_VERSION=7.28.6 + # renovate: datasource=npm depName=@eslint-react/eslint-plugin + ARG NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION=5.7.8 - |- # renovate: datasource=npm depName=prettier ARG NPM_PRETTIER_VERSION=3.8.3 @@ -109,12 +102,10 @@ linters: - typescript@${NPM_TYPESCRIPT_VERSION} - eslint@${NPM_ESLINT_VERSION} - "@eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION}" - - eslint-config-airbnb-extended@${NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION} - eslint-config-prettier@${NPM_ESLINT_CONFIG_PRETTIER_VERSION} - eslint-plugin-jest@${NPM_ESLINT_PLUGIN_JEST_VERSION} - eslint-plugin-prettier@${NPM_ESLINT_PLUGIN_PRETTIER_VERSION} - - eslint-plugin-react@${NPM_ESLINT_PLUGIN_REACT_VERSION} - - "@babel/eslint-parser@${NPM_BABEL_ESLINT_PARSER_VERSION}" + - "@eslint-react/eslint-plugin@${NPM_ESLINT_REACT_ESLINT_PLUGIN_VERSION}" - prettier@${NPM_PRETTIER_VERSION} - prettyjson@${NPM_PRETTYJSON_VERSION} - "@typescript-eslint/eslint-plugin@${NPM_TYPESCRIPT_ESLINT_ESLINT_PLUGIN_VERSION}" diff --git a/megalinter/descriptors/typescript.megalinter-descriptor.yml b/megalinter/descriptors/typescript.megalinter-descriptor.yml index c5b20c2e8f0..09aa148e54a 100644 --- a/megalinter/descriptors/typescript.megalinter-descriptor.yml +++ b/megalinter/descriptors/typescript.megalinter-descriptor.yml @@ -74,22 +74,19 @@ linters: dockerfile: - |- # renovate: datasource=npm depName=eslint - ARG NPM_ESLINT_VERSION=9.39.4 + ARG NPM_ESLINT_VERSION=10.3.0 - |- # renovate: datasource=npm depName=@eslint/eslintrc ARG NPM_ESLINT_ESLINTRC_VERSION=3.3.5 - |- - # renovate: datasource=npm depName=eslint-config-airbnb-extended - ARG NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION=3.1.0 + # renovate: datasource=npm depName=@eslint/js + ARG NPM_ESLINT_JS_VERSION=10.0.1 - |- # renovate: datasource=npm depName=eslint-config-prettier ARG NPM_ESLINT_CONFIG_PRETTIER_VERSION=10.1.8 - |- - # renovate: datasource=npm depName=neostandard - ARG NPM_NEOSTANDARD_VERSION=0.13.0 - - |- - # renovate: datasource=npm depName=eslint-plugin-import - ARG NPM_ESLINT_PLUGIN_IMPORT_VERSION=2.32.0 + # renovate: datasource=npm depName=eslint-plugin-import-x + ARG NPM_ESLINT_PLUGIN_IMPORT_X_VERSION=4.16.2 - |- # renovate: datasource=npm depName=eslint-plugin-jest ARG NPM_ESLINT_PLUGIN_JEST_VERSION=29.15.2 @@ -102,9 +99,6 @@ linters: - |- # renovate: datasource=npm depName=eslint-plugin-promise ARG NPM_ESLINT_PLUGIN_PROMISE_VERSION=7.3.0 - - |- - # renovate: datasource=npm depName=@babel/eslint-parser - ARG NPM_BABEL_ESLINT_PARSER_VERSION=7.28.6 - |- # renovate: datasource=npm depName=prettier ARG NPM_PRETTIER_VERSION=3.8.3 @@ -123,15 +117,13 @@ linters: npm: - eslint@${NPM_ESLINT_VERSION} - "@eslint/eslintrc@${NPM_ESLINT_ESLINTRC_VERSION}" - - eslint-config-airbnb-extended@${NPM_ESLINT_CONFIG_AIRBNB_EXTENDED_VERSION} + - "@eslint/js@${NPM_ESLINT_JS_VERSION}" - eslint-config-prettier@${NPM_ESLINT_CONFIG_PRETTIER_VERSION} - - neostandard@${NPM_NEOSTANDARD_VERSION} - - eslint-plugin-import@${NPM_ESLINT_PLUGIN_IMPORT_VERSION} + - eslint-plugin-import-x@${NPM_ESLINT_PLUGIN_IMPORT_X_VERSION} - eslint-plugin-jest@${NPM_ESLINT_PLUGIN_JEST_VERSION} - eslint-plugin-n@${NPM_ESLINT_PLUGIN_N_VERSION} - eslint-plugin-prettier@${NPM_ESLINT_PLUGIN_PRETTIER_VERSION} - eslint-plugin-promise@${NPM_ESLINT_PLUGIN_PROMISE_VERSION} - - "@babel/eslint-parser@${NPM_BABEL_ESLINT_PARSER_VERSION}" - prettier@${NPM_PRETTIER_VERSION} - prettyjson@${NPM_PRETTYJSON_VERSION} - "@typescript-eslint/eslint-plugin@${NPM_TYPESCRIPT_ESLINT_ESLINT_PLUGIN_VERSION}"