diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f7e3eb6e2db..2b8ab0a05202 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,26 @@ +## 8.45.0 (2025-09-29) + +### 🚀 Features + +- **eslint-plugin:** expose rule name via RuleModule interface ([#11616](https://github.com/typescript-eslint/typescript-eslint/pull/11616)) + +### 🩹 Fixes + +- disable generating declaration maps ([#11627](https://github.com/typescript-eslint/typescript-eslint/pull/11627)) +- **ast-spec:** narrow ArrowFunctionExpression.generator to false ([#11636](https://github.com/typescript-eslint/typescript-eslint/pull/11636)) +- **eslint-plugin:** [no-base-to-string] check if superclass is ignored ([#11617](https://github.com/typescript-eslint/typescript-eslint/pull/11617)) +- **eslint-plugin:** [prefer-nullish-coalescing] ignoreBooleanCoercion should not apply to top-level ternary expressions ([#11614](https://github.com/typescript-eslint/typescript-eslint/pull/11614)) + +### ❤️ Thank You + +- Bjorn Lu +- Josh Goldberg ✨ +- mdm317 +- Moses Odutusin @thebolarin +- Yukihiro Hasegawa @y-hsgw + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) ### 🩹 Fixes diff --git a/docs/troubleshooting/faqs/JavaScript.mdx b/docs/troubleshooting/faqs/JavaScript.mdx index ac445281df3f..00e4acaf726c 100644 --- a/docs/troubleshooting/faqs/JavaScript.mdx +++ b/docs/troubleshooting/faqs/JavaScript.mdx @@ -11,7 +11,10 @@ import TabItem from '@theme/TabItem'; This is to be expected - ESLint rules do not check file extensions on purpose, as it causes issues in environments that use non-standard extensions (for example, a `.vue` and a `.md` file can both contain TypeScript code to be linted). -If you have some pure JavaScript code that you do not want to apply certain lint rules to, then you can use [ESLint's `overrides` configuration](https://eslint.org/docs/user-guide/configuring#configuration-based-on-glob-patterns) to turn off certain rules, or even change the parser based on glob patterns. +If you have some pure JavaScript code that you do not want to apply certain lint rules to, then you can use [ESLint's `files` configuration](https://eslint.org/docs/latest/use/configure/configuration-files#specifying-files-and-ignores) to either: + +- (recommended) only enable TypeScript-specific rules on TypeScript file extensions +- turn off TypeScript-specific rules on JavaScript-only file extensions ## Should I run ESLint on transpiled output JavaScript files? diff --git a/docs/users/Shared_Configurations.mdx b/docs/users/Shared_Configurations.mdx index ea4c554e37af..ae59cd7c360b 100644 --- a/docs/users/Shared_Configurations.mdx +++ b/docs/users/Shared_Configurations.mdx @@ -67,14 +67,21 @@ module.exports = { If your project enables [typed linting](../getting-started/Typed_Linting.mdx), we suggest enabling the [`recommended-type-checked`](#recommended-type-checked) and [`stylistic-type-checked`](#stylistic-type-checked) configurations to start: +:::note +To use type-checking, you also need to configure `languageOptions.parserOptions` as shown in [typed linting docs](../getting-started/Typed_Linting.mdx). +::: + ```js title="eslint.config.mjs" export default defineConfig( eslint.configs.recommended, + // Added lines start tseslint.configs.recommendedTypeChecked, tseslint.configs.stylisticTypeChecked, + // Added lines end + // Other configuration... ); ``` @@ -85,9 +92,12 @@ export default defineConfig( module.exports = { extends: [ 'eslint:recommended', + // Added lines start 'plugin:@typescript-eslint/recommended-type-checked', 'plugin:@typescript-eslint/stylistic-type-checked', + // Added lines end ], + // Other configuration... }; ``` diff --git a/eslint.config.mjs b/eslint.config.mjs index 391214cb6184..433085ceae89 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -322,6 +322,7 @@ export default defineConfig( 'jsdoc/tag-lines': 'off', 'regexp/no-dupe-disjunctions': 'error', + 'regexp/no-missing-g-flag': 'error', 'regexp/no-useless-character-class': 'error', 'regexp/no-useless-flag': 'error', 'regexp/no-useless-lazy': 'error', diff --git a/knip.ts b/knip.ts index 2756c39029ba..517eedc8bd68 100644 --- a/knip.ts +++ b/knip.ts @@ -116,11 +116,7 @@ export default { }, 'packages/types': { - project: [ - 'src/**/*.ts!', - '!src/generated/**/*.ts', - 'tools/copy-ast-spec.mts', - ], + project: ['src/**/*.ts!', '!src/generated/**/*.ts'], }, 'packages/typescript-estree': { @@ -179,7 +175,6 @@ export default { '@docusaurus/useDocusaurusContext', '@docusaurus/useBaseUrl', '@docusaurus/BrowserOnly', - '@docusaurus/module-type-aliases', '@generated/docusaurus.config', '^@site/.*', '^@theme/.*', @@ -203,7 +198,7 @@ export default { ], ignoreDependencies: [ // virtual module - 'vt', + 'vt:*', ], }, 'tools/dummypkg': {}, diff --git a/packages/ast-spec/CHANGELOG.md b/packages/ast-spec/CHANGELOG.md index fec4e2abcc96..bc0e07c46d14 100644 --- a/packages/ast-spec/CHANGELOG.md +++ b/packages/ast-spec/CHANGELOG.md @@ -1,3 +1,15 @@ +## 8.45.0 (2025-09-29) + +### 🩹 Fixes + +- **ast-spec:** narrow ArrowFunctionExpression.generator to false ([#11636](https://github.com/typescript-eslint/typescript-eslint/pull/11636)) + +### ❤️ Thank You + +- Josh Goldberg ✨ + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) ### 🩹 Fixes diff --git a/packages/ast-spec/package.json b/packages/ast-spec/package.json index 788732adc36f..c043b77b4dbb 100644 --- a/packages/ast-spec/package.json +++ b/packages/ast-spec/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/ast-spec", - "version": "8.44.1", + "version": "8.45.0", "description": "Complete specification for the TypeScript-ESTree AST", "private": true, "keywords": [ diff --git a/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/fixture.ts b/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/fixture.ts index fe9d09f5c8b5..bbf0ef59cee9 100644 --- a/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/fixture.ts +++ b/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/fixture.ts @@ -1,3 +1,3 @@ class Foo { - accessor '\u{63}onstructor' + accessor 'construct\u{6f}r' } diff --git a/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot index 1efee502ef1a..bb514364efe2 100644 --- a/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot +++ b/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot @@ -3,7 +3,7 @@ exports[`AST Fixtures > element > AccessorProperty > _error_ > key-constructor-string-escaped > TSESTree - Error`] TSError 1 | class Foo { -> 2 | accessor '\u{63}onstructor' +> 2 | accessor 'construct\u{6f}r' | ^^^^^^^^^^^^^^^^^^ Classes may not have a field named 'constructor'. 3 | } 4 | diff --git a/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot index b36c85229b5d..056333536528 100644 --- a/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot +++ b/packages/ast-spec/src/element/AccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot @@ -3,7 +3,7 @@ exports[`AST Fixtures > element > AccessorProperty > _error_ > key-constructor-string-escaped > Babel - Error`] BabelError 1 | class Foo { -> 2 | accessor '\u{63}onstructor' +> 2 | accessor 'construct\u{6f}r' | ^ Classes may not have a field named 'constructor'. (2:11) 3 | } 4 | diff --git a/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/fixture.ts b/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/fixture.ts index 5dc0386f85fe..3449ebe932d7 100644 --- a/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/fixture.ts +++ b/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/fixture.ts @@ -1,3 +1,3 @@ class Foo { - '\u{63}onstructor' + 'construct\u{6f}r' } diff --git a/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot index 53cc50de6a35..e7cc82f40aad 100644 --- a/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot +++ b/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot @@ -3,7 +3,7 @@ exports[`AST Fixtures > element > PropertyDefinition > _error_ > key-constructor-string-escaped > TSESTree - Error`] TSError 1 | class Foo { -> 2 | '\u{63}onstructor' +> 2 | 'construct\u{6f}r' | ^^^^^^^^^^^^^^^^^^ Classes may not have a field named 'constructor'. 3 | } 4 | diff --git a/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot index 130b27dcc413..702bec4df14e 100644 --- a/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot +++ b/packages/ast-spec/src/element/PropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot @@ -3,7 +3,7 @@ exports[`AST Fixtures > element > PropertyDefinition > _error_ > key-constructor-string-escaped > Babel - Error`] BabelError 1 | class Foo { -> 2 | '\u{63}onstructor' +> 2 | 'construct\u{6f}r' | ^ Classes may not have a field named 'constructor'. (2:2) 3 | } 4 | diff --git a/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/fixture.ts b/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/fixture.ts index 2d83385d93bf..cf5081dbe114 100644 --- a/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/fixture.ts +++ b/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/fixture.ts @@ -1,3 +1,3 @@ abstract class Foo { - accessor '\u{63}onstructor' + accessor 'construct\u{6f}r' } diff --git a/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot index e2a98ea43e52..c852da13a3fa 100644 --- a/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot +++ b/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot @@ -3,7 +3,7 @@ exports[`AST Fixtures > element > TSAbstractAccessorProperty > _error_ > key-constructor-string-escaped > TSESTree - Error`] TSError 1 | abstract class Foo { -> 2 | accessor '\u{63}onstructor' +> 2 | accessor 'construct\u{6f}r' | ^^^^^^^^^^^^^^^^^^ Classes may not have a field named 'constructor'. 3 | } 4 | diff --git a/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot index 73035ad32ef8..8b2bdb1d6685 100644 --- a/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot +++ b/packages/ast-spec/src/element/TSAbstractAccessorProperty/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot @@ -3,7 +3,7 @@ exports[`AST Fixtures > element > TSAbstractAccessorProperty > _error_ > key-constructor-string-escaped > Babel - Error`] BabelError 1 | abstract class Foo { -> 2 | accessor '\u{63}onstructor' +> 2 | accessor 'construct\u{6f}r' | ^ Classes may not have a field named 'constructor'. (2:11) 3 | } 4 | diff --git a/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/fixture.ts b/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/fixture.ts index 3964b6ad536d..59eeeb52941e 100644 --- a/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/fixture.ts +++ b/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/fixture.ts @@ -1,3 +1,3 @@ abstract class Foo { - '\u{63}onstructor' + 'construct\u{6f}r' } diff --git a/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot b/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot index 832a69aba874..7db0a089389d 100644 --- a/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot +++ b/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/1-TSESTree-Error.shot @@ -3,7 +3,7 @@ exports[`AST Fixtures > element > TSAbstractPropertyDefinition > _error_ > key-constructor-string-escaped > TSESTree - Error`] TSError 1 | abstract class Foo { -> 2 | '\u{63}onstructor' +> 2 | 'construct\u{6f}r' | ^^^^^^^^^^^^^^^^^^ Classes may not have a field named 'constructor'. 3 | } 4 | diff --git a/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot b/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot index 972fa63aaaf7..3d7fc01c39af 100644 --- a/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot +++ b/packages/ast-spec/src/element/TSAbstractPropertyDefinition/fixtures/_error_/key-constructor-string-escaped/snapshots/2-Babel-Error.shot @@ -3,7 +3,7 @@ exports[`AST Fixtures > element > TSAbstractPropertyDefinition > _error_ > key-constructor-string-escaped > Babel - Error`] BabelError 1 | abstract class Foo { -> 2 | '\u{63}onstructor' +> 2 | 'construct\u{6f}r' | ^ Classes may not have a field named 'constructor'. (2:2) 3 | } 4 | diff --git a/packages/ast-spec/src/expression/ArrowFunctionExpression/spec.ts b/packages/ast-spec/src/expression/ArrowFunctionExpression/spec.ts index 271578f8f01f..f160bf5d23d0 100644 --- a/packages/ast-spec/src/expression/ArrowFunctionExpression/spec.ts +++ b/packages/ast-spec/src/expression/ArrowFunctionExpression/spec.ts @@ -11,7 +11,7 @@ export interface ArrowFunctionExpression extends BaseNode { async: boolean; body: BlockStatement | Expression; expression: boolean; - generator: boolean; + generator: false; id: null; params: Parameter[]; returnType: TSTypeAnnotation | undefined; diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index f12996c79142..1b53ed8e8843 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -1,3 +1,22 @@ +## 8.45.0 (2025-09-29) + +### 🚀 Features + +- **eslint-plugin:** expose rule name via RuleModule interface ([#11616](https://github.com/typescript-eslint/typescript-eslint/pull/11616)) + +### 🩹 Fixes + +- **eslint-plugin:** [prefer-nullish-coalescing] ignoreBooleanCoercion should not apply to top-level ternary expressions ([#11614](https://github.com/typescript-eslint/typescript-eslint/pull/11614)) +- **eslint-plugin:** [no-base-to-string] check if superclass is ignored ([#11617](https://github.com/typescript-eslint/typescript-eslint/pull/11617)) + +### ❤️ Thank You + +- mdm317 +- Moses Odutusin @thebolarin +- Yukihiro Hasegawa @y-hsgw + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) ### 🩹 Fixes diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index d01ee4e12e8b..84bce94a40c2 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/eslint-plugin", - "version": "8.44.1", + "version": "8.45.0", "description": "TypeScript plugin for ESLint", "files": [ "dist", @@ -59,10 +59,10 @@ }, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.44.1", - "@typescript-eslint/type-utils": "8.44.1", - "@typescript-eslint/utils": "8.44.1", - "@typescript-eslint/visitor-keys": "8.44.1", + "@typescript-eslint/scope-manager": "8.45.0", + "@typescript-eslint/type-utils": "8.45.0", + "@typescript-eslint/utils": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -71,8 +71,8 @@ "devDependencies": { "@types/mdast": "^4.0.3", "@types/natural-compare": "*", - "@typescript-eslint/rule-schema-to-typescript-types": "8.44.1", - "@typescript-eslint/rule-tester": "8.44.1", + "@typescript-eslint/rule-schema-to-typescript-types": "8.45.0", + "@typescript-eslint/rule-tester": "8.45.0", "@vitest/coverage-v8": "^3.1.3", "ajv": "^6.12.6", "cross-fetch": "*", @@ -92,7 +92,7 @@ "vitest": "^3.1.3" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.44.1", + "@typescript-eslint/parser": "^8.45.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" }, diff --git a/packages/eslint-plugin/src/rules/no-base-to-string.ts b/packages/eslint-plugin/src/rules/no-base-to-string.ts index 53d50bd4694f..3612dc3da1ce 100644 --- a/packages/eslint-plugin/src/rules/no-base-to-string.ts +++ b/packages/eslint-plugin/src/rules/no-base-to-string.ts @@ -212,6 +212,36 @@ export default createRule({ return Usefulness.Always; } + function hasBaseTypes(type: ts.Type): type is ts.InterfaceType { + return ( + tsutils.isObjectType(type) && + tsutils.isObjectFlagSet( + type, + ts.ObjectFlags.Interface | ts.ObjectFlags.Class, + ) + ); + } + + function isIgnoredTypeOrBase( + type: ts.Type, + seen = new Set(), + ): boolean { + if (seen.has(type)) { + return false; + } + + seen.add(type); + + const typeName = getTypeName(checker, type); + return ( + ignoredTypeNames.includes(typeName) || + (hasBaseTypes(type) && + checker + .getBaseTypes(type) + .some(base => isIgnoredTypeOrBase(base, seen))) + ); + } + function collectToStringCertainty( type: ts.Type, visited: Set, @@ -249,7 +279,7 @@ export default createRule({ return Usefulness.Always; } - if (ignoredTypeNames.includes(getTypeName(checker, type))) { + if (isIgnoredTypeOrBase(type)) { return Usefulness.Always; } diff --git a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts index d611e7b079a9..0956b558b10a 100644 --- a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts +++ b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts @@ -301,7 +301,11 @@ export default createRule({ if ( ignoreBooleanCoercion === true && - isBooleanConstructorContext(node, context) + isBooleanConstructorContext(node, context) && + !( + node.type === AST_NODE_TYPES.ConditionalExpression && + node.parent.type === AST_NODE_TYPES.CallExpression + ) ) { return false; } diff --git a/packages/eslint-plugin/tests/rules/no-base-to-string.test.ts b/packages/eslint-plugin/tests/rules/no-base-to-string.test.ts index 7e6fa055b55e..a75e9130b921 100644 --- a/packages/eslint-plugin/tests/rules/no-base-to-string.test.ts +++ b/packages/eslint-plugin/tests/rules/no-base-to-string.test.ts @@ -324,6 +324,47 @@ error.toString(); `, options: [{ ignoredTypeNames: ['MyError'] }], }, + { + code: ` +interface Animal {} +interface Serializable {} +interface Cat extends Animal, Serializable {} + +declare const whiskers: Cat; +whiskers.toString(); + `, + options: [{ ignoredTypeNames: ['Animal'] }], + }, + { + code: ` +interface MyError extends Error {} + +declare const error: MyError; +error.toString(); + `, + }, + { + code: ` +class UnknownBase {} +class CustomError extends UnknownBase {} + +declare const err: CustomError; +err.toString(); + `, + options: [{ ignoredTypeNames: ['UnknownBase'] }], + }, + { + code: ` +interface Animal {} +interface Dog extends Animal {} +interface Cat extends Animal {} + +declare const dog: Dog; +declare const cat: Cat; +cat.toString(); + `, + options: [{ ignoredTypeNames: ['Animal'] }], + }, ` function String(value) { return value; @@ -2265,5 +2306,60 @@ v.join(); }, ], }, + { + code: ` +interface Dog extends Animal {} + +declare const labrador: Dog; +labrador.toString(); + `, + errors: [ + { + data: { + certainty: 'will', + name: 'labrador', + }, + messageId: 'baseToString', + }, + ], + }, + { + code: ` +interface A extends B {} +interface B extends A {} + +declare const a: A; +a.toString(); + `, + errors: [ + { + data: { + certainty: 'will', + name: 'a', + }, + messageId: 'baseToString', + }, + ], + }, + { + code: ` + interface Base {} + interface Left extends Base {} + interface Right extends Base {} + interface Diamond extends Left, Right {} + + declare const d: Diamond; + d.toString(); + `, + errors: [ + { + data: { + certainty: 'will', + name: 'd', + }, + messageId: 'baseToString', + }, + ], + }, ], }); diff --git a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts index d05d538d2731..aa1fb5b9b018 100644 --- a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars-eslint.test.ts @@ -40,6 +40,7 @@ ruleTester.defineRule('use-every-a', { schema: [], type: 'problem', }, + name: 'use-every-a', }); /** diff --git a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts index 5f40bbcdc3cc..10014dcc66d7 100644 --- a/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts +++ b/packages/eslint-plugin/tests/rules/no-unused-vars/no-unused-vars.test.ts @@ -32,6 +32,7 @@ ruleTester.defineRule('collect-unused-vars', { schema: [], type: 'problem', }, + name: 'collect-unused-vars', }); ruleTester.run('no-unused-vars', rule, { diff --git a/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts b/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts index 618d1c244414..e2c5f17c8e5d 100644 --- a/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts +++ b/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts @@ -1253,32 +1253,6 @@ const test = Boolean(((a = b), b || c)); }, { code: ` -let a: string | true | undefined; -let b: string | boolean | undefined; - -const x = Boolean(a ? a : b); - `, - options: [ - { - ignoreBooleanCoercion: true, - }, - ], - }, - { - code: ` -let a: string | boolean | undefined; -let b: string | boolean | undefined; - -const test = Boolean(!a ? b : a); - `, - options: [ - { - ignoreBooleanCoercion: true, - }, - ], - }, - { - code: ` let a: string | boolean | undefined; let b: string | boolean | undefined; let c: string | boolean | undefined; @@ -5089,6 +5063,64 @@ const x = Boolean(1 + (a ?? b)); let a: string | true | undefined; let b: string | boolean | undefined; +const x = Boolean(a ? a : b); + `, + errors: [ + { + messageId: 'preferNullishOverTernary', + suggestions: [ + { + messageId: 'suggestNullish', + output: ` +let a: string | true | undefined; +let b: string | boolean | undefined; + +const x = Boolean(a ?? b); + `, + }, + ], + }, + ], + options: [ + { + ignoreBooleanCoercion: true, + }, + ], + }, + { + code: ` +let a: string | boolean | undefined; +let b: string | boolean | undefined; + +const test = Boolean(!a ? b : a); + `, + errors: [ + { + messageId: 'preferNullishOverTernary', + suggestions: [ + { + messageId: 'suggestNullish', + output: ` +let a: string | boolean | undefined; +let b: string | boolean | undefined; + +const test = Boolean(a ?? b); + `, + }, + ], + }, + ], + options: [ + { + ignoreBooleanCoercion: true, + }, + ], + }, + { + code: ` +let a: string | true | undefined; +let b: string | boolean | undefined; + declare function f(x: unknown): unknown; if (f(a || b)) { diff --git a/packages/parser/CHANGELOG.md b/packages/parser/CHANGELOG.md index e8a3d8afcb46..148e3265e057 100644 --- a/packages/parser/CHANGELOG.md +++ b/packages/parser/CHANGELOG.md @@ -1,3 +1,9 @@ +## 8.45.0 (2025-09-29) + +This was a version bump only for parser to align it with other projects, there were no code changes. + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) This was a version bump only for parser to align it with other projects, there were no code changes. diff --git a/packages/parser/package.json b/packages/parser/package.json index 8087809d4884..aa7f345fb173 100644 --- a/packages/parser/package.json +++ b/packages/parser/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/parser", - "version": "8.44.1", + "version": "8.45.0", "description": "An ESLint custom parser which leverages TypeScript ESTree", "files": [ "dist", @@ -51,10 +51,10 @@ "typescript": ">=4.8.4 <6.0.0" }, "dependencies": { - "@typescript-eslint/scope-manager": "8.44.1", - "@typescript-eslint/types": "8.44.1", - "@typescript-eslint/typescript-estree": "8.44.1", - "@typescript-eslint/visitor-keys": "8.44.1", + "@typescript-eslint/scope-manager": "8.45.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0", "debug": "^4.3.4" }, "devDependencies": { diff --git a/packages/project-service/CHANGELOG.md b/packages/project-service/CHANGELOG.md index 55690ad57c69..7217085d8e88 100644 --- a/packages/project-service/CHANGELOG.md +++ b/packages/project-service/CHANGELOG.md @@ -1,3 +1,9 @@ +## 8.45.0 (2025-09-29) + +This was a version bump only for project-service to align it with other projects, there were no code changes. + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) This was a version bump only for project-service to align it with other projects, there were no code changes. diff --git a/packages/project-service/package.json b/packages/project-service/package.json index be0d5ba771fb..8954ebe69165 100644 --- a/packages/project-service/package.json +++ b/packages/project-service/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/project-service", - "version": "8.44.1", + "version": "8.45.0", "description": "Standalone TypeScript project service wrapper for linting.", "files": [ "dist", @@ -49,8 +49,8 @@ "typescript": ">=4.8.4 <6.0.0" }, "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.44.1", - "@typescript-eslint/types": "^8.44.1", + "@typescript-eslint/tsconfig-utils": "^8.45.0", + "@typescript-eslint/types": "^8.45.0", "debug": "^4.3.4" }, "devDependencies": { diff --git a/packages/rule-schema-to-typescript-types/CHANGELOG.md b/packages/rule-schema-to-typescript-types/CHANGELOG.md index 29320dcf7a2d..17977ab0492a 100644 --- a/packages/rule-schema-to-typescript-types/CHANGELOG.md +++ b/packages/rule-schema-to-typescript-types/CHANGELOG.md @@ -1,3 +1,9 @@ +## 8.45.0 (2025-09-29) + +This was a version bump only for rule-schema-to-typescript-types to align it with other projects, there were no code changes. + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) This was a version bump only for rule-schema-to-typescript-types to align it with other projects, there were no code changes. diff --git a/packages/rule-schema-to-typescript-types/package.json b/packages/rule-schema-to-typescript-types/package.json index 8eee73cef414..bdb5dc885613 100644 --- a/packages/rule-schema-to-typescript-types/package.json +++ b/packages/rule-schema-to-typescript-types/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/rule-schema-to-typescript-types", - "version": "8.44.1", + "version": "8.45.0", "private": true, "type": "commonjs", "exports": { @@ -32,8 +32,8 @@ "typecheck": "yarn run -BT nx typecheck" }, "dependencies": { - "@typescript-eslint/type-utils": "8.44.1", - "@typescript-eslint/utils": "8.44.1", + "@typescript-eslint/type-utils": "8.45.0", + "@typescript-eslint/utils": "8.45.0", "natural-compare": "^1.4.0", "prettier": "3.6.2" }, diff --git a/packages/rule-tester/CHANGELOG.md b/packages/rule-tester/CHANGELOG.md index 89c694b8fa62..3c613e796f41 100644 --- a/packages/rule-tester/CHANGELOG.md +++ b/packages/rule-tester/CHANGELOG.md @@ -1,3 +1,15 @@ +## 8.45.0 (2025-09-29) + +### 🚀 Features + +- **eslint-plugin:** expose rule name via RuleModule interface ([#11616](https://github.com/typescript-eslint/typescript-eslint/pull/11616)) + +### ❤️ Thank You + +- Yukihiro Hasegawa @y-hsgw + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) This was a version bump only for rule-tester to align it with other projects, there were no code changes. diff --git a/packages/rule-tester/package.json b/packages/rule-tester/package.json index 9472a7d024b0..87eccdd8595f 100644 --- a/packages/rule-tester/package.json +++ b/packages/rule-tester/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/rule-tester", - "version": "8.44.1", + "version": "8.45.0", "description": "Tooling to test ESLint rules", "files": [ "dist", @@ -44,9 +44,9 @@ }, "//": "NOTE - AJV is out-of-date, but it's intentionally synced with ESLint - https://github.com/eslint/eslint/blob/ad9dd6a933fd098a0d99c6a9aa059850535c23ee/package.json#L70", "dependencies": { - "@typescript-eslint/parser": "8.44.1", - "@typescript-eslint/typescript-estree": "8.44.1", - "@typescript-eslint/utils": "8.44.1", + "@typescript-eslint/parser": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0", + "@typescript-eslint/utils": "8.45.0", "ajv": "^6.12.6", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "4.6.2", diff --git a/packages/rule-tester/tests/RuleTester.test.ts b/packages/rule-tester/tests/RuleTester.test.ts index 73a5a05d45cf..054986010bc9 100644 --- a/packages/rule-tester/tests/RuleTester.test.ts +++ b/packages/rule-tester/tests/RuleTester.test.ts @@ -94,6 +94,7 @@ const NOOP_RULE: RuleModule<'error'> = { schema: [], type: 'problem', }, + name: 'rule', }; function windowsToPosixPath(p: string): string { @@ -1108,6 +1109,7 @@ describe('RuleTester - hooks', () => { schema: [], type: 'problem', }, + name: 'rule', }; const ruleTester = new RuleTester(); @@ -1331,6 +1333,7 @@ describe('RuleTester - multipass fixer', () => { schema: [], type: 'problem', }, + name: 'rule', }; it('passes with no output', () => { @@ -1416,6 +1419,7 @@ describe('RuleTester - multipass fixer', () => { schema: [], type: 'problem', }, + name: 'rule', }; it('passes with correct string output', () => { @@ -1538,6 +1542,7 @@ describe('RuleTester - multipass fixer', () => { schema: [], type: 'problem', }, + name: 'rule', }; it('passes with correct array output', () => { @@ -1644,6 +1649,7 @@ describe('RuleTester - run types', () => { ], type: 'suggestion', }, + name: 'rule', }; describe('infer from `rule` parameter', () => { diff --git a/packages/rule-tester/tests/filename.test.ts b/packages/rule-tester/tests/filename.test.ts index 8f3442cf670a..943ab1894a38 100644 --- a/packages/rule-tester/tests/filename.test.ts +++ b/packages/rule-tester/tests/filename.test.ts @@ -19,6 +19,7 @@ const rule = ESLintUtils.RuleCreator.withoutDocs({ type: 'problem', hasSuggestions: true, }, + name: 'rule', defaultOptions: [], create: context => ({ Program(node): void { diff --git a/packages/scope-manager/CHANGELOG.md b/packages/scope-manager/CHANGELOG.md index 8f5948ab1f82..2caf9fb9dc4a 100644 --- a/packages/scope-manager/CHANGELOG.md +++ b/packages/scope-manager/CHANGELOG.md @@ -1,3 +1,9 @@ +## 8.45.0 (2025-09-29) + +This was a version bump only for scope-manager to align it with other projects, there were no code changes. + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) This was a version bump only for scope-manager to align it with other projects, there were no code changes. diff --git a/packages/scope-manager/package.json b/packages/scope-manager/package.json index 22e2476b5b90..fb9c03271b02 100644 --- a/packages/scope-manager/package.json +++ b/packages/scope-manager/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/scope-manager", - "version": "8.44.1", + "version": "8.45.0", "description": "TypeScript scope analyser for ESLint", "files": [ "dist", @@ -47,11 +47,11 @@ "typecheck": "yarn run -BT nx typecheck" }, "dependencies": { - "@typescript-eslint/types": "8.44.1", - "@typescript-eslint/visitor-keys": "8.44.1" + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0" }, "devDependencies": { - "@typescript-eslint/typescript-estree": "8.44.1", + "@typescript-eslint/typescript-estree": "8.45.0", "@vitest/coverage-v8": "^3.1.3", "@vitest/pretty-format": "^3.1.3", "eslint": "*", diff --git a/packages/tsconfig-utils/CHANGELOG.md b/packages/tsconfig-utils/CHANGELOG.md index d4c37732a9f4..c46f153905b3 100644 --- a/packages/tsconfig-utils/CHANGELOG.md +++ b/packages/tsconfig-utils/CHANGELOG.md @@ -1,3 +1,9 @@ +## 8.45.0 (2025-09-29) + +This was a version bump only for tsconfig-utils to align it with other projects, there were no code changes. + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) This was a version bump only for tsconfig-utils to align it with other projects, there were no code changes. diff --git a/packages/tsconfig-utils/package.json b/packages/tsconfig-utils/package.json index fa1b2e343954..286854329c8b 100644 --- a/packages/tsconfig-utils/package.json +++ b/packages/tsconfig-utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/tsconfig-utils", - "version": "8.44.1", + "version": "8.45.0", "description": "Utilities for collecting TSConfigs for linting scenarios.", "files": [ "dist", diff --git a/packages/type-utils/CHANGELOG.md b/packages/type-utils/CHANGELOG.md index acc90600162d..6f95accd3e83 100644 --- a/packages/type-utils/CHANGELOG.md +++ b/packages/type-utils/CHANGELOG.md @@ -1,3 +1,9 @@ +## 8.45.0 (2025-09-29) + +This was a version bump only for type-utils to align it with other projects, there were no code changes. + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) This was a version bump only for type-utils to align it with other projects, there were no code changes. diff --git a/packages/type-utils/package.json b/packages/type-utils/package.json index a1b7b766950a..9816f01f37cb 100644 --- a/packages/type-utils/package.json +++ b/packages/type-utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/type-utils", - "version": "8.44.1", + "version": "8.45.0", "description": "Type utilities for working with TypeScript + ESLint together", "files": [ "dist", @@ -44,9 +44,9 @@ "typecheck": "yarn run -BT nx typecheck" }, "dependencies": { - "@typescript-eslint/types": "8.44.1", - "@typescript-eslint/typescript-estree": "8.44.1", - "@typescript-eslint/utils": "8.44.1", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0", + "@typescript-eslint/utils": "8.45.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -55,7 +55,7 @@ "typescript": ">=4.8.4 <6.0.0" }, "devDependencies": { - "@typescript-eslint/parser": "8.44.1", + "@typescript-eslint/parser": "8.45.0", "@vitest/coverage-v8": "^3.1.3", "ajv": "^6.12.6", "eslint": "*", diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index 75911ee3b7f0..06a9fadf74df 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -1,3 +1,9 @@ +## 8.45.0 (2025-09-29) + +This was a version bump only for types to align it with other projects, there were no code changes. + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) This was a version bump only for types to align it with other projects, there were no code changes. diff --git a/packages/types/package.json b/packages/types/package.json index e531f0e52f24..272df4eddb9c 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/types", - "version": "8.44.1", + "version": "8.45.0", "description": "Types for the TypeScript-ESTree AST spec", "files": [ "dist", diff --git a/packages/typescript-eslint/CHANGELOG.md b/packages/typescript-eslint/CHANGELOG.md index ea0fe52260b5..307c04862040 100644 --- a/packages/typescript-eslint/CHANGELOG.md +++ b/packages/typescript-eslint/CHANGELOG.md @@ -1,3 +1,9 @@ +## 8.45.0 (2025-09-29) + +This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) This was a version bump only for typescript-eslint to align it with other projects, there were no code changes. diff --git a/packages/typescript-eslint/package.json b/packages/typescript-eslint/package.json index 9b2cae39fca3..c7767100da6c 100644 --- a/packages/typescript-eslint/package.json +++ b/packages/typescript-eslint/package.json @@ -1,6 +1,6 @@ { "name": "typescript-eslint", - "version": "8.44.1", + "version": "8.45.0", "description": "Tooling which enables you to use TypeScript with ESLint", "files": [ "dist", @@ -50,10 +50,10 @@ "typecheck": "yarn run -BT nx typecheck" }, "dependencies": { - "@typescript-eslint/eslint-plugin": "8.44.1", - "@typescript-eslint/parser": "8.44.1", - "@typescript-eslint/typescript-estree": "8.44.1", - "@typescript-eslint/utils": "8.44.1" + "@typescript-eslint/eslint-plugin": "8.45.0", + "@typescript-eslint/parser": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0", + "@typescript-eslint/utils": "8.45.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", diff --git a/packages/typescript-estree/CHANGELOG.md b/packages/typescript-estree/CHANGELOG.md index d22e93409134..0230830c43ef 100644 --- a/packages/typescript-estree/CHANGELOG.md +++ b/packages/typescript-estree/CHANGELOG.md @@ -1,3 +1,9 @@ +## 8.45.0 (2025-09-29) + +This was a version bump only for typescript-estree to align it with other projects, there were no code changes. + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) ### 🩹 Fixes diff --git a/packages/typescript-estree/package.json b/packages/typescript-estree/package.json index 82432de9dcf6..7f3e72f55f35 100644 --- a/packages/typescript-estree/package.json +++ b/packages/typescript-estree/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/typescript-estree", - "version": "8.44.1", + "version": "8.45.0", "description": "A parser that converts TypeScript source code into an ESTree compatible form", "files": [ "dist", @@ -52,10 +52,10 @@ "typecheck": "yarn run -BT nx typecheck" }, "dependencies": { - "@typescript-eslint/project-service": "8.44.1", - "@typescript-eslint/tsconfig-utils": "8.44.1", - "@typescript-eslint/types": "8.44.1", - "@typescript-eslint/visitor-keys": "8.44.1", + "@typescript-eslint/project-service": "8.45.0", + "@typescript-eslint/tsconfig-utils": "8.45.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", diff --git a/packages/typescript-estree/src/convert-comments.ts b/packages/typescript-estree/src/convert-comments.ts index 234f62ec802c..c1d6a6e05121 100644 --- a/packages/typescript-estree/src/convert-comments.ts +++ b/packages/typescript-estree/src/convert-comments.ts @@ -34,14 +34,14 @@ export function convertComments( const textEnd = comment.kind === ts.SyntaxKind.SingleLineCommentTrivia ? // single line comments end at the end - range[1] - textStart + range[1] : // multiline comments end 2 characters early - range[1] - textStart - 2; + range[1] - 2; comments.push({ type, loc, range, - value: code.slice(textStart, textStart + textEnd), + value: code.slice(textStart, textEnd), }); }, ast, diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index e9d6aa34c615..fb4091a5f528 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -1,3 +1,15 @@ +## 8.45.0 (2025-09-29) + +### 🚀 Features + +- **eslint-plugin:** expose rule name via RuleModule interface ([#11616](https://github.com/typescript-eslint/typescript-eslint/pull/11616)) + +### ❤️ Thank You + +- Yukihiro Hasegawa @y-hsgw + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) This was a version bump only for utils to align it with other projects, there were no code changes. diff --git a/packages/utils/package.json b/packages/utils/package.json index 8ea3a0308748..0b189d847863 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/utils", - "version": "8.44.1", + "version": "8.45.0", "description": "Utilities for working with TypeScript + ESLint together", "files": [ "dist", @@ -62,9 +62,9 @@ }, "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.44.1", - "@typescript-eslint/types": "8.44.1", - "@typescript-eslint/typescript-estree": "8.44.1" + "@typescript-eslint/scope-manager": "8.45.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", diff --git a/packages/utils/src/eslint-utils/RuleCreator.ts b/packages/utils/src/eslint-utils/RuleCreator.ts index cd06aee6231f..57ab282c3632 100644 --- a/packages/utils/src/eslint-utils/RuleCreator.ts +++ b/packages/utils/src/eslint-utils/RuleCreator.ts @@ -36,6 +36,7 @@ export interface RuleWithMeta< Docs = unknown, > extends RuleCreateAndOptions { meta: RuleMetaData; + name: string; } export interface RuleWithMetaAndName< @@ -76,6 +77,7 @@ export function RuleCreator( url: urlCreator(name), }, }, + name, ...rule, }); }; @@ -89,6 +91,7 @@ function createRule< create, defaultOptions, meta, + name, }: Readonly>): RuleModule< MessageIds, Options, @@ -101,6 +104,7 @@ function createRule< }, defaultOptions, meta, + name, }; } diff --git a/packages/utils/src/ts-eslint/Rule.ts b/packages/utils/src/ts-eslint/Rule.ts index 1a4920a3e79e..be28d4a0b9ec 100644 --- a/packages/utils/src/ts-eslint/Rule.ts +++ b/packages/utils/src/ts-eslint/Rule.ts @@ -735,6 +735,11 @@ export interface RuleModule< * Metadata about the rule */ meta: RuleMetaData; + + /** + * Rule name + */ + name: string; } export type AnyRuleModule = RuleModule; diff --git a/packages/visitor-keys/CHANGELOG.md b/packages/visitor-keys/CHANGELOG.md index 5516fc1c32fc..f04350762015 100644 --- a/packages/visitor-keys/CHANGELOG.md +++ b/packages/visitor-keys/CHANGELOG.md @@ -1,3 +1,9 @@ +## 8.45.0 (2025-09-29) + +This was a version bump only for visitor-keys to align it with other projects, there were no code changes. + +You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. + ## 8.44.1 (2025-09-22) This was a version bump only for visitor-keys to align it with other projects, there were no code changes. diff --git a/packages/visitor-keys/package.json b/packages/visitor-keys/package.json index 0691965d0401..da60c60208f8 100644 --- a/packages/visitor-keys/package.json +++ b/packages/visitor-keys/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/visitor-keys", - "version": "8.44.1", + "version": "8.45.0", "description": "Visitor keys used to help traverse the TypeScript-ESTree AST", "files": [ "dist", @@ -45,7 +45,7 @@ "typecheck": "yarn run -BT nx typecheck" }, "dependencies": { - "@typescript-eslint/types": "8.44.1", + "@typescript-eslint/types": "8.45.0", "eslint-visitor-keys": "^4.2.1" }, "devDependencies": { diff --git a/packages/website/package.json b/packages/website/package.json index a8c3c676af7b..47c5a93a6204 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -73,7 +73,7 @@ "make-dir": "*", "mdast-util-from-markdown": "^2.0.1", "mdast-util-mdx": "^3.0.0", - "monaco-editor": "~0.52.0", + "monaco-editor": "~0.53.0", "raw-loader": "^4.0.2", "rimraf": "*", "stylelint": "^16.3.1", diff --git a/packages/website/src/components/editor/createProvideTwoslashInlay.ts b/packages/website/src/components/editor/createProvideTwoslashInlay.ts index 7ec378b4aff7..89f3c7bb26ce 100644 --- a/packages/website/src/components/editor/createProvideTwoslashInlay.ts +++ b/packages/website/src/components/editor/createProvideTwoslashInlay.ts @@ -9,7 +9,7 @@ import type { SandboxInstance } from './useSandboxServices'; function findTwoshashQueries(code: string): RegExpExecArray[] { // RegExp that matches '^//?$' - const twoslashQueryRegex = /^(\s*\/\/\s*\^\?)\s*$/m; + const twoslashQueryRegex = /^(\s*\/\/\s*\^\?)\s*$/gm; return [...code.matchAll(twoslashQueryRegex)]; } diff --git a/tsconfig.base.json b/tsconfig.base.json index ccc53afa64d9..1f6b9987bb96 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -4,7 +4,7 @@ "allowSyntheticDefaultImports": true, "composite": true, "declaration": true, - "declarationMap": true, + "declarationMap": false, "emitDeclarationOnly": true, "emitDecoratorMetadata": false, "esModuleInterop": true, diff --git a/yarn.lock b/yarn.lock index dc5062b5cb69..4b4a6accc5c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3290,31 +3290,31 @@ __metadata: languageName: node linkType: hard -"@emnapi/core@npm:^1.1.0, @emnapi/core@npm:^1.4.5": - version: 1.4.5 - resolution: "@emnapi/core@npm:1.4.5" +"@emnapi/core@npm:^1.1.0, @emnapi/core@npm:^1.5.0": + version: 1.5.0 + resolution: "@emnapi/core@npm:1.5.0" dependencies: - "@emnapi/wasi-threads": 1.0.4 + "@emnapi/wasi-threads": 1.1.0 tslib: ^2.4.0 - checksum: ae4800fe2bcc1c790e588ce19e299fa85c6e1fe2a4ac44eda26be1ad4220b6121de18a735d5fa81307a86576fe2038ab53bde5f8f6aa3708b9276d6600a50b52 + checksum: 089a506a4f6a2416b9917050802c20ac76b350b1160116482c3542cf89cd707c832ca18c163ddac4e9cb1df06f02e6cd324cadc60b82aed27d51e0baca1f4b4f languageName: node linkType: hard -"@emnapi/runtime@npm:^1.1.0, @emnapi/runtime@npm:^1.4.5": - version: 1.4.5 - resolution: "@emnapi/runtime@npm:1.4.5" +"@emnapi/runtime@npm:^1.1.0, @emnapi/runtime@npm:^1.5.0": + version: 1.5.0 + resolution: "@emnapi/runtime@npm:1.5.0" dependencies: tslib: ^2.4.0 - checksum: 99ab25d55cf1ceeec12f83b60f48e744f8e1dfc8d52a2ed81b3b09bf15182e61ef55f25b69d51ec83044861bddaa4404e7c3285bf71dd518a7980867e41c2a10 + checksum: 03b23bdc0bb72bce4d8967ca29d623c2599af18977975c10532577db2ec89a57d97d2c76c5c4bde856c7c29302b9f7af357e921c42bd952bdda206972185819a languageName: node linkType: hard -"@emnapi/wasi-threads@npm:1.0.4": - version: 1.0.4 - resolution: "@emnapi/wasi-threads@npm:1.0.4" +"@emnapi/wasi-threads@npm:1.1.0": + version: 1.1.0 + resolution: "@emnapi/wasi-threads@npm:1.1.0" dependencies: tslib: ^2.4.0 - checksum: 106cbb0c86e0e5a8830a3262105a6531e09ebcc21724f0da64ec49d76d87cbf894e0afcbc3a3621a104abf7465e3f758bffb5afa61a308c31abc847525c10d93 + checksum: 6cffe35f3e407ae26236092991786db5968b4265e6e55f4664bf6f2ce0508e2a02a44ce6ebb16f2acd2f6589efb293f4f9d09cc9fbf80c00fc1a203accc94196 languageName: node linkType: hard @@ -3762,10 +3762,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:*, @eslint/js@npm:9.35.0, @eslint/js@npm:^9.26.0": - version: 9.35.0 - resolution: "@eslint/js@npm:9.35.0" - checksum: ea644f0b1abb4da49ba0cb61db4d039492e844d959e7127dd7c501aa27a256348496bce43334ecd3ca990c9a49fb3ea93d6729de0a79d216f63869236c153148 +"@eslint/js@npm:*, @eslint/js@npm:9.36.0, @eslint/js@npm:^9.26.0": + version: 9.36.0 + resolution: "@eslint/js@npm:9.36.0" + checksum: 17ff28272337357783b55e76417e61306e528dced99bb49d49e06298023b4071cb30f4aeb0bf30a337817d3eb3132784db6b8edd3a90118c5217833136712713 languageName: node linkType: hard @@ -4111,14 +4111,14 @@ __metadata: languageName: node linkType: hard -"@napi-rs/wasm-runtime@npm:^1.0.3": - version: 1.0.3 - resolution: "@napi-rs/wasm-runtime@npm:1.0.3" +"@napi-rs/wasm-runtime@npm:^1.0.5": + version: 1.0.5 + resolution: "@napi-rs/wasm-runtime@npm:1.0.5" dependencies: - "@emnapi/core": ^1.4.5 - "@emnapi/runtime": ^1.4.5 - "@tybys/wasm-util": ^0.10.0 - checksum: e105c8f3bfc07ccbbccc17e6abb6d3f5a9cf685930842c4f5439c6d4a7ccab3d89da43fc8627f222a021beb7f78171f80ce3c488e3bd3a2156a049cd8224ebf0 + "@emnapi/core": ^1.5.0 + "@emnapi/runtime": ^1.5.0 + "@tybys/wasm-util": ^0.10.1 + checksum: 22005c6e9d77854938cf0c832bb630533108ea1f3617d1cf40fa814bc1351412fb98d4d4ea63099c9963bc4ca63cf691ca6e370a490adc5fd7d42721005367c5 languageName: node linkType: hard @@ -4335,137 +4335,137 @@ __metadata: languageName: node linkType: hard -"@oxc-resolver/binding-android-arm-eabi@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.7.1" +"@oxc-resolver/binding-android-arm-eabi@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.8.4" conditions: os=android & cpu=arm languageName: node linkType: hard -"@oxc-resolver/binding-android-arm64@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-android-arm64@npm:11.7.1" +"@oxc-resolver/binding-android-arm64@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-android-arm64@npm:11.8.4" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@oxc-resolver/binding-darwin-arm64@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-darwin-arm64@npm:11.7.1" +"@oxc-resolver/binding-darwin-arm64@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-darwin-arm64@npm:11.8.4" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@oxc-resolver/binding-darwin-x64@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-darwin-x64@npm:11.7.1" +"@oxc-resolver/binding-darwin-x64@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-darwin-x64@npm:11.8.4" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@oxc-resolver/binding-freebsd-x64@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-freebsd-x64@npm:11.7.1" +"@oxc-resolver/binding-freebsd-x64@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-freebsd-x64@npm:11.8.4" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.7.1" +"@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.8.4" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@oxc-resolver/binding-linux-arm-musleabihf@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-linux-arm-musleabihf@npm:11.7.1" +"@oxc-resolver/binding-linux-arm-musleabihf@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-linux-arm-musleabihf@npm:11.8.4" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@oxc-resolver/binding-linux-arm64-gnu@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-linux-arm64-gnu@npm:11.7.1" +"@oxc-resolver/binding-linux-arm64-gnu@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-linux-arm64-gnu@npm:11.8.4" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-arm64-musl@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-linux-arm64-musl@npm:11.7.1" +"@oxc-resolver/binding-linux-arm64-musl@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-linux-arm64-musl@npm:11.8.4" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@oxc-resolver/binding-linux-ppc64-gnu@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-linux-ppc64-gnu@npm:11.7.1" +"@oxc-resolver/binding-linux-ppc64-gnu@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-linux-ppc64-gnu@npm:11.8.4" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-riscv64-gnu@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-linux-riscv64-gnu@npm:11.7.1" +"@oxc-resolver/binding-linux-riscv64-gnu@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-linux-riscv64-gnu@npm:11.8.4" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-riscv64-musl@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-linux-riscv64-musl@npm:11.7.1" +"@oxc-resolver/binding-linux-riscv64-musl@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-linux-riscv64-musl@npm:11.8.4" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@oxc-resolver/binding-linux-s390x-gnu@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-linux-s390x-gnu@npm:11.7.1" +"@oxc-resolver/binding-linux-s390x-gnu@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-linux-s390x-gnu@npm:11.8.4" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-x64-gnu@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-linux-x64-gnu@npm:11.7.1" +"@oxc-resolver/binding-linux-x64-gnu@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-linux-x64-gnu@npm:11.8.4" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-x64-musl@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-linux-x64-musl@npm:11.7.1" +"@oxc-resolver/binding-linux-x64-musl@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-linux-x64-musl@npm:11.8.4" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@oxc-resolver/binding-wasm32-wasi@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-wasm32-wasi@npm:11.7.1" +"@oxc-resolver/binding-wasm32-wasi@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-wasm32-wasi@npm:11.8.4" dependencies: - "@napi-rs/wasm-runtime": ^1.0.3 + "@napi-rs/wasm-runtime": ^1.0.5 conditions: cpu=wasm32 languageName: node linkType: hard -"@oxc-resolver/binding-win32-arm64-msvc@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-win32-arm64-msvc@npm:11.7.1" +"@oxc-resolver/binding-win32-arm64-msvc@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-win32-arm64-msvc@npm:11.8.4" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@oxc-resolver/binding-win32-ia32-msvc@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-win32-ia32-msvc@npm:11.7.1" +"@oxc-resolver/binding-win32-ia32-msvc@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-win32-ia32-msvc@npm:11.8.4" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@oxc-resolver/binding-win32-x64-msvc@npm:11.7.1": - version: 11.7.1 - resolution: "@oxc-resolver/binding-win32-x64-msvc@npm:11.7.1" +"@oxc-resolver/binding-win32-x64-msvc@npm:11.8.4": + version: 11.8.4 + resolution: "@oxc-resolver/binding-win32-x64-msvc@npm:11.8.4" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -5226,12 +5226,12 @@ __metadata: languageName: node linkType: hard -"@tybys/wasm-util@npm:^0.10.0": - version: 0.10.0 - resolution: "@tybys/wasm-util@npm:0.10.0" +"@tybys/wasm-util@npm:^0.10.1": + version: 0.10.1 + resolution: "@tybys/wasm-util@npm:0.10.1" dependencies: tslib: ^2.4.0 - checksum: c3034e0535b91f28dc74c72fc538f353cda0fa9107bb313e8b89f101402b7dc8e400442d07560775cdd7cb63d33549867ed776372fbaa41dc68bcd108e5cff8a + checksum: b8b281ffa9cd01cb6d45a4dddca2e28fd0cb6ad67cf091ba4a73ac87c0d6bd6ce188c332c489e87c20b0750b0b6fe3b99e30e1cd2227ec16da692f51c778944e languageName: node linkType: hard @@ -5744,6 +5744,13 @@ __metadata: languageName: node linkType: hard +"@types/trusted-types@npm:^1.0.6": + version: 1.0.6 + resolution: "@types/trusted-types@npm:1.0.6" + checksum: 22b8efcb6116ab80d07542047135618ee282f2060c481e472126604d838c09e7dad33c9462d88c130aef2c3133aece516f00d6af7ff814f0612f7d19db720e6d + languageName: node + linkType: hard + "@types/trusted-types@npm:^2.0.2": version: 2.0.2 resolution: "@types/trusted-types@npm:2.0.2" @@ -5830,19 +5837,19 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/eslint-plugin@8.44.1, @typescript-eslint/eslint-plugin@workspace:*, @typescript-eslint/eslint-plugin@workspace:^, @typescript-eslint/eslint-plugin@workspace:packages/eslint-plugin": +"@typescript-eslint/eslint-plugin@8.45.0, @typescript-eslint/eslint-plugin@workspace:*, @typescript-eslint/eslint-plugin@workspace:^, @typescript-eslint/eslint-plugin@workspace:packages/eslint-plugin": version: 0.0.0-use.local resolution: "@typescript-eslint/eslint-plugin@workspace:packages/eslint-plugin" dependencies: "@eslint-community/regexpp": ^4.10.0 "@types/mdast": ^4.0.3 "@types/natural-compare": "*" - "@typescript-eslint/rule-schema-to-typescript-types": 8.44.1 - "@typescript-eslint/rule-tester": 8.44.1 - "@typescript-eslint/scope-manager": 8.44.1 - "@typescript-eslint/type-utils": 8.44.1 - "@typescript-eslint/utils": 8.44.1 - "@typescript-eslint/visitor-keys": 8.44.1 + "@typescript-eslint/rule-schema-to-typescript-types": 8.45.0 + "@typescript-eslint/rule-tester": 8.45.0 + "@typescript-eslint/scope-manager": 8.45.0 + "@typescript-eslint/type-utils": 8.45.0 + "@typescript-eslint/utils": 8.45.0 + "@typescript-eslint/visitor-keys": 8.45.0 "@vitest/coverage-v8": ^3.1.3 ajv: ^6.12.6 cross-fetch: "*" @@ -5865,7 +5872,7 @@ __metadata: unist-util-visit: ^5.0.0 vitest: ^3.1.3 peerDependencies: - "@typescript-eslint/parser": ^8.44.1 + "@typescript-eslint/parser": ^8.45.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <6.0.0" languageName: unknown @@ -5881,14 +5888,14 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/parser@8.44.1, @typescript-eslint/parser@workspace:*, @typescript-eslint/parser@workspace:^, @typescript-eslint/parser@workspace:packages/parser": +"@typescript-eslint/parser@8.45.0, @typescript-eslint/parser@workspace:*, @typescript-eslint/parser@workspace:^, @typescript-eslint/parser@workspace:packages/parser": version: 0.0.0-use.local resolution: "@typescript-eslint/parser@workspace:packages/parser" dependencies: - "@typescript-eslint/scope-manager": 8.44.1 - "@typescript-eslint/types": 8.44.1 - "@typescript-eslint/typescript-estree": 8.44.1 - "@typescript-eslint/visitor-keys": 8.44.1 + "@typescript-eslint/scope-manager": 8.45.0 + "@typescript-eslint/types": 8.45.0 + "@typescript-eslint/typescript-estree": 8.45.0 + "@typescript-eslint/visitor-keys": 8.45.0 "@vitest/coverage-v8": ^3.1.3 debug: ^4.3.4 eslint: "*" @@ -5902,12 +5909,12 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/project-service@8.44.1, @typescript-eslint/project-service@workspace:packages/project-service": +"@typescript-eslint/project-service@8.45.0, @typescript-eslint/project-service@workspace:packages/project-service": version: 0.0.0-use.local resolution: "@typescript-eslint/project-service@workspace:packages/project-service" dependencies: - "@typescript-eslint/tsconfig-utils": ^8.44.1 - "@typescript-eslint/types": ^8.44.1 + "@typescript-eslint/tsconfig-utils": ^8.45.0 + "@typescript-eslint/types": ^8.45.0 "@vitest/coverage-v8": ^3.1.3 debug: ^4.3.4 rimraf: "*" @@ -5918,12 +5925,12 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/rule-schema-to-typescript-types@8.44.1, @typescript-eslint/rule-schema-to-typescript-types@workspace:*, @typescript-eslint/rule-schema-to-typescript-types@workspace:packages/rule-schema-to-typescript-types": +"@typescript-eslint/rule-schema-to-typescript-types@8.45.0, @typescript-eslint/rule-schema-to-typescript-types@workspace:*, @typescript-eslint/rule-schema-to-typescript-types@workspace:packages/rule-schema-to-typescript-types": version: 0.0.0-use.local resolution: "@typescript-eslint/rule-schema-to-typescript-types@workspace:packages/rule-schema-to-typescript-types" dependencies: - "@typescript-eslint/type-utils": 8.44.1 - "@typescript-eslint/utils": 8.44.1 + "@typescript-eslint/type-utils": 8.45.0 + "@typescript-eslint/utils": 8.45.0 "@vitest/coverage-v8": ^3.1.3 eslint: "*" natural-compare: ^1.4.0 @@ -5934,15 +5941,15 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/rule-tester@8.44.1, @typescript-eslint/rule-tester@workspace:*, @typescript-eslint/rule-tester@workspace:packages/rule-tester": +"@typescript-eslint/rule-tester@8.45.0, @typescript-eslint/rule-tester@workspace:*, @typescript-eslint/rule-tester@workspace:packages/rule-tester": version: 0.0.0-use.local resolution: "@typescript-eslint/rule-tester@workspace:packages/rule-tester" dependencies: "@types/json-stable-stringify-without-jsonify": ^1.0.2 "@types/lodash.merge": 4.6.9 - "@typescript-eslint/parser": 8.44.1 - "@typescript-eslint/typescript-estree": 8.44.1 - "@typescript-eslint/utils": 8.44.1 + "@typescript-eslint/parser": 8.45.0 + "@typescript-eslint/typescript-estree": 8.45.0 + "@typescript-eslint/utils": 8.45.0 "@vitest/coverage-v8": ^3.1.3 ajv: ^6.12.6 eslint: "*" @@ -5957,13 +5964,13 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/scope-manager@8.44.1, @typescript-eslint/scope-manager@^8.41.0, @typescript-eslint/scope-manager@workspace:*, @typescript-eslint/scope-manager@workspace:^, @typescript-eslint/scope-manager@workspace:packages/scope-manager": +"@typescript-eslint/scope-manager@8.45.0, @typescript-eslint/scope-manager@^8.41.0, @typescript-eslint/scope-manager@workspace:*, @typescript-eslint/scope-manager@workspace:^, @typescript-eslint/scope-manager@workspace:packages/scope-manager": version: 0.0.0-use.local resolution: "@typescript-eslint/scope-manager@workspace:packages/scope-manager" dependencies: - "@typescript-eslint/types": 8.44.1 - "@typescript-eslint/typescript-estree": 8.44.1 - "@typescript-eslint/visitor-keys": 8.44.1 + "@typescript-eslint/types": 8.45.0 + "@typescript-eslint/typescript-estree": 8.45.0 + "@typescript-eslint/visitor-keys": 8.45.0 "@vitest/coverage-v8": ^3.1.3 "@vitest/pretty-format": ^3.1.3 eslint: "*" @@ -5974,7 +5981,7 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/tsconfig-utils@8.44.1, @typescript-eslint/tsconfig-utils@^8.44.1, @typescript-eslint/tsconfig-utils@workspace:packages/tsconfig-utils": +"@typescript-eslint/tsconfig-utils@8.45.0, @typescript-eslint/tsconfig-utils@^8.45.0, @typescript-eslint/tsconfig-utils@workspace:packages/tsconfig-utils": version: 0.0.0-use.local resolution: "@typescript-eslint/tsconfig-utils@workspace:packages/tsconfig-utils" dependencies: @@ -5987,14 +5994,14 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/type-utils@8.44.1, @typescript-eslint/type-utils@workspace:*, @typescript-eslint/type-utils@workspace:packages/type-utils": +"@typescript-eslint/type-utils@8.45.0, @typescript-eslint/type-utils@workspace:*, @typescript-eslint/type-utils@workspace:packages/type-utils": version: 0.0.0-use.local resolution: "@typescript-eslint/type-utils@workspace:packages/type-utils" dependencies: - "@typescript-eslint/parser": 8.44.1 - "@typescript-eslint/types": 8.44.1 - "@typescript-eslint/typescript-estree": 8.44.1 - "@typescript-eslint/utils": 8.44.1 + "@typescript-eslint/parser": 8.45.0 + "@typescript-eslint/types": 8.45.0 + "@typescript-eslint/typescript-estree": 8.45.0 + "@typescript-eslint/utils": 8.45.0 "@vitest/coverage-v8": ^3.1.3 ajv: ^6.12.6 debug: ^4.3.4 @@ -6009,7 +6016,7 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/types@8.44.1, @typescript-eslint/types@^8.11.0, @typescript-eslint/types@^8.34.1, @typescript-eslint/types@^8.44.1, @typescript-eslint/types@workspace:*, @typescript-eslint/types@workspace:^, @typescript-eslint/types@workspace:packages/types": +"@typescript-eslint/types@8.45.0, @typescript-eslint/types@^8.11.0, @typescript-eslint/types@^8.34.1, @typescript-eslint/types@^8.45.0, @typescript-eslint/types@workspace:*, @typescript-eslint/types@workspace:^, @typescript-eslint/types@workspace:packages/types": version: 0.0.0-use.local resolution: "@typescript-eslint/types@workspace:packages/types" dependencies: @@ -6082,15 +6089,15 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/typescript-estree@8.44.1, @typescript-eslint/typescript-estree@workspace:*, @typescript-eslint/typescript-estree@workspace:^, @typescript-eslint/typescript-estree@workspace:packages/typescript-estree": +"@typescript-eslint/typescript-estree@8.45.0, @typescript-eslint/typescript-estree@workspace:*, @typescript-eslint/typescript-estree@workspace:^, @typescript-eslint/typescript-estree@workspace:packages/typescript-estree": version: 0.0.0-use.local resolution: "@typescript-eslint/typescript-estree@workspace:packages/typescript-estree" dependencies: "@types/is-glob": ^4.0.4 - "@typescript-eslint/project-service": 8.44.1 - "@typescript-eslint/tsconfig-utils": 8.44.1 - "@typescript-eslint/types": 8.44.1 - "@typescript-eslint/visitor-keys": 8.44.1 + "@typescript-eslint/project-service": 8.45.0 + "@typescript-eslint/tsconfig-utils": 8.45.0 + "@typescript-eslint/types": 8.45.0 + "@typescript-eslint/visitor-keys": 8.45.0 "@vitest/coverage-v8": ^3.1.3 debug: ^4.3.4 eslint: "*" @@ -6108,14 +6115,14 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/utils@8.44.1, @typescript-eslint/utils@^8.24.1, @typescript-eslint/utils@^8.34.1, @typescript-eslint/utils@workspace:*, @typescript-eslint/utils@workspace:^, @typescript-eslint/utils@workspace:packages/utils": +"@typescript-eslint/utils@8.45.0, @typescript-eslint/utils@^8.24.1, @typescript-eslint/utils@^8.34.1, @typescript-eslint/utils@workspace:*, @typescript-eslint/utils@workspace:^, @typescript-eslint/utils@workspace:packages/utils": version: 0.0.0-use.local resolution: "@typescript-eslint/utils@workspace:packages/utils" dependencies: "@eslint-community/eslint-utils": ^4.7.0 - "@typescript-eslint/scope-manager": 8.44.1 - "@typescript-eslint/types": 8.44.1 - "@typescript-eslint/typescript-estree": 8.44.1 + "@typescript-eslint/scope-manager": 8.45.0 + "@typescript-eslint/types": 8.45.0 + "@typescript-eslint/typescript-estree": 8.45.0 "@vitest/coverage-v8": ^3.1.3 eslint: "*" rimraf: "*" @@ -6127,11 +6134,11 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/visitor-keys@8.44.1, @typescript-eslint/visitor-keys@workspace:*, @typescript-eslint/visitor-keys@workspace:packages/visitor-keys": +"@typescript-eslint/visitor-keys@8.45.0, @typescript-eslint/visitor-keys@workspace:*, @typescript-eslint/visitor-keys@workspace:packages/visitor-keys": version: 0.0.0-use.local resolution: "@typescript-eslint/visitor-keys@workspace:packages/visitor-keys" dependencies: - "@typescript-eslint/types": 8.44.1 + "@typescript-eslint/types": 8.45.0 "@vitest/coverage-v8": ^3.1.3 eslint: "*" eslint-visitor-keys: ^4.2.1 @@ -9972,8 +9979,8 @@ __metadata: linkType: hard "eslint@npm:*, eslint@npm:^9.15.0, eslint@npm:^9.26.0": - version: 9.35.0 - resolution: "eslint@npm:9.35.0" + version: 9.36.0 + resolution: "eslint@npm:9.36.0" dependencies: "@eslint-community/eslint-utils": ^4.8.0 "@eslint-community/regexpp": ^4.12.1 @@ -9981,7 +9988,7 @@ __metadata: "@eslint/config-helpers": ^0.3.1 "@eslint/core": ^0.15.2 "@eslint/eslintrc": ^3.3.1 - "@eslint/js": 9.35.0 + "@eslint/js": 9.36.0 "@eslint/plugin-kit": ^0.3.5 "@humanfs/node": ^0.16.6 "@humanwhocodes/module-importer": ^1.0.1 @@ -10017,7 +10024,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 45b12539f84d7ae474920f279b4a0f1e1074eaff152f6d2b6a5fb112174914853f18071876da6421c11d678319fd78745ea03ed56b6808d77f76397e488cde28 + checksum: 08a02a1d474cf7ea63ef9328e638751c939a1c08b99f7812f0f44a96e3b8346ab3bbca3af57da8b3e74cbc6619e41645fd3dcb3adda94d1cb826f02664e2d44c languageName: node linkType: hard @@ -12650,12 +12657,12 @@ __metadata: languageName: node linkType: hard -"jiti@npm:^2.5.1": - version: 2.5.1 - resolution: "jiti@npm:2.5.1" +"jiti@npm:^2.6.0": + version: 2.6.0 + resolution: "jiti@npm:2.6.0" bin: jiti: lib/jiti-cli.mjs - checksum: db901281e01013c27d46d6c5cde5fa817082f32232c92099043df11e135d00ccd1b4356a9ba356a3293e91855bd7437b6df5ae0ae6ad2c384d9bd59df926633c + checksum: 2bd869527bfbb23b5210344881b4f2f5fd86b7c9c703001036544762411af73fe0f95097ba025a738874085143939664173360aafea7d7cbc4ca3bbc325774a9 languageName: node linkType: hard @@ -12893,29 +12900,28 @@ __metadata: linkType: hard "knip@npm:^5.41.1": - version: 5.63.0 - resolution: "knip@npm:5.63.0" + version: 5.64.1 + resolution: "knip@npm:5.64.1" dependencies: "@nodelib/fs.walk": ^1.2.3 fast-glob: ^3.3.3 formatly: ^0.3.0 - jiti: ^2.5.1 + jiti: ^2.6.0 js-yaml: ^4.1.0 minimist: ^1.2.8 - oxc-resolver: ^11.6.2 + oxc-resolver: ^11.8.3 picocolors: ^1.1.1 picomatch: ^4.0.1 smol-toml: ^1.4.1 strip-json-comments: 5.0.2 - zod: ^3.22.4 - zod-validation-error: ^3.0.3 + zod: ^4.1.11 peerDependencies: "@types/node": ">=18" - typescript: ">=5.0.4" + typescript: ">=5.0.4 <7" bin: knip: bin/knip.js knip-bun: bin/knip-bun.js - checksum: bbb8eda2469c3f2eddfa19e746732984bd6ac0485e34b650933f172ceecc8e6ac84ff8a481c85dcc3792cba3c135c63ab13f0159c4df4872ad3accb6c0a4cb84 + checksum: b56970725cc6949ce4b0c8922fa9e89408f4b6ad92f29af561e011f533bced83b9ec30e282a25a2b5c0de4206673f3317f09151df3c6f39a2423efe95514dfcc languageName: node linkType: hard @@ -14612,10 +14618,12 @@ __metadata: languageName: node linkType: hard -"monaco-editor@npm:~0.52.0": - version: 0.52.0 - resolution: "monaco-editor@npm:0.52.0" - checksum: 76ab4ea38dfd2bc5687a2d777d7fc14fd7182ac6ed1ed6819b76a47924434bf3a08bcb75c68cd5aff20db86a7633ac46b335a6971ae21a8723a7dcf3e8289931 +"monaco-editor@npm:~0.53.0": + version: 0.53.0 + resolution: "monaco-editor@npm:0.53.0" + dependencies: + "@types/trusted-types": ^1.0.6 + checksum: 353eca219334b62bdf825f4602aa2b98570c60e7059d257b0567da63fbb79b8eee8bea8448a597e297d0c96c9da3be9eb5153c1e8f279e5450d31c83f02125aa languageName: node linkType: hard @@ -15171,29 +15179,29 @@ __metadata: languageName: node linkType: hard -"oxc-resolver@npm:^11.6.2": - version: 11.7.1 - resolution: "oxc-resolver@npm:11.7.1" - dependencies: - "@oxc-resolver/binding-android-arm-eabi": 11.7.1 - "@oxc-resolver/binding-android-arm64": 11.7.1 - "@oxc-resolver/binding-darwin-arm64": 11.7.1 - "@oxc-resolver/binding-darwin-x64": 11.7.1 - "@oxc-resolver/binding-freebsd-x64": 11.7.1 - "@oxc-resolver/binding-linux-arm-gnueabihf": 11.7.1 - "@oxc-resolver/binding-linux-arm-musleabihf": 11.7.1 - "@oxc-resolver/binding-linux-arm64-gnu": 11.7.1 - "@oxc-resolver/binding-linux-arm64-musl": 11.7.1 - "@oxc-resolver/binding-linux-ppc64-gnu": 11.7.1 - "@oxc-resolver/binding-linux-riscv64-gnu": 11.7.1 - "@oxc-resolver/binding-linux-riscv64-musl": 11.7.1 - "@oxc-resolver/binding-linux-s390x-gnu": 11.7.1 - "@oxc-resolver/binding-linux-x64-gnu": 11.7.1 - "@oxc-resolver/binding-linux-x64-musl": 11.7.1 - "@oxc-resolver/binding-wasm32-wasi": 11.7.1 - "@oxc-resolver/binding-win32-arm64-msvc": 11.7.1 - "@oxc-resolver/binding-win32-ia32-msvc": 11.7.1 - "@oxc-resolver/binding-win32-x64-msvc": 11.7.1 +"oxc-resolver@npm:^11.8.3": + version: 11.8.4 + resolution: "oxc-resolver@npm:11.8.4" + dependencies: + "@oxc-resolver/binding-android-arm-eabi": 11.8.4 + "@oxc-resolver/binding-android-arm64": 11.8.4 + "@oxc-resolver/binding-darwin-arm64": 11.8.4 + "@oxc-resolver/binding-darwin-x64": 11.8.4 + "@oxc-resolver/binding-freebsd-x64": 11.8.4 + "@oxc-resolver/binding-linux-arm-gnueabihf": 11.8.4 + "@oxc-resolver/binding-linux-arm-musleabihf": 11.8.4 + "@oxc-resolver/binding-linux-arm64-gnu": 11.8.4 + "@oxc-resolver/binding-linux-arm64-musl": 11.8.4 + "@oxc-resolver/binding-linux-ppc64-gnu": 11.8.4 + "@oxc-resolver/binding-linux-riscv64-gnu": 11.8.4 + "@oxc-resolver/binding-linux-riscv64-musl": 11.8.4 + "@oxc-resolver/binding-linux-s390x-gnu": 11.8.4 + "@oxc-resolver/binding-linux-x64-gnu": 11.8.4 + "@oxc-resolver/binding-linux-x64-musl": 11.8.4 + "@oxc-resolver/binding-wasm32-wasi": 11.8.4 + "@oxc-resolver/binding-win32-arm64-msvc": 11.8.4 + "@oxc-resolver/binding-win32-ia32-msvc": 11.8.4 + "@oxc-resolver/binding-win32-x64-msvc": 11.8.4 napi-postinstall: ^0.3.0 dependenciesMeta: "@oxc-resolver/binding-android-arm-eabi": @@ -15234,7 +15242,7 @@ __metadata: optional: true "@oxc-resolver/binding-win32-x64-msvc": optional: true - checksum: 44b60d188ec8f27c193d056317944ad70f2aca5e1435ee4a03d24a07c5b4c460ed57a6a855a3f4b268014d374059199a17ae2c14452e08d2ad6a53c665bf1180 + checksum: 21a513b06d0f15a4ea941c5554485796b22694ef87555b06c29d86acd45aaf5de54698eabb649a8095a0e303212c66c184404c64eb5b3e24c60ba50c46f26e26 languageName: node linkType: hard @@ -19331,11 +19339,11 @@ __metadata: linkType: hard "typedoc-plugin-markdown@npm:^4.6.3": - version: 4.8.1 - resolution: "typedoc-plugin-markdown@npm:4.8.1" + version: 4.9.0 + resolution: "typedoc-plugin-markdown@npm:4.9.0" peerDependencies: typedoc: 0.28.x - checksum: 5a8a78728d6c0831292591d0f0e3594818d7c616a977b2164fc2d4744828644e8bceeea2ab62d4a376671337c9b87392a4192d1022008c0a3504df6f2971d2d4 + checksum: cabdbf299e7f4c3db14878cfd630b2447bdee97dd668916028b4d8f5cb2049126178e747acd47a476806ebde35a112dec6c7b678198ad222087fc8410b2c0d1c languageName: node linkType: hard @@ -19360,10 +19368,10 @@ __metadata: version: 0.0.0-use.local resolution: "typescript-eslint@workspace:packages/typescript-eslint" dependencies: - "@typescript-eslint/eslint-plugin": 8.44.1 - "@typescript-eslint/parser": 8.44.1 - "@typescript-eslint/typescript-estree": 8.44.1 - "@typescript-eslint/utils": 8.44.1 + "@typescript-eslint/eslint-plugin": 8.45.0 + "@typescript-eslint/parser": 8.45.0 + "@typescript-eslint/typescript-estree": 8.45.0 + "@typescript-eslint/utils": 8.45.0 "@vitest/coverage-v8": ^3.1.3 eslint: "*" rimraf: "*" @@ -20208,7 +20216,7 @@ __metadata: make-dir: "*" mdast-util-from-markdown: ^2.0.1 mdast-util-mdx: ^3.0.0 - monaco-editor: ~0.52.0 + monaco-editor: ~0.53.0 prettier: 3.6.2 prism-react-renderer: ^2.3.1 raw-loader: ^4.0.2 @@ -20766,22 +20774,20 @@ __metadata: languageName: node linkType: hard -"zod-validation-error@npm:^3.0.3": - version: 3.2.0 - resolution: "zod-validation-error@npm:3.2.0" - peerDependencies: - zod: ^3.18.0 - checksum: 4d541566ff4bd54cc7c1c547ee69e50a11ff14c48d378f7c600146513e250067f8a9bac0170285d346d00095685cbc29a4cd84f9c6371bb4fd3ed29d0fb98be3 - languageName: node - linkType: hard - -"zod@npm:^3.22.4, zod@npm:^3.25.67": +"zod@npm:^3.25.67": version: 3.25.67 resolution: "zod@npm:3.25.67" checksum: 56ab904d33b1cd00041ce64ae05b0628fcbfeb7e707fa31cd498a97b540135e4dfe685200c9c62aea307695ee132870b4bc34f035228ea728aa75cc96a4954cb languageName: node linkType: hard +"zod@npm:^4.1.11": + version: 4.1.11 + resolution: "zod@npm:4.1.11" + checksum: 022d59f85ebe054835fbcdc96a93c01479a64321104f846cb5644812c91e00d17ae3479f823956ec9b04e4351dd32841e1f12c567e81bc43f6e21ef5cc02ce3c + languageName: node + linkType: hard + "zwitch@npm:^2.0.0": version: 2.0.4 resolution: "zwitch@npm:2.0.4"