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: "*" pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy