Skip to content

Commit 181c003

Browse files
Merge branch 'main' into fix-10982
2 parents 58fef3a + deacba9 commit 181c003

File tree

178 files changed

+4129
-4256
lines changed

Some content is hidden

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

178 files changed

+4129
-4256
lines changed

Diff for: .gitignore

+3-7
Original file line numberDiff line numberDiff line change
@@ -73,17 +73,10 @@ jspm_packages/
7373
.DS_Store
7474
.idea
7575
dist
76-
_ts3.4
77-
_ts4.2
7876
*.tsbuildinfo
7977
.watchmanconfig
8078
.rollup.cache
8179

82-
# the downlevel-dts output folders
83-
_ts3.4
84-
_ts4.2
85-
_ts4.3
86-
8780
# Files copied as part of the build
8881
packages/types/src/generated/**/*.ts
8982

@@ -99,3 +92,6 @@ packages/**/.yarn
9992

10093
.nx/cache
10194
.nx/workspace-data
95+
96+
# Vitest type tests
97+
tsconfig*.vitest-temp.json

Diff for: CHANGELOG.md

+13
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
## 8.29.1 (2025-04-07)
2+
3+
### 🩹 Fixes
4+
5+
- **eslint-plugin:** [no-deprecated] report on deprecated imported variable used as property ([#10998](https://github.com/typescript-eslint/typescript-eslint/pull/10998))
6+
- **typescript-estree:** use token type of `Numeric` instead of `Identifier` for bigint literals ([#11021](https://github.com/typescript-eslint/typescript-eslint/pull/11021))
7+
8+
### ❤️ Thank You
9+
10+
- Ronen Amiel
11+
12+
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.
13+
114
## 8.29.0 (2025-03-31)
215

316
### 🚀 Features

Diff for: docs/users/Shared_Configurations.mdx

+13-13
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ module.exports = {
144144
</TabItem>
145145
</Tabs>
146146

147-
See [`configs/recommended.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/recommended.ts) for the exact contents of this config.
147+
See [`configs/recommended.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/recommended.ts) for the exact contents of this config.
148148

149149
### `recommended-type-checked`
150150

@@ -173,7 +173,7 @@ module.exports = {
173173
</TabItem>
174174
</Tabs>
175175

176-
See [`configs/recommended-type-checked.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/recommended-type-checked.ts) for the exact contents of this config.
176+
See [`configs/recommended-type-checked.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/recommended-type-checked.ts) for the exact contents of this config.
177177

178178
### `strict`
179179

@@ -203,7 +203,7 @@ module.exports = {
203203
</Tabs>
204204

205205
Some rules also enabled in `recommended` default to more strict settings in this configuration.
206-
See [`configs/strict.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/strict.ts) for the exact contents of this config.
206+
See [`configs/strict.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/strict.ts) for the exact contents of this config.
207207

208208
:::tip
209209
We recommend a TypeScript project extend from `plugin:@typescript-eslint/strict` only if a nontrivial percentage of its developers are highly proficient in TypeScript.
@@ -242,7 +242,7 @@ module.exports = {
242242
</Tabs>
243243

244244
Some rules also enabled in `recommended-type-checked` default to more strict settings in this configuration.
245-
See [`configs/strict-type-checked.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/strict-type-checked.ts) for the exact contents of this config.
245+
See [`configs/strict-type-checked.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/strict-type-checked.ts) for the exact contents of this config.
246246

247247
:::tip
248248
We recommend a TypeScript project extend from `plugin:@typescript-eslint/strict-type-checked` only if a nontrivial percentage of its developers are highly proficient in TypeScript.
@@ -283,7 +283,7 @@ module.exports = {
283283
Note that `stylistic` does not replace `recommended` or `strict`.
284284
`stylistic` adds additional rules.
285285

286-
See [`configs/stylistic.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/stylistic.ts) for the exact contents of this config.
286+
See [`configs/stylistic.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/stylistic.ts) for the exact contents of this config.
287287

288288
### `stylistic-type-checked`
289289

@@ -315,7 +315,7 @@ module.exports = {
315315
Note that `stylistic-type-checked` does not replace `recommended-type-checked` or `strict-type-checked`.
316316
`stylistic-type-checked` adds additional rules.
317317

318-
See [`configs/stylistic-type-checked.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/stylistic-type-checked.ts) for the exact contents of this config.
318+
See [`configs/stylistic-type-checked.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/stylistic-type-checked.ts) for the exact contents of this config.
319319

320320
## Other Configurations
321321

@@ -326,7 +326,7 @@ typescript-eslint includes a few utility configurations.
326326
Enables each the rules provided as a part of typescript-eslint.
327327
Note that many rules are not applicable in all codebases, or are meant to be configured.
328328

329-
See [`configs/all.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/all.ts) for the exact contents of this config.
329+
See [`configs/all.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/all.ts) for the exact contents of this config.
330330

331331
:::warning
332332
We do not recommend TypeScript projects extend from `plugin:@typescript-eslint/all`.
@@ -345,14 +345,14 @@ We don't recommend using this directly; instead, extend from an earlier recommen
345345

346346
This config is automatically included if you use any of the recommended configurations.
347347

348-
See [`configs/base.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/base.ts) for the exact contents of this config.
348+
See [`configs/base.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/base.ts) for the exact contents of this config.
349349

350350
### `disable-type-checked`
351351

352352
A utility ruleset that will disable type-aware linting and all type-aware rules available in our project.
353353
This config is useful if you'd like to have your base config concerned with type-aware linting, and then conditionally use [overrides](https://eslint.org/docs/latest/use/configure/configuration-files#configuration-based-on-glob-patterns) to disable type-aware linting on specific subsets of your codebase.
354354

355-
See [`configs/disable-type-checked.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/disable-type-checked.ts) for the exact contents of this config.
355+
See [`configs/disable-type-checked.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/disable-type-checked.ts) for the exact contents of this config.
356356

357357
:::info
358358
If you use type-aware rules from other plugins, you will need to manually disable these rules or use a premade config they provide to disable them.
@@ -449,7 +449,7 @@ module.exports = {
449449

450450
This config is automatically included if you use any of the recommended configurations.
451451

452-
See [`configs/eslint-recommended.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslint-recommended.ts) for the exact contents of this config.
452+
See [`configs/eslint-recommended.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/eslint-recommended.ts) for the exact contents of this config.
453453

454454
### `recommended-type-checked-only`
455455

@@ -462,7 +462,7 @@ module.exports = {
462462
};
463463
```
464464

465-
See [`configs/recommended-type-checked-only.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/recommended-type-checked-only.ts) for the exact contents of this config.
465+
See [`configs/recommended-type-checked-only.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/recommended-type-checked-only.ts) for the exact contents of this config.
466466

467467
### `strict-type-checked-only`
468468

@@ -475,7 +475,7 @@ module.exports = {
475475
};
476476
```
477477

478-
See [`configs/strict-type-checked-only.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/strict-type-checked-only.ts) for the exact contents of this config.
478+
See [`configs/strict-type-checked-only.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/strict-type-checked-only.ts) for the exact contents of this config.
479479

480480
:::warning
481481
This configuration is not considered "stable" under Semantic Versioning (semver).
@@ -493,7 +493,7 @@ module.exports = {
493493
};
494494
```
495495

496-
See [`configs/stylistic-type-checked-only.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/stylistic-type-checked-only.ts) for the exact contents of this config.
496+
See [`configs/stylistic-type-checked-only.ts`](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/configs/eslintrc/stylistic-type-checked-only.ts) for the exact contents of this config.
497497

498498
## Suggesting Configuration Changes
499499

Diff for: eslint.config.mjs

+13-10
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,16 @@ const restrictNamedDeclarations = {
3131

3232
const vitestFiles = [
3333
'packages/eslint-plugin-internal/tests/**/*.test.{ts,tsx,cts,mts}',
34+
'packages/integration-tests/tests/**/*.test.{ts,tsx,cts,mts},',
35+
'packages/integration-tests/tools/integration-test-base.ts',
36+
'packages/integration-tests/tools/pack-packages.ts',
37+
'packages/parser/tests/lib/**/*.test.{ts,tsx,cts,mts}',
38+
'packages/parser/tests/test-utils/**/*.{ts,tsx,cts,mts}',
39+
'packages/rule-tester/tests/**/*.test.{ts,tsx,cts,mts}',
40+
'packages/type-utils/tests/**/*.test.{ts,tsx,cts,mts}',
3441
'packages/typescript-eslint/tests/**/*.test.{ts,tsx,cts,mts}',
42+
'packages/utils/tests/**/*.test?(-d).{ts,tsx,cts,mts}',
43+
'packages/visitor-keys/tests/**/*.test.{ts,tsx,cts,mts}',
3544
];
3645

3746
export default tseslint.config(
@@ -378,20 +387,13 @@ export default tseslint.config(
378387
// define the vitest globals for all test files
379388
{
380389
files: vitestFiles,
381-
languageOptions: {
382-
globals: {
383-
...vitestPlugin.environments.env.globals,
384-
},
385-
},
390+
...vitestPlugin.configs.env,
386391
},
387392
// test file specific configuration
388393
{
389394
files: [
390395
'packages/*/tests/**/*.test.{ts,tsx,cts,mts}',
391396
'packages/*/tests/**/test.{ts,tsx,cts,mts}',
392-
'packages/parser/tests/**/*.{ts,tsx,cts,mts}',
393-
'packages/integration-tests/tools/integration-test-base.ts',
394-
'packages/integration-tests/tools/pack-packages.ts',
395397
],
396398
ignores: vitestFiles,
397399
rules: {
@@ -439,6 +441,7 @@ export default tseslint.config(
439441
'vitest/no-identical-title': 'error',
440442
'vitest/no-test-prefixes': 'error',
441443
'vitest/no-test-return-statement': 'error',
444+
'vitest/prefer-describe-function-title': 'error',
442445
'vitest/prefer-each': 'error',
443446
'vitest/prefer-spy-on': 'error',
444447
'vitest/prefer-to-be': 'error',
@@ -645,9 +648,9 @@ export default tseslint.config(
645648
{
646649
files: ['**/*'],
647650
ignores: [
648-
'packages/eslint-plugin/src/configs/*',
651+
'packages/eslint-plugin/src/configs/eslintrc/*',
652+
'packages/eslint-plugin/src/configs/flat/*',
649653
'packages/scope-manager/src/configs/*',
650-
'packages/typescript-eslint/src/configs/*',
651654
],
652655
rules: {
653656
'@typescript-eslint/sort-type-constituents': 'off',

Diff for: knip.ts

+17-5
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,14 @@ export default {
1111
types: 'off',
1212
unresolved: 'off',
1313
},
14+
15+
vite: false,
16+
1417
vitest: {
15-
config: ['vitest.config.mts', 'packages/*/vitest.config.mts'],
18+
config: ['vitest.config.mts'],
19+
entry: ['tests/**/*.{bench,test,test-d}.?(c|m)ts?(x)'],
1620
},
21+
1722
workspaces: {
1823
'.': {
1924
entry: ['tools/release/changelog-renderer.js', 'tools/scripts/**/*.mts'],
@@ -29,8 +34,6 @@ export default {
2934
'glob',
3035
'jest-specific-snapshot',
3136
'make-dir',
32-
'ncp',
33-
'tmp',
3437
// imported for type purposes only
3538
'website',
3639
],
@@ -56,13 +59,22 @@ export default {
5659
ignore: ['tests/fixtures/**'],
5760
},
5861
'packages/integration-tests': {
59-
ignore: ['fixtures/**', 'typings/global.d.ts'],
62+
ignore: ['fixtures/**'],
6063
},
6164
'packages/parser': {
6265
ignore: ['tests/fixtures/**'],
66+
67+
vitest: {
68+
config: ['vitest.config.mts'],
69+
entry: ['tests/lib/**/*.{bench,test,test-d}.?(c|m)ts?(x)'],
70+
},
6371
},
6472
'packages/rule-tester': {
6573
ignore: ['typings/eslint.d.ts'],
74+
75+
mocha: {
76+
entry: ['tests/eslint-base/eslint-base.test.js'],
77+
},
6678
},
6779
'packages/scope-manager': {
6880
ignore: ['tests/fixtures/**'],
@@ -76,7 +88,6 @@ export default {
7688
},
7789
'packages/utils': {
7890
ignore: [
79-
'tests/**/*.type-test.ts',
8091
'typings/eslint.d.ts',
8192
'typings/eslint-community-eslint-utils.d.ts',
8293
],
@@ -134,6 +145,7 @@ export default {
134145
'src/mock/eslint-rules.js',
135146
'src/mock/eslint.js',
136147
'src/mock/lru-cache.js',
148+
'src/mock/parser.js',
137149
'src/mock/path.js',
138150
'src/mock/typescript.js',
139151
'src/mock/util.js',

Diff for: nx.json

+3-4
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,11 @@
103103
"{workspaceRoot}/vitest.config.base.mts",
104104
"{projectRoot}/vitest.config.mts"
105105
],
106-
"outputs": ["{options.reportsDirectory}"],
106+
"outputs": ["{projectRoot}/coverage"],
107107
"cache": true,
108108
"options": {
109109
"config": "{projectRoot}/vitest.config.mts",
110-
"watch": false,
111-
"reportsDirectory": "{projectRoot}/coverage"
110+
"watch": false
112111
}
113112
},
114113
"lint": {
@@ -132,7 +131,7 @@
132131
},
133132
"typecheck": {
134133
"dependsOn": ["types:copy-ast-spec"],
135-
"outputs": ["{workspaceRoot}/dist/out-tsc/{projectRoot}"],
134+
"outputs": ["{workspaceRoot}/dist"],
136135
"cache": true
137136
}
138137
},

Diff for: package.json

+13-15
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@
6363
"@eslint/eslintrc": "^3.2.0",
6464
"@eslint/js": "^9.15.0",
6565
"@jest/types": "29.6.3",
66-
"@nx/devkit": "20.4.5",
67-
"@nx/eslint": "20.4.5",
68-
"@nx/jest": "20.4.5",
69-
"@nx/vite": "20.4.5",
70-
"@nx/workspace": "20.4.5",
66+
"@nx/devkit": "20.7.2",
67+
"@nx/eslint": "20.7.2",
68+
"@nx/jest": "20.7.2",
69+
"@nx/vite": "20.7.2",
70+
"@nx/workspace": "20.7.2",
7171
"@swc/core": "^1.4.12",
7272
"@swc/jest": "^0.2.36",
7373
"@types/babel__code-frame": "^7.0.6",
@@ -78,7 +78,6 @@
7878
"@types/jest": "29.5.13",
7979
"@types/jest-specific-snapshot": "^0.5.9",
8080
"@types/natural-compare": "^1.4.3",
81-
"@types/ncp": "^2.0.8",
8281
"@types/node": "^20.12.5",
8382
"@types/semver": "^7.5.8",
8483
"@types/tmp": "^0.2.6",
@@ -89,12 +88,11 @@
8988
"@typescript-eslint/types": "workspace:^",
9089
"@typescript-eslint/typescript-estree": "workspace:^",
9190
"@typescript-eslint/utils": "workspace:^",
92-
"@vitest/coverage-v8": "^3.0.8",
93-
"@vitest/eslint-plugin": "^1.1.37",
91+
"@vitest/coverage-v8": "^3.1.1",
92+
"@vitest/eslint-plugin": "^1.1.42",
9493
"console-fail-test": "^0.5.0",
9594
"cross-fetch": "^4.0.0",
9695
"cspell": "^8.15.2",
97-
"downlevel-dts": ">=0.11.0",
9896
"eslint": "^9.15.0",
9997
"eslint-plugin-eslint-plugin": "^6.3.1",
10098
"eslint-plugin-import": "^2.31.0",
@@ -112,22 +110,21 @@
112110
"husky": "^9.1.4",
113111
"jest": "29.7.0",
114112
"jest-specific-snapshot": "^8.0.0",
113+
"jiti": "2.4.2",
115114
"knip": "^5.41.1",
116115
"lint-staged": "^15.2.2",
117116
"make-dir": "^4.0.0",
118117
"markdownlint-cli": "^0.44.0",
119-
"ncp": "^2.0.0",
120-
"nx": "20.4.5",
118+
"nx": "20.7.2",
121119
"prettier": "3.5.0",
122120
"pretty-format": "^29.7.0",
123121
"rimraf": "^5.0.5",
124122
"semver": "7.7.0",
125-
"tmp": "^0.2.1",
126123
"tsx": "*",
127124
"typescript": ">=4.8.4 <5.9.0",
128125
"typescript-eslint": "workspace:^",
129-
"vite": "^6.2.2",
130-
"vitest": "^3.0.8",
126+
"vite": "^6.2.6",
127+
"vitest": "^3.1.1",
131128
"yargs": "17.7.2"
132129
},
133130
"resolutions": {
@@ -148,7 +145,8 @@
148145
"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",
149146
"tmp": "0.2.1",
150147
"tsx": "^4.7.2",
151-
"typescript": "5.8.2"
148+
"typescript": "5.8.2",
149+
"@eslint/config-helpers": "^0.2.0"
152150
},
153151
"packageManager": "[email protected]",
154152
"nx": {

Diff for: packages/ast-spec/CHANGELOG.md

+12
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
## 8.29.1 (2025-04-07)
2+
3+
### 🩹 Fixes
4+
5+
- **typescript-estree:** use token type of `Numeric` instead of `Identifier` for bigint literals ([#11021](https://github.com/typescript-eslint/typescript-eslint/pull/11021))
6+
7+
### ❤️ Thank You
8+
9+
- Ronen Amiel
10+
11+
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.
12+
113
## 8.29.0 (2025-03-31)
214

315
This was a version bump only for ast-spec to align it with other projects, there were no code changes.

0 commit comments

Comments
 (0)