Skip to content

Commit 308ac8b

Browse files
Merge branch 'main' into fix/scope-manager-node-parent-type-safety
2 parents 5dd757a + 31a7336 commit 308ac8b

File tree

158 files changed

+3852
-2313
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

158 files changed

+3852
-2313
lines changed

.prettierignore

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,9 @@ packages/eslint-plugin/tests/fixtures/indent/
1212
# ignore all error fixtures cos they often have intentional syntax errors
1313
packages/ast-spec/src/*/*/fixtures/_error_/*/fixture.ts
1414

15-
# TS 5.6 -- string literal import/export specifiers
1615
# TODO - remove this once prettier supports it
17-
packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-with-source/fixture.ts
18-
packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-identifier-aliased-to-string-literal-without-source/fixture.ts
19-
packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-aliased-to-identifier-with-source/fixture.ts
20-
packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-many-with-source/fixture.ts
21-
packages/ast-spec/src/declaration/ExportNamedDeclaration/fixtures/braced-string-literal-with-source/fixture.ts
22-
packages/ast-spec/src/declaration/ImportDeclaration/fixtures/named-string-literal-aliased-to-identifier/fixture.ts
23-
packages/ast-spec/src/special/ExportSpecifier/fixtures/literal-specifier/fixture.ts
24-
packages/ast-spec/src/special/ExportSpecifier/fixtures/value-export-specifier/fixture.ts
25-
26-
# TODO - remove this once prettier supports it
27-
# https://github.com/prettier/prettier/issues/16072
28-
packages/ast-spec/src/type/TSImportType/fixtures/type-import-type-with-import-attributes-assert/fixture.ts
29-
packages/ast-spec/src/type/TSImportType/fixtures/type-import-type-with-import-attributes-with/fixture.ts
16+
# https://github.com/prettier/prettier/issues/17405
17+
packages/ast-spec/src/type/TSImportType/fixtures/type-import-type-with-trailing-comma-in-import-attributes/fixture.ts
3018

3119
# Ignore CHANGELOG.md files to avoid issues with automated release job
3220
CHANGELOG.md

CHANGELOG.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,53 @@
1+
## 8.41.0 (2025-08-25)
2+
3+
### 🚀 Features
4+
5+
- tighten `tsconfigRootDir` validation ([#11463](https://github.com/typescript-eslint/typescript-eslint/pull/11463))
6+
7+
### 🩹 Fixes
8+
9+
- resolve type error in eslint config ([#11500](https://github.com/typescript-eslint/typescript-eslint/pull/11500))
10+
- **deps:** update babel monorepo ([#11174](https://github.com/typescript-eslint/typescript-eslint/pull/11174))
11+
- **deps:** update dependency prettier to v3.6.2 ([#11496](https://github.com/typescript-eslint/typescript-eslint/pull/11496))
12+
13+
### ❤️ Thank You
14+
15+
- Kirk Waiblinger @kirkwaiblinger
16+
17+
You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
18+
19+
## 8.40.0 (2025-08-18)
20+
21+
### 🚀 Features
22+
23+
- **typescript-estree:** forbid invalid keys in `EnumMember` ([#11232](https://github.com/typescript-eslint/typescript-eslint/pull/11232))
24+
25+
### 🩹 Fixes
26+
27+
- **typescript-eslint:** export `plugin`, `parser`, and `configs` that are compatible with both `defineConfig()` and `tseslint.config()` ([#11475](https://github.com/typescript-eslint/typescript-eslint/pull/11475))
28+
- **typescript-estree:** correct range of import assertion with trailing comma ([#11478](https://github.com/typescript-eslint/typescript-eslint/pull/11478))
29+
- **utils:** correct `calculateConfigForFile` return type ([#11451](https://github.com/typescript-eslint/typescript-eslint/pull/11451))
30+
31+
### ❤️ Thank You
32+
33+
- fisker Cheung @fisker
34+
- Kirk Waiblinger @kirkwaiblinger
35+
- Nolan Gajdascz @Gajdascz
36+
37+
You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
38+
39+
## 8.39.1 (2025-08-11)
40+
41+
### 🩹 Fixes
42+
43+
- **typescript-eslint:** handle `file://` urls in stack trace when inferring `tsconfigRootDir` ([#11464](https://github.com/typescript-eslint/typescript-eslint/pull/11464))
44+
45+
### ❤️ Thank You
46+
47+
- Kirk Waiblinger @kirkwaiblinger
48+
49+
You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
50+
151
## 8.39.0 (2025-08-04)
252

353
### 🚀 Features

docs/maintenance/pull-requests/Dependency_Version_Upgrades.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ See [feat: drop support for node v12](https://github.com/typescript-eslint/types
112112
We generally start the process of supporting a new TypeScript version just after the first beta release for that version is made available.
113113

114114
1. Create and pin an issue with a title like _TypeScript X.Y Support_, `accepting prs`, `AST`, `dependencies`, and `New TypeScript Version` labels, and the following contents:
115-
116115
1. A link to the _TypeScript X.Y Iteration Plan_ issue from the Microsoft issue tracker
117116
2. The following text:
118117

docs/packages/Parser.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,6 @@ project: null;
251251
```
252252

253253
- If `true`, each source file's parse will find the nearest `tsconfig.json` file to that source file.
254-
255254
- This is done by checking that source file's directory tree for the nearest `tsconfig.json`.
256255

257256
- If you use project references, TypeScript will **not** automatically use project references to resolve files. This means that you will have to add each referenced tsconfig to the `project` field either separately, or via a glob.

eslint.config.mjs

Lines changed: 39 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -362,36 +362,42 @@ export default tseslint.config(
362362

363363
// test file specific configuration
364364
{
365+
extends: [
366+
// @ts-expect-error -- uses `string` instead of `off` | `readonly` | `writable` for the globals setting.
367+
vitestPlugin.configs.env,
368+
{
369+
rules: {
370+
'@typescript-eslint/no-empty-function': [
371+
'error',
372+
{ allow: ['arrowFunctions'] },
373+
],
374+
'@typescript-eslint/no-non-null-assertion': 'off',
375+
'@typescript-eslint/no-unsafe-assignment': 'off',
376+
'@typescript-eslint/no-unsafe-call': 'off',
377+
'@typescript-eslint/no-unsafe-member-access': 'off',
378+
'@typescript-eslint/no-unsafe-return': 'off',
379+
'vitest/no-alias-methods': 'error',
380+
'vitest/no-disabled-tests': 'error',
381+
'vitest/no-focused-tests': 'error',
382+
'vitest/no-identical-title': 'error',
383+
'vitest/no-test-prefixes': 'error',
384+
'vitest/no-test-return-statement': 'error',
385+
'vitest/prefer-describe-function-title': 'error',
386+
'vitest/prefer-each': 'error',
387+
'vitest/prefer-spy-on': 'error',
388+
'vitest/prefer-to-be': 'error',
389+
'vitest/prefer-to-contain': 'error',
390+
'vitest/prefer-to-have-length': 'error',
391+
'vitest/valid-expect': 'error',
392+
},
393+
settings: { vitest: { typecheck: true } },
394+
},
395+
],
396+
365397
files: [
366398
'packages/*/tests/**/*.?(m|c)ts?(x)',
367399
'packages/integration-tests/tools/**/*.ts',
368400
],
369-
...vitestPlugin.configs.env,
370-
rules: {
371-
'@typescript-eslint/no-empty-function': [
372-
'error',
373-
{ allow: ['arrowFunctions'] },
374-
],
375-
'@typescript-eslint/no-non-null-assertion': 'off',
376-
'@typescript-eslint/no-unsafe-assignment': 'off',
377-
'@typescript-eslint/no-unsafe-call': 'off',
378-
'@typescript-eslint/no-unsafe-member-access': 'off',
379-
'@typescript-eslint/no-unsafe-return': 'off',
380-
'vitest/no-alias-methods': 'error',
381-
'vitest/no-disabled-tests': 'error',
382-
'vitest/no-focused-tests': 'error',
383-
'vitest/no-identical-title': 'error',
384-
'vitest/no-test-prefixes': 'error',
385-
'vitest/no-test-return-statement': 'error',
386-
'vitest/prefer-describe-function-title': 'error',
387-
'vitest/prefer-each': 'error',
388-
'vitest/prefer-spy-on': 'error',
389-
'vitest/prefer-to-be': 'error',
390-
'vitest/prefer-to-contain': 'error',
391-
'vitest/prefer-to-have-length': 'error',
392-
'vitest/valid-expect': 'error',
393-
},
394-
settings: { vitest: { typecheck: true } },
395401
},
396402

