diff --git a/.cspell.json b/.cspell.json
index dc41dd9403fb..3edf1d2dc24d 100644
--- a/.cspell.json
+++ b/.cspell.json
@@ -50,7 +50,7 @@
"Airbnb",
"Airbnb's",
"ambiently",
- "allowdefaultprojectforfiles",
+ "allowdefaultproject",
"Armano",
"astexplorer",
"Astro",
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1723b2a18c90..3d09db3f80db 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -240,8 +240,8 @@ jobs:
# Sadly 1 day is the minimum
retention-days: 1
- unit_tests_tsserver:
- name: Run Unit Tests with Experimental TSServer
+ unit_tests_project_service:
+ name: Run Unit Tests with Project Service
needs: [build]
runs-on: ubuntu-latest
strategy:
@@ -265,7 +265,7 @@ jobs:
run: npx nx test ${{ matrix.package }} --coverage=false
env:
CI: true
- TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER: true
+ TYPESCRIPT_ESLINT_PROJECT_SERVICE: true
upload_coverage:
name: Upload Codecov Coverage
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0fba83da23b5..0f73cc6ab546 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,25 @@
+## 7.10.0 (2024-05-20)
+
+
+### 🚀 Features
+
+- **eslint-plugin:** [sort-type-constituents] support case sensitive sorting ([#8760](https://github.com/typescript-eslint/typescript-eslint/pull/8760))
+
+### 🩹 Fixes
+
+- **eslint-plugin:** [prefer-regexp-exec] fix heuristic to check whether regex may contain global flag ([#8764](https://github.com/typescript-eslint/typescript-eslint/pull/8764))
+- **typescript-estree:** don't add in-project files to defaultProjectMatchedFiles ([#9097](https://github.com/typescript-eslint/typescript-eslint/pull/9097))
+- **utils:** remove function form type from flat config `files` and `ignores` ([#9111](https://github.com/typescript-eslint/typescript-eslint/pull/9111))
+
+### ❤️ Thank You
+
+- auvred @auvred
+- Emanuel Hoogeveen @ehoogeveen-medweb
+- jsfm01 @jsfm01
+- Kirk Waiblinger
+
+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.
+
## 7.9.0 (2024-05-13)
diff --git a/docs/packages/Parser.mdx b/docs/packages/Parser.mdx
index ff1fc3c83529..14ef7d19ff1d 100644
--- a/docs/packages/Parser.mdx
+++ b/docs/packages/Parser.mdx
@@ -49,9 +49,9 @@ interface ParserOptions {
programs?: import('typescript').Program[];
project?: string | string[] | boolean | null;
projectFolderIgnoreList?: string[];
+ projectService?: boolean | ProjectServiceOptions;
tsconfigRootDir?: string;
warnOnUnsupportedTypeScriptVersion?: boolean;
- EXPERIMENTAL_useProjectService?: boolean;
}
```
@@ -205,9 +205,13 @@ All linted files must be part of the provided program(s).
### `project`
+:::note
+We now recommend using [`projectService`](#projectservice) instead of `project` for easier configuration and faster linting.
+:::
+
> Default `undefined`.
-A path to your project's TSConfig. **This setting is required to use [rules which require type information](../getting-started/Typed_Linting.mdx)**.
+A path to your project's TSConfig. **This setting or [`projectService`](#projectservice) are required to use [rules which require type information](../getting-started/Typed_Linting.mdx)**.
Accepted value types:
@@ -261,7 +265,68 @@ If this setting is specified, you must only lint files that are included in the
}
```
-For an option that allows linting files outside of your TSConfig file(s), see [`EXPERIMENTAL_useProjectService`](#experimental_useprojectservice).
+For an option that allows linting files outside of your TSConfig file(s), see [`projectService`](#projectService).
+
+
+
+### `projectService`
+
+> Default `false`.
+
+Specifies using TypeScript APIs to generate type information for rules.
+It will automatically detect the TSConfig for each file (like `project: true`), and will also allow type information to be computed for JavaScript files without the `allowJs` compiler option (unlike `project: true`).
+
+```js
+module.exports = {
+ parser: '@typescript-eslint/parser',
+ parserOptions: {
+ projectService: true,
+ },
+};
+```
+
+**This setting or [`project`](#project) are required to use [rules which require type information](../getting-started/Typed_Linting.mdx)**.
+
+This option brings two main benefits over the older `project`:
+
+- Simpler configurations: most projects shouldn't need to explicitly configure `project` paths or create `tsconfig.eslint.json`s
+- Improved performance: this API is optimized on the TypeScript side for speed
+ - Initial versions of this option demonstrated performance changes in subsets of the typescript-eslint monorepo ranging from 11% slower to 70% faster
+
+For more information, see:
+
+- [feat(typescript-estree): add EXPERIMENTAL_useProjectService option to use TypeScript project service](https://github.com/typescript-eslint/typescript-eslint/pull/6754)
+- [docs: blog post on parserOptions.projectService](docs: blog post on parserOptions.projectService )
+
+#### `ProjectServiceOptions`
+
+The behavior of `parserOptions.projectService` can be customized by setting it to an object.
+
+```js
+module.exports = {
+ parser: '@typescript-eslint/parser',
+ parserOptions: {
+ projectService: {
+ allowDefaultProject: ['./*.js'],
+ },
+ },
+};
+```
+
+##### `allowDefaultProject`
+
+Globs of files to allow running with the default project compiler options despite not being matched by the project service.
+
+##### `defaultProject`
+
+Path to a TSConfig to use instead of TypeScript's default project configuration.
+
+##### `maximumDefaultProjectFileMatchCount_THIS_WILL_SLOW_DOWN_LINTING`
+
+> Default: `8`.
+
+The maximum number of files [`allowDefaultProject`](#allowdefaultproject) may match.
+Each file match slows down linting, so if you do need to use this, please file an informative issue on typescript-eslint explaining why - so we can help you avoid using it!
### `projectFolderIgnoreList`
@@ -303,35 +368,6 @@ Please only submit bug reports when using the officially supported version.
=============
```
-### `EXPERIMENTAL_useProjectService`
-
-> Default `false`.
-
-An experimental alternative to `parserOptions.project`.
-This directs the parser to use a more seamless TypeScript API to generate type information for rules.
-It will automatically detect the TSConfig for each file (like `project: true`), and will also allow type information to be computed for JavaScript files without the `allowJs` compiler option (unlike `project: true`).
-
-```js
-module.exports = {
- parser: '@typescript-eslint/parser',
- parserOptions: {
- EXPERIMENTAL_useProjectService: true,
- },
-};
-```
-
-This option should bring two main benefits:
-
-- Simpler configurations: most projects shouldn't need to explicitly configure `project` paths or create `tsconfig.eslint.json`s
-- Improved performance: this API is optimized on the TypeScript side for speed
- - Initial versions of this option demonstrated performance changes in subsets of the typescript-eslint monorepo ranging from 11% slower to 70% faster
-
-We're hopeful this option will eventually become the standard way to enable typed linting.
-It switches the parser from manually creating TypeScript programs to instead calling the same "project services" API used by editors such as VS Code.
-However, because it's so new and untested, we're keeping it under the `EXPERIMENTAL_` prefix for at least all of the `6.X` versions.
-
-See [feat(typescript-estree): add EXPERIMENTAL_useProjectService option to use TypeScript project service](https://github.com/typescript-eslint/typescript-eslint/pull/6754) for more information.
-
## Utilities
### `createProgram(configFile, projectDirectory)`
diff --git a/docs/packages/TypeScript_ESTree.mdx b/docs/packages/TypeScript_ESTree.mdx
index 6bfe3b93a901..627e54f7acfe 100644
--- a/docs/packages/TypeScript_ESTree.mdx
+++ b/docs/packages/TypeScript_ESTree.mdx
@@ -198,15 +198,6 @@ interface ParseAndGenerateServicesOptions extends ParseOptions {
*/
errorOnTypeScriptSyntacticAndSemanticIssues?: boolean;
- /**
- * ***EXPERIMENTAL FLAG*** - Use this at your own risk.
- *
- * Whether to create a shared TypeScript server to power program creation.
- *
- * @see https://github.com/typescript-eslint/typescript-eslint/issues/6575
- */
- EXPERIMENTAL_useProjectService?: boolean | ProjectServiceOptions;
-
/**
* ***EXPERIMENTAL FLAG*** - Use this at your own risk.
*
@@ -249,6 +240,8 @@ interface ParseAndGenerateServicesOptions extends ParseOptions {
* If this is provided, type information will be returned.
*
* If set to `false`, `null`, or `undefined`, type information will not be returned.
+ *
+ * Note that {@link projectService} is now preferred.
*/
project?: string[] | string | boolean | null;
@@ -261,6 +254,11 @@ interface ParseAndGenerateServicesOptions extends ParseOptions {
*/
projectFolderIgnoreList?: string[];
+ /**
+ * Whether to create a shared TypeScript project service to power program creation.
+ */
+ projectService?: boolean | ProjectServiceOptions;
+
/**
* The absolute path to the root directory for all provided `project`s.
*/
@@ -281,7 +279,7 @@ interface ProjectServiceOptions {
/**
* Globs of files to allow running with the default project compiler options.
*/
- allowDefaultProjectForFiles?: string[];
+ allowDefaultProject?: string[];
/**
* Path to a TSConfig to use instead of TypeScript's default project configuration.
@@ -289,7 +287,7 @@ interface ProjectServiceOptions {
defaultProject?: string;
/**
- * The maximum number of files {@link allowDefaultProjectForFiles} may match.
+ * The maximum number of files {@link allowDefaultProject} may match.
* Each file match slows down linting, so if you do need to use this, please
* file an informative issue on typescript-eslint explaining why - so we can
* help you avoid using it!
diff --git a/docs/troubleshooting/FAQ.mdx b/docs/troubleshooting/FAQ.mdx
index 1ccc0d5a0210..578f359132e6 100644
--- a/docs/troubleshooting/FAQ.mdx
+++ b/docs/troubleshooting/FAQ.mdx
@@ -32,20 +32,20 @@ If you don't find an existing extension rule, or the extension rule doesn't work
> We release a new version our tooling every week.
> _Please_ ensure that you [check our the latest list of "extension" rules](/rules/#extension-rules) **_before_** filing an issue.
-
+
## I get errors telling me "Having many files run with the default project is known to cause performance issues and slow down linting."
-These errors are caused by using the [`EXPERIMENTAL_useProjectService`](../packages/Parser.mdx#experimental_useprojectservice) `allowDefaultProjectForFiles` with an excessively wide glob.
-`allowDefaultProjectForFiles` causes a new TypeScript "program" to be built for each "out of project" file it includes, which incurs a performance overhead for each file.
+These errors are caused by using the [`projectService`](../packages/Parser.mdx#projectService) `allowDefaultProject` with an excessively wide glob.
+`allowDefaultProject` causes a new TypeScript "program" to be built for each "out of project" file it includes, which incurs a performance overhead for each file.
-To resolve this error, narrow the glob(s) used for `allowDefaultProjectForFiles` to include fewer files.
+To resolve this error, narrow the glob(s) used for `allowDefaultProject` to include fewer files.
For example:
```diff title="eslint.config.js"
parserOptions: {
- EXPERIMENTAL_useProjectService: {
- allowDefaultProjectForFiles: [
+ projectService: {
+ allowDefaultProject: [
- "**/*.js",
+ "./*.js"
]
@@ -533,6 +533,6 @@ If you think you're having issues with performance, see our [Performance Trouble
## Are TypeScript project references supported?
-Yes, but only with [`EXPERIMENTAL_useProjectService`](../packages/Parser.mdx#experimental_useprojectservice).
+Yes, but only with [`projectService`](../packages/Parser.mdx#projectService).
See [issue #2094 discussing project references](https://github.com/typescript-eslint/typescript-eslint/issues/2094) for more details.
diff --git a/packages/ast-spec/CHANGELOG.md b/packages/ast-spec/CHANGELOG.md
index be4345a15879..be40a99d5f25 100644
--- a/packages/ast-spec/CHANGELOG.md
+++ b/packages/ast-spec/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+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.
+
## 7.9.0 (2024-05-13)
This was a version bump only for ast-spec to align it with other projects, there were no code changes.
diff --git a/packages/ast-spec/package.json b/packages/ast-spec/package.json
index 62d53f51c8bb..8d85da7da747 100644
--- a/packages/ast-spec/package.json
+++ b/packages/ast-spec/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/ast-spec",
- "version": "7.9.0",
+ "version": "7.10.0",
"description": "Complete specification for the TypeScript-ESTree AST",
"private": true,
"keywords": [
diff --git a/packages/eslint-plugin-internal/CHANGELOG.md b/packages/eslint-plugin-internal/CHANGELOG.md
index 35f68499b9d0..a5894b814265 100644
--- a/packages/eslint-plugin-internal/CHANGELOG.md
+++ b/packages/eslint-plugin-internal/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+This was a version bump only for eslint-plugin-internal 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.
+
## 7.9.0 (2024-05-13)
This was a version bump only for eslint-plugin-internal to align it with other projects, there were no code changes.
diff --git a/packages/eslint-plugin-internal/package.json b/packages/eslint-plugin-internal/package.json
index 92476c2e0767..216b5d38335e 100644
--- a/packages/eslint-plugin-internal/package.json
+++ b/packages/eslint-plugin-internal/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/eslint-plugin-internal",
- "version": "7.9.0",
+ "version": "7.10.0",
"private": true,
"main": "dist/index.js",
"types": "index.d.ts",
@@ -15,10 +15,10 @@
},
"dependencies": {
"@prettier/sync": "^0.5.1",
- "@typescript-eslint/rule-tester": "7.9.0",
- "@typescript-eslint/scope-manager": "7.9.0",
- "@typescript-eslint/type-utils": "7.9.0",
- "@typescript-eslint/utils": "7.9.0",
+ "@typescript-eslint/rule-tester": "7.10.0",
+ "@typescript-eslint/scope-manager": "7.10.0",
+ "@typescript-eslint/type-utils": "7.10.0",
+ "@typescript-eslint/utils": "7.10.0",
"prettier": "^3.2.5"
},
"devDependencies": {
diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md
index 65f276cd215c..af486790403a 100644
--- a/packages/eslint-plugin/CHANGELOG.md
+++ b/packages/eslint-plugin/CHANGELOG.md
@@ -1,3 +1,25 @@
+## 7.10.0 (2024-05-20)
+
+
+### 🚀 Features
+
+- **eslint-plugin:** [sort-type-constituents] support case sensitive sorting
+
+
+### 🩹 Fixes
+
+- **eslint-plugin:** [prefer-regexp-exec] fix heuristic to check whether regex may contain global flag
+
+
+### ❤️ Thank You
+
+- auvred
+- Emanuel Hoogeveen
+- jsfm01
+- Kirk Waiblinger
+
+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.
+
## 7.9.0 (2024-05-13)
diff --git a/packages/eslint-plugin/docs/rules/no-floating-promises.mdx b/packages/eslint-plugin/docs/rules/no-floating-promises.mdx
index 9ef3c839825e..3caca81896c5 100644
--- a/packages/eslint-plugin/docs/rules/no-floating-promises.mdx
+++ b/packages/eslint-plugin/docs/rules/no-floating-promises.mdx
@@ -100,7 +100,7 @@ With this option set to `true`, and if you are using `no-void`, you should turn
### `ignoreIIFE`
-This allows you to skip checking of async IIFEs (Immediately Invoked function Expressions).
+This allows you to skip checking of async IIFEs (Immediately Invoked Function Expressions).
Examples of **correct** code for this rule with `{ ignoreIIFE: true }`:
diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json
index 4cc74e46c448..e994b74c61dd 100644
--- a/packages/eslint-plugin/package.json
+++ b/packages/eslint-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/eslint-plugin",
- "version": "7.9.0",
+ "version": "7.10.0",
"description": "TypeScript plugin for ESLint",
"files": [
"dist",
@@ -62,10 +62,10 @@
},
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "7.9.0",
- "@typescript-eslint/type-utils": "7.9.0",
- "@typescript-eslint/utils": "7.9.0",
- "@typescript-eslint/visitor-keys": "7.9.0",
+ "@typescript-eslint/scope-manager": "7.10.0",
+ "@typescript-eslint/type-utils": "7.10.0",
+ "@typescript-eslint/utils": "7.10.0",
+ "@typescript-eslint/visitor-keys": "7.10.0",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@@ -76,8 +76,8 @@
"@types/marked": "^5.0.2",
"@types/mdast": "^4.0.3",
"@types/natural-compare": "*",
- "@typescript-eslint/rule-schema-to-typescript-types": "7.9.0",
- "@typescript-eslint/rule-tester": "7.9.0",
+ "@typescript-eslint/rule-schema-to-typescript-types": "7.10.0",
+ "@typescript-eslint/rule-tester": "7.10.0",
"ajv": "^6.12.6",
"cross-env": "^7.0.3",
"cross-fetch": "*",
diff --git a/packages/eslint-plugin/src/rules/naming-convention-utils/parse-options.ts b/packages/eslint-plugin/src/rules/naming-convention-utils/parse-options.ts
index 557393268f9b..08ac8d41c8b0 100644
--- a/packages/eslint-plugin/src/rules/naming-convention-utils/parse-options.ts
+++ b/packages/eslint-plugin/src/rules/naming-convention-utils/parse-options.ts
@@ -80,9 +80,7 @@ function normalizeOption(option: Selector): NormalizedSelector[] {
}
function parseOptions(context: Context): ParsedOptions {
- const normalizedOptions = context.options
- .map(opt => normalizeOption(opt))
- .reduce((acc, val) => acc.concat(val), []);
+ const normalizedOptions = context.options.flatMap(normalizeOption);
const result = getEnumNames(Selectors).reduce((acc, k) => {
acc[k] = createValidator(k, context, normalizedOptions);
diff --git a/packages/eslint-plugin/tests/rules/no-unnecessary-condition.test.ts b/packages/eslint-plugin/tests/rules/no-unnecessary-condition.test.ts
index f9cda10c6b67..5b84d30123de 100644
--- a/packages/eslint-plugin/tests/rules/no-unnecessary-condition.test.ts
+++ b/packages/eslint-plugin/tests/rules/no-unnecessary-condition.test.ts
@@ -592,9 +592,9 @@ const key = '1' as BrandedKey;
foo?.[key]?.trim();
`,
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
- tsconfigRootDir: getFixturesRootDir(),
project: './tsconfig.noUncheckedIndexedAccess.json',
+ projectService: false,
+ tsconfigRootDir: getFixturesRootDir(),
},
},
{
@@ -607,9 +607,9 @@ declare const key: Key;
foo?.[key].trim();
`,
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
- tsconfigRootDir: getFixturesRootDir(),
project: './tsconfig.noUncheckedIndexedAccess.json',
+ projectService: false,
+ tsconfigRootDir: getFixturesRootDir(),
},
},
{
@@ -625,9 +625,9 @@ function Foo(outer: Outer, key: BrandedKey): number | undefined {
}
`,
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
- tsconfigRootDir: getFixturesRootDir(),
project: './tsconfig.noUncheckedIndexedAccess.json',
+ projectService: false,
+ tsconfigRootDir: getFixturesRootDir(),
},
},
{
@@ -644,9 +644,9 @@ function Foo(outer: Outer, key: Foo): number | undefined {
}
`,
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
- tsconfigRootDir: getFixturesRootDir(),
project: './tsconfig.noUncheckedIndexedAccess.json',
+ projectService: false,
+ tsconfigRootDir: getFixturesRootDir(),
},
},
{
@@ -659,9 +659,9 @@ declare const key: Key;
foo?.[key]?.trim();
`,
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
- tsconfigRootDir: getFixturesRootDir(),
project: './tsconfig.noUncheckedIndexedAccess.json',
+ projectService: false,
+ tsconfigRootDir: getFixturesRootDir(),
},
},
`
@@ -825,9 +825,9 @@ function getElem(dict: Record, key: string) {
}
`,
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
- tsconfigRootDir: getFixturesRootDir(),
project: './tsconfig.noUncheckedIndexedAccess.json',
+ projectService: false,
+ tsconfigRootDir: getFixturesRootDir(),
},
},
`
diff --git a/packages/eslint-plugin/tests/rules/no-unnecessary-type-assertion.test.ts b/packages/eslint-plugin/tests/rules/no-unnecessary-type-assertion.test.ts
index 05f66efccd2f..312b43f23ab4 100644
--- a/packages/eslint-plugin/tests/rules/no-unnecessary-type-assertion.test.ts
+++ b/packages/eslint-plugin/tests/rules/no-unnecessary-type-assertion.test.ts
@@ -6,10 +6,10 @@ import rule from '../../src/rules/no-unnecessary-type-assertion';
const rootDir = path.resolve(__dirname, '../fixtures/');
const ruleTester = new RuleTester({
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
+ project: './tsconfig.json',
+ projectService: false,
sourceType: 'module',
tsconfigRootDir: rootDir,
- project: './tsconfig.json',
},
parser: '@typescript-eslint/parser',
});
diff --git a/packages/eslint-plugin/tests/rules/no-unsafe-assignment.test.ts b/packages/eslint-plugin/tests/rules/no-unsafe-assignment.test.ts
index d1e2b7a8b8bb..c910999fd27c 100644
--- a/packages/eslint-plugin/tests/rules/no-unsafe-assignment.test.ts
+++ b/packages/eslint-plugin/tests/rules/no-unsafe-assignment.test.ts
@@ -65,8 +65,8 @@ function assignmentTest(
const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
project: './tsconfig.noImplicitThis.json',
+ projectService: false,
tsconfigRootDir: getFixturesRootDir(),
},
});
diff --git a/packages/eslint-plugin/tests/rules/no-unsafe-call.test.ts b/packages/eslint-plugin/tests/rules/no-unsafe-call.test.ts
index bb844011fd7b..b1b30c5dcbfa 100644
--- a/packages/eslint-plugin/tests/rules/no-unsafe-call.test.ts
+++ b/packages/eslint-plugin/tests/rules/no-unsafe-call.test.ts
@@ -6,8 +6,8 @@ import { getFixturesRootDir } from '../RuleTester';
const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
project: './tsconfig.noImplicitThis.json',
+ projectService: false,
tsconfigRootDir: getFixturesRootDir(),
},
});
diff --git a/packages/eslint-plugin/tests/rules/no-unsafe-member-access.test.ts b/packages/eslint-plugin/tests/rules/no-unsafe-member-access.test.ts
index 292c52759c0d..722d03c5fa53 100644
--- a/packages/eslint-plugin/tests/rules/no-unsafe-member-access.test.ts
+++ b/packages/eslint-plugin/tests/rules/no-unsafe-member-access.test.ts
@@ -6,8 +6,8 @@ import { getFixturesRootDir } from '../RuleTester';
const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
project: './tsconfig.noImplicitThis.json',
+ projectService: false,
tsconfigRootDir: getFixturesRootDir(),
},
});
diff --git a/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts b/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts
index 36c6103bbc20..bb82444aa679 100644
--- a/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts
+++ b/packages/eslint-plugin/tests/rules/no-unsafe-return.test.ts
@@ -6,8 +6,8 @@ import { getFixturesRootDir } from '../RuleTester';
const ruleTester = new RuleTester({
parser: '@typescript-eslint/parser',
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
project: './tsconfig.noImplicitThis.json',
+ projectService: false,
tsconfigRootDir: getFixturesRootDir(),
},
});
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 f7442e38166c..c9e0c762d74f 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
@@ -14,9 +14,9 @@ const ruleTester = new RuleTester({
});
const withMetaParserOptions = {
- EXPERIMENTAL_useProjectService: false,
- tsconfigRootDir: getFixturesRootDir(),
project: './tsconfig-withmeta.json',
+ projectService: false,
+ tsconfigRootDir: getFixturesRootDir(),
};
// this is used to ensure that the caching the utility does does not impact the results done by no-unused-vars
diff --git a/packages/eslint-plugin/tests/rules/non-nullable-type-assertion-style.test.ts b/packages/eslint-plugin/tests/rules/non-nullable-type-assertion-style.test.ts
index f7aa671cfbc7..f0c5da6ab9d7 100644
--- a/packages/eslint-plugin/tests/rules/non-nullable-type-assertion-style.test.ts
+++ b/packages/eslint-plugin/tests/rules/non-nullable-type-assertion-style.test.ts
@@ -246,10 +246,10 @@ const b = (a || undefined)!;
const ruleTesterWithNoUncheckedIndexAccess = new RuleTester({
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
+ project: './tsconfig.noUncheckedIndexedAccess.json',
+ projectService: false,
sourceType: 'module',
tsconfigRootDir: getFixturesRootDir(),
- project: './tsconfig.noUncheckedIndexedAccess.json',
},
parser: '@typescript-eslint/parser',
});
diff --git a/packages/integration-tests/CHANGELOG.md b/packages/integration-tests/CHANGELOG.md
index a9b7cb5d6867..f2b8dd4ba132 100644
--- a/packages/integration-tests/CHANGELOG.md
+++ b/packages/integration-tests/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+This was a version bump only for integration-tests 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.
+
## 7.9.0 (2024-05-13)
This was a version bump only for integration-tests to align it with other projects, there were no code changes.
diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json
index 229b85bbf755..0a7d0b2eb8cc 100644
--- a/packages/integration-tests/package.json
+++ b/packages/integration-tests/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/integration-tests",
- "version": "7.9.0",
+ "version": "7.10.0",
"private": true,
"scripts": {
"format": "prettier --write \"./**/*.{ts,mts,cts,tsx,js,mjs,cjs,jsx,json,md,css}\" --ignore-path ../../.prettierignore",
diff --git a/packages/parser/CHANGELOG.md b/packages/parser/CHANGELOG.md
index eef254c79eeb..3f71e9da0856 100644
--- a/packages/parser/CHANGELOG.md
+++ b/packages/parser/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+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.
+
## 7.9.0 (2024-05-13)
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 7d56ebd3193c..d451063e9d39 100644
--- a/packages/parser/package.json
+++ b/packages/parser/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/parser",
- "version": "7.9.0",
+ "version": "7.10.0",
"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": "7.9.0",
- "@typescript-eslint/types": "7.9.0",
- "@typescript-eslint/typescript-estree": "7.9.0",
- "@typescript-eslint/visitor-keys": "7.9.0",
+ "@typescript-eslint/scope-manager": "7.10.0",
+ "@typescript-eslint/types": "7.10.0",
+ "@typescript-eslint/typescript-estree": "7.10.0",
+ "@typescript-eslint/visitor-keys": "7.10.0",
"debug": "^4.3.4"
},
"devDependencies": {
diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md
index fed0b7c4288c..c354f1647275 100644
--- a/packages/repo-tools/CHANGELOG.md
+++ b/packages/repo-tools/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+This was a version bump only for repo-tools 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.
+
## 7.9.0 (2024-05-13)
This was a version bump only for repo-tools to align it with other projects, there were no code changes.
diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json
index 41b1cb49dd32..c5e243d64e14 100644
--- a/packages/repo-tools/package.json
+++ b/packages/repo-tools/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/repo-tools",
- "version": "7.9.0",
+ "version": "7.10.0",
"private": true,
"//": "NOTE: intentionally no build step in this package",
"scripts": {
@@ -18,11 +18,11 @@
"devDependencies": {
"@jest/types": "29.6.3",
"@nx/devkit": "*",
- "@typescript-eslint/eslint-plugin": "7.9.0",
- "@typescript-eslint/scope-manager": "7.9.0",
- "@typescript-eslint/types": "7.9.0",
- "@typescript-eslint/typescript-estree": "7.9.0",
- "@typescript-eslint/utils": "7.9.0",
+ "@typescript-eslint/eslint-plugin": "7.10.0",
+ "@typescript-eslint/scope-manager": "7.10.0",
+ "@typescript-eslint/types": "7.10.0",
+ "@typescript-eslint/typescript-estree": "7.10.0",
+ "@typescript-eslint/utils": "7.10.0",
"cross-fetch": "*",
"execa": "*",
"prettier": "^3.2.5",
diff --git a/packages/rule-schema-to-typescript-types/CHANGELOG.md b/packages/rule-schema-to-typescript-types/CHANGELOG.md
index ba73ffbb365e..b12215bef65b 100644
--- a/packages/rule-schema-to-typescript-types/CHANGELOG.md
+++ b/packages/rule-schema-to-typescript-types/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+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.
+
## 7.9.0 (2024-05-13)
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 51659b391db9..38037ac085cb 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": "7.9.0",
+ "version": "7.10.0",
"private": true,
"type": "commonjs",
"exports": {
@@ -34,8 +34,8 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@typescript-eslint/type-utils": "7.9.0",
- "@typescript-eslint/utils": "7.9.0",
+ "@typescript-eslint/type-utils": "7.10.0",
+ "@typescript-eslint/utils": "7.10.0",
"natural-compare": "^1.4.0",
"prettier": "^3.2.5"
},
diff --git a/packages/rule-tester/CHANGELOG.md b/packages/rule-tester/CHANGELOG.md
index 5eecde9662f5..15c97b1d620e 100644
--- a/packages/rule-tester/CHANGELOG.md
+++ b/packages/rule-tester/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+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.
+
## 7.9.0 (2024-05-13)
diff --git a/packages/rule-tester/package.json b/packages/rule-tester/package.json
index 04305e429f7c..d23540c7c312 100644
--- a/packages/rule-tester/package.json
+++ b/packages/rule-tester/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/rule-tester",
- "version": "7.9.0",
+ "version": "7.10.0",
"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": "7.9.0",
- "@typescript-eslint/utils": "7.9.0",
+ "@typescript-eslint/typescript-estree": "7.10.0",
+ "@typescript-eslint/utils": "7.10.0",
"ajv": "^6.12.6",
"lodash.merge": "4.6.2",
"semver": "^7.6.0"
@@ -61,7 +61,7 @@
"devDependencies": {
"@jest/types": "29.6.3",
"@types/lodash.merge": "4.6.9",
- "@typescript-eslint/parser": "7.9.0",
+ "@typescript-eslint/parser": "7.10.0",
"chai": "^4.4.1",
"eslint-visitor-keys": "^4.0.0",
"espree": "^10.0.1",
diff --git a/packages/rule-tester/tests/RuleTester.test.ts b/packages/rule-tester/tests/RuleTester.test.ts
index e163508cacb0..56ec53039ced 100644
--- a/packages/rule-tester/tests/RuleTester.test.ts
+++ b/packages/rule-tester/tests/RuleTester.test.ts
@@ -171,8 +171,8 @@ describe('RuleTester', () => {
{
code: 'type-aware parser options should override the constructor config',
parserOptions: {
- EXPERIMENTAL_useProjectService: false,
project: 'tsconfig.test-specific.json',
+ projectService: false,
tsconfigRootDir: '/set/in/the/test/',
},
},
@@ -222,9 +222,9 @@ describe('RuleTester', () => {
"code": "type-aware parser options should override the constructor config",
"filename": "/set/in/the/test/file.ts",
"parserOptions": {
- "EXPERIMENTAL_useProjectService": false,
"disallowAutomaticSingleRunInference": true,
"project": "tsconfig.test-specific.json",
+ "projectService": false,
"tsconfigRootDir": "/set/in/the/test/",
},
},
diff --git a/packages/scope-manager/CHANGELOG.md b/packages/scope-manager/CHANGELOG.md
index 2730019df342..8a108ac02d67 100644
--- a/packages/scope-manager/CHANGELOG.md
+++ b/packages/scope-manager/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+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.
+
## 7.9.0 (2024-05-13)
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 a75733bebf3a..3dab7b6dfbb4 100644
--- a/packages/scope-manager/package.json
+++ b/packages/scope-manager/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/scope-manager",
- "version": "7.9.0",
+ "version": "7.10.0",
"description": "TypeScript scope analyser for ESLint",
"files": [
"dist",
@@ -46,13 +46,13 @@
"typecheck": "npx nx typecheck"
},
"dependencies": {
- "@typescript-eslint/types": "7.9.0",
- "@typescript-eslint/visitor-keys": "7.9.0"
+ "@typescript-eslint/types": "7.10.0",
+ "@typescript-eslint/visitor-keys": "7.10.0"
},
"devDependencies": {
"@jest/types": "29.6.3",
"@types/glob": "*",
- "@typescript-eslint/typescript-estree": "7.9.0",
+ "@typescript-eslint/typescript-estree": "7.10.0",
"glob": "*",
"jest-specific-snapshot": "*",
"make-dir": "*",
diff --git a/packages/type-utils/CHANGELOG.md b/packages/type-utils/CHANGELOG.md
index 5cb2ed1619fe..16980ba6f7b5 100644
--- a/packages/type-utils/CHANGELOG.md
+++ b/packages/type-utils/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+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.
+
## 7.9.0 (2024-05-13)
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 6234c54ef993..b023d8b1350c 100644
--- a/packages/type-utils/package.json
+++ b/packages/type-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/type-utils",
- "version": "7.9.0",
+ "version": "7.10.0",
"description": "Type utilities for working with TypeScript + ESLint together",
"files": [
"dist",
@@ -46,14 +46,14 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@typescript-eslint/typescript-estree": "7.9.0",
- "@typescript-eslint/utils": "7.9.0",
+ "@typescript-eslint/typescript-estree": "7.10.0",
+ "@typescript-eslint/utils": "7.10.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.3.0"
},
"devDependencies": {
"@jest/types": "29.6.3",
- "@typescript-eslint/parser": "7.9.0",
+ "@typescript-eslint/parser": "7.10.0",
"ajv": "^6.12.6",
"downlevel-dts": "*",
"jest": "29.7.0",
diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md
index 23de893c7747..38bcd37c9785 100644
--- a/packages/types/CHANGELOG.md
+++ b/packages/types/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+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.
+
## 7.9.0 (2024-05-13)
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 99b0e075de24..7656621a59ca 100644
--- a/packages/types/package.json
+++ b/packages/types/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/types",
- "version": "7.9.0",
+ "version": "7.10.0",
"description": "Types for the TypeScript-ESTree AST spec",
"files": [
"dist",
diff --git a/packages/types/src/parser-options.ts b/packages/types/src/parser-options.ts
index 44affc8e6c37..9013ec12d9f5 100644
--- a/packages/types/src/parser-options.ts
+++ b/packages/types/src/parser-options.ts
@@ -61,7 +61,6 @@ interface ParserOptions {
debugLevel?: DebugLevel;
errorOnTypeScriptSyntacticAndSemanticIssues?: boolean;
errorOnUnknownASTType?: boolean;
- EXPERIMENTAL_useProjectService?: boolean; // purposely undocumented for now
EXPERIMENTAL_useSourceOfProjectReferenceRedirect?: boolean; // purposely undocumented for now
extraFileExtensions?: string[];
filePath?: string;
@@ -69,6 +68,7 @@ interface ParserOptions {
programs?: Program[] | null;
project?: string[] | string | boolean | null;
projectFolderIgnoreList?: string[];
+ projectService?: boolean;
range?: boolean;
sourceType?: SourceType | undefined;
tokens?: boolean;
diff --git a/packages/typescript-eslint/CHANGELOG.md b/packages/typescript-eslint/CHANGELOG.md
index a3ae1412d9d7..cebec6375baa 100644
--- a/packages/typescript-eslint/CHANGELOG.md
+++ b/packages/typescript-eslint/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+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.
+
## 7.9.0 (2024-05-13)
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 b733cc459b24..8c9a3871a8cc 100644
--- a/packages/typescript-eslint/package.json
+++ b/packages/typescript-eslint/package.json
@@ -1,6 +1,6 @@
{
"name": "typescript-eslint",
- "version": "7.9.0",
+ "version": "7.10.0",
"description": "Tooling which enables you to use TypeScript with ESLint",
"files": [
"dist",
@@ -52,9 +52,9 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@typescript-eslint/eslint-plugin": "7.9.0",
- "@typescript-eslint/parser": "7.9.0",
- "@typescript-eslint/utils": "7.9.0"
+ "@typescript-eslint/eslint-plugin": "7.10.0",
+ "@typescript-eslint/parser": "7.10.0",
+ "@typescript-eslint/utils": "7.10.0"
},
"devDependencies": {
"@jest/types": "29.6.3",
diff --git a/packages/typescript-estree/CHANGELOG.md b/packages/typescript-estree/CHANGELOG.md
index 2c968c5c2660..97f03d22692d 100644
--- a/packages/typescript-estree/CHANGELOG.md
+++ b/packages/typescript-estree/CHANGELOG.md
@@ -1,3 +1,20 @@
+## 7.10.0 (2024-05-20)
+
+
+### 🩹 Fixes
+
+- **typescript-estree:** don't add in-project files to defaultProjectMatchedFiles
+
+
+### ❤️ Thank You
+
+- auvred
+- Emanuel Hoogeveen
+- jsfm01
+- Kirk Waiblinger
+
+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.
+
## 7.9.0 (2024-05-13)
diff --git a/packages/typescript-estree/package.json b/packages/typescript-estree/package.json
index 1a33d77f0c77..3b8cedda4a95 100644
--- a/packages/typescript-estree/package.json
+++ b/packages/typescript-estree/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/typescript-estree",
- "version": "7.9.0",
+ "version": "7.10.0",
"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": "7.9.0",
- "@typescript-eslint/visitor-keys": "7.9.0",
+ "@typescript-eslint/types": "7.10.0",
+ "@typescript-eslint/visitor-keys": "7.10.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
diff --git a/packages/typescript-estree/src/create-program/createProjectService.ts b/packages/typescript-estree/src/create-program/createProjectService.ts
index bad04c62e112..4c5072781462 100644
--- a/packages/typescript-estree/src/create-program/createProjectService.ts
+++ b/packages/typescript-estree/src/create-program/createProjectService.ts
@@ -17,7 +17,7 @@ const createStubFileWatcher = (): ts.FileWatcher => ({
export type TypeScriptProjectService = ts.server.ProjectService;
export interface ProjectServiceSettings {
- allowDefaultProjectForFiles: string[] | undefined;
+ allowDefaultProject: string[] | undefined;
maximumDefaultProjectFileMatchCount: number;
service: TypeScriptProjectService;
}
@@ -104,7 +104,7 @@ export function createProjectService(
}
return {
- allowDefaultProjectForFiles: options.allowDefaultProjectForFiles,
+ allowDefaultProject: options.allowDefaultProject,
maximumDefaultProjectFileMatchCount:
options.maximumDefaultProjectFileMatchCount_THIS_WILL_SLOW_DOWN_LINTING ??
DEFAULT_PROJECT_MATCHED_FILES_THRESHOLD,
diff --git a/packages/typescript-estree/src/create-program/validateDefaultProjectForFilesGlob.ts b/packages/typescript-estree/src/create-program/validateDefaultProjectForFilesGlob.ts
index 598982bdc8e3..863b612d9c93 100644
--- a/packages/typescript-estree/src/create-program/validateDefaultProjectForFilesGlob.ts
+++ b/packages/typescript-estree/src/create-program/validateDefaultProjectForFilesGlob.ts
@@ -4,25 +4,25 @@ export const DEFAULT_PROJECT_FILES_ERROR_EXPLANATION = `
Having many files run with the default project is known to cause performance issues and slow down linting.
-See https://typescript-eslint.io/troubleshooting/#allowdefaultprojectforfiles-glob-too-wide
+See https://typescript-eslint.io/troubleshooting/#allowDefaultProject-glob-too-wide
`;
export function validateDefaultProjectForFilesGlob(
options: ProjectServiceOptions,
): void {
- if (!options.allowDefaultProjectForFiles?.length) {
+ if (!options.allowDefaultProject?.length) {
return;
}
- for (const glob of options.allowDefaultProjectForFiles) {
+ for (const glob of options.allowDefaultProject) {
if (glob === '*') {
throw new Error(
- `allowDefaultProjectForFiles contains the overly wide '*'.${DEFAULT_PROJECT_FILES_ERROR_EXPLANATION}`,
+ `allowDefaultProject contains the overly wide '*'.${DEFAULT_PROJECT_FILES_ERROR_EXPLANATION}`,
);
}
if (glob.includes('**')) {
throw new Error(
- `allowDefaultProjectForFiles glob '${glob}' contains a disallowed '**'.${DEFAULT_PROJECT_FILES_ERROR_EXPLANATION}`,
+ `allowDefaultProject glob '${glob}' contains a disallowed '**'.${DEFAULT_PROJECT_FILES_ERROR_EXPLANATION}`,
);
}
}
diff --git a/packages/typescript-estree/src/parseSettings/createParseSettings.ts b/packages/typescript-estree/src/parseSettings/createParseSettings.ts
index 76f2cad87292..a7ffa37841b4 100644
--- a/packages/typescript-estree/src/parseSettings/createParseSettings.ts
+++ b/packages/typescript-estree/src/parseSettings/createParseSettings.ts
@@ -76,16 +76,6 @@ export function createParseSettings(
: new Set(),
errorOnTypeScriptSyntacticAndSemanticIssues: false,
errorOnUnknownASTType: tsestreeOptions.errorOnUnknownASTType === true,
- EXPERIMENTAL_projectService:
- tsestreeOptions.EXPERIMENTAL_useProjectService ||
- (tsestreeOptions.project &&
- tsestreeOptions.EXPERIMENTAL_useProjectService !== false &&
- process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER === 'true')
- ? (TSSERVER_PROJECT_SERVICE ??= createProjectService(
- tsestreeOptions.EXPERIMENTAL_useProjectService,
- jsDocParsingMode,
- ))
- : undefined,
EXPERIMENTAL_useSourceOfProjectReferenceRedirect:
tsestreeOptions.EXPERIMENTAL_useSourceOfProjectReferenceRedirect === true,
extraFileExtensions:
@@ -114,6 +104,16 @@ export function createParseSettings(
? tsestreeOptions.programs
: null,
projects: new Map(),
+ projectService:
+ tsestreeOptions.projectService ||
+ (tsestreeOptions.project &&
+ tsestreeOptions.projectService !== false &&
+ process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE === 'true')
+ ? (TSSERVER_PROJECT_SERVICE ??= createProjectService(
+ tsestreeOptions.projectService,
+ jsDocParsingMode,
+ ))
+ : undefined,
range: tsestreeOptions.range === true,
singleRun,
suppressDeprecatedPropertyWarnings:
@@ -158,7 +158,7 @@ export function createParseSettings(
}
// Providing a program or project service overrides project resolution
- if (!parseSettings.programs && !parseSettings.EXPERIMENTAL_projectService) {
+ if (!parseSettings.programs && !parseSettings.projectService) {
parseSettings.projects = resolveProjectList({
cacheLifetime: tsestreeOptions.cacheLifetime,
project: getProjectConfigFiles(parseSettings, tsestreeOptions.project),
@@ -174,7 +174,7 @@ export function createParseSettings(
tsestreeOptions.jsDocParsingMode == null &&
parseSettings.projects.size === 0 &&
parseSettings.programs == null &&
- parseSettings.EXPERIMENTAL_projectService == null
+ parseSettings.projectService == null
) {
parseSettings.jsDocParsingMode = JSDocParsingMode.ParseNone;
}
diff --git a/packages/typescript-estree/src/parseSettings/index.ts b/packages/typescript-estree/src/parseSettings/index.ts
index 0a74741a7da5..2bf9a3883aea 100644
--- a/packages/typescript-estree/src/parseSettings/index.ts
+++ b/packages/typescript-estree/src/parseSettings/index.ts
@@ -62,11 +62,6 @@ export interface MutableParseSettings {
*/
errorOnUnknownASTType: boolean;
- /**
- * Experimental: TypeScript server to power program creation.
- */
- EXPERIMENTAL_projectService: ProjectServiceSettings | undefined;
-
/**
* Whether TS should use the source files for referenced projects instead of the compiled .d.ts files.
*
@@ -123,6 +118,11 @@ export interface MutableParseSettings {
*/
projects: ReadonlyMap;
+ /**
+ * TypeScript server to power program creation.
+ */
+ projectService: ProjectServiceSettings | undefined;
+
/**
* Whether to add the `range` property to AST nodes.
*/
diff --git a/packages/typescript-estree/src/parser-options.ts b/packages/typescript-estree/src/parser-options.ts
index d002e4f78005..35aa68e22875 100644
--- a/packages/typescript-estree/src/parser-options.ts
+++ b/packages/typescript-estree/src/parser-options.ts
@@ -106,9 +106,10 @@ interface ParseOptions {
*/
export interface ProjectServiceOptions {
/**
- * Globs of files to allow running with the default project compiler options.
+ * Globs of files to allow running with the default project compiler options
+ * despite not being matched by the project service.
*/
- allowDefaultProjectForFiles?: string[];
+ allowDefaultProject?: string[];
/**
* Path to a TSConfig to use instead of TypeScript's default project configuration.
@@ -116,7 +117,7 @@ export interface ProjectServiceOptions {
defaultProject?: string;
/**
- * The maximum number of files {@link allowDefaultProjectForFiles} may match.
+ * The maximum number of files {@link allowDefaultProject} may match.
* Each file match slows down linting, so if you do need to use this, please
* file an informative issue on typescript-eslint explaining why - so we can
* help you avoid using it!
@@ -169,15 +170,6 @@ interface ParseAndGenerateServicesOptions extends ParseOptions {
*/
errorOnTypeScriptSyntacticAndSemanticIssues?: boolean;
- /**
- * ***EXPERIMENTAL FLAG*** - Use this at your own risk.
- *
- * Whether to create a shared TypeScript server to power program creation.
- *
- * @see https://github.com/typescript-eslint/typescript-eslint/issues/6575
- */
- EXPERIMENTAL_useProjectService?: boolean | ProjectServiceOptions;
-
/**
* ***EXPERIMENTAL FLAG*** - Use this at your own risk.
*
@@ -220,6 +212,8 @@ interface ParseAndGenerateServicesOptions extends ParseOptions {
* If this is provided, type information will be returned.
*
* If set to `false`, `null` or `undefined` type information will not be returned.
+ *
+ * Note that {@link projectService} is now preferred.
*/
project?: string[] | string | boolean | null;
@@ -232,6 +226,11 @@ interface ParseAndGenerateServicesOptions extends ParseOptions {
*/
projectFolderIgnoreList?: string[];
+ /**
+ * Whether to create a shared TypeScript project service to power program creation.
+ */
+ projectService?: boolean | ProjectServiceOptions;
+
/**
* The absolute path to the root directory for all provided `project`s.
*/
diff --git a/packages/typescript-estree/src/parser.ts b/packages/typescript-estree/src/parser.ts
index 3eaaf7735374..721242dd39f8 100644
--- a/packages/typescript-estree/src/parser.ts
+++ b/packages/typescript-estree/src/parser.ts
@@ -53,9 +53,9 @@ function getProgramAndAST(
parseSettings: ParseSettings,
hasFullTypeInformation: boolean,
): ASTAndProgram {
- if (parseSettings.EXPERIMENTAL_projectService) {
+ if (parseSettings.projectService) {
const fromProjectService = useProgramFromProjectService(
- parseSettings.EXPERIMENTAL_projectService,
+ parseSettings.projectService,
parseSettings,
hasFullTypeInformation,
defaultProjectMatchedFiles,
diff --git a/packages/typescript-estree/src/useProgramFromProjectService.ts b/packages/typescript-estree/src/useProgramFromProjectService.ts
index 9cdfc52107ad..3ea6fc723c4a 100644
--- a/packages/typescript-estree/src/useProgramFromProjectService.ts
+++ b/packages/typescript-estree/src/useProgramFromProjectService.ts
@@ -14,7 +14,7 @@ const log = debug(
export function useProgramFromProjectService(
{
- allowDefaultProjectForFiles,
+ allowDefaultProject,
maximumDefaultProjectFileMatchCount,
service,
}: ProjectServiceSettings,
@@ -43,11 +43,11 @@ export function useProgramFromProjectService(
if (hasFullTypeInformation) {
log(
'Project service type information enabled; checking for file path match on: %o',
- allowDefaultProjectForFiles,
+ allowDefaultProject,
);
const isDefaultProjectAllowedPath = filePathMatchedBy(
parseSettings.filePath,
- allowDefaultProjectForFiles,
+ allowDefaultProject,
);
log(
@@ -59,12 +59,12 @@ export function useProgramFromProjectService(
if (opened.configFileName) {
if (isDefaultProjectAllowedPath) {
throw new Error(
- `${parseSettings.filePath} was included by allowDefaultProjectForFiles but also was found in the project service. Consider removing it from allowDefaultProjectForFiles.`,
+ `${parseSettings.filePath} was included by allowDefaultProject but also was found in the project service. Consider removing it from allowDefaultProject.`,
);
}
} else if (!isDefaultProjectAllowedPath) {
throw new Error(
- `${parseSettings.filePath} was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProjectForFiles.`,
+ `${parseSettings.filePath} was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProject.`,
);
}
}
@@ -94,7 +94,7 @@ ${Array.from(defaultProjectMatchedFiles)
.map(file => `- ${file}`)
.join('\n')}
-If you absolutely need more files included, set parserOptions.EXPERIMENTAL_useProjectService.maximumDefaultProjectFileMatchCount_THIS_WILL_SLOW_DOWN_LINTING to a larger value.
+If you absolutely need more files included, set parserOptions.projectService.maximumDefaultProjectFileMatchCount_THIS_WILL_SLOW_DOWN_LINTING to a larger value.
`,
);
}
@@ -112,9 +112,7 @@ If you absolutely need more files included, set parserOptions.EXPERIMENTAL_usePr
function filePathMatchedBy(
filePath: string,
- allowDefaultProjectForFiles: string[] | undefined,
+ allowDefaultProject: string[] | undefined,
): boolean {
- return !!allowDefaultProjectForFiles?.some(pattern =>
- minimatch(filePath, pattern),
- );
+ return !!allowDefaultProject?.some(pattern => minimatch(filePath, pattern));
}
diff --git a/packages/typescript-estree/tests/lib/createParseSettings.test.ts b/packages/typescript-estree/tests/lib/createParseSettings.test.ts
index cf3832b991f2..d4de22b92a0e 100644
--- a/packages/typescript-estree/tests/lib/createParseSettings.test.ts
+++ b/packages/typescript-estree/tests/lib/createParseSettings.test.ts
@@ -7,47 +7,47 @@ jest.mock('../../src/create-program/createProjectService', () => ({
}));
describe('createParseSettings', () => {
- describe('EXPERIMENTAL_projectService', () => {
- it('is created when options.EXPERIMENTAL_useProjectService is enabled', () => {
- process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER = 'false';
+ describe('projectService', () => {
+ it('is created when options.projectService is enabled', () => {
+ process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE = 'false';
const parseSettings = createParseSettings('', {
- EXPERIMENTAL_useProjectService: true,
+ projectService: true,
});
- expect(parseSettings.EXPERIMENTAL_projectService).toBe(projectService);
+ expect(parseSettings.projectService).toBe(projectService);
});
- it('is created when options.EXPERIMENTAL_useProjectService is undefined, options.project is true, and process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER is true', () => {
- process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER = 'true';
+ it('is created when options.projectService is undefined, options.project is true, and process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE is true', () => {
+ process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE = 'true';
const parseSettings = createParseSettings('', {
- EXPERIMENTAL_useProjectService: undefined,
+ projectService: undefined,
project: true,
});
- expect(parseSettings.EXPERIMENTAL_projectService).toBe(projectService);
+ expect(parseSettings.projectService).toBe(projectService);
});
- it('is not created when options.EXPERIMENTAL_useProjectService is undefined, options.project is falsy, and process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER is true', () => {
- process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER = 'true';
+ it('is not created when options.projectService is undefined, options.project is falsy, and process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE is true', () => {
+ process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE = 'true';
const parseSettings = createParseSettings('', {
- EXPERIMENTAL_useProjectService: undefined,
+ projectService: undefined,
});
- expect(parseSettings.EXPERIMENTAL_projectService).toBeUndefined();
+ expect(parseSettings.projectService).toBeUndefined();
});
- it('is not created when options.EXPERIMENTAL_useProjectService is false, options.project is true, and process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER is true', () => {
- process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER = 'true';
+ it('is not created when options.projectService is false, options.project is true, and process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE is true', () => {
+ process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE = 'true';
const parseSettings = createParseSettings('', {
- EXPERIMENTAL_useProjectService: false,
+ projectService: false,
project: true,
});
- expect(parseSettings.EXPERIMENTAL_projectService).toBeUndefined();
+ expect(parseSettings.projectService).toBeUndefined();
});
});
diff --git a/packages/typescript-estree/tests/lib/createProjectService.test.ts b/packages/typescript-estree/tests/lib/createProjectService.test.ts
index a81106d03620..1159e8625f41 100644
--- a/packages/typescript-estree/tests/lib/createProjectService.test.ts
+++ b/packages/typescript-estree/tests/lib/createProjectService.test.ts
@@ -17,22 +17,17 @@ jest.mock('typescript/lib/tsserverlibrary', () => ({
}));
describe('createProjectService', () => {
- it('sets allowDefaultProjectForFiles when options.allowDefaultProjectForFiles is defined', () => {
- const allowDefaultProjectForFiles = ['./*.js'];
- const settings = createProjectService(
- { allowDefaultProjectForFiles },
- undefined,
- );
+ it('sets allowDefaultProject when options.allowDefaultProject is defined', () => {
+ const allowDefaultProject = ['./*.js'];
+ const settings = createProjectService({ allowDefaultProject }, undefined);
- expect(settings.allowDefaultProjectForFiles).toBe(
- allowDefaultProjectForFiles,
- );
+ expect(settings.allowDefaultProject).toBe(allowDefaultProject);
});
- it('does not set allowDefaultProjectForFiles when options.allowDefaultProjectForFiles is not defined', () => {
+ it('does not set allowDefaultProject when options.allowDefaultProject is not defined', () => {
const settings = createProjectService(undefined, undefined);
- expect(settings.allowDefaultProjectForFiles).toBeUndefined();
+ expect(settings.allowDefaultProject).toBeUndefined();
});
it('throws an error when options.defaultProject is set and readConfigFile returns an error', () => {
@@ -52,7 +47,7 @@ describe('createProjectService', () => {
expect(() =>
createProjectService(
{
- allowDefaultProjectForFiles: ['file.js'],
+ allowDefaultProject: ['file.js'],
defaultProject: './tsconfig.json',
},
undefined,
@@ -70,7 +65,7 @@ describe('createProjectService', () => {
expect(() =>
createProjectService(
{
- allowDefaultProjectForFiles: ['file.js'],
+ allowDefaultProject: ['file.js'],
defaultProject: './tsconfig.json',
},
undefined,
@@ -84,7 +79,7 @@ describe('createProjectService', () => {
const { service } = createProjectService(
{
- allowDefaultProjectForFiles: ['file.js'],
+ allowDefaultProject: ['file.js'],
defaultProject: './tsconfig.json',
},
undefined,
diff --git a/packages/typescript-estree/tests/lib/parse.project-true.test.ts b/packages/typescript-estree/tests/lib/parse.project-true.test.ts
index ca81ab99f506..b2abceb19d6d 100644
--- a/packages/typescript-estree/tests/lib/parse.project-true.test.ts
+++ b/packages/typescript-estree/tests/lib/parse.project-true.test.ts
@@ -35,7 +35,7 @@ describe('parseAndGenerateServices', () => {
});
});
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER !== 'true') {
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE !== 'true') {
it('throws an error when a parent project does not exist', () => {
expect(() =>
parser.parseAndGenerateServices('const a = true', {
diff --git a/packages/typescript-estree/tests/lib/parse.test.ts b/packages/typescript-estree/tests/lib/parse.test.ts
index de6fc6936dc3..86653df931af 100644
--- a/packages/typescript-estree/tests/lib/parse.test.ts
+++ b/packages/typescript-estree/tests/lib/parse.test.ts
@@ -166,12 +166,12 @@ describe('parseAndGenerateServices', () => {
describe('isolated parsing', () => {
const config: TSESTreeOptions = {
- EXPERIMENTAL_useProjectService: false,
comment: true,
disallowAutomaticSingleRunInference: true,
- tokens: true,
- range: true,
loc: true,
+ projectService: false,
+ range: true,
+ tokens: true,
};
const testParse = ({
ext,
@@ -341,7 +341,7 @@ describe('parseAndGenerateServices', () => {
});
});
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER !== 'true') {
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE !== 'true') {
describe('invalid file error messages', () => {
const PROJECT_DIR = resolve(FIXTURES_DIR, '../invalidFileErrors');
const code = 'var a = true';
@@ -482,7 +482,7 @@ describe('parseAndGenerateServices', () => {
});
describe('invalid project error messages', () => {
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER !== 'true') {
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE !== 'true') {
it('throws when none of multiple projects include the file', () => {
const PROJECT_DIR = resolve(FIXTURES_DIR, '../invalidFileErrors');
const code = 'var a = true';
@@ -567,7 +567,7 @@ describe('parseAndGenerateServices', () => {
);
});
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER !== 'true') {
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE !== 'true') {
it('should turn on typescript debugger', () => {
expect(() =>
parser.parseAndGenerateServices('const x = 1;', {
@@ -588,7 +588,7 @@ describe('parseAndGenerateServices', () => {
}
});
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER !== 'true') {
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE !== 'true') {
describe('projectFolderIgnoreList', () => {
beforeEach(() => {
parser.clearCaches();
diff --git a/packages/typescript-estree/tests/lib/persistentParse.test.ts b/packages/typescript-estree/tests/lib/persistentParse.test.ts
index 105ba34d5560..7f5cc21f9b03 100644
--- a/packages/typescript-estree/tests/lib/persistentParse.test.ts
+++ b/packages/typescript-estree/tests/lib/persistentParse.test.ts
@@ -94,8 +94,8 @@ function baseTests(
tsConfigExcludeBar: Record,
tsConfigIncludeAll: Record,
): void {
- // The experimental project server creates a default project for files
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER === 'true') {
+ // The project service creates a default project for files
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE === 'true') {
return;
}
@@ -272,7 +272,7 @@ describe('persistent parse', () => {
If there is no includes, then typescript will ask for a slightly different set of watchers.
*/
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER !== 'true') {
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE !== 'true') {
describe('tsconfig with no includes / files', () => {
const tsConfigExcludeBar = {
exclude: ['./src/bar.ts'],
diff --git a/packages/typescript-estree/tests/lib/semanticInfo-singleRun.test.ts b/packages/typescript-estree/tests/lib/semanticInfo-singleRun.test.ts
index f041d403f4fb..dffc7bec3ab0 100644
--- a/packages/typescript-estree/tests/lib/semanticInfo-singleRun.test.ts
+++ b/packages/typescript-estree/tests/lib/semanticInfo-singleRun.test.ts
@@ -137,7 +137,7 @@ describe('semanticInfo - singleRun', () => {
process.env.CI = originalEnvCI;
});
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER !== 'true') {
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE !== 'true') {
it('should lazily create the required program out of the provided "parserOptions.project" one time when TSESTREE_SINGLE_RUN=true', () => {
/**
* Single run because of explicit environment variable TSESTREE_SINGLE_RUN
diff --git a/packages/typescript-estree/tests/lib/semanticInfo.test.ts b/packages/typescript-estree/tests/lib/semanticInfo.test.ts
index 4709f313fcbc..d81f65fb9887 100644
--- a/packages/typescript-estree/tests/lib/semanticInfo.test.ts
+++ b/packages/typescript-estree/tests/lib/semanticInfo.test.ts
@@ -247,7 +247,7 @@ describe('semanticInfo', () => {
expect(parseResult.services.program).toBeDefined();
});
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER !== 'true') {
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE !== 'true') {
it(`non-existent file should throw error when project provided`, () => {
expect(() =>
parseCodeAndGenerateServices(
@@ -260,7 +260,7 @@ describe('semanticInfo', () => {
});
}
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER !== 'true') {
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE !== 'true') {
it('non-existent project file', () => {
const fileName = path.resolve(FIXTURES_DIR, 'isolated-file.src.ts');
const badConfig = createOptions(fileName);
@@ -312,7 +312,7 @@ describe('semanticInfo', () => {
);
});
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER !== 'true') {
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE !== 'true') {
it(`first matching provided program instance is returned in result`, () => {
const filename = testFiles[0];
const program1 = createProgram(path.join(FIXTURES_DIR, 'tsconfig.json'));
@@ -340,8 +340,8 @@ describe('semanticInfo', () => {
expect(() =>
parseAndGenerateServices('const foo = 5;', optionsWithSingleProgram),
).toThrow(
- process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER === 'true'
- ? `${filename} was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProjectForFiles.`
+ process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE === 'true'
+ ? `${filename} was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProject.`
: `The file was not found in any of the provided program instance(s): ${filename}`,
);
});
@@ -357,8 +357,8 @@ describe('semanticInfo', () => {
expect(() =>
parseAndGenerateServices('const foo = 5;', optionsWithSingleProgram),
).toThrow(
- process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER === 'true'
- ? `${filename} was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProjectForFiles.`
+ process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE === 'true'
+ ? `${filename} was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProject.`
: `The file was not found in any of the provided program instance(s): ${filename}`,
);
@@ -370,8 +370,8 @@ describe('semanticInfo', () => {
expect(() =>
parseAndGenerateServices('const foo = 5;', optionsWithMultiplePrograms),
).toThrow(
- process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER === 'true'
- ? `${filename} was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProjectForFiles.`
+ process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE === 'true'
+ ? `${filename} was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProject.`
: `The file was not found in any of the provided program instance(s): ${filename}`,
);
});
@@ -390,7 +390,7 @@ describe('semanticInfo', () => {
function testIsolatedFile(
parseResult: ParseAndGenerateServicesResult,
): void {
- if (process.env.TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER === 'true') {
+ if (process.env.TYPESCRIPT_ESLINT_PROJECT_SERVICE === 'true') {
return;
}
diff --git a/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts b/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts
index 26989c8779fc..701a801d7e1e 100644
--- a/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts
+++ b/packages/typescript-estree/tests/lib/useProgramFromProjectService.test.ts
@@ -60,7 +60,7 @@ describe('useProgramFromProjectService', () => {
useProgramFromProjectService(
createProjectServiceSettings({
- allowDefaultProjectForFiles: undefined,
+ allowDefaultProject: undefined,
service,
}),
mockParseSettings,
@@ -76,7 +76,7 @@ describe('useProgramFromProjectService', () => {
);
});
- it('throws an error when hasFullTypeInformation is enabled and the file is both in the project service and allowDefaultProjectForFiles', () => {
+ it('throws an error when hasFullTypeInformation is enabled and the file is both in the project service and allowDefaultProject', () => {
const { service } = createMockProjectService();
service.openClientFile.mockReturnValueOnce({
@@ -86,7 +86,7 @@ describe('useProgramFromProjectService', () => {
expect(() =>
useProgramFromProjectService(
{
- allowDefaultProjectForFiles: [mockParseSettings.filePath],
+ allowDefaultProject: [mockParseSettings.filePath],
maximumDefaultProjectFileMatchCount: 8,
service,
},
@@ -95,11 +95,11 @@ describe('useProgramFromProjectService', () => {
new Set(),
),
).toThrow(
- `${mockParseSettings.filePath} was included by allowDefaultProjectForFiles but also was found in the project service. Consider removing it from allowDefaultProjectForFiles.`,
+ `${mockParseSettings.filePath} was included by allowDefaultProject but also was found in the project service. Consider removing it from allowDefaultProject.`,
);
});
- it('throws an error when hasFullTypeInformation is enabled and the file is neither in the project service nor allowDefaultProjectForFiles', () => {
+ it('throws an error when hasFullTypeInformation is enabled and the file is neither in the project service nor allowDefaultProject', () => {
const { service } = createMockProjectService();
service.openClientFile.mockReturnValueOnce({});
@@ -107,7 +107,7 @@ describe('useProgramFromProjectService', () => {
expect(() =>
useProgramFromProjectService(
createProjectServiceSettings({
- allowDefaultProjectForFiles: [],
+ allowDefaultProject: [],
service,
}),
mockParseSettings,
@@ -115,7 +115,7 @@ describe('useProgramFromProjectService', () => {
new Set(),
),
).toThrow(
- `${mockParseSettings.filePath} was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProjectForFiles.`,
+ `${mockParseSettings.filePath} was not found by the project service. Consider either including it in the tsconfig.json or including it in allowDefaultProject.`,
);
});
@@ -130,7 +130,7 @@ describe('useProgramFromProjectService', () => {
expect(() =>
useProgramFromProjectService(
createProjectServiceSettings({
- allowDefaultProjectForFiles: [mockParseSettings.filePath],
+ allowDefaultProject: [mockParseSettings.filePath],
maximumDefaultProjectFileMatchCount: 2,
service,
}),
@@ -142,18 +142,18 @@ describe('useProgramFromProjectService', () => {
Having many files run with the default project is known to cause performance issues and slow down linting.
-See https://typescript-eslint.io/troubleshooting/#allowdefaultprojectforfiles-glob-too-wide
+See https://typescript-eslint.io/troubleshooting/#allowDefaultProject-glob-too-wide
Matching files:
- a
- b
- ${path.normalize('/repos/repo/path/PascalCaseDirectory/camelCaseFile.ts')}
-If you absolutely need more files included, set parserOptions.EXPERIMENTAL_useProjectService.maximumDefaultProjectFileMatchCount_THIS_WILL_SLOW_DOWN_LINTING to a larger value.
+If you absolutely need more files included, set parserOptions.projectService.maximumDefaultProjectFileMatchCount_THIS_WILL_SLOW_DOWN_LINTING to a larger value.
`);
});
- it('returns undefined when hasFullTypeInformation is disabled, the file is both in the project service and allowDefaultProjectForFiles, and the service does not have a matching program', () => {
+ it('returns undefined when hasFullTypeInformation is disabled, the file is both in the project service and allowDefaultProject, and the service does not have a matching program', () => {
const { service } = createMockProjectService();
mockGetProgram.mockReturnValueOnce(undefined);
@@ -164,7 +164,7 @@ If you absolutely need more files included, set parserOptions.EXPERIMENTAL_usePr
const actual = useProgramFromProjectService(
createProjectServiceSettings({
- allowDefaultProjectForFiles: [mockParseSettings.filePath],
+ allowDefaultProject: [mockParseSettings.filePath],
service,
}),
mockParseSettings,
@@ -175,7 +175,7 @@ If you absolutely need more files included, set parserOptions.EXPERIMENTAL_usePr
expect(actual).toBeUndefined();
});
- it('returns a created program when hasFullTypeInformation is disabled, the file is both in the project service and allowDefaultProjectForFiles, and the service has a matching program', () => {
+ it('returns a created program when hasFullTypeInformation is disabled, the file is both in the project service and allowDefaultProject, and the service has a matching program', () => {
const { service } = createMockProjectService();
const program = { getSourceFile: jest.fn() };
@@ -188,7 +188,7 @@ If you absolutely need more files included, set parserOptions.EXPERIMENTAL_usePr
const actual = useProgramFromProjectService(
createProjectServiceSettings({
- allowDefaultProjectForFiles: [mockParseSettings.filePath],
+ allowDefaultProject: [mockParseSettings.filePath],
service,
}),
mockParseSettings,
@@ -199,7 +199,7 @@ If you absolutely need more files included, set parserOptions.EXPERIMENTAL_usePr
expect(actual).toBe(program);
});
- it('returns a created program when hasFullTypeInformation is disabled, the file is neither in the project service nor allowDefaultProjectForFiles, and the service has a matching program', () => {
+ it('returns a created program when hasFullTypeInformation is disabled, the file is neither in the project service nor allowDefaultProject, and the service has a matching program', () => {
const { service } = createMockProjectService();
const program = { getSourceFile: jest.fn() };
@@ -210,7 +210,7 @@ If you absolutely need more files included, set parserOptions.EXPERIMENTAL_usePr
const actual = useProgramFromProjectService(
createProjectServiceSettings({
- allowDefaultProjectForFiles: [],
+ allowDefaultProject: [],
service,
}),
mockParseSettings,
@@ -234,7 +234,7 @@ If you absolutely need more files included, set parserOptions.EXPERIMENTAL_usePr
const actual = useProgramFromProjectService(
createProjectServiceSettings({
- allowDefaultProjectForFiles: [],
+ allowDefaultProject: [],
maximumDefaultProjectFileMatchCount: 0,
service,
}),
diff --git a/packages/typescript-estree/tests/lib/validateDefaultProjectForFilesGlob.test.ts b/packages/typescript-estree/tests/lib/validateDefaultProjectForFilesGlob.test.ts
index 6510182fefd9..ce11eba99911 100644
--- a/packages/typescript-estree/tests/lib/validateDefaultProjectForFilesGlob.test.ts
+++ b/packages/typescript-estree/tests/lib/validateDefaultProjectForFilesGlob.test.ts
@@ -1,35 +1,35 @@
import { validateDefaultProjectForFilesGlob } from '../../src/create-program/validateDefaultProjectForFilesGlob';
describe('validateDefaultProjectForFilesGlob', () => {
- it('does not throw when options.allowDefaultProjectForFiles is an empty array', () => {
+ it('does not throw when options.allowDefaultProject is an empty array', () => {
expect(() =>
- validateDefaultProjectForFilesGlob({ allowDefaultProjectForFiles: [] }),
+ validateDefaultProjectForFilesGlob({ allowDefaultProject: [] }),
).not.toThrow();
});
- it('does not throw when options.allowDefaultProjectForFiles contains a non-** glob', () => {
+ it('does not throw when options.allowDefaultProject contains a non-** glob', () => {
expect(() =>
validateDefaultProjectForFilesGlob({
- allowDefaultProjectForFiles: ['./*.js'],
+ allowDefaultProject: ['./*.js'],
}),
).not.toThrow();
});
- it('throws when options.allowDefaultProjectForFiles contains a * glob', () => {
+ it('throws when options.allowDefaultProject contains a * glob', () => {
expect(() =>
validateDefaultProjectForFilesGlob({
- allowDefaultProjectForFiles: ['*'],
+ allowDefaultProject: ['*'],
}),
- ).toThrow(/allowDefaultProjectForFiles contains the overly wide '\*'\./);
+ ).toThrow(/allowDefaultProject contains the overly wide '\*'\./);
});
- it('throws when options.allowDefaultProjectForFiles contains a ** glob', () => {
+ it('throws when options.allowDefaultProject contains a ** glob', () => {
expect(() =>
validateDefaultProjectForFilesGlob({
- allowDefaultProjectForFiles: ['**/*.js'],
+ allowDefaultProject: ['**/*.js'],
}),
).toThrow(
- /allowDefaultProjectForFiles glob '\*\*\/\*\.js' contains a disallowed '\*\*'\./,
+ /allowDefaultProject glob '\*\*\/\*\.js' contains a disallowed '\*\*'\./,
);
});
});
diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md
index 382e4f0a6202..582ef2eeebd8 100644
--- a/packages/utils/CHANGELOG.md
+++ b/packages/utils/CHANGELOG.md
@@ -1,3 +1,20 @@
+## 7.10.0 (2024-05-20)
+
+
+### 🩹 Fixes
+
+- **utils:** remove function form type from flat config `files` and `ignores`
+
+
+### ❤️ Thank You
+
+- auvred
+- Emanuel Hoogeveen
+- jsfm01
+- Kirk Waiblinger
+
+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.
+
## 7.9.0 (2024-05-13)
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 6a6bf84d88d1..e4c0c3502f1a 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/utils",
- "version": "7.9.0",
+ "version": "7.10.0",
"description": "Utilities for working with TypeScript + ESLint together",
"files": [
"dist",
@@ -68,9 +68,9 @@
},
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "7.9.0",
- "@typescript-eslint/types": "7.9.0",
- "@typescript-eslint/typescript-estree": "7.9.0"
+ "@typescript-eslint/scope-manager": "7.10.0",
+ "@typescript-eslint/types": "7.10.0",
+ "@typescript-eslint/typescript-estree": "7.10.0"
},
"peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0"
diff --git a/packages/visitor-keys/CHANGELOG.md b/packages/visitor-keys/CHANGELOG.md
index 8541dcb5a1a5..ff7e5ab12d76 100644
--- a/packages/visitor-keys/CHANGELOG.md
+++ b/packages/visitor-keys/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+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.
+
## 7.9.0 (2024-05-13)
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 de8dec230e20..695983898848 100644
--- a/packages/visitor-keys/package.json
+++ b/packages/visitor-keys/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/visitor-keys",
- "version": "7.9.0",
+ "version": "7.10.0",
"description": "Visitor keys used to help traverse the TypeScript-ESTree AST",
"files": [
"dist",
@@ -47,7 +47,7 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
- "@typescript-eslint/types": "7.9.0",
+ "@typescript-eslint/types": "7.10.0",
"eslint-visitor-keys": "^3.4.3"
},
"devDependencies": {
diff --git a/packages/website-eslint/CHANGELOG.md b/packages/website-eslint/CHANGELOG.md
index a3bf73cddafd..2f751879b1bb 100644
--- a/packages/website-eslint/CHANGELOG.md
+++ b/packages/website-eslint/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+This was a version bump only for website-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.
+
## 7.9.0 (2024-05-13)
This was a version bump only for website-eslint to align it with other projects, there were no code changes.
diff --git a/packages/website-eslint/package.json b/packages/website-eslint/package.json
index e100387e29f0..41701d371428 100644
--- a/packages/website-eslint/package.json
+++ b/packages/website-eslint/package.json
@@ -1,6 +1,6 @@
{
"name": "@typescript-eslint/website-eslint",
- "version": "7.9.0",
+ "version": "7.10.0",
"private": true,
"description": "ESLint which works in browsers.",
"files": [
@@ -24,11 +24,11 @@
},
"devDependencies": {
"@eslint/js": "*",
- "@typescript-eslint/eslint-plugin": "7.9.0",
- "@typescript-eslint/parser": "7.9.0",
- "@typescript-eslint/scope-manager": "7.9.0",
- "@typescript-eslint/typescript-estree": "7.9.0",
- "@typescript-eslint/visitor-keys": "7.9.0",
+ "@typescript-eslint/eslint-plugin": "7.10.0",
+ "@typescript-eslint/parser": "7.10.0",
+ "@typescript-eslint/scope-manager": "7.10.0",
+ "@typescript-eslint/typescript-estree": "7.10.0",
+ "@typescript-eslint/visitor-keys": "7.10.0",
"esbuild": "~0.20.2",
"eslint": "*",
"esquery": "*",
diff --git a/packages/website/CHANGELOG.md b/packages/website/CHANGELOG.md
index bf7a56394577..3d5595e32d9e 100644
--- a/packages/website/CHANGELOG.md
+++ b/packages/website/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 7.10.0 (2024-05-20)
+
+This was a version bump only for website 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.
+
## 7.9.0 (2024-05-13)
diff --git a/packages/website/package.json b/packages/website/package.json
index 8843df2e9bc7..40890148055c 100644
--- a/packages/website/package.json
+++ b/packages/website/package.json
@@ -1,6 +1,6 @@
{
"name": "website",
- "version": "7.9.0",
+ "version": "7.10.0",
"private": true,
"scripts": {
"build": "docusaurus build",
@@ -23,8 +23,8 @@
"@docusaurus/preset-classic": "^3.2.1",
"@docusaurus/remark-plugin-npm2yarn": "^3.2.1",
"@docusaurus/theme-common": "^3.2.1",
- "@typescript-eslint/parser": "7.9.0",
- "@typescript-eslint/website-eslint": "7.9.0",
+ "@typescript-eslint/parser": "7.10.0",
+ "@typescript-eslint/website-eslint": "7.10.0",
"clsx": "^2.1.0",
"eslint": "*",
"json5": "^2.2.3",
@@ -46,12 +46,12 @@
"@types/mdast": "^4.0.3",
"@types/react": "*",
"@types/unist": "^3.0.2",
- "@typescript-eslint/eslint-plugin": "7.9.0",
- "@typescript-eslint/rule-schema-to-typescript-types": "7.9.0",
- "@typescript-eslint/scope-manager": "7.9.0",
- "@typescript-eslint/types": "7.9.0",
- "@typescript-eslint/typescript-estree": "7.9.0",
- "@typescript-eslint/utils": "7.9.0",
+ "@typescript-eslint/eslint-plugin": "7.10.0",
+ "@typescript-eslint/rule-schema-to-typescript-types": "7.10.0",
+ "@typescript-eslint/scope-manager": "7.10.0",
+ "@typescript-eslint/types": "7.10.0",
+ "@typescript-eslint/typescript-estree": "7.10.0",
+ "@typescript-eslint/utils": "7.10.0",
"copy-webpack-plugin": "^12.0.0",
"cross-fetch": "*",
"history": "^4.9.0",
diff --git a/packages/website/src/components/linter/config.ts b/packages/website/src/components/linter/config.ts
index 4d703469b7e0..7e1327534a5d 100644
--- a/packages/website/src/components/linter/config.ts
+++ b/packages/website/src/components/linter/config.ts
@@ -12,7 +12,6 @@ export const defaultParseSettings: ParseSettings = {
debugLevel: new Set(),
errorOnTypeScriptSyntacticAndSemanticIssues: false,
errorOnUnknownASTType: false,
- EXPERIMENTAL_projectService: undefined,
EXPERIMENTAL_useSourceOfProjectReferenceRedirect: false,
extraFileExtensions: [],
filePath: '',
@@ -25,6 +24,7 @@ export const defaultParseSettings: ParseSettings = {
preserveNodeMaps: true,
programs: null,
projects: new Map(),
+ projectService: undefined,
range: true,
singleRun: false,
suppressDeprecatedPropertyWarnings: false,
diff --git a/yarn.lock b/yarn.lock
index cc2b7f6aebf0..4a7978437b39 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5532,17 +5532,17 @@ __metadata:
dependencies:
"@jest/types": 29.6.3
"@prettier/sync": ^0.5.1
- "@typescript-eslint/rule-tester": 7.9.0
- "@typescript-eslint/scope-manager": 7.9.0
- "@typescript-eslint/type-utils": 7.9.0
- "@typescript-eslint/utils": 7.9.0
+ "@typescript-eslint/rule-tester": 7.10.0
+ "@typescript-eslint/scope-manager": 7.10.0
+ "@typescript-eslint/type-utils": 7.10.0
+ "@typescript-eslint/utils": 7.10.0
jest: 29.7.0
prettier: ^3.2.5
rimraf: "*"
languageName: unknown
linkType: soft
-"@typescript-eslint/eslint-plugin@7.9.0, @typescript-eslint/eslint-plugin@workspace:packages/eslint-plugin":
+"@typescript-eslint/eslint-plugin@7.10.0, @typescript-eslint/eslint-plugin@workspace:packages/eslint-plugin":
version: 0.0.0-use.local
resolution: "@typescript-eslint/eslint-plugin@workspace:packages/eslint-plugin"
dependencies:
@@ -5551,12 +5551,12 @@ __metadata:
"@types/marked": ^5.0.2
"@types/mdast": ^4.0.3
"@types/natural-compare": "*"
- "@typescript-eslint/rule-schema-to-typescript-types": 7.9.0
- "@typescript-eslint/rule-tester": 7.9.0
- "@typescript-eslint/scope-manager": 7.9.0
- "@typescript-eslint/type-utils": 7.9.0
- "@typescript-eslint/utils": 7.9.0
- "@typescript-eslint/visitor-keys": 7.9.0
+ "@typescript-eslint/rule-schema-to-typescript-types": 7.10.0
+ "@typescript-eslint/rule-tester": 7.10.0
+ "@typescript-eslint/scope-manager": 7.10.0
+ "@typescript-eslint/type-utils": 7.10.0
+ "@typescript-eslint/utils": 7.10.0
+ "@typescript-eslint/visitor-keys": 7.10.0
ajv: ^6.12.6
cross-env: ^7.0.3
cross-fetch: "*"
@@ -5601,16 +5601,16 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/parser@7.9.0, @typescript-eslint/parser@workspace:packages/parser":
+"@typescript-eslint/parser@7.10.0, @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": 7.9.0
- "@typescript-eslint/types": 7.9.0
- "@typescript-eslint/typescript-estree": 7.9.0
- "@typescript-eslint/visitor-keys": 7.9.0
+ "@typescript-eslint/scope-manager": 7.10.0
+ "@typescript-eslint/types": 7.10.0
+ "@typescript-eslint/typescript-estree": 7.10.0
+ "@typescript-eslint/visitor-keys": 7.10.0
debug: ^4.3.4
downlevel-dts: "*"
glob: "*"
@@ -5632,11 +5632,11 @@ __metadata:
dependencies:
"@jest/types": 29.6.3
"@nx/devkit": "*"
- "@typescript-eslint/eslint-plugin": 7.9.0
- "@typescript-eslint/scope-manager": 7.9.0
- "@typescript-eslint/types": 7.9.0
- "@typescript-eslint/typescript-estree": 7.9.0
- "@typescript-eslint/utils": 7.9.0
+ "@typescript-eslint/eslint-plugin": 7.10.0
+ "@typescript-eslint/scope-manager": 7.10.0
+ "@typescript-eslint/types": 7.10.0
+ "@typescript-eslint/typescript-estree": 7.10.0
+ "@typescript-eslint/utils": 7.10.0
cross-fetch: "*"
execa: "*"
prettier: ^3.2.5
@@ -5646,27 +5646,27 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/rule-schema-to-typescript-types@7.9.0, @typescript-eslint/rule-schema-to-typescript-types@workspace:packages/rule-schema-to-typescript-types":
+"@typescript-eslint/rule-schema-to-typescript-types@7.10.0, @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": 7.9.0
- "@typescript-eslint/utils": 7.9.0
+ "@typescript-eslint/type-utils": 7.10.0
+ "@typescript-eslint/utils": 7.10.0
natural-compare: ^1.4.0
prettier: ^3.2.5
languageName: unknown
linkType: soft
-"@typescript-eslint/rule-tester@7.9.0, @typescript-eslint/rule-tester@workspace:packages/rule-tester":
+"@typescript-eslint/rule-tester@7.10.0, @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/lodash.merge": 4.6.9
- "@typescript-eslint/parser": 7.9.0
- "@typescript-eslint/typescript-estree": 7.9.0
- "@typescript-eslint/utils": 7.9.0
+ "@typescript-eslint/parser": 7.10.0
+ "@typescript-eslint/typescript-estree": 7.10.0
+ "@typescript-eslint/utils": 7.10.0
ajv: ^6.12.6
chai: ^4.4.1
eslint-visitor-keys: ^4.0.0
@@ -5684,15 +5684,15 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/scope-manager@7.9.0, @typescript-eslint/scope-manager@workspace:packages/scope-manager":
+"@typescript-eslint/scope-manager@7.10.0, @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": 7.9.0
- "@typescript-eslint/typescript-estree": 7.9.0
- "@typescript-eslint/visitor-keys": 7.9.0
+ "@typescript-eslint/types": 7.10.0
+ "@typescript-eslint/typescript-estree": 7.10.0
+ "@typescript-eslint/visitor-keys": 7.10.0
glob: "*"
jest-specific-snapshot: "*"
make-dir: "*"
@@ -5721,14 +5721,14 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/type-utils@7.9.0, @typescript-eslint/type-utils@workspace:packages/type-utils":
+"@typescript-eslint/type-utils@7.10.0, @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": 7.9.0
- "@typescript-eslint/typescript-estree": 7.9.0
- "@typescript-eslint/utils": 7.9.0
+ "@typescript-eslint/parser": 7.10.0
+ "@typescript-eslint/typescript-estree": 7.10.0
+ "@typescript-eslint/utils": 7.10.0
ajv: ^6.12.6
debug: ^4.3.4
downlevel-dts: "*"
@@ -5743,7 +5743,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/types@7.9.0, @typescript-eslint/types@workspace:packages/types":
+"@typescript-eslint/types@7.10.0, @typescript-eslint/types@workspace:packages/types":
version: 0.0.0-use.local
resolution: "@typescript-eslint/types@workspace:packages/types"
dependencies:
@@ -5842,13 +5842,13 @@ __metadata:
languageName: unknown
linkType: soft
-"@typescript-eslint/typescript-estree@7.9.0, @typescript-eslint/typescript-estree@workspace:packages/typescript-estree":
+"@typescript-eslint/typescript-estree@7.10.0, @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": 7.9.0
- "@typescript-eslint/visitor-keys": 7.9.0
+ "@typescript-eslint/types": 7.10.0
+ "@typescript-eslint/visitor-keys": 7.10.0
debug: ^4.3.4
glob: "*"
globby: ^11.1.0
@@ -5904,14 +5904,14 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/utils@7.9.0, @typescript-eslint/utils@workspace:packages/utils":
+"@typescript-eslint/utils@7.10.0, @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": 7.9.0
- "@typescript-eslint/types": 7.9.0
- "@typescript-eslint/typescript-estree": 7.9.0
+ "@typescript-eslint/scope-manager": 7.10.0
+ "@typescript-eslint/types": 7.10.0
+ "@typescript-eslint/typescript-estree": 7.10.0
downlevel-dts: "*"
jest: 29.7.0
prettier: ^3.2.5
@@ -5957,13 +5957,13 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/visitor-keys@7.9.0, @typescript-eslint/visitor-keys@workspace:packages/visitor-keys":
+"@typescript-eslint/visitor-keys@7.10.0, @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": 7.9.0
+ "@typescript-eslint/types": 7.10.0
downlevel-dts: "*"
eslint-visitor-keys: ^3.4.3
jest: 29.7.0
@@ -5993,16 +5993,16 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/website-eslint@7.9.0, @typescript-eslint/website-eslint@workspace:packages/website-eslint":
+"@typescript-eslint/website-eslint@7.10.0, @typescript-eslint/website-eslint@workspace:packages/website-eslint":
version: 0.0.0-use.local
resolution: "@typescript-eslint/website-eslint@workspace:packages/website-eslint"
dependencies:
"@eslint/js": "*"
- "@typescript-eslint/eslint-plugin": 7.9.0
- "@typescript-eslint/parser": 7.9.0
- "@typescript-eslint/scope-manager": 7.9.0
- "@typescript-eslint/typescript-estree": 7.9.0
- "@typescript-eslint/visitor-keys": 7.9.0
+ "@typescript-eslint/eslint-plugin": 7.10.0
+ "@typescript-eslint/parser": 7.10.0
+ "@typescript-eslint/scope-manager": 7.10.0
+ "@typescript-eslint/typescript-estree": 7.10.0
+ "@typescript-eslint/visitor-keys": 7.10.0
esbuild: ~0.20.2
eslint: "*"
esquery: "*"
@@ -19506,9 +19506,9 @@ __metadata:
resolution: "typescript-eslint@workspace:packages/typescript-eslint"
dependencies:
"@jest/types": 29.6.3
- "@typescript-eslint/eslint-plugin": 7.9.0
- "@typescript-eslint/parser": 7.9.0
- "@typescript-eslint/utils": 7.9.0
+ "@typescript-eslint/eslint-plugin": 7.10.0
+ "@typescript-eslint/parser": 7.10.0
+ "@typescript-eslint/utils": 7.10.0
downlevel-dts: "*"
jest: 29.7.0
prettier: ^3.2.5
@@ -20225,14 +20225,14 @@ __metadata:
"@types/mdast": ^4.0.3
"@types/react": "*"
"@types/unist": ^3.0.2
- "@typescript-eslint/eslint-plugin": 7.9.0
- "@typescript-eslint/parser": 7.9.0
- "@typescript-eslint/rule-schema-to-typescript-types": 7.9.0
- "@typescript-eslint/scope-manager": 7.9.0
- "@typescript-eslint/types": 7.9.0
- "@typescript-eslint/typescript-estree": 7.9.0
- "@typescript-eslint/utils": 7.9.0
- "@typescript-eslint/website-eslint": 7.9.0
+ "@typescript-eslint/eslint-plugin": 7.10.0
+ "@typescript-eslint/parser": 7.10.0
+ "@typescript-eslint/rule-schema-to-typescript-types": 7.10.0
+ "@typescript-eslint/scope-manager": 7.10.0
+ "@typescript-eslint/types": 7.10.0
+ "@typescript-eslint/typescript-estree": 7.10.0
+ "@typescript-eslint/utils": 7.10.0
+ "@typescript-eslint/website-eslint": 7.10.0
clsx: ^2.1.0
copy-webpack-plugin: ^12.0.0
cross-fetch: "*"