From 074310029694f92323d4d91f0fd31df39698d0e7 Mon Sep 17 00:00:00 2001 From: Kirk Waiblinger <53019676+kirkwaiblinger@users.noreply.github.com> Date: Tue, 9 Apr 2024 01:33:54 -0500 Subject: [PATCH 1/5] chore: add kirkwaiblinger to committer list (#8887) add kirkwaiblinger to committer list --- .cspell.json | 2 ++ docs/maintenance/Team.mdx | 5 +++++ .../website/static/img/team/kirkwaiblinger.jpg | Bin 0 -> 40813 bytes 3 files changed, 7 insertions(+) create mode 100644 packages/website/static/img/team/kirkwaiblinger.jpg 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/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/packages/website/static/img/team/kirkwaiblinger.jpg b/packages/website/static/img/team/kirkwaiblinger.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8e97ed11c3fec988f9e65fcbae033626862faf7 GIT binary patch literal 40813 zcmbTcRZtvG6y`g)6CglvcXt>hxVyt33GO<$BzSe z|J}W{wU2x6sp@{|e)-j@{?6&I&cC&P8-N%9HYO$(CI&VZ78VW;HZDFX0X`lcJ|)TP zSERI5^mMdTG&Bq>eC!NNJj^sS9O9fj0)iqUBJ}J)83`e2K4B3d6dW8Jd^~�s;yl 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 literal 0 HcmV?d00001 From 2db8f4ef0fd3e7d50843a0972f39b10746c47978 Mon Sep 17 00:00:00 2001 From: Abraham Guo Date: Tue, 9 Apr 2024 14:57:32 -0500 Subject: [PATCH 2/5] chore(website): make filters properly handle rules with recommended=object (#8849) * handle recommended=object * lint --- .../src/components/RulesTable/index.tsx | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) 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), From 5542aeb9440280dd4c0be529e9842f12221737ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josh=20Goldberg=20=E2=9C=A8?= Date: Mon, 15 Apr 2024 09:39:50 -0400 Subject: [PATCH 3/5] feat(typescript-estree): add defaultProject for project service (#8815) * feat(typescript-estree): add defaultProject for project service * Thanks Jake, service.setCompilerOptionsForInferredProjects * Cleaned up a bit and added happy path testing * Update packages/typescript-estree/src/parser-options.ts Co-authored-by: Brad Zacher --------- Co-authored-by: Brad Zacher --- docs/packages/TypeScript_ESTree.mdx | 7 +- .../create-program/createProjectService.ts | 38 ++++++++++ .../typescript-estree/src/parser-options.ts | 7 +- .../tests/lib/createProjectService.test.ts | 76 +++++++++++++++++++ 4 files changed, 126 insertions(+), 2 deletions(-) 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/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, + ); + }); }); From fda5704b2bd12adf5295952e0419ee82c6d869c4 Mon Sep 17 00:00:00 2001 From: Dave Date: Mon, 15 Apr 2024 23:52:28 +1000 Subject: [PATCH 4/5] feat(eslint-plugin): replace `no-new-symbol` with `no-new-native-nonconstructor` (#8895) Co-authored-by: Brad Zacher --- packages/eslint-plugin/src/configs/eslint-recommended-raw.ts | 2 ++ 1 file changed, 2 insertions(+) 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) From e44a1a280f08f9fd0d29f74e5c3e73b7b64a9606 Mon Sep 17 00:00:00 2001 From: "typescript-eslint[bot]" Date: Mon, 15 Apr 2024 17:14:33 +0000 Subject: [PATCH 5/5] chore(release): publish 7.7.0 --- CHANGELOG.md | 15 +++ packages/ast-spec/CHANGELOG.md | 6 + packages/ast-spec/package.json | 2 +- packages/eslint-plugin-internal/CHANGELOG.md | 6 + packages/eslint-plugin-internal/package.json | 10 +- packages/eslint-plugin/CHANGELOG.md | 15 +++ packages/eslint-plugin/package.json | 14 +-- packages/integration-tests/CHANGELOG.md | 6 + packages/integration-tests/package.json | 2 +- packages/parser/CHANGELOG.md | 6 + packages/parser/package.json | 10 +- packages/repo-tools/CHANGELOG.md | 6 + packages/repo-tools/package.json | 2 +- .../CHANGELOG.md | 6 + .../package.json | 6 +- packages/rule-tester/CHANGELOG.md | 6 + packages/rule-tester/package.json | 8 +- packages/scope-manager/CHANGELOG.md | 6 + packages/scope-manager/package.json | 8 +- packages/type-utils/CHANGELOG.md | 6 + packages/type-utils/package.json | 8 +- packages/types/CHANGELOG.md | 6 + packages/types/package.json | 2 +- packages/typescript-eslint/CHANGELOG.md | 6 + packages/typescript-eslint/package.json | 8 +- packages/typescript-estree/CHANGELOG.md | 15 +++ packages/typescript-estree/package.json | 6 +- packages/utils/CHANGELOG.md | 6 + packages/utils/package.json | 10 +- packages/visitor-keys/CHANGELOG.md | 6 + packages/visitor-keys/package.json | 4 +- packages/website-eslint/CHANGELOG.md | 6 + packages/website-eslint/package.json | 16 +-- packages/website/CHANGELOG.md | 6 + packages/website/package.json | 12 +- yarn.lock | 116 +++++++++--------- 36 files changed, 257 insertions(+), 122 deletions(-) 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/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/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/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/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