diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 2b0266b3..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "plugins": ["import"], - "extends": [ - "eslint:recommended", - "plugin:import/errors", - "plugin:import/warnings", - "plugin:prettier/recommended" - ], - "rules": { - "import/order": [ - "error", - { - "groups": [["builtin", "external", "internal"]] - } - ], - "sort-imports": [ - "error", - { - "ignoreCase": false, - "ignoreDeclarationSort": true, - "ignoreMemberSort": false - } - ], - "no-console": ["warn", { "allow": ["warn", "error"] }], - "no-irregular-whitespace": [ - "error", - { - "skipStrings": true, - "skipComments": true, - "skipRegExps": true, - "skipTemplates": true - } - ], - "spaced-comment": ["error", "always", { "markers": ["/"] }] - }, - "env": { - "node": true - } -} diff --git a/.prettierrc.js b/.prettierrc.js deleted file mode 100644 index de8fb5e4..00000000 --- a/.prettierrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - semi: true, - trailingComma: 'all', - singleQuote: true, - printWidth: 120, - tabWidth: 4, -}; diff --git a/.prettierrc.mjs b/.prettierrc.mjs new file mode 100644 index 00000000..5654de7d --- /dev/null +++ b/.prettierrc.mjs @@ -0,0 +1,7 @@ +export default { + semi: true, + trailingComma: 'all', + singleQuote: true, + printWidth: 120, + tabWidth: 4, +}; diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..e2b6fefa --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,15 @@ +import globals from 'globals'; +import Config from './index.mjs'; + +/** @type {import('eslint').Linter.Config[]} */ +export default [ + ...Config, + { + languageOptions: { + globals: { + ...globals.node, + ...globals.nodeBuiltin, + }, + }, + }, +]; diff --git a/index.js b/index.js deleted file mode 100644 index 4c028ea9..00000000 --- a/index.js +++ /dev/null @@ -1,174 +0,0 @@ -module.exports = { - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint', 'import', 'promise'], - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/stylistic-type-checked', - 'plugin:@typescript-eslint/strict-type-checked', - 'plugin:import/recommended', - 'plugin:import/typescript', - 'plugin:sonarjs/recommended-legacy', - 'plugin:prettier/recommended', - ], - rules: { - 'array-callback-return': 'warn', - 'consistent-return': 'error', - curly: 'error', - 'default-case': 'warn', - 'default-case-last': 'error', - eqeqeq: 'warn', - 'no-await-in-loop': 'warn', - 'no-caller': 'error', - 'no-console': ['warn', { allow: ['warn', 'error'] }], - 'no-constructor-return': 'error', - 'no-else-return': 'warn', - 'no-eq-null': 'warn', - 'no-eval': 'error', - 'no-extend-native': 'warn', - 'no-extra-bind': 'warn', - 'no-fallthrough': ['error', { commentPattern: '(break[\\s\\w]*omitted)|fallthrough' }], - 'no-floating-decimal': 'error', - 'no-global-assign': 'warn', - 'no-invalid-this': 'off', - 'no-irregular-whitespace': [ - 'error', - { - skipStrings: true, - skipComments: true, - skipRegExps: true, - skipTemplates: true, - }, - ], - 'no-iterator': 'error', - 'no-new-func': 'error', - 'no-new-wrappers': 'error', - 'no-octal': 'warn', - 'no-octal-escape': 'warn', - 'no-promise-executor-return': 'warn', - 'no-proto': 'error', - 'no-return-assign': ['error', 'except-parens'], - 'no-return-await': 'off', - 'no-self-compare': 'error', - 'no-unmodified-loop-condition': 'warn', - 'no-unused-vars': 'off', - 'no-useless-backreference': 'warn', - 'no-useless-call': 'error', - 'no-useless-concat': 'warn', - 'no-useless-constructor': 'off', - 'no-useless-rename': 'warn', - 'no-useless-return': 'warn', - 'no-void': [ - 'warn', - { - allowAsStatement: true, - }, - ], - 'prefer-promise-reject-errors': 'error', - 'prefer-template': 'warn', - radix: 'error', - 'require-atomic-updates': 'warn', - 'require-unicode-regexp': 'error', - 'sort-imports': [ - 'error', - { - ignoreCase: false, - ignoreDeclarationSort: true, - ignoreMemberSort: false, - }, - ], - 'spaced-comment': ['error', 'always', { markers: ['/'] }], - - '@typescript-eslint/ban-tslint-comment': 'error', - 'class-methods-use-this': 'off', - '@typescript-eslint/class-methods-use-this': [ - 'warn', - { ignoreOverrideMethods: true, ignoreClassesThatImplementAnInterface: true }, - ], - 'default-param-last': 'off', - '@typescript-eslint/default-param-last': 'error', - 'dot-notation': 'off', - '@typescript-eslint/dot-notation': ['warn', { allowKeywords: true }], - '@typescript-eslint/explicit-function-return-type': 'warn', - '@typescript-eslint/explicit-member-accessibility': 'error', - 'no-loop-func': 'off', - '@typescript-eslint/no-confusing-void-expression': ['error', { ignoreArrowShorthand: true }], - '@typescript-eslint/no-non-null-assertion': 'off', - '@typescript-eslint/no-loop-func': 'warn', - '@typescript-eslint/no-this-alias': [ - 'error', - { - allowDestructuring: true, - allowedNames: ['self'], - }, - ], - '@typescript-eslint/no-unnecessary-condition': ['warn', { allowConstantLoopConditions: true }], - '@typescript-eslint/no-unused-vars': [ - 'warn', - { - varsIgnorePattern: '^_', - ignoreRestSiblings: true, - argsIgnorePattern: '^_', - }, - ], - 'no-use-before-define': 'off', - '@typescript-eslint/no-invalid-void-type': ['error', { allowAsThisParameter: true }], - '@typescript-eslint/no-use-before-define': 'error', - '@typescript-eslint/no-useless-constructor': 'warn', - '@typescript-eslint/prefer-readonly': 'warn', - '@typescript-eslint/prefer-regexp-exec': 'warn', - '@typescript-eslint/prefer-string-starts-ends-with': 'warn', - '@typescript-eslint/restrict-template-expressions': 'off', - '@typescript-eslint/return-await': ['warn', 'in-try-catch'], - '@typescript-eslint/unbound-method': ['warn', { ignoreStatic: true }], - - 'import/order': [ - 'error', - { - groups: [['builtin', 'external', 'internal']], - }, - ], - 'import/no-deprecated': 'warn', - 'import/no-empty-named-blocks': 'warn', - - 'sonarjs/anchor-is-valid': 'off', // We use jsx-a11y/anchor-is-valid - 'sonarjs/assertions-in-tests': 'warn', - 'sonarjs/class-name': 'off', - 'sonarjs/cognitive-complexity': 'warn', - 'sonarjs/concise-regex': 'warn', - 'sonarjs/fixme-tag': 'off', - 'sonarjs/function-return-type': 'off', - 'sonarjs/max-switch-cases': 'warn', - 'sonarjs/no-base-to-string': 'off', // We use @typescript-eslint/no-base-to-string - 'sonarjs/no-duplicate-string': 'off', - 'sonarjs/no-element-overwrite': 'warn', - 'sonarjs/no-misused-promises': 'off', // We use @typescript-eslint/no-misused-promises - 'sonarjs/no-nested-functions': 'warn', - 'sonarjs/no-redundant-optional': 'off', - 'sonarjs/no-small-switch': 'warn', - 'sonarjs/prefer-nullish-coalescing': 'off', // We use @typescript-eslint/prefer-nullish-coalescing instead - 'sonarjs/redundant-type-aliases': 'off', - 'sonarjs/sonar-no-unused-vars': 'off', // We use @typescript-eslint/no-unused-vars - 'sonarjs/void-use': 'off', - - 'promise/catch-or-return': 'off', - 'promise/no-return-wrap': 'error', - 'promise/param-names': 'error', - 'promise/always-return': 'off', - 'promise/no-native': 'off', - 'promise/no-nesting': 'warn', - 'promise/no-promise-in-callback': 'warn', - 'promise/no-callback-in-promise': 'warn', - 'promise/avoid-new': 'off', - 'promise/no-new-statics': 'error', - 'promise/no-return-in-finally': 'error', - 'promise/valid-params': 'warn', - 'promise/prefer-await-to-then': 'off', - 'promise/prefer-await-to-callbacks': 'off', - }, - settings: { - 'import/resolver': { - typescript: true, - node: true, - }, - }, -}; diff --git a/index.mjs b/index.mjs new file mode 100644 index 00000000..4ebf5961 --- /dev/null +++ b/index.mjs @@ -0,0 +1,215 @@ +import eslint from '@eslint/js'; +import tseslint from 'typescript-eslint'; +import typescriptEslintParser from '@typescript-eslint/parser'; +import importPlugin from 'eslint-plugin-import'; +import promisePlugin from 'eslint-plugin-promise'; +import sonarjsPlugin from 'eslint-plugin-sonarjs'; +import prettierPluginRecommended from 'eslint-plugin-prettier/recommended'; + +const files = ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts']; + +const addFiles = (config) => { + if (!config.files) { + config.files = files; + } + + return config; +}; + +const stylisticTypeChecked = tseslint.configs.stylisticTypeChecked.map(addFiles); +const strictTypeChecked = tseslint.configs.strictTypeChecked.map(addFiles); +const importTs = importPlugin.flatConfigs.typescript.files + ? importPlugin.flatConfigs.typescript + : { + ...importPlugin.flatConfigs.typescript, + files, + }; + +/** @type {import('eslint').Linter.Config[]} */ +const configs = [ + eslint.configs.recommended, + ...stylisticTypeChecked, + ...strictTypeChecked, + importPlugin.flatConfigs.recommended, + importTs, + sonarjsPlugin.configs.recommended, + prettierPluginRecommended, + { + files, + languageOptions: { + parser: typescriptEslintParser, + parserOptions: { + projectService: true, + tsconfigRootDir: './tsconfig.json', + }, + }, + plugins: { + promise: promisePlugin, + }, + rules: { + 'array-callback-return': 'warn', + 'consistent-return': 'error', + curly: 'error', + 'default-case': 'warn', + 'default-case-last': 'error', + eqeqeq: 'warn', + 'no-await-in-loop': 'warn', + 'no-caller': 'error', + 'no-console': ['warn', { allow: ['warn', 'error'] }], + 'no-constructor-return': 'error', + 'no-else-return': 'warn', + 'no-eq-null': 'warn', + 'no-eval': 'error', + 'no-extend-native': 'warn', + 'no-extra-bind': 'warn', + 'no-fallthrough': ['error', { commentPattern: '(break[\\s\\w]*omitted)|fallthrough' }], + 'no-floating-decimal': 'error', + 'no-global-assign': 'warn', + 'no-invalid-this': 'off', + 'no-irregular-whitespace': [ + 'error', + { + skipStrings: true, + skipComments: true, + skipRegExps: true, + skipTemplates: true, + }, + ], + 'no-iterator': 'error', + 'no-new-func': 'error', + 'no-new-wrappers': 'error', + 'no-octal': 'warn', + 'no-octal-escape': 'warn', + 'no-promise-executor-return': 'warn', + 'no-proto': 'error', + 'no-return-assign': ['error', 'except-parens'], + 'no-return-await': 'off', + 'no-self-compare': 'error', + 'no-unmodified-loop-condition': 'warn', + 'no-unused-vars': 'off', + 'no-useless-backreference': 'warn', + 'no-useless-call': 'error', + 'no-useless-concat': 'warn', + 'no-useless-constructor': 'off', + 'no-useless-rename': 'warn', + 'no-useless-return': 'warn', + 'no-void': [ + 'warn', + { + allowAsStatement: true, + }, + ], + 'prefer-promise-reject-errors': 'error', + 'prefer-template': 'warn', + radix: 'error', + 'require-atomic-updates': 'warn', + 'require-unicode-regexp': 'error', + 'sort-imports': [ + 'error', + { + ignoreCase: false, + ignoreDeclarationSort: true, + ignoreMemberSort: false, + }, + ], + 'spaced-comment': ['error', 'always', { markers: ['/'] }], + + '@typescript-eslint/ban-tslint-comment': 'error', + 'class-methods-use-this': 'off', + '@typescript-eslint/class-methods-use-this': [ + 'warn', + { ignoreOverrideMethods: true, ignoreClassesThatImplementAnInterface: true }, + ], + 'default-param-last': 'off', + '@typescript-eslint/default-param-last': 'error', + 'dot-notation': 'off', + '@typescript-eslint/dot-notation': ['warn', { allowKeywords: true }], + '@typescript-eslint/explicit-function-return-type': 'warn', + '@typescript-eslint/explicit-member-accessibility': 'error', + 'no-loop-func': 'off', + '@typescript-eslint/no-confusing-void-expression': ['error', { ignoreArrowShorthand: true }], + '@typescript-eslint/no-non-null-assertion': 'off', + '@typescript-eslint/no-loop-func': 'warn', + '@typescript-eslint/no-this-alias': [ + 'error', + { + allowDestructuring: true, + allowedNames: ['self'], + }, + ], + '@typescript-eslint/no-unnecessary-condition': ['warn', { allowConstantLoopConditions: true }], + '@typescript-eslint/no-unused-vars': [ + 'warn', + { + varsIgnorePattern: '^_', + ignoreRestSiblings: true, + argsIgnorePattern: '^_', + }, + ], + 'no-use-before-define': 'off', + '@typescript-eslint/no-invalid-void-type': ['error', { allowAsThisParameter: true }], + '@typescript-eslint/no-use-before-define': 'error', + '@typescript-eslint/no-useless-constructor': 'warn', + '@typescript-eslint/prefer-readonly': 'warn', + '@typescript-eslint/prefer-regexp-exec': 'warn', + '@typescript-eslint/prefer-string-starts-ends-with': 'warn', + '@typescript-eslint/restrict-template-expressions': 'off', + '@typescript-eslint/return-await': ['warn', 'in-try-catch'], + '@typescript-eslint/unbound-method': ['warn', { ignoreStatic: true }], + + 'import/order': [ + 'error', + { + groups: [['builtin', 'external', 'internal']], + }, + ], + 'import/no-deprecated': 'warn', + 'import/no-empty-named-blocks': 'warn', + + 'sonarjs/anchor-is-valid': 'off', // We use jsx-a11y/anchor-is-valid + 'sonarjs/assertions-in-tests': 'warn', + 'sonarjs/class-name': 'off', + 'sonarjs/cognitive-complexity': 'warn', + 'sonarjs/concise-regex': 'warn', + 'sonarjs/fixme-tag': 'off', + 'sonarjs/function-return-type': 'off', + 'sonarjs/max-switch-cases': 'warn', + 'sonarjs/no-base-to-string': 'off', // We use @typescript-eslint/no-base-to-string + 'sonarjs/no-duplicate-string': 'off', + 'sonarjs/no-element-overwrite': 'warn', + 'sonarjs/no-misused-promises': 'off', // We use @typescript-eslint/no-misused-promises + 'sonarjs/no-nested-functions': 'warn', + 'sonarjs/no-redundant-optional': 'off', + 'sonarjs/no-small-switch': 'warn', + 'sonarjs/prefer-nullish-coalescing': 'off', // We use @typescript-eslint/prefer-nullish-coalescing instead + 'sonarjs/redundant-type-aliases': 'off', + 'sonarjs/sonar-no-unused-vars': 'off', // We use @typescript-eslint/no-unused-vars + 'sonarjs/void-use': 'off', + + 'promise/catch-or-return': 'off', + 'promise/no-return-wrap': 'error', + 'promise/param-names': 'error', + 'promise/always-return': 'off', + 'promise/no-native': 'off', + 'promise/no-nesting': 'warn', + 'promise/no-promise-in-callback': 'warn', + 'promise/no-callback-in-promise': 'warn', + 'promise/avoid-new': 'off', + 'promise/no-new-statics': 'error', + 'promise/no-return-in-finally': 'error', + 'promise/valid-params': 'warn', + 'promise/prefer-await-to-then': 'off', + 'promise/prefer-await-to-callbacks': 'off', + }, + }, + { + settings: { + 'import/resolver': { + typescript: true, + node: true, + }, + }, + }, +]; + +export default configs; diff --git a/package-lock.json b/package-lock.json index 35b9636f..0553f610 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,20 @@ { "name": "@myrotvorets/eslint-config-myrotvorets-ts", - "version": "2.27.4", + "version": "3.0.0-rc.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@myrotvorets/eslint-config-myrotvorets-ts", - "version": "2.27.4", + "version": "3.0.0-rc.0", "license": "MIT", "dependencies": { "@typescript-eslint/parser": "^8.0.0", - "eslint-config-prettier": "^9.0.0" + "eslint-config-prettier": "^9.0.0", + "typescript-eslint": "^8.18.0" }, "devDependencies": { + "@eslint/js": "^9.16.0", "@typescript-eslint/eslint-plugin": "^8.0.0", "eslint": "^9.0.0", "eslint-import-resolver-typescript": "^3.6.1", @@ -20,17 +22,18 @@ "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-promise": "^7.0.0", "eslint-plugin-sonarjs": "^3.0.0", + "globals": "^15.13.0", "prettier": "^3.2.4", "typescript": "^5.3.3" }, "peerDependencies": { "@typescript-eslint/eslint-plugin": "^8.0.0", - "eslint": ">= 7", + "eslint": "^9.0.0", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.22.0", - "eslint-plugin-prettier": "^3.1.4 || ^4.0.0 || ^5.0.0", - "eslint-plugin-promise": "^5.0.0 || ^6.0.0 || ^7.0.0", - "eslint-plugin-sonarjs": "^1.0.0 || ^2.0.0" + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-promise": "^7.0.0", + "eslint-plugin-sonarjs": "^3.0.1" } }, "node_modules/@ampproject/remapping": { @@ -1952,6 +1955,18 @@ "concat-map": "0.0.1" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2056,9 +2071,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "dev": true, "license": "MIT", "dependencies": { @@ -2230,7 +2245,6 @@ "version": "8.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz", "integrity": "sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw==", - "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", @@ -2256,79 +2270,16 @@ "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz", - "integrity": "sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.18.0", - "@typescript-eslint/visitor-keys": "8.18.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.0.tgz", - "integrity": "sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/parser": { "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz", - "integrity": "sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.0.tgz", + "integrity": "sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q==", + "license": "MITClause", "dependencies": { + "@typescript-eslint/scope-manager": "8.18.0", "@typescript-eslint/types": "8.18.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.17.0.tgz", - "integrity": "sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "8.17.0", - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/typescript-estree": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0", + "@typescript-eslint/typescript-estree": "8.18.0", + "@typescript-eslint/visitor-keys": "8.18.0", "debug": "^4.3.4" }, "engines": { @@ -2339,22 +2290,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz", - "integrity": "sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz", + "integrity": "sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==", "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0" + "@typescript-eslint/types": "8.18.0", + "@typescript-eslint/visitor-keys": "8.18.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2368,7 +2315,6 @@ "version": "8.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.0.tgz", "integrity": "sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==", - "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "8.18.0", @@ -2388,11 +2334,10 @@ "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "node_modules/@typescript-eslint/types": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.0.tgz", "integrity": "sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==", - "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2402,11 +2347,10 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/typescript-estree": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz", "integrity": "sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==", - "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/types": "8.18.0", @@ -2429,83 +2373,10 @@ "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz", - "integrity": "sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.18.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.17.0.tgz", - "integrity": "sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==", - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz", - "integrity": "sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/utils": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.0.tgz", "integrity": "sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==", - "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", @@ -2525,70 +2396,10 @@ "typescript": ">=4.8.4 <5.8.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz", - "integrity": "sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.18.0", - "@typescript-eslint/visitor-keys": "8.18.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.0.tgz", - "integrity": "sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz", - "integrity": "sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.18.0", - "@typescript-eslint/visitor-keys": "8.18.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "node_modules/@typescript-eslint/visitor-keys": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz", "integrity": "sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==", - "dev": true, "license": "MIT", "dependencies": { "@typescript-eslint/types": "8.18.0", @@ -2602,36 +2413,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/utils/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz", - "integrity": "sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.17.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", @@ -2993,9 +2774,9 @@ } }, "node_modules/call-bind-apply-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.0.tgz", - "integrity": "sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", "dev": true, "license": "MIT", "dependencies": { @@ -3006,6 +2787,23 @@ "node": ">= 0.4" } }, + "node_modules/call-bound": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.2.tgz", + "integrity": "sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "get-intrinsic": "^1.2.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3253,9 +3051,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.71", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.71.tgz", - "integrity": "sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==", + "version": "1.5.73", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.73.tgz", + "integrity": "sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==", "dev": true, "license": "ISC" }, @@ -4065,20 +3863,22 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.5.tgz", - "integrity": "sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", + "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.0", + "call-bind-apply-helpers": "^1.0.1", "dunder-proto": "^1.0.0", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", "gopd": "^1.2.0", "has-symbols": "^1.1.0", - "hasown": "^2.0.2" + "hasown": "^2.0.2", + "math-intrinsics": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -4131,9 +3931,10 @@ } }, "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "version": "15.13.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", + "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", + "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -4183,7 +3984,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, "license": "MIT" }, "node_modules/has-bigints": { @@ -4861,6 +4661,16 @@ "yallist": "^3.0.2" } }, + "node_modules/math-intrinsics": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.0.0.tgz", + "integrity": "sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4921,9 +4731,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "dev": true, "license": "MIT" }, @@ -5535,16 +5345,73 @@ } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -5561,16 +5428,19 @@ "license": "MIT" }, "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5580,16 +5450,20 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5846,6 +5720,28 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.18.0.tgz", + "integrity": "sha512-Xq2rRjn6tzVpAyHr3+nmSg1/9k9aIHnJ2iZeOH7cfGOWqTkXTm3kwpQglEuLGdNrYvPF+2gtAs+/KF5rjVo+WQ==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.18.0", + "@typescript-eslint/parser": "8.18.0", + "@typescript-eslint/utils": "8.18.0" + }, + "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", + "typescript": ">=4.8.4 <5.8.0" + } + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", diff --git a/package.json b/package.json index 57a714d0..7b6b81dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@myrotvorets/eslint-config-myrotvorets-ts", - "version": "2.27.4", + "version": "3.0.0-rc.0", "description": "ESLint configuration for TypeScript", "main": "index.js", "files": [ @@ -13,14 +13,15 @@ "license": "MIT", "peerDependencies": { "@typescript-eslint/eslint-plugin": "^8.0.0", - "eslint": ">= 7", + "eslint": "^9.0.0", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.22.0", - "eslint-plugin-prettier": "^3.1.4 || ^4.0.0 || ^5.0.0", - "eslint-plugin-promise": "^5.0.0 || ^6.0.0 || ^7.0.0", - "eslint-plugin-sonarjs": "^1.0.0 || ^2.0.0" + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-promise": "^7.0.0", + "eslint-plugin-sonarjs": "^3.0.1" }, "devDependencies": { + "@eslint/js": "^9.16.0", "@typescript-eslint/eslint-plugin": "^8.0.0", "eslint": "^9.0.0", "eslint-import-resolver-typescript": "^3.6.1", @@ -28,12 +29,14 @@ "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-promise": "^7.0.0", "eslint-plugin-sonarjs": "^3.0.0", + "globals": "^15.13.0", "prettier": "^3.2.4", "typescript": "^5.3.3" }, "dependencies": { "@typescript-eslint/parser": "^8.0.0", - "eslint-config-prettier": "^9.0.0" + "eslint-config-prettier": "^9.0.0", + "typescript-eslint": "^8.18.0" }, "repository": { "type": "git",