397403
{
@@ -455,7 +461,7 @@ export default tseslint.config(
455461
//
456462

457463
{
458-
extends: [eslintPluginPlugin.configs['flat/recommended']],
464+
extends: [eslintPluginPlugin.configs.recommended],
459465
files: [
460466
'packages/eslint-plugin-internal/**/*.?(m|c)ts?(x)',
461467
'packages/eslint-plugin/**/*.?(m|c)ts?(x)',
@@ -464,6 +470,10 @@ export default tseslint.config(
464470

465471
rules: {
466472
'@typescript-eslint/internal/no-typescript-estree-import': 'error',
473+
// TODO (43081j): maybe enable these one day?
474+
'eslint-plugin/no-meta-replaced-by': 'off',
475+
'eslint-plugin/require-meta-default-options': 'off',
476+
'eslint-plugin/require-meta-schema-description': 'off',
467477
},
468478
},
469479
{
@@ -703,8 +713,8 @@ export default tseslint.config(
703713
'perfectionist/sort-objects': [
704714
'error',
705715
{
706-
customGroups: { top: ['^valid$'] },
707-
groups: ['top', 'unknown'],
716+
customGroups: { skip: ['^skip$'], top: ['^valid$'] },
717+
groups: ['top', 'skip', 'unknown'],
708718
},
709719
],
710720
},

package.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@
7878
"cross-fetch": "^4.0.0",
7979
"cspell": "^9.0.0",
8080
"eslint": "^9.26.0",
81-
"eslint-plugin-eslint-plugin": "^6.3.1",
82-
"eslint-plugin-import": "^2.31.0",
81+
"eslint-plugin-eslint-plugin": "^7.0.0",
82+
"eslint-plugin-import": "^2.32.0",
8383
"eslint-plugin-jsdoc": "^50.5.0",
8484
"eslint-plugin-jsx-a11y": "^6.10.2",
8585
"eslint-plugin-perfectionist": "^4.12.3",
@@ -92,9 +92,9 @@
9292
"husky": "^9.1.4",
9393
"knip": "^5.41.1",
9494
"lint-staged": "^15.2.2",
95-
"markdownlint-cli": "^0.44.0",
95+
"markdownlint-cli": "^0.45.0",
9696
"nx": "21.2.3",
97-
"prettier": "3.5.0",
97+
"prettier": "3.6.2",
9898
"rimraf": "^5.0.5",
9999
"semver": "7.7.0",
100100
"tsx": "*",
@@ -111,7 +111,6 @@
111111
"@types/node": "^22.0.0",
112112
"@types/react": "^18.2.14",
113113
"eslint-plugin-eslint-plugin@^5.5.0": "patch:eslint-plugin-eslint-plugin@npm%3A5.5.1#./.yarn/patches/eslint-plugin-eslint-plugin-npm-5.5.1-4206c2506d.patch",
114-
"prettier": "3.5.0",
115114
"react-split-pane@^0.1.92": "patch:react-split-pane@npm%3A0.1.92#./.yarn/patches/react-split-pane-npm-0.1.92-93dbf51dff.patch",
116115
"tsx": "^4.7.2",
117116
"typescript": "5.9.2"

packages/ast-spec/CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,35 @@
1+
## 8.41.0 (2025-08-25)
2+
3+
### 🩹 Fixes
4+
5+
- **deps:** update dependency prettier to v3.6.2 ([#11496](https://github.com/typescript-eslint/typescript-eslint/pull/11496))
6+
- **deps:** update babel monorepo ([#11174](https://github.com/typescript-eslint/typescript-eslint/pull/11174))
7+
8+
You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
9+
10+
## 8.40.0 (2025-08-18)
11+
12+
### 🚀 Features
13+
14+
- **typescript-estree:** forbid invalid keys in `EnumMember` ([#11232](https://github.com/typescript-eslint/typescript-eslint/pull/11232))
15+
16+
### 🩹 Fixes
17+
18+
- **typescript-estree:** correct range of import assertion with trailing comma ([#11478](https://github.com/typescript-eslint/typescript-eslint/pull/11478))
19+
20+
### ❤️ Thank You
21+
22+
- fisker Cheung @fisker
23+
- Kirk Waiblinger @kirkwaiblinger
24+
25+
You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
26+
27+
## 8.39.1 (2025-08-11)
28+
29+
This was a version bump only for ast-spec to align it with other projects, there were no code changes.
30+
31+
You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
32+
133
## 8.39.0 (2025-08-04)
234

335
### 🚀 Features

packages/ast-spec/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@typescript-eslint/ast-spec",
3-
"version": "8.39.0",
3+
"version": "8.41.0",
44
"description": "Complete specification for the TypeScript-ESTree AST",
55
"private": true,
66
"keywords": [

packages/ast-spec/src/declaration/VariableDeclaration/fixtures/_error_/declare-using-id-definite-init/snapshots/2-Babel-Error.shot

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/ast-spec/src/declaration/VariableDeclaration/fixtures/_error_/declare-using-id-definite-no-init/snapshots/2-Babel-Error.shot

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)