diff --git a/CHANGELOG.md b/CHANGELOG.md
index eb1f8bbcd970..759f55d4ff18 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,20 @@
+## 8.8.1 (2024-10-07)
+
+
+### 🩹 Fixes
+
+- **eslint-plugin:** stop warning on @ts-nocheck comments which aren't at the beginning of the file ([#10046](https://github.com/typescript-eslint/typescript-eslint/pull/10046))
+- **typescript-estree:** fix crash when running from a `node --eval` script ([#10098](https://github.com/typescript-eslint/typescript-eslint/pull/10098))
+- **typescript-estree:** ensure mjs/mts files are always be parsed as ESM ([#10011](https://github.com/typescript-eslint/typescript-eslint/pull/10011))
+
+### ❤️ Thank You
+
+- Brad Zacher @bradzacher
+- Ronen Amiel
+- WhitePiano @goldentrash
+
+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.
+
## 8.8.0 (2024-09-30)
diff --git a/docs/packages/TypeScript_ESTree.mdx b/docs/packages/TypeScript_ESTree.mdx
index d865ebb717dc..c00bd325b6ad 100644
--- a/docs/packages/TypeScript_ESTree.mdx
+++ b/docs/packages/TypeScript_ESTree.mdx
@@ -33,6 +33,12 @@ Parses the given string of code with the options provided and returns an ESTree-
```ts
interface ParseOptions {
+ /**
+ * Specify the `sourceType`.
+ * For more details, see https://github.com/typescript-eslint/typescript-eslint/pull/9121
+ */
+ sourceType?: SourceType;
+
/**
* Prevents the parser from throwing an error if it receives an invalid AST from TypeScript.
* This case only usually occurs when attempting to lint invalid code.
diff --git a/packages/ast-spec/CHANGELOG.md b/packages/ast-spec/CHANGELOG.md
index b2499bc39906..2eb6495e58bc 100644
--- a/packages/ast-spec/CHANGELOG.md
+++ b/packages/ast-spec/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.8.1 (2024-10-07)
+
+This was a version bump only for ast-spec to align it with other projects, there were no code changes.
+
+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.
+
## 8.8.0 (2024-09-30)
diff --git a/packages/ast-spec/package.json b/packages/ast-spec/package.json
index a367966611f1..1dea62fb271f 100644
--- a/packages/ast-spec/package.json
+++ b/packages/ast-spec/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/ast-spec",
- "version": "8.8.0",
+ "version": "8.8.1",
"description": "Complete specification for the TypeScript-ESTree AST",
"private": true,
"keywords": [
diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md
index 3bfb791aeb0e..062f196a7111 100644
--- a/packages/eslint-plugin/CHANGELOG.md
+++ b/packages/eslint-plugin/CHANGELOG.md
@@ -1,3 +1,19 @@
+## 8.8.1 (2024-10-07)
+
+
+### 🩹 Fixes
+
+- **eslint-plugin:** stop warning on @ts-nocheck comments which aren't at the beginning of the file
+
+
+### ❤️ Thank You
+
+- Brad Zacher
+- Ronen Amiel
+- WhitePiano
+
+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.
+
## 8.8.0 (2024-09-30)
diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json
index 1ad47457ae10..5d56497ab27c 100644
--- a/packages/eslint-plugin/package.json
+++ b/packages/eslint-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/eslint-plugin",
- "version": "8.8.0",
+ "version": "8.8.1",
"description": "TypeScript plugin for ESLint",
"files": [
"dist",
@@ -60,10 +60,10 @@
},
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.8.0",
- "@typescript-eslint/type-utils": "8.8.0",
- "@typescript-eslint/utils": "8.8.0",
- "@typescript-eslint/visitor-keys": "8.8.0",
+ "@typescript-eslint/scope-manager": "8.8.1",
+ "@typescript-eslint/type-utils": "8.8.1",
+ "@typescript-eslint/utils": "8.8.1",
+ "@typescript-eslint/visitor-keys": "8.8.1",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@@ -74,8 +74,8 @@
"@types/marked": "^5.0.2",
"@types/mdast": "^4.0.3",
"@types/natural-compare": "*",
- "@typescript-eslint/rule-schema-to-typescript-types": "8.8.0",
- "@typescript-eslint/rule-tester": "8.8.0",
+ "@typescript-eslint/rule-schema-to-typescript-types": "8.8.1",
+ "@typescript-eslint/rule-tester": "8.8.1",
"ajv": "^6.12.6",
"cross-env": "^7.0.3",
"cross-fetch": "*",
diff --git a/packages/eslint-plugin/src/rules/ban-ts-comment.ts b/packages/eslint-plugin/src/rules/ban-ts-comment.ts
index 44970393cfc7..19001dcbd97a 100644
--- a/packages/eslint-plugin/src/rules/ban-ts-comment.ts
+++ b/packages/eslint-plugin/src/rules/ban-ts-comment.ts
@@ -182,7 +182,9 @@ export default createRule<[Options], MessageIds>({
}
return {
- Program(): void {
+ Program(node): void {
+ const firstStatement = node.body.at(0);
+
const comments = context.sourceCode.getAllComments();
comments.forEach(comment => {
@@ -192,6 +194,14 @@ export default createRule<[Options], MessageIds>({
}
const { directive, description } = match;
+ if (
+ directive === 'nocheck' &&
+ firstStatement &&
+ firstStatement.loc.start.line <= comment.loc.start.line
+ ) {
+ return;
+ }
+
const fullDirective = `ts-${directive}` as keyof Options;
const option = options[fullDirective];
diff --git a/packages/eslint-plugin/tests/rules/ban-ts-comment.test.ts b/packages/eslint-plugin/tests/rules/ban-ts-comment.test.ts
index d89b560277ed..bfc2a4565700 100644
--- a/packages/eslint-plugin/tests/rules/ban-ts-comment.test.ts
+++ b/packages/eslint-plugin/tests/rules/ban-ts-comment.test.ts
@@ -992,6 +992,14 @@ ruleTester.run('ts-nocheck', rule, {
`,
'/** @ts-nocheck */',
'/* @ts-nocheck */',
+ `
+const a = 1;
+
+// @ts-nocheck - should not be reported
+
+// TS error is not actually suppressed
+const b: string = a;
+ `,
],
invalid: [
{
@@ -1028,22 +1036,6 @@ ruleTester.run('ts-nocheck', rule, {
},
],
},
- {
- code: `
-if (false) {
- // @ts-nocheck: Unreachable code error
- console.log('hello');
-}
- `,
- errors: [
- {
- data: { directive: 'nocheck' },
- messageId: 'tsDirectiveComment',
- line: 3,
- column: 3,
- },
- ],
- },
{
code: '// @ts-nocheck',
options: [{ 'ts-nocheck': 'allow-with-description' }],
@@ -1127,6 +1119,22 @@ if (false) {
},
],
},
+ {
+ // comment's column > first statement's column
+ // eslint-disable-next-line @typescript-eslint/internal/plugin-test-formatting
+ code: `
+ // @ts-nocheck
+const a: true = false;
+ `,
+ errors: [
+ {
+ data: { directive: 'nocheck', minimumDescriptionLength: 3 },
+ messageId: 'tsDirectiveComment',
+ line: 2,
+ column: 2,
+ },
+ ],
+ },
],
});
diff --git a/packages/parser/CHANGELOG.md b/packages/parser/CHANGELOG.md
index 03fe069e48c3..19b21ec9ccc4 100644
--- a/packages/parser/CHANGELOG.md
+++ b/packages/parser/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.8.1 (2024-10-07)
+
+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://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
+
## 8.8.0 (2024-09-30)
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 7710ef600557..918eb7babdb2 100644
--- a/packages/parser/package.json
+++ b/packages/parser/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/parser",
- "version": "8.8.0",
+ "version": "8.8.1",
"description": "An ESLint custom parser which leverages TypeScript ESTree",
"files": [
"dist",
@@ -52,10 +52,10 @@
"eslint": "^8.57.0 || ^9.0.0"
},
"dependencies": {
- "@typescript-eslint/scope-manager": "8.8.0",
- "@typescript-eslint/types": "8.8.0",
- "@typescript-eslint/typescript-estree": "8.8.0",
- "@typescript-eslint/visitor-keys": "8.8.0",
+ "@typescript-eslint/scope-manager": "8.8.1",
+ "@typescript-eslint/types": "8.8.1",
+ "@typescript-eslint/typescript-estree": "8.8.1",
+ "@typescript-eslint/visitor-keys": "8.8.1",
"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 e3db3a2cee59..d3c403d2ea0c 100644
--- a/packages/rule-schema-to-typescript-types/CHANGELOG.md
+++ b/packages/rule-schema-to-typescript-types/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.8.1 (2024-10-07)
+
+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://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
+
## 8.8.0 (2024-09-30)
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 29a5572487d8..3e06cb19310c 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.8.0",
+ "version": "8.8.1",
"private": true,
"type": "commonjs",
"exports": {
@@ -34,8 +34,8 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@typescript-eslint/type-utils": "8.8.0",
- "@typescript-eslint/utils": "8.8.0",
+ "@typescript-eslint/type-utils": "8.8.1",
+ "@typescript-eslint/utils": "8.8.1",
"natural-compare": "^1.4.0",
"prettier": "^3.2.5"
},
diff --git a/packages/rule-tester/CHANGELOG.md b/packages/rule-tester/CHANGELOG.md
index c2d5f511d7c5..361f26e5c81b 100644
--- a/packages/rule-tester/CHANGELOG.md
+++ b/packages/rule-tester/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.8.1 (2024-10-07)
+
+This was a version bump only for rule-tester to align it with other projects, there were no code changes.
+
+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.
+
## 8.8.0 (2024-09-30)
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 420f93c26d45..654789601ba5 100644
--- a/packages/rule-tester/package.json
+++ b/packages/rule-tester/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/rule-tester",
- "version": "8.8.0",
+ "version": "8.8.1",
"description": "Tooling to test ESLint rules",
"files": [
"dist",
@@ -48,8 +48,8 @@
},
"//": "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/typescript-estree": "8.8.0",
- "@typescript-eslint/utils": "8.8.0",
+ "@typescript-eslint/typescript-estree": "8.8.1",
+ "@typescript-eslint/utils": "8.8.1",
"ajv": "^6.12.6",
"json-stable-stringify-without-jsonify": "^1.0.1",
"lodash.merge": "4.6.2",
@@ -62,7 +62,7 @@
"@jest/types": "29.6.3",
"@types/json-stable-stringify-without-jsonify": "^1.0.2",
"@types/lodash.merge": "4.6.9",
- "@typescript-eslint/parser": "8.8.0",
+ "@typescript-eslint/parser": "8.8.1",
"chai": "^4.4.1",
"eslint-visitor-keys": "^4.0.0",
"espree": "^10.0.1",
diff --git a/packages/scope-manager/CHANGELOG.md b/packages/scope-manager/CHANGELOG.md
index 1e7758d5793f..cf6a8458c4c5 100644
--- a/packages/scope-manager/CHANGELOG.md
+++ b/packages/scope-manager/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.8.1 (2024-10-07)
+
+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://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
+
## 8.8.0 (2024-09-30)
diff --git a/packages/scope-manager/package.json b/packages/scope-manager/package.json
index 54d1245c001a..977525271531 100644
--- a/packages/scope-manager/package.json
+++ b/packages/scope-manager/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/scope-manager",
- "version": "8.8.0",
+ "version": "8.8.1",
"description": "TypeScript scope analyser for ESLint",
"files": [
"dist",
@@ -46,13 +46,13 @@
"typecheck": "npx nx typecheck"
},
"dependencies": {
- "@typescript-eslint/types": "8.8.0",
- "@typescript-eslint/visitor-keys": "8.8.0"
+ "@typescript-eslint/types": "8.8.1",
+ "@typescript-eslint/visitor-keys": "8.8.1"
},
"devDependencies": {
"@jest/types": "29.6.3",
"@types/glob": "*",
- "@typescript-eslint/typescript-estree": "8.8.0",
+ "@typescript-eslint/typescript-estree": "8.8.1",
"glob": "*",
"jest-specific-snapshot": "*",
"make-dir": "*",
diff --git a/packages/type-utils/CHANGELOG.md b/packages/type-utils/CHANGELOG.md
index d1884f85e863..d354f6ca88db 100644
--- a/packages/type-utils/CHANGELOG.md
+++ b/packages/type-utils/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.8.1 (2024-10-07)
+
+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://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
+
## 8.8.0 (2024-09-30)
diff --git a/packages/type-utils/package.json b/packages/type-utils/package.json
index 33b05de04122..382ab27c4d7c 100644
--- a/packages/type-utils/package.json
+++ b/packages/type-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/type-utils",
- "version": "8.8.0",
+ "version": "8.8.1",
"description": "Type utilities for working with TypeScript + ESLint together",
"files": [
"dist",
@@ -46,14 +46,14 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.8.0",
- "@typescript-eslint/utils": "8.8.0",
+ "@typescript-eslint/typescript-estree": "8.8.1",
+ "@typescript-eslint/utils": "8.8.1",
"debug": "^4.3.4",
"ts-api-utils": "^1.3.0"
},
"devDependencies": {
"@jest/types": "29.6.3",
- "@typescript-eslint/parser": "8.8.0",
+ "@typescript-eslint/parser": "8.8.1",
"ajv": "^6.12.6",
"downlevel-dts": "*",
"jest": "29.7.0",
diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md
index 8373dbb83084..6dc6967b98d1 100644
--- a/packages/types/CHANGELOG.md
+++ b/packages/types/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.8.1 (2024-10-07)
+
+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://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
+
## 8.8.0 (2024-09-30)
diff --git a/packages/types/package.json b/packages/types/package.json
index baf3e4bc262e..2adf8b3b372a 100644
--- a/packages/types/package.json
+++ b/packages/types/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/types",
- "version": "8.8.0",
+ "version": "8.8.1",
"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 c68cb2dcf15c..ca3ed078474f 100644
--- a/packages/typescript-eslint/CHANGELOG.md
+++ b/packages/typescript-eslint/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.8.1 (2024-10-07)
+
+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://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
+
## 8.8.0 (2024-09-30)
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 6348bb03a939..bbae4da92918 100644
--- a/packages/typescript-eslint/package.json
+++ b/packages/typescript-eslint/package.json
@@ -1,6 +1,6 @@
{
"name": "typescript-eslint",
- "version": "8.8.0",
+ "version": "8.8.1",
"description": "Tooling which enables you to use TypeScript with ESLint",
"files": [
"dist",
@@ -52,9 +52,9 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@typescript-eslint/eslint-plugin": "8.8.0",
- "@typescript-eslint/parser": "8.8.0",
- "@typescript-eslint/utils": "8.8.0"
+ "@typescript-eslint/eslint-plugin": "8.8.1",
+ "@typescript-eslint/parser": "8.8.1",
+ "@typescript-eslint/utils": "8.8.1"
},
"devDependencies": {
"@jest/types": "29.6.3",
diff --git a/packages/typescript-estree/CHANGELOG.md b/packages/typescript-estree/CHANGELOG.md
index d939a122780b..bcb1890e79ba 100644
--- a/packages/typescript-estree/CHANGELOG.md
+++ b/packages/typescript-estree/CHANGELOG.md
@@ -1,3 +1,21 @@
+## 8.8.1 (2024-10-07)
+
+
+### 🩹 Fixes
+
+- **typescript-estree:** fix crash when running from a `node --eval` script
+
+- **typescript-estree:** ensure mjs/mts files are always be parsed as ESM
+
+
+### ❤️ Thank You
+
+- Brad Zacher
+- Ronen Amiel
+- WhitePiano
+
+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.
+
## 8.8.0 (2024-09-30)
diff --git a/packages/typescript-estree/package.json b/packages/typescript-estree/package.json
index a022b5b16a2f..a19df7fcf115 100644
--- a/packages/typescript-estree/package.json
+++ b/packages/typescript-estree/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/typescript-estree",
- "version": "8.8.0",
+ "version": "8.8.1",
"description": "A parser that converts TypeScript source code into an ESTree compatible form",
"files": [
"dist",
@@ -54,8 +54,8 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@typescript-eslint/types": "8.8.0",
- "@typescript-eslint/visitor-keys": "8.8.0",
+ "@typescript-eslint/types": "8.8.1",
+ "@typescript-eslint/visitor-keys": "8.8.1",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
diff --git a/packages/typescript-estree/src/create-program/createSourceFile.ts b/packages/typescript-estree/src/create-program/createSourceFile.ts
index bb5bc9d7b8fc..096264c5844f 100644
--- a/packages/typescript-estree/src/create-program/createSourceFile.ts
+++ b/packages/typescript-estree/src/create-program/createSourceFile.ts
@@ -23,6 +23,7 @@ function createSourceFile(parseSettings: ParseSettings): ts.SourceFile {
{
languageVersion: ts.ScriptTarget.Latest,
jsDocParsingMode: parseSettings.jsDocParsingMode,
+ setExternalModuleIndicator: parseSettings.setExternalModuleIndicator,
},
/* setParentNodes */ true,
getScriptKind(parseSettings.filePath, parseSettings.jsx),
diff --git a/packages/typescript-estree/src/parseSettings/createParseSettings.ts b/packages/typescript-estree/src/parseSettings/createParseSettings.ts
index 2bae667104fc..35783e0acbe5 100644
--- a/packages/typescript-estree/src/parseSettings/createParseSettings.ts
+++ b/packages/typescript-estree/src/parseSettings/createParseSettings.ts
@@ -1,3 +1,5 @@
+import path from 'node:path';
+
import debug from 'debug';
import * as ts from 'typescript';
@@ -46,6 +48,14 @@ export function createParseSettings(
? tsestreeOptions.tsconfigRootDir
: process.cwd();
const passedLoggerFn = typeof tsestreeOptions.loggerFn === 'function';
+ const filePath = ensureAbsolutePath(
+ typeof tsestreeOptions.filePath === 'string' &&
+ tsestreeOptions.filePath !== ''
+ ? tsestreeOptions.filePath
+ : getFileName(tsestreeOptions.jsx),
+ tsconfigRootDir,
+ );
+ const extension = path.extname(filePath).toLowerCase() as ts.Extension;
const jsDocParsingMode = ((): ts.JSDocParsingMode => {
switch (tsestreeOptions.jsDocParsingMode) {
case 'all':
@@ -81,13 +91,17 @@ export function createParseSettings(
tsestreeOptions.extraFileExtensions.every(ext => typeof ext === 'string')
? tsestreeOptions.extraFileExtensions
: [],
- filePath: ensureAbsolutePath(
- typeof tsestreeOptions.filePath === 'string' &&
- tsestreeOptions.filePath !== ''
- ? tsestreeOptions.filePath
- : getFileName(tsestreeOptions.jsx),
- tsconfigRootDir,
- ),
+ filePath,
+ setExternalModuleIndicator:
+ tsestreeOptions.sourceType === 'module' ||
+ (tsestreeOptions.sourceType === undefined &&
+ extension === ts.Extension.Mjs) ||
+ (tsestreeOptions.sourceType === undefined &&
+ extension === ts.Extension.Mts)
+ ? (file): void => {
+ file.externalModuleIndicator = true;
+ }
+ : undefined,
jsDocParsingMode,
jsx: tsestreeOptions.jsx === true,
loc: tsestreeOptions.loc === true,
diff --git a/packages/typescript-estree/src/parseSettings/index.ts b/packages/typescript-estree/src/parseSettings/index.ts
index 41a21c044946..2e9b341d3dc0 100644
--- a/packages/typescript-estree/src/parseSettings/index.ts
+++ b/packages/typescript-estree/src/parseSettings/index.ts
@@ -72,6 +72,14 @@ export interface MutableParseSettings {
*/
filePath: string;
+ /**
+ * Sets the external module indicator on the source file.
+ * Used by Typescript to determine if a sourceFile is an external module.
+ *
+ * needed to always parsing `mjs`/`mts` files as ESM
+ */
+ setExternalModuleIndicator?: (file: ts.SourceFile) => void;
+
/**
* JSDoc parsing style to pass through to TypeScript
*/
diff --git a/packages/typescript-estree/src/parseSettings/inferSingleRun.ts b/packages/typescript-estree/src/parseSettings/inferSingleRun.ts
index ac0c4d21948f..8007e6ccd66a 100644
--- a/packages/typescript-estree/src/parseSettings/inferSingleRun.ts
+++ b/packages/typescript-estree/src/parseSettings/inferSingleRun.ts
@@ -50,8 +50,10 @@ export function inferSingleRun(options: TSESTreeOptions | undefined): boolean {
// Default to single runs for CI processes. CI=true is set by most CI providers by default.
process.env.CI === 'true' ||
// This will be true for invocations such as `npx eslint ...` and `./node_modules/.bin/eslint ...`
- possibleEslintBinPaths.some(binPath =>
- process.argv[1].endsWith(path.normalize(binPath)),
+ possibleEslintBinPaths.some(
+ binPath =>
+ process.argv.length > 1 &&
+ process.argv[1].endsWith(path.normalize(binPath)),
)
) {
return !process.argv.includes('--fix');
diff --git a/packages/typescript-estree/src/parser-options.ts b/packages/typescript-estree/src/parser-options.ts
index 55f4d3b05ebd..44af134611c2 100644
--- a/packages/typescript-estree/src/parser-options.ts
+++ b/packages/typescript-estree/src/parser-options.ts
@@ -3,6 +3,7 @@ import type {
DebugLevel,
JSDocParsingMode,
ProjectServiceOptions,
+ SourceType,
} from '@typescript-eslint/types';
import type * as ts from 'typescript';
@@ -15,6 +16,12 @@ export type { ProjectServiceOptions } from '@typescript-eslint/types';
//////////////////////////////////////////////////////////
interface ParseOptions {
+ /**
+ * Specify the `sourceType`.
+ * For more details, see https://github.com/typescript-eslint/typescript-eslint/pull/9121
+ */
+ sourceType?: SourceType;
+
/**
* Prevents the parser from throwing an error if it receives an invalid AST from TypeScript.
* This case only usually occurs when attempting to lint invalid code.
diff --git a/packages/typescript-estree/tests/lib/parse.test.ts b/packages/typescript-estree/tests/lib/parse.test.ts
index dc750b9f9b63..fe9883ffe5a7 100644
--- a/packages/typescript-estree/tests/lib/parse.test.ts
+++ b/packages/typescript-estree/tests/lib/parse.test.ts
@@ -342,6 +342,134 @@ describe('parseAndGenerateServices', () => {
});
});
+ describe('ESM parsing', () => {
+ describe('TLA(Top Level Await)', () => {
+ const config: TSESTreeOptions = {
+ projectService: false,
+ comment: true,
+ tokens: true,
+ range: true,
+ loc: true,
+ };
+ const code = 'await(1)';
+
+ const testParse = ({
+ sourceType,
+ ext,
+ shouldAllowTLA = false,
+ }: {
+ sourceType?: 'module' | 'script';
+ ext: '.js' | '.ts' | '.mjs' | '.mts';
+ shouldAllowTLA?: boolean;
+ }): void => {
+ const ast = parser.parse(code, {
+ ...config,
+ sourceType,
+ filePath: `file${ext}`,
+ });
+ const expressionType = (
+ ast.body[0] as parser.TSESTree.ExpressionStatement
+ ).expression.type;
+
+ it(`parse(): should ${
+ shouldAllowTLA ? 'allow' : 'not allow'
+ } TLA for ${ext} file with sourceType = ${sourceType}`, () => {
+ expect(expressionType).toBe(
+ shouldAllowTLA
+ ? parser.AST_NODE_TYPES.AwaitExpression
+ : parser.AST_NODE_TYPES.CallExpression,
+ );
+ });
+ };
+ const testParseAndGenerateServices = ({
+ sourceType,
+ ext,
+ shouldAllowTLA = false,
+ }: {
+ sourceType?: 'module' | 'script';
+ ext: '.js' | '.ts' | '.mjs' | '.mts';
+ shouldAllowTLA?: boolean;
+ }): void => {
+ const result = parser.parseAndGenerateServices(code, {
+ ...config,
+ sourceType,
+ filePath: `file${ext}`,
+ });
+ const expressionType = (
+ result.ast.body[0] as parser.TSESTree.ExpressionStatement
+ ).expression.type;
+
+ it(`parseAndGenerateServices(): should ${
+ shouldAllowTLA ? 'allow' : 'not allow'
+ } TLA for ${ext} file with sourceType = ${sourceType}`, () => {
+ expect(expressionType).toBe(
+ shouldAllowTLA
+ ? parser.AST_NODE_TYPES.AwaitExpression
+ : parser.AST_NODE_TYPES.CallExpression,
+ );
+ });
+ };
+
+ testParse({ ext: '.js' });
+ testParse({ ext: '.ts' });
+ testParse({ ext: '.mjs', shouldAllowTLA: true });
+ testParse({ ext: '.mts', shouldAllowTLA: true });
+
+ testParse({ sourceType: 'module', ext: '.js', shouldAllowTLA: true });
+ testParse({ sourceType: 'module', ext: '.ts', shouldAllowTLA: true });
+ testParse({ sourceType: 'module', ext: '.mjs', shouldAllowTLA: true });
+ testParse({ sourceType: 'module', ext: '.mts', shouldAllowTLA: true });
+
+ testParse({ sourceType: 'script', ext: '.js' });
+ testParse({ sourceType: 'script', ext: '.ts' });
+ testParse({ sourceType: 'script', ext: '.mjs' });
+ testParse({ sourceType: 'script', ext: '.mts' });
+
+ testParseAndGenerateServices({ ext: '.js' });
+ testParseAndGenerateServices({ ext: '.ts' });
+ testParseAndGenerateServices({ ext: '.mjs', shouldAllowTLA: true });
+ testParseAndGenerateServices({ ext: '.mts', shouldAllowTLA: true });
+
+ testParseAndGenerateServices({
+ sourceType: 'module',
+ ext: '.js',
+ shouldAllowTLA: true,
+ });
+ testParseAndGenerateServices({
+ sourceType: 'module',
+ ext: '.ts',
+ shouldAllowTLA: true,
+ });
+ testParseAndGenerateServices({
+ sourceType: 'module',
+ ext: '.mjs',
+ shouldAllowTLA: true,
+ });
+ testParseAndGenerateServices({
+ sourceType: 'module',
+ ext: '.mts',
+ shouldAllowTLA: true,
+ });
+
+ testParseAndGenerateServices({
+ sourceType: 'script',
+ ext: '.js',
+ });
+ testParseAndGenerateServices({
+ sourceType: 'script',
+ ext: '.ts',
+ });
+ testParseAndGenerateServices({
+ sourceType: 'script',
+ ext: '.mjs',
+ });
+ testParseAndGenerateServices({
+ sourceType: 'script',
+ ext: '.mts',
+ });
+ });
+ });
+
if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE !== 'true') {
describe('invalid file error messages', () => {
const PROJECT_DIR = resolve(FIXTURES_DIR, '../invalidFileErrors');
diff --git a/packages/typescript-estree/typings/typescript.d.ts b/packages/typescript-estree/typings/typescript.d.ts
index 8d370d1ea696..039c9a062590 100644
--- a/packages/typescript-estree/typings/typescript.d.ts
+++ b/packages/typescript-estree/typings/typescript.d.ts
@@ -3,7 +3,7 @@ import 'typescript';
// these additions are marked as internal to typescript
declare module 'typescript' {
interface SourceFile {
- externalModuleIndicator?: Node;
+ externalModuleIndicator?: Node | true;
parseDiagnostics: DiagnosticWithLocation[];
}
diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md
index a26a87b066a6..db418be1adcc 100644
--- a/packages/utils/CHANGELOG.md
+++ b/packages/utils/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.8.1 (2024-10-07)
+
+This was a version bump only for utils to align it with other projects, there were no code changes.
+
+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.
+
## 8.8.0 (2024-09-30)
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 063847b91ba3..7cf0474d03af 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/utils",
- "version": "8.8.0",
+ "version": "8.8.1",
"description": "Utilities for working with TypeScript + ESLint together",
"files": [
"dist",
@@ -64,9 +64,9 @@
},
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.8.0",
- "@typescript-eslint/types": "8.8.0",
- "@typescript-eslint/typescript-estree": "8.8.0"
+ "@typescript-eslint/scope-manager": "8.8.1",
+ "@typescript-eslint/types": "8.8.1",
+ "@typescript-eslint/typescript-estree": "8.8.1"
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0"
diff --git a/packages/visitor-keys/CHANGELOG.md b/packages/visitor-keys/CHANGELOG.md
index c8487863d438..e0cd57757aa7 100644
--- a/packages/visitor-keys/CHANGELOG.md
+++ b/packages/visitor-keys/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 8.8.1 (2024-10-07)
+
+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://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.
+
## 8.8.0 (2024-09-30)
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 c64e651b9071..7754a152df25 100644
--- a/packages/visitor-keys/package.json
+++ b/packages/visitor-keys/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/visitor-keys",
- "version": "8.8.0",
+ "version": "8.8.1",
"description": "Visitor keys used to help traverse the TypeScript-ESTree AST",
"files": [
"dist",
@@ -47,7 +47,7 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@typescript-eslint/types": "8.8.0",
+ "@typescript-eslint/types": "8.8.1",
"eslint-visitor-keys": "^3.4.3"
},
"devDependencies": {
diff --git a/packages/website/data/sponsors.json b/packages/website/data/sponsors.json
index 24eceaad50d7..9a66fbdeee30 100644
--- a/packages/website/data/sponsors.json
+++ b/packages/website/data/sponsors.json
@@ -3,7 +3,7 @@
"id": "ESLint",
"image": "https://images.opencollective.com/eslint/48a2e5d/logo.png",
"name": "ESLint",
- "totalDonations": 3090000,
+ "totalDonations": 3120000,
"website": "https://eslint.org/"
},
{
@@ -17,35 +17,35 @@
"id": "Nx (by Nrwl)",
"image": "https://images.opencollective.com/nx/0efbe42/logo.png",
"name": "Nx (by Nrwl)",
- "totalDonations": 1050000,
+ "totalDonations": 1075000,
"website": "https://nx.dev"
},
{
"id": "Hugging Face",
"image": "https://images.opencollective.com/huggingface/5c934ee/logo.png",
"name": "Hugging Face",
- "totalDonations": 580000,
+ "totalDonations": 600000,
"website": "https://huggingface.co"
},
- {
- "id": "Cybozu",
- "image": "https://images.opencollective.com/cybozu/933e46d/logo.png",
- "name": "Cybozu",
- "totalDonations": 455000,
- "website": "https://cybozu.co.jp/"
- },
{
"id": "JetBrains",
"image": "https://images.opencollective.com/jetbrains/fe76f99/logo.png",
"name": "JetBrains",
- "totalDonations": 450000,
+ "totalDonations": 500000,
"website": "https://www.jetbrains.com/"
},
+ {
+ "id": "Cybozu",
+ "image": "https://images.opencollective.com/cybozu/933e46d/logo.png",
+ "name": "Cybozu",
+ "totalDonations": 490000,
+ "website": "https://cybozu.co.jp/"
+ },
{
"id": "Codecademy",
"image": "https://images.opencollective.com/codecademy/d56a48d/logo.png",
"name": "Codecademy",
- "totalDonations": 320000,
+ "totalDonations": 330000,
"website": "https://codecademy.com"
},
{
@@ -59,14 +59,14 @@
"id": "Sourcegraph",
"image": "https://images.opencollective.com/sourcegraph/67e40ff/logo.png",
"name": "Sourcegraph",
- "totalDonations": 270000,
+ "totalDonations": 280000,
"website": "https://about.sourcegraph.com"
},
{
"id": "Airbnb",
"image": "https://images.opencollective.com/airbnb/d327d66/logo.png",
"name": "Airbnb",
- "totalDonations": 250800,
+ "totalDonations": 255800,
"website": "https://www.airbnb.com/"
},
{
@@ -111,6 +111,13 @@
"totalDonations": 111111,
"website": "https://bitwarden.com/"
},
+ {
+ "id": "STORIS",
+ "image": "https://images.opencollective.com/storis/dfb0e13/logo.png",
+ "name": "STORIS",
+ "totalDonations": 81500,
+ "website": "https://www.storis.com/"
+ },
{
"id": "EY Doberman",
"image": "https://images.opencollective.com/ey-doberman/b269462/logo.png",
@@ -118,13 +125,6 @@
"totalDonations": 80400,
"website": "https://doberman.co"
},
- {
- "id": "STORIS",
- "image": "https://images.opencollective.com/storis/dfb0e13/logo.png",
- "name": "STORIS",
- "totalDonations": 78000,
- "website": "https://www.storis.com/"
- },
{
"id": "Codiga",
"image": "https://images.opencollective.com/codiga/1065f9f/logo.png",
@@ -153,6 +153,13 @@
"totalDonations": 50000,
"website": "https://skunk.team"
},
+ {
+ "id": "vlt",
+ "image": "https://images.opencollective.com/vlt/487acef/logo.png",
+ "name": "vlt",
+ "totalDonations": 50000,
+ "website": "https://vlt.sh"
+ },
{
"id": "Joe Alden",
"image": "https://images.opencollective.com/joealden/44a6738/avatar.png",
@@ -171,9 +178,23 @@
"id": "CryptoNewsZ",
"image": "https://images.opencollective.com/cryptonewsz/f50c823/logo.png",
"name": "CryptoNewsZ",
- "totalDonations": 37500,
+ "totalDonations": 40000,
"website": "https://www.cryptonewsz.com/"
},
+ {
+ "id": "Quicko",
+ "image": "https://images.opencollective.com/quicko/7bd1dc9/logo.png",
+ "name": "Quicko",
+ "totalDonations": 32000,
+ "website": "https://quicko.com"
+ },
+ {
+ "id": "WebdriverIO",
+ "image": "https://images.opencollective.com/webdriverio/bbdd5c3/logo.png",
+ "name": "WebdriverIO",
+ "totalDonations": 31500,
+ "website": "https://webdriver.io/"
+ },
{
"id": "Monito",
"image": "https://images.opencollective.com/monito/50fc878/logo.png",
@@ -181,13 +202,6 @@
"totalDonations": 30000,
"website": "https://www.monito.com"
},
- {
- "id": "Quicko",
- "image": "https://images.opencollective.com/quicko/7bd1dc9/logo.png",
- "name": "Quicko",
- "totalDonations": 30000,
- "website": "https://quicko.com"
- },
{
"id": "tRPC",
"image": "https://images.opencollective.com/trpc/82704a8/logo.png",
@@ -195,6 +209,13 @@
"totalDonations": 30000,
"website": "https://trpc.io"
},
+ {
+ "id": "Defined Networking",
+ "image": "https://images.opencollective.com/defined-networking/072920e/logo.png",
+ "name": "Defined Networking",
+ "totalDonations": 30000,
+ "website": "https://www.defined.net"
+ },
{
"id": "Vite",
"image": "https://images.opencollective.com/vite/e6d15e1/logo.png",
@@ -202,20 +223,6 @@
"totalDonations": 30000,
"website": "https://vitejs.dev"
},
- {
- "id": "WebdriverIO",
- "image": "https://images.opencollective.com/webdriverio/bbdd5c3/logo.png",
- "name": "WebdriverIO",
- "totalDonations": 28000,
- "website": "https://webdriver.io/"
- },
- {
- "id": "Defined Networking",
- "image": "https://images.opencollective.com/defined-networking/072920e/logo.png",
- "name": "Defined Networking",
- "totalDonations": 27500,
- "website": "https://www.defined.net"
- },
{
"id": "revo.js",
"image": "https://images.opencollective.com/revojsro/82623a7/logo.png",
@@ -230,41 +237,41 @@
"totalDonations": 22000,
"website": "https://twitter.com/nevir"
},
- {
- "id": "Evil Martians",
- "image": "https://images.opencollective.com/evilmartians/707ab4d/logo.png",
- "name": "Evil Martians",
- "totalDonations": 21000,
- "website": "https://evilmartians.com/"
- },
{
"id": "0+X",
"image": "https://images.opencollective.com/0-x/707287f/logo.png",
"name": "0+X",
- "totalDonations": 21000,
+ "totalDonations": 22000,
"website": "https://www.0x.se"
},
{
"id": "Trevor Burnham",
"image": "https://images.opencollective.com/trevorburnham/016f6da/avatar.png",
"name": "Trevor Burnham",
- "totalDonations": 21000,
+ "totalDonations": 22000,
"website": "https://trevorburnham.com"
},
{
- "id": "David Johnston",
- "image": "https://images.opencollective.com/blacksheepcode/f186c05/avatar.png",
- "name": "David Johnston",
- "totalDonations": 20500,
- "website": "https://blacksheepcode.com"
+ "id": "Evil Martians",
+ "image": "https://images.opencollective.com/evilmartians/707ab4d/logo.png",
+ "name": "Evil Martians",
+ "totalDonations": 21500,
+ "website": "https://evilmartians.com/"
},
{
"id": "Corellium",
"image": "https://images.opencollective.com/corellium/aa8c228/logo.png",
"name": "Corellium",
- "totalDonations": 20400,
+ "totalDonations": 21000,
"website": "https://www.corellium.com"
},
+ {
+ "id": "David Johnston",
+ "image": "https://images.opencollective.com/blacksheepcode/f186c05/avatar.png",
+ "name": "David Johnston",
+ "totalDonations": 20500,
+ "website": "https://blacksheepcode.com"
+ },
{
"id": "kartenmacherei",
"image": "https://images.opencollective.com/kartenmacherei/21bfcfb/logo.png",
@@ -286,6 +293,13 @@
"totalDonations": 15000,
"website": "https://paddn.com/"
},
+ {
+ "id": "Torutek",
+ "image": "https://images.opencollective.com/torutek/logo.png",
+ "name": "Torutek",
+ "totalDonations": 15000,
+ "website": "https://torutek.com"
+ },
{
"id": "Now4real",
"image": "https://images.opencollective.com/now4real/54ca7d9/logo.png",
@@ -327,12 +341,5 @@
"name": "Anthony Fu Fund",
"totalDonations": 10000,
"website": "https://antfu.me/"
- },
- {
- "id": "Torutek",
- "image": "https://images.opencollective.com/torutek/logo.png",
- "name": "Torutek",
- "totalDonations": 10000,
- "website": "https://torutek.com"
}
]
diff --git a/yarn.lock b/yarn.lock
index dd1b6fc68f8b..973da7168a8e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5638,7 +5638,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/eslint-plugin@8.8.0, @typescript-eslint/eslint-plugin@workspace:*, @typescript-eslint/eslint-plugin@workspace:^, @typescript-eslint/eslint-plugin@workspace:packages/eslint-plugin":
+"@typescript-eslint/eslint-plugin@8.8.1, @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:
@@ -5647,12 +5647,12 @@ __metadata:
"@types/marked": ^5.0.2
"@types/mdast": ^4.0.3
"@types/natural-compare": "*"
- "@typescript-eslint/rule-schema-to-typescript-types": 8.8.0
- "@typescript-eslint/rule-tester": 8.8.0
- "@typescript-eslint/scope-manager": 8.8.0
- "@typescript-eslint/type-utils": 8.8.0
- "@typescript-eslint/utils": 8.8.0
- "@typescript-eslint/visitor-keys": 8.8.0
+ "@typescript-eslint/rule-schema-to-typescript-types": 8.8.1
+ "@typescript-eslint/rule-tester": 8.8.1
+ "@typescript-eslint/scope-manager": 8.8.1
+ "@typescript-eslint/type-utils": 8.8.1
+ "@typescript-eslint/utils": 8.8.1
+ "@typescript-eslint/visitor-keys": 8.8.1
ajv: ^6.12.6
cross-env: ^7.0.3
cross-fetch: "*"
@@ -5696,16 +5696,16 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/parser@8.8.0, @typescript-eslint/parser@workspace:*, @typescript-eslint/parser@workspace:packages/parser":
+"@typescript-eslint/parser@8.8.1, @typescript-eslint/parser@workspace:*, @typescript-eslint/parser@workspace:packages/parser":
version: 0.0.0-use.local
resolution: "@typescript-eslint/parser@workspace:packages/parser"
dependencies:
"@jest/types": 29.6.3
"@types/glob": "*"
- "@typescript-eslint/scope-manager": 8.8.0
- "@typescript-eslint/types": 8.8.0
- "@typescript-eslint/typescript-estree": 8.8.0
- "@typescript-eslint/visitor-keys": 8.8.0
+ "@typescript-eslint/scope-manager": 8.8.1
+ "@typescript-eslint/types": 8.8.1
+ "@typescript-eslint/typescript-estree": 8.8.1
+ "@typescript-eslint/visitor-keys": 8.8.1
debug: ^4.3.4
downlevel-dts: "*"
glob: "*"
@@ -5721,28 +5721,28 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/rule-schema-to-typescript-types@8.8.0, @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.8.1, @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:
"@jest/types": 29.6.3
- "@typescript-eslint/type-utils": 8.8.0
- "@typescript-eslint/utils": 8.8.0
+ "@typescript-eslint/type-utils": 8.8.1
+ "@typescript-eslint/utils": 8.8.1
natural-compare: ^1.4.0
prettier: ^3.2.5
languageName: unknown
linkType: soft
-"@typescript-eslint/rule-tester@8.8.0, @typescript-eslint/rule-tester@workspace:*, @typescript-eslint/rule-tester@workspace:packages/rule-tester":
+"@typescript-eslint/rule-tester@8.8.1, @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:
"@jest/types": 29.6.3
"@types/json-stable-stringify-without-jsonify": ^1.0.2
"@types/lodash.merge": 4.6.9
- "@typescript-eslint/parser": 8.8.0
- "@typescript-eslint/typescript-estree": 8.8.0
- "@typescript-eslint/utils": 8.8.0
+ "@typescript-eslint/parser": 8.8.1
+ "@typescript-eslint/typescript-estree": 8.8.1
+ "@typescript-eslint/utils": 8.8.1
ajv: ^6.12.6
chai: ^4.4.1
eslint-visitor-keys: ^4.0.0
@@ -5760,15 +5760,15 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/scope-manager@8.8.0, @typescript-eslint/scope-manager@workspace:*, @typescript-eslint/scope-manager@workspace:^, @typescript-eslint/scope-manager@workspace:packages/scope-manager":
+"@typescript-eslint/scope-manager@8.8.1, @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:
"@jest/types": 29.6.3
"@types/glob": "*"
- "@typescript-eslint/types": 8.8.0
- "@typescript-eslint/typescript-estree": 8.8.0
- "@typescript-eslint/visitor-keys": 8.8.0
+ "@typescript-eslint/types": 8.8.1
+ "@typescript-eslint/typescript-estree": 8.8.1
+ "@typescript-eslint/visitor-keys": 8.8.1
glob: "*"
jest-specific-snapshot: "*"
make-dir: "*"
@@ -5787,14 +5787,14 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/type-utils@8.8.0, @typescript-eslint/type-utils@workspace:*, @typescript-eslint/type-utils@workspace:packages/type-utils":
+"@typescript-eslint/type-utils@8.8.1, @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:
"@jest/types": 29.6.3
- "@typescript-eslint/parser": 8.8.0
- "@typescript-eslint/typescript-estree": 8.8.0
- "@typescript-eslint/utils": 8.8.0
+ "@typescript-eslint/parser": 8.8.1
+ "@typescript-eslint/typescript-estree": 8.8.1
+ "@typescript-eslint/utils": 8.8.1
ajv: ^6.12.6
debug: ^4.3.4
downlevel-dts: "*"
@@ -5809,7 +5809,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/types@8.8.0, @typescript-eslint/types@^8.3.0, @typescript-eslint/types@workspace:*, @typescript-eslint/types@workspace:^, @typescript-eslint/types@workspace:packages/types":
+"@typescript-eslint/types@8.8.1, @typescript-eslint/types@^8.3.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:
@@ -5910,13 +5910,13 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/typescript-estree@8.8.0, @typescript-eslint/typescript-estree@workspace:*, @typescript-eslint/typescript-estree@workspace:^, @typescript-eslint/typescript-estree@workspace:packages/typescript-estree":
+"@typescript-eslint/typescript-estree@8.8.1, @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:
"@jest/types": 29.6.3
- "@typescript-eslint/types": 8.8.0
- "@typescript-eslint/visitor-keys": 8.8.0
+ "@typescript-eslint/types": 8.8.1
+ "@typescript-eslint/visitor-keys": 8.8.1
debug: ^4.3.4
fast-glob: ^3.3.2
glob: "*"
@@ -5953,14 +5953,14 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/utils@8.8.0, @typescript-eslint/utils@^8.3.0, @typescript-eslint/utils@workspace:*, @typescript-eslint/utils@workspace:^, @typescript-eslint/utils@workspace:packages/utils":
+"@typescript-eslint/utils@8.8.1, @typescript-eslint/utils@^8.3.0, @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.4.0
- "@typescript-eslint/scope-manager": 8.8.0
- "@typescript-eslint/types": 8.8.0
- "@typescript-eslint/typescript-estree": 8.8.0
+ "@typescript-eslint/scope-manager": 8.8.1
+ "@typescript-eslint/types": 8.8.1
+ "@typescript-eslint/typescript-estree": 8.8.1
downlevel-dts: "*"
jest: 29.7.0
prettier: ^3.2.5
@@ -5989,13 +5989,13 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/visitor-keys@8.8.0, @typescript-eslint/visitor-keys@workspace:*, @typescript-eslint/visitor-keys@workspace:packages/visitor-keys":
+"@typescript-eslint/visitor-keys@8.8.1, @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:
"@jest/types": 29.6.3
"@types/eslint-visitor-keys": "*"
- "@typescript-eslint/types": 8.8.0
+ "@typescript-eslint/types": 8.8.1
downlevel-dts: "*"
eslint-visitor-keys: ^3.4.3
jest: 29.7.0
@@ -19543,9 +19543,9 @@ __metadata:
resolution: "typescript-eslint@workspace:packages/typescript-eslint"
dependencies:
"@jest/types": 29.6.3
- "@typescript-eslint/eslint-plugin": 8.8.0
- "@typescript-eslint/parser": 8.8.0
- "@typescript-eslint/utils": 8.8.0
+ "@typescript-eslint/eslint-plugin": 8.8.1
+ "@typescript-eslint/parser": 8.8.1
+ "@typescript-eslint/utils": 8.8.1
downlevel-dts: "*"
jest: 29.7.0
prettier: ^3.2.5