diff --git a/.cspell.json b/.cspell.json index 93e4a9b6594d..279727a77428 100644 --- a/.cspell.json +++ b/.cspell.json @@ -93,6 +93,7 @@ "IIFEs", "jameshenry", "joshuakgoldberg", + "kirkwaiblinger", "linebreaks", "lzstring", "markdownlint", @@ -149,6 +150,7 @@ "unoptimized", "unprefixed", "upsert", + "Waiblinger", "warnonunsupportedtypescriptversion", "Zacher" ], diff --git a/CHANGELOG.md b/CHANGELOG.md index 4080e4958122..1fcf54bf760e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ +## 7.7.0 (2024-04-15) + + +### 🚀 Features + +- **eslint-plugin:** replace `no-new-symbol` with `no-new-native-nonconstructor` ([#8895](https://github.com/typescript-eslint/typescript-eslint/pull/8895)) +- **typescript-estree:** add defaultProject for project service ([#8815](https://github.com/typescript-eslint/typescript-eslint/pull/8815)) + +### ❤️ Thank You + +- Dave @reduckted +- Josh Goldberg ✨ + +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.6.0 (2024-04-08) diff --git a/docs/maintenance/Team.mdx b/docs/maintenance/Team.mdx index a9465f24b2ef..460a02edbe6e 100644 --- a/docs/maintenance/Team.mdx +++ b/docs/maintenance/Team.mdx @@ -77,6 +77,11 @@ TypeScript linting experience great. name: 'auvred', username: 'auvred', }, + { + description: 'Dotting my "j"s and crossing my "z"s.', + name: 'Kirk Waiblinger', + username: 'kirkwaiblinger', + }, ]} description="Code committers who regularly work on the code in the repository." explanation="Committers triage issues, review pull requests, and write code to push the project's functionality and stability forward." diff --git a/docs/packages/TypeScript_ESTree.mdx b/docs/packages/TypeScript_ESTree.mdx index 7269942e84d3..6454920b23c3 100644 --- a/docs/packages/TypeScript_ESTree.mdx +++ b/docs/packages/TypeScript_ESTree.mdx @@ -280,9 +280,14 @@ interface ParseAndGenerateServicesOptions extends ParseOptions { */ interface ProjectServiceOptions { /** - * Globs of files to allow running with the default inferred project settings. + * Globs of files to allow running with the default project compiler options. */ allowDefaultProjectForFiles?: string[]; + + /** + * Path to a TSConfig to use instead of TypeScript's default project configuration. + */ + defaultProject?: string; } interface ParserServices { diff --git a/packages/ast-spec/CHANGELOG.md b/packages/ast-spec/CHANGELOG.md index 43f55778c7ed..069cb338a776 100644 --- a/packages/ast-spec/CHANGELOG.md +++ b/packages/ast-spec/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/ast-spec/package.json b/packages/ast-spec/package.json index c437b6da27f9..fda4218df1d0 100644 --- a/packages/ast-spec/package.json +++ b/packages/ast-spec/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/ast-spec", - "version": "7.6.0", + "version": "7.7.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 e697c880584b..7938e87c4aeb 100644 --- a/packages/eslint-plugin-internal/CHANGELOG.md +++ b/packages/eslint-plugin-internal/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/eslint-plugin-internal/package.json b/packages/eslint-plugin-internal/package.json index 37de490f666f..8ff65ceecfcc 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.6.0", + "version": "7.7.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.6.0", - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/type-utils": "7.6.0", - "@typescript-eslint/utils": "7.6.0", + "@typescript-eslint/rule-tester": "7.7.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/type-utils": "7.7.0", + "@typescript-eslint/utils": "7.7.0", "prettier": "^3.2.5" }, "devDependencies": { diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index ba2dafb61664..a1bcd5637aa3 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -1,3 +1,18 @@ +## 7.7.0 (2024-04-15) + + +### 🚀 Features + +- **eslint-plugin:** replace `no-new-symbol` with `no-new-native-nonconstructor` + + +### ❤️ Thank You + +- Dave +- Josh Goldberg ✨ + +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.6.0 (2024-04-08) diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 8f83752ef56d..17281aa1344e 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/eslint-plugin", - "version": "7.6.0", + "version": "7.7.0", "description": "TypeScript plugin for ESLint", "files": [ "dist", @@ -62,10 +62,10 @@ }, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/type-utils": "7.6.0", - "@typescript-eslint/utils": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/type-utils": "7.7.0", + "@typescript-eslint/utils": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.3.1", @@ -78,8 +78,8 @@ "@types/marked": "*", "@types/mdast": "^4.0.3", "@types/natural-compare": "*", - "@typescript-eslint/rule-schema-to-typescript-types": "7.6.0", - "@typescript-eslint/rule-tester": "7.6.0", + "@typescript-eslint/rule-schema-to-typescript-types": "7.7.0", + "@typescript-eslint/rule-tester": "7.7.0", "ajv": "^6.12.6", "chalk": "^5.3.0", "cross-env": "^7.0.3", diff --git a/packages/eslint-plugin/src/configs/eslint-recommended-raw.ts b/packages/eslint-plugin/src/configs/eslint-recommended-raw.ts index aafff1c61c19..d42cfb1d8663 100644 --- a/packages/eslint-plugin/src/configs/eslint-recommended-raw.ts +++ b/packages/eslint-plugin/src/configs/eslint-recommended-raw.ts @@ -28,7 +28,9 @@ export default ( 'no-dupe-keys': 'off', // ts(1117) 'no-func-assign': 'off', // ts(2630) 'no-import-assign': 'off', // ts(2632) & ts(2540) + // TODO - remove this once we no longer support ESLint v8 'no-new-symbol': 'off', // ts(7009) + 'no-new-native-nonconstructor': 'off', // ts(7009) 'no-obj-calls': 'off', // ts(2349) 'no-redeclare': 'off', // ts(2451) 'no-setter-return': 'off', // ts(2408) diff --git a/packages/integration-tests/CHANGELOG.md b/packages/integration-tests/CHANGELOG.md index 960a925d0b9f..8ae4476c2a86 100644 --- a/packages/integration-tests/CHANGELOG.md +++ b/packages/integration-tests/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index d8774597c1fb..d0cb209a41e4 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/integration-tests", - "version": "7.6.0", + "version": "7.7.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 69c7e8cd8f51..3dd5e8975d32 100644 --- a/packages/parser/CHANGELOG.md +++ b/packages/parser/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/parser/package.json b/packages/parser/package.json index 36c6bc8349e3..813f05ae7352 100644 --- a/packages/parser/package.json +++ b/packages/parser/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/parser", - "version": "7.6.0", + "version": "7.7.0", "description": "An ESLint custom parser which leverages TypeScript ESTree", "files": [ "dist", @@ -52,10 +52,10 @@ "eslint": "^8.56.0" }, "dependencies": { - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/typescript-estree": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "debug": "^4.3.4" }, "devDependencies": { diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index 7ebac7ce5003..150cef20d939 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 2fdd5ec65ac4..c6d182ff3097 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/repo-tools", - "version": "7.6.0", + "version": "7.7.0", "private": true, "scripts": { "//": "NOTE: intentionally no build step in this package", diff --git a/packages/rule-schema-to-typescript-types/CHANGELOG.md b/packages/rule-schema-to-typescript-types/CHANGELOG.md index e94d35830773..ad66113909ff 100644 --- a/packages/rule-schema-to-typescript-types/CHANGELOG.md +++ b/packages/rule-schema-to-typescript-types/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/rule-schema-to-typescript-types/package.json b/packages/rule-schema-to-typescript-types/package.json index 31dc9be345b8..0de9efc6bf5e 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.6.0", + "version": "7.7.0", "private": true, "type": "commonjs", "exports": { @@ -34,8 +34,8 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/type-utils": "7.6.0", - "@typescript-eslint/utils": "7.6.0", + "@typescript-eslint/type-utils": "7.7.0", + "@typescript-eslint/utils": "7.7.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 be2d8baf76b5..f18b89b37cc2 100644 --- a/packages/rule-tester/CHANGELOG.md +++ b/packages/rule-tester/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/rule-tester/package.json b/packages/rule-tester/package.json index 4babef46bdc5..a2d2c9e994d1 100644 --- a/packages/rule-tester/package.json +++ b/packages/rule-tester/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/rule-tester", - "version": "7.6.0", + "version": "7.7.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.6.0", - "@typescript-eslint/utils": "7.6.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/utils": "7.7.0", "ajv": "^6.12.6", "lodash.merge": "4.6.2", "semver": "^7.6.0" @@ -60,7 +60,7 @@ }, "devDependencies": { "@types/lodash.merge": "4.6.9", - "@typescript-eslint/parser": "7.6.0", + "@typescript-eslint/parser": "7.7.0", "chai": "^4.4.1", "mocha": "^10.4.0", "sinon": "^16.1.3", diff --git a/packages/scope-manager/CHANGELOG.md b/packages/scope-manager/CHANGELOG.md index 3854156055fa..505a16e212de 100644 --- a/packages/scope-manager/CHANGELOG.md +++ b/packages/scope-manager/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/scope-manager/package.json b/packages/scope-manager/package.json index 3fa3cd579986..5c10b9aed06f 100644 --- a/packages/scope-manager/package.json +++ b/packages/scope-manager/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/scope-manager", - "version": "7.6.0", + "version": "7.7.0", "description": "TypeScript scope analyser for ESLint", "files": [ "dist", @@ -46,12 +46,12 @@ "typecheck": "npx nx typecheck" }, "dependencies": { - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" }, "devDependencies": { "@types/glob": "*", - "@typescript-eslint/typescript-estree": "7.6.0", + "@typescript-eslint/typescript-estree": "7.7.0", "glob": "*", "jest-specific-snapshot": "*", "make-dir": "*", diff --git a/packages/type-utils/CHANGELOG.md b/packages/type-utils/CHANGELOG.md index c20366c2e8c2..df8295181f65 100644 --- a/packages/type-utils/CHANGELOG.md +++ b/packages/type-utils/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/type-utils/package.json b/packages/type-utils/package.json index 260a515415aa..ec1b094c0993 100644 --- a/packages/type-utils/package.json +++ b/packages/type-utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/type-utils", - "version": "7.6.0", + "version": "7.7.0", "description": "Type utilities for working with TypeScript + ESLint together", "files": [ "dist", @@ -46,13 +46,13 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/typescript-estree": "7.6.0", - "@typescript-eslint/utils": "7.6.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/utils": "7.7.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, "devDependencies": { - "@typescript-eslint/parser": "7.6.0", + "@typescript-eslint/parser": "7.7.0", "ajv": "^6.12.6", "downlevel-dts": "*", "jest": "29.7.0", diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index a9d8d6fdd07f..37e28f0e9c82 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/types/package.json b/packages/types/package.json index f3568f21de08..253a38370b1d 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/types", - "version": "7.6.0", + "version": "7.7.0", "description": "Types for the TypeScript-ESTree AST spec", "files": [ "dist", diff --git a/packages/typescript-eslint/CHANGELOG.md b/packages/typescript-eslint/CHANGELOG.md index e47c8a67b907..8278aeaf3986 100644 --- a/packages/typescript-eslint/CHANGELOG.md +++ b/packages/typescript-eslint/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/typescript-eslint/package.json b/packages/typescript-eslint/package.json index dea7f12f52db..d222007c5739 100644 --- a/packages/typescript-eslint/package.json +++ b/packages/typescript-eslint/package.json @@ -1,6 +1,6 @@ { "name": "typescript-eslint", - "version": "7.6.0", + "version": "7.7.0", "description": "Tooling which enables you to use TypeScript with ESLint", "files": [ "dist", @@ -55,9 +55,9 @@ "eslint": "^8.56.0" }, "dependencies": { - "@typescript-eslint/eslint-plugin": "7.6.0", - "@typescript-eslint/parser": "7.6.0", - "@typescript-eslint/utils": "7.6.0" + "@typescript-eslint/eslint-plugin": "7.7.0", + "@typescript-eslint/parser": "7.7.0", + "@typescript-eslint/utils": "7.7.0" }, "devDependencies": { "downlevel-dts": "*", diff --git a/packages/typescript-estree/CHANGELOG.md b/packages/typescript-estree/CHANGELOG.md index 234164a51f64..94ce4cd015c0 100644 --- a/packages/typescript-estree/CHANGELOG.md +++ b/packages/typescript-estree/CHANGELOG.md @@ -1,3 +1,18 @@ +## 7.7.0 (2024-04-15) + + +### 🚀 Features + +- **typescript-estree:** add defaultProject for project service + + +### ❤️ Thank You + +- Dave +- Josh Goldberg ✨ + +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.6.0 (2024-04-08) diff --git a/packages/typescript-estree/package.json b/packages/typescript-estree/package.json index d0a9f469c605..119e8ed421cc 100644 --- a/packages/typescript-estree/package.json +++ b/packages/typescript-estree/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/typescript-estree", - "version": "7.6.0", + "version": "7.7.0", "description": "A parser that converts TypeScript source code into an ESTree compatible form", "files": [ "dist", @@ -54,8 +54,8 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.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 1cf7f9d82992..c355033191c4 100644 --- a/packages/typescript-estree/src/create-program/createProjectService.ts +++ b/packages/typescript-estree/src/create-program/createProjectService.ts @@ -1,4 +1,6 @@ /* eslint-disable @typescript-eslint/no-empty-function -- for TypeScript APIs*/ +import os from 'node:os'; + import type * as ts from 'typescript/lib/tsserverlibrary'; import type { ProjectServiceOptions } from '../parser-options'; @@ -58,6 +60,42 @@ export function createProjectService( jsDocParsingMode, }); + if (typeof options === 'object' && options.defaultProject) { + let configRead; + + try { + configRead = tsserver.readConfigFile( + options.defaultProject, + system.readFile, + ); + } catch (error) { + throw new Error( + `Could not parse default project '${options.defaultProject}': ${(error as Error).message}`, + ); + } + + if (configRead.error) { + throw new Error( + `Could not read default project '${options.defaultProject}': ${tsserver.formatDiagnostic( + configRead.error, + { + getCurrentDirectory: system.getCurrentDirectory, + getCanonicalFileName: fileName => fileName, + getNewLine: () => os.EOL, + }, + )}`, + ); + } + + service.setCompilerOptionsForInferredProjects( + ( + configRead.config as { + compilerOptions: ts.server.protocol.InferredProjectCompilerOptions; + } + ).compilerOptions, + ); + } + return { allowDefaultProjectForFiles: typeof options === 'object' diff --git a/packages/typescript-estree/src/parser-options.ts b/packages/typescript-estree/src/parser-options.ts index 4347ee29e47e..b345dd72f030 100644 --- a/packages/typescript-estree/src/parser-options.ts +++ b/packages/typescript-estree/src/parser-options.ts @@ -106,9 +106,14 @@ interface ParseOptions { */ export interface ProjectServiceOptions { /** - * Globs of files to allow running with the default inferred project settings. + * Globs of files to allow running with the default project compiler options. */ allowDefaultProjectForFiles?: string[]; + + /** + * Path to a TSConfig to use instead of TypeScript's default project configuration. + */ + defaultProject?: string; } interface ParseAndGenerateServicesOptions extends ParseOptions { diff --git a/packages/typescript-estree/tests/lib/createProjectService.test.ts b/packages/typescript-estree/tests/lib/createProjectService.test.ts index 9541dcd43942..a81106d03620 100644 --- a/packages/typescript-estree/tests/lib/createProjectService.test.ts +++ b/packages/typescript-estree/tests/lib/createProjectService.test.ts @@ -1,5 +1,21 @@ +import * as ts from 'typescript'; + import { createProjectService } from '../../src/create-program/createProjectService'; +const mockReadConfigFile = jest.fn(); +const mockSetCompilerOptionsForInferredProjects = jest.fn(); + +jest.mock('typescript/lib/tsserverlibrary', () => ({ + ...jest.requireActual('typescript/lib/tsserverlibrary'), + readConfigFile: mockReadConfigFile, + server: { + ProjectService: class { + setCompilerOptionsForInferredProjects = + mockSetCompilerOptionsForInferredProjects; + }, + }, +})); + describe('createProjectService', () => { it('sets allowDefaultProjectForFiles when options.allowDefaultProjectForFiles is defined', () => { const allowDefaultProjectForFiles = ['./*.js']; @@ -18,4 +34,64 @@ describe('createProjectService', () => { expect(settings.allowDefaultProjectForFiles).toBeUndefined(); }); + + it('throws an error when options.defaultProject is set and readConfigFile returns an error', () => { + mockReadConfigFile.mockReturnValue({ + error: { + category: ts.DiagnosticCategory.Error, + code: 1234, + file: ts.createSourceFile('./tsconfig.json', '', { + languageVersion: ts.ScriptTarget.Latest, + }), + start: 0, + length: 0, + messageText: 'Oh no!', + } satisfies ts.Diagnostic, + }); + + expect(() => + createProjectService( + { + allowDefaultProjectForFiles: ['file.js'], + defaultProject: './tsconfig.json', + }, + undefined, + ), + ).toThrow( + /Could not read default project '\.\/tsconfig.json': .+ error TS1234: Oh no!/, + ); + }); + + it('throws an error when options.defaultProject is set and readConfigFile throws an error', () => { + mockReadConfigFile.mockImplementation(() => { + throw new Error('Oh no!'); + }); + + expect(() => + createProjectService( + { + allowDefaultProjectForFiles: ['file.js'], + defaultProject: './tsconfig.json', + }, + undefined, + ), + ).toThrow("Could not parse default project './tsconfig.json': Oh no!"); + }); + + it('uses the default projects compiler options when options.defaultProject is set and readConfigFile succeeds', () => { + const compilerOptions = { strict: true }; + mockReadConfigFile.mockReturnValue({ config: { compilerOptions } }); + + const { service } = createProjectService( + { + allowDefaultProjectForFiles: ['file.js'], + defaultProject: './tsconfig.json', + }, + undefined, + ); + + expect(service.setCompilerOptionsForInferredProjects).toHaveBeenCalledWith( + compilerOptions, + ); + }); }); diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index cc3aede202b7..deff97bbf90e 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +This was a version bump only for utils to align it with other projects, there were no code changes. + +You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. + ## 7.6.0 (2024-04-08) diff --git a/packages/utils/package.json b/packages/utils/package.json index c5c8d257598c..298a85d807e8 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/utils", - "version": "7.6.0", + "version": "7.7.0", "description": "Utilities for working with TypeScript + ESLint together", "files": [ "dist", @@ -70,16 +70,16 @@ "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.15", "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/typescript-estree": "7.6.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", "semver": "^7.6.0" }, "peerDependencies": { "eslint": "^8.56.0" }, "devDependencies": { - "@typescript-eslint/parser": "7.6.0", + "@typescript-eslint/parser": "7.7.0", "downlevel-dts": "*", "jest": "29.7.0", "prettier": "^3.2.5", diff --git a/packages/visitor-keys/CHANGELOG.md b/packages/visitor-keys/CHANGELOG.md index fb89f1530d0d..4e8bc897169e 100644 --- a/packages/visitor-keys/CHANGELOG.md +++ b/packages/visitor-keys/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/visitor-keys/package.json b/packages/visitor-keys/package.json index 5f869737e7c7..a7e66a3d5ea8 100644 --- a/packages/visitor-keys/package.json +++ b/packages/visitor-keys/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/visitor-keys", - "version": "7.6.0", + "version": "7.7.0", "description": "Visitor keys used to help traverse the TypeScript-ESTree AST", "files": [ "dist", @@ -47,7 +47,7 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/types": "7.7.0", "eslint-visitor-keys": "^3.4.3" }, "devDependencies": { diff --git a/packages/website-eslint/CHANGELOG.md b/packages/website-eslint/CHANGELOG.md index f432405329d9..257070d26ca1 100644 --- a/packages/website-eslint/CHANGELOG.md +++ b/packages/website-eslint/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/website-eslint/package.json b/packages/website-eslint/package.json index 415e97ec7e77..65bd0ef731c9 100644 --- a/packages/website-eslint/package.json +++ b/packages/website-eslint/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/website-eslint", - "version": "7.6.0", + "version": "7.7.0", "private": true, "description": "ESLint which works in browsers.", "files": [ @@ -23,16 +23,16 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@typescript-eslint/types": "7.6.0", - "@typescript-eslint/utils": "7.6.0" + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/utils": "7.7.0" }, "devDependencies": { "@eslint/js": "*", - "@typescript-eslint/eslint-plugin": "7.6.0", - "@typescript-eslint/parser": "7.6.0", - "@typescript-eslint/scope-manager": "7.6.0", - "@typescript-eslint/typescript-estree": "7.6.0", - "@typescript-eslint/visitor-keys": "7.6.0", + "@typescript-eslint/eslint-plugin": "7.7.0", + "@typescript-eslint/parser": "7.7.0", + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", "esbuild": "~0.20.2", "eslint": "*", "esquery": "*", diff --git a/packages/website/CHANGELOG.md b/packages/website/CHANGELOG.md index fca37e24af91..75a33f8d4099 100644 --- a/packages/website/CHANGELOG.md +++ b/packages/website/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.7.0 (2024-04-15) + +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.6.0 (2024-04-08) diff --git a/packages/website/package.json b/packages/website/package.json index adeb8567f436..7183a59fe49e 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -1,6 +1,6 @@ { "name": "website", - "version": "7.6.0", + "version": "7.7.0", "private": true, "scripts": { "build": "docusaurus build", @@ -25,8 +25,8 @@ "@docusaurus/theme-common": "^3.2.1", "@mdx-js/react": "^3.0.1", "@prettier/sync": "*", - "@typescript-eslint/parser": "7.6.0", - "@typescript-eslint/website-eslint": "7.6.0", + "@typescript-eslint/parser": "7.7.0", + "@typescript-eslint/website-eslint": "7.7.0", "clsx": "^2.1.0", "eslint": "*", "json-schema": "^0.4.0", @@ -49,9 +49,9 @@ "@types/react": "*", "@types/react-helmet": "^6.1.11", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "7.6.0", - "@typescript-eslint/rule-schema-to-typescript-types": "7.6.0", - "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/eslint-plugin": "7.7.0", + "@typescript-eslint/rule-schema-to-typescript-types": "7.7.0", + "@typescript-eslint/types": "7.7.0", "copy-webpack-plugin": "^12.0.0", "cross-fetch": "*", "globby": "^11.1.0", diff --git a/packages/website/src/components/RulesTable/index.tsx b/packages/website/src/components/RulesTable/index.tsx index 36f91a0ba22b..43918d9208cf 100644 --- a/packages/website/src/components/RulesTable/index.tsx +++ b/packages/website/src/components/RulesTable/index.tsx @@ -2,6 +2,7 @@ import Link from '@docusaurus/Link'; import { useHistory } from '@docusaurus/router'; import type { RulesMeta } from '@site/rulesMeta'; import { useRulesMeta } from '@site/src/hooks/useRulesMeta'; +import type { RuleRecommendation } from '@typescript-eslint/utils/ts-eslint'; import clsx from 'clsx'; import React, { useMemo } from 'react'; @@ -31,6 +32,13 @@ function interpolateCode( return fragments.map((v, i) => (i % 2 === 0 ? v : {v})); } +function getActualRecommended({ + docs, +}: RulesMeta[number]): RuleRecommendation | undefined { + const recommended = docs?.recommended; + return typeof recommended === 'object' ? 'recommended' : recommended; +} + function RuleRow({ rule, }: { @@ -40,9 +48,8 @@ function RuleRow({ return null; } const { fixable, hasSuggestions, type, deprecated } = rule; - const { recommended, requiresTypeChecking, extendsBaseRule } = rule.docs; - const actualRecommended = - typeof recommended === 'object' ? 'recommended' : recommended; + const { requiresTypeChecking, extendsBaseRule } = rule.docs; + const actualRecommended = getActualRecommended(rule); const formatting = type === 'layout'; return ( @@ -171,14 +178,15 @@ export default function RulesTable(): React.JSX.Element { const relevantRules = useMemo( () => rules.filter(r => { + const actualRecommended = getActualRecommended(r); const opinions = [ - match(filters.recommended, r.docs?.recommended === 'recommended'), + match(filters.recommended, actualRecommended === 'recommended'), match( filters.strict, - r.docs?.recommended === 'recommended' || - r.docs?.recommended === 'strict', + actualRecommended === 'recommended' || + actualRecommended === 'strict', ), - match(filters.stylistic, r.docs?.recommended === 'stylistic'), + match(filters.stylistic, actualRecommended === 'stylistic'), match(filters.fixable, !!r.fixable), match(filters.suggestions, !!r.hasSuggestions), match(filters.typeInformation, !!r.docs?.requiresTypeChecking), diff --git a/packages/website/static/img/team/kirkwaiblinger.jpg b/packages/website/static/img/team/kirkwaiblinger.jpg new file mode 100644 index 000000000000..f8e97ed11c3f Binary files /dev/null and b/packages/website/static/img/team/kirkwaiblinger.jpg differ diff --git a/yarn.lock b/yarn.lock index 2234e447d3ca..a0a5231a40eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5538,17 +5538,17 @@ __metadata: resolution: "@typescript-eslint/eslint-plugin-internal@workspace:packages/eslint-plugin-internal" dependencies: "@prettier/sync": ^0.5.1 - "@typescript-eslint/rule-tester": 7.6.0 - "@typescript-eslint/scope-manager": 7.6.0 - "@typescript-eslint/type-utils": 7.6.0 - "@typescript-eslint/utils": 7.6.0 + "@typescript-eslint/rule-tester": 7.7.0 + "@typescript-eslint/scope-manager": 7.7.0 + "@typescript-eslint/type-utils": 7.7.0 + "@typescript-eslint/utils": 7.7.0 jest: 29.7.0 prettier: ^3.2.5 rimraf: "*" languageName: unknown linkType: soft -"@typescript-eslint/eslint-plugin@7.6.0, @typescript-eslint/eslint-plugin@workspace:packages/eslint-plugin": +"@typescript-eslint/eslint-plugin@7.7.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: @@ -5557,12 +5557,12 @@ __metadata: "@types/marked": "*" "@types/mdast": ^4.0.3 "@types/natural-compare": "*" - "@typescript-eslint/rule-schema-to-typescript-types": 7.6.0 - "@typescript-eslint/rule-tester": 7.6.0 - "@typescript-eslint/scope-manager": 7.6.0 - "@typescript-eslint/type-utils": 7.6.0 - "@typescript-eslint/utils": 7.6.0 - "@typescript-eslint/visitor-keys": 7.6.0 + "@typescript-eslint/rule-schema-to-typescript-types": 7.7.0 + "@typescript-eslint/rule-tester": 7.7.0 + "@typescript-eslint/scope-manager": 7.7.0 + "@typescript-eslint/type-utils": 7.7.0 + "@typescript-eslint/utils": 7.7.0 + "@typescript-eslint/visitor-keys": 7.7.0 ajv: ^6.12.6 chalk: ^5.3.0 cross-env: ^7.0.3 @@ -5609,15 +5609,15 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/parser@7.6.0, @typescript-eslint/parser@workspace:packages/parser": +"@typescript-eslint/parser@7.7.0, @typescript-eslint/parser@workspace:packages/parser": version: 0.0.0-use.local resolution: "@typescript-eslint/parser@workspace:packages/parser" dependencies: "@types/glob": "*" - "@typescript-eslint/scope-manager": 7.6.0 - "@typescript-eslint/types": 7.6.0 - "@typescript-eslint/typescript-estree": 7.6.0 - "@typescript-eslint/visitor-keys": 7.6.0 + "@typescript-eslint/scope-manager": 7.7.0 + "@typescript-eslint/types": 7.7.0 + "@typescript-eslint/typescript-estree": 7.7.0 + "@typescript-eslint/visitor-keys": 7.7.0 debug: ^4.3.4 downlevel-dts: "*" glob: "*" @@ -5648,25 +5648,25 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/rule-schema-to-typescript-types@7.6.0, @typescript-eslint/rule-schema-to-typescript-types@workspace:packages/rule-schema-to-typescript-types": +"@typescript-eslint/rule-schema-to-typescript-types@7.7.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: - "@typescript-eslint/type-utils": 7.6.0 - "@typescript-eslint/utils": 7.6.0 + "@typescript-eslint/type-utils": 7.7.0 + "@typescript-eslint/utils": 7.7.0 natural-compare: ^1.4.0 prettier: ^3.2.5 languageName: unknown linkType: soft -"@typescript-eslint/rule-tester@7.6.0, @typescript-eslint/rule-tester@workspace:packages/rule-tester": +"@typescript-eslint/rule-tester@7.7.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: "@types/lodash.merge": 4.6.9 - "@typescript-eslint/parser": 7.6.0 - "@typescript-eslint/typescript-estree": 7.6.0 - "@typescript-eslint/utils": 7.6.0 + "@typescript-eslint/parser": 7.7.0 + "@typescript-eslint/typescript-estree": 7.7.0 + "@typescript-eslint/utils": 7.7.0 ajv: ^6.12.6 chai: ^4.4.1 lodash.merge: 4.6.2 @@ -5681,14 +5681,14 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/scope-manager@7.6.0, @typescript-eslint/scope-manager@workspace:packages/scope-manager": +"@typescript-eslint/scope-manager@7.7.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: "@types/glob": "*" - "@typescript-eslint/types": 7.6.0 - "@typescript-eslint/typescript-estree": 7.6.0 - "@typescript-eslint/visitor-keys": 7.6.0 + "@typescript-eslint/types": 7.7.0 + "@typescript-eslint/typescript-estree": 7.7.0 + "@typescript-eslint/visitor-keys": 7.7.0 glob: "*" jest-specific-snapshot: "*" make-dir: "*" @@ -5717,13 +5717,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@7.6.0, @typescript-eslint/type-utils@workspace:packages/type-utils": +"@typescript-eslint/type-utils@7.7.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: - "@typescript-eslint/parser": 7.6.0 - "@typescript-eslint/typescript-estree": 7.6.0 - "@typescript-eslint/utils": 7.6.0 + "@typescript-eslint/parser": 7.7.0 + "@typescript-eslint/typescript-estree": 7.7.0 + "@typescript-eslint/utils": 7.7.0 ajv: ^6.12.6 debug: ^4.3.4 downlevel-dts: "*" @@ -5740,7 +5740,7 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/types@7.6.0, @typescript-eslint/types@workspace:packages/types": +"@typescript-eslint/types@7.7.0, @typescript-eslint/types@workspace:packages/types": version: 0.0.0-use.local resolution: "@typescript-eslint/types@workspace:packages/types" dependencies: @@ -5840,14 +5840,14 @@ __metadata: languageName: unknown linkType: soft -"@typescript-eslint/typescript-estree@7.6.0, @typescript-eslint/typescript-estree@workspace:packages/typescript-estree": +"@typescript-eslint/typescript-estree@7.7.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: "@babel/code-frame": "*" "@babel/parser": "*" - "@typescript-eslint/types": 7.6.0 - "@typescript-eslint/visitor-keys": 7.6.0 + "@typescript-eslint/types": 7.7.0 + "@typescript-eslint/visitor-keys": 7.7.0 debug: ^4.3.4 glob: "*" globby: ^11.1.0 @@ -5905,17 +5905,17 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@7.6.0, @typescript-eslint/utils@workspace:packages/utils": +"@typescript-eslint/utils@7.7.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 "@types/json-schema": ^7.0.15 "@types/semver": ^7.5.8 - "@typescript-eslint/parser": 7.6.0 - "@typescript-eslint/scope-manager": 7.6.0 - "@typescript-eslint/types": 7.6.0 - "@typescript-eslint/typescript-estree": 7.6.0 + "@typescript-eslint/parser": 7.7.0 + "@typescript-eslint/scope-manager": 7.7.0 + "@typescript-eslint/types": 7.7.0 + "@typescript-eslint/typescript-estree": 7.7.0 downlevel-dts: "*" jest: 29.7.0 prettier: ^3.2.5 @@ -5962,12 +5962,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@7.6.0, @typescript-eslint/visitor-keys@workspace:packages/visitor-keys": +"@typescript-eslint/visitor-keys@7.7.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: "@types/eslint-visitor-keys": "*" - "@typescript-eslint/types": 7.6.0 + "@typescript-eslint/types": 7.7.0 downlevel-dts: "*" eslint-visitor-keys: ^3.4.3 jest: 29.7.0 @@ -5997,18 +5997,18 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/website-eslint@7.6.0, @typescript-eslint/website-eslint@workspace:packages/website-eslint": +"@typescript-eslint/website-eslint@7.7.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.6.0 - "@typescript-eslint/parser": 7.6.0 - "@typescript-eslint/scope-manager": 7.6.0 - "@typescript-eslint/types": 7.6.0 - "@typescript-eslint/typescript-estree": 7.6.0 - "@typescript-eslint/utils": 7.6.0 - "@typescript-eslint/visitor-keys": 7.6.0 + "@typescript-eslint/eslint-plugin": 7.7.0 + "@typescript-eslint/parser": 7.7.0 + "@typescript-eslint/scope-manager": 7.7.0 + "@typescript-eslint/types": 7.7.0 + "@typescript-eslint/typescript-estree": 7.7.0 + "@typescript-eslint/utils": 7.7.0 + "@typescript-eslint/visitor-keys": 7.7.0 esbuild: ~0.20.2 eslint: "*" esquery: "*" @@ -19276,9 +19276,9 @@ __metadata: version: 0.0.0-use.local resolution: "typescript-eslint@workspace:packages/typescript-eslint" dependencies: - "@typescript-eslint/eslint-plugin": 7.6.0 - "@typescript-eslint/parser": 7.6.0 - "@typescript-eslint/utils": 7.6.0 + "@typescript-eslint/eslint-plugin": 7.7.0 + "@typescript-eslint/parser": 7.7.0 + "@typescript-eslint/utils": 7.7.0 downlevel-dts: "*" jest: 29.7.0 prettier: ^3.2.5 @@ -19983,11 +19983,11 @@ __metadata: "@types/react": "*" "@types/react-helmet": ^6.1.11 "@types/react-router-dom": ^5.3.3 - "@typescript-eslint/eslint-plugin": 7.6.0 - "@typescript-eslint/parser": 7.6.0 - "@typescript-eslint/rule-schema-to-typescript-types": 7.6.0 - "@typescript-eslint/types": 7.6.0 - "@typescript-eslint/website-eslint": 7.6.0 + "@typescript-eslint/eslint-plugin": 7.7.0 + "@typescript-eslint/parser": 7.7.0 + "@typescript-eslint/rule-schema-to-typescript-types": 7.7.0 + "@typescript-eslint/types": 7.7.0 + "@typescript-eslint/website-eslint": 7.7.0 clsx: ^2.1.0 copy-webpack-plugin: ^12.0.0 cross-fetch: "*"