diff --git a/eslint.config.mjs b/eslint.config.mjs index 7f8ffde68..ad0db926d 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,57 +1,41 @@ -import typescriptEslint from '@typescript-eslint/eslint-plugin' -import stylistic from '@stylistic/eslint-plugin' -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 -}) +import globals from 'globals' +import tseslint from 'typescript-eslint' +import stylistic from '@stylistic/eslint-plugin' +import prettier from 'eslint-config-prettier' export default [ - ...compat.extends('eslint:recommended', 'plugin:@typescript-eslint/strict', 'plugin:@typescript-eslint/stylistic', 'prettier'), { - plugins: { - '@typescript-eslint': typescriptEslint, - '@stylistic': stylistic - }, + ignores: ['tests/__data__/'] + }, + js.configs.recommended, + ...tseslint.configs.strict, + ...tseslint.configs.stylistic, + prettier, + + { + files: ['**/*.{js,mjs,cjs,ts}'], languageOptions: { + parser: tseslint.parser, + ecmaVersion: 'latest', + sourceType: 'module', globals: { ...globals.node, ...globals.jest - }, - - parser: tsParser, - ecmaVersion: 'latest', - sourceType: 'module' + } + }, + plugins: { + '@typescript-eslint': tseslint.plugin, + '@stylistic': stylistic }, - rules: { '@typescript-eslint/no-require-imports': 'off', '@typescript-eslint/no-var-requires': 'off', 'no-case-declarations': 'off', '@stylistic/linebreak-style': ['error', 'windows'], - - quotes: [ - 'error', - 'single', - { - avoidEscape: true - } - ], - + quotes: ['error', 'single', { avoidEscape: true }], semi: ['error', 'never'] } - }, - { - ignores: ['tests/__data__/'] } ] diff --git a/package-lock.json b/package-lock.json index ad2200d62..b2917bb6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,8 +34,6 @@ "@types/lodash.uniqby": "^4.7.9", "@types/node": "^25.6.0", "@types/pako": "^2.0.4", - "@typescript-eslint/eslint-plugin": "^8.58.2", - "@typescript-eslint/parser": "^8.58.2", "axios": "^1.15.0", "chalk": "^5.6.2", "cheerio": "^1.2.0", @@ -68,7 +66,6 @@ "pako": "^2.1.0", "parse-duration": "^2.1.6", "pm2": "^6.0.14", - "run-script-os": "^1.1.6", "serve": "^14.2.6", "socks-proxy-agent": "^10.0.0", "srcset": "^5.0.3", @@ -77,6 +74,7 @@ "tough-cookie": "^6.0.1", "tsx": "^4.21.0", "typescript": "^6.0.3", + "typescript-eslint": "^8.58.2", "uuid": "^13.0.0" } }, @@ -10638,15 +10636,6 @@ "node": ">=0.12.0" } }, - "node_modules/run-script-os": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz", - "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==", - "bin": { - "run-os": "index.js", - "run-script-os": "index.js" - } - }, "node_modules/run-series": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", @@ -11412,6 +11401,29 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.58.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.58.2.tgz", + "integrity": "sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.58.2", + "@typescript-eslint/parser": "8.58.2", + "@typescript-eslint/typescript-estree": "8.58.2", + "@typescript-eslint/utils": "8.58.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, "node_modules/undici": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.7.tgz", @@ -18766,11 +18778,6 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-4.0.6.tgz", "integrity": "sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==" }, - "run-script-os": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz", - "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==" - }, "run-series": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", @@ -19257,6 +19264,17 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==" }, + "typescript-eslint": { + "version": "8.58.2", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.58.2.tgz", + "integrity": "sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ==", + "requires": { + "@typescript-eslint/eslint-plugin": "8.58.2", + "@typescript-eslint/parser": "8.58.2", + "@typescript-eslint/typescript-estree": "8.58.2", + "@typescript-eslint/utils": "8.58.2" + } + }, "undici": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.7.tgz", diff --git a/package.json b/package.json index ea3e7a07a..d29fce79e 100644 --- a/package.json +++ b/package.json @@ -62,8 +62,6 @@ "@types/lodash.uniqby": "^4.7.9", "@types/node": "^25.6.0", "@types/pako": "^2.0.4", - "@typescript-eslint/eslint-plugin": "^8.58.2", - "@typescript-eslint/parser": "^8.58.2", "axios": "^1.15.0", "chalk": "^5.6.2", "cheerio": "^1.2.0", @@ -96,7 +94,6 @@ "pako": "^2.1.0", "parse-duration": "^2.1.6", "pm2": "^6.0.14", - "run-script-os": "^1.1.6", "serve": "^14.2.6", "socks-proxy-agent": "^10.0.0", "srcset": "^5.0.3", @@ -105,6 +102,7 @@ "tough-cookie": "^6.0.1", "tsx": "^4.21.0", "typescript": "^6.0.3", + "typescript-eslint": "^8.58.2", "uuid": "^13.0.0" } }