diff --git a/.eslintrc.js b/.eslintrc.js index 07f5bad8887e..5f0a828f3c35 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -54,7 +54,6 @@ module.exports = { 'deprecation/deprecation': 'error', // TODO(#7138): Investigate enabling these soon ✨ - '@typescript-eslint/consistent-indexed-object-style': 'off', '@typescript-eslint/prefer-nullish-coalescing': 'off', // TODO(#7130): Investigate changing these in or removing these from presets diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47da35c1741f..439329472874 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -55,6 +55,22 @@ jobs: - name: Build uses: ./.github/actions/prepare-build + generate_configs: + name: Lint + needs: [build] + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install + uses: ./.github/actions/prepare-install + with: + node-version: ${{ env.PRIMARY_NODE_VERSION }} + - run: yarn generate-configs + - run: git status --porcelain + - if: failure() + run: echo "Outdated result detected from yarn generate-configs. Please check in any file changes." + lint_without_build: name: Lint needs: [install] @@ -225,8 +241,6 @@ jobs: TYPESCRIPT_ESLINT_EXPERIMENTAL_TSSERVER: true website_tests: - # The NETLIFY_TOKEN secret will not be available on forks - if: github.repository_owner == 'typescript-eslint' permissions: contents: read # to fetch code (actions/checkout) @@ -247,21 +261,32 @@ jobs: with: node-version: ${{ env.PRIMARY_NODE_VERSION }} + - name: Build website + if: github.repository != 'typescript-eslint/typescript-eslint' || github.ref != 'refs/heads/main' + run: NX_VERBOSE_LOGGING=true yarn patch-package && yarn nx build website + - name: Install Playwright Browsers - run: npx playwright install --with-deps + run: npx playwright install --with-deps chromium - name: Wait for Netlify deployment + if: github.repository == 'typescript-eslint/typescript-eslint' && github.ref == 'refs/heads/main' uses: ./.github/actions/wait-for-netlify id: waitForDeployment with: netlify_token: ${{ secrets.NETLIFY_TOKEN }} - name: Run Playwright tests against the Netlify deployment + if: github.repository == 'typescript-eslint/typescript-eslint' && github.ref == 'refs/heads/main' run: yarn playwright test --reporter=list working-directory: packages/website env: PLAYWRIGHT_TEST_BASE_URL: ${{ steps.waitForDeployment.outputs.url }} + - name: Run Playwright tests against local deployment + if: github.repository != 'typescript-eslint/typescript-eslint' || github.ref != 'refs/heads/main' + run: yarn playwright test --reporter=list + working-directory: packages/website + - if: always() uses: actions/upload-artifact@v3 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index de699ecdc1c9..264c6c7ffda1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,30 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + + +### Bug Fixes + +* **eslint-plugin:** [no-extra-parens] keep parens around call expression arguments when type arguments contain parens ([#7375](https://github.com/typescript-eslint/typescript-eslint/issues/7375)) ([38e5e4e](https://github.com/typescript-eslint/typescript-eslint/commit/38e5e4eb8624649a2b66e19a303383bebbda1e2e)) +* **eslint-plugin:** [no-restricted-imports] allow inline type qualifiers when `allowTypeImports` enabled ([#7379](https://github.com/typescript-eslint/typescript-eslint/issues/7379)) ([cc9a46d](https://github.com/typescript-eslint/typescript-eslint/commit/cc9a46d01bce4282ff841d5ccef5445984aff8f6)) + + +### Features + +* **eslint-plugin:** [prefer-nullish-coalescing] allow `ignorePrimitives` option to be `true` ([#7331](https://github.com/typescript-eslint/typescript-eslint/issues/7331)) ([dfcafae](https://github.com/typescript-eslint/typescript-eslint/commit/dfcafae515e7f4d1ae69387eb163200e455dd0ce)) + + +### Reverts + +* Revert "chore(deps): update dependency marked to v6" (#7429) ([7891a06](https://github.com/typescript-eslint/typescript-eslint/commit/7891a06892445a30c90c882d7e2f17fdf9da5601)), closes [#7429](https://github.com/typescript-eslint/typescript-eslint/issues/7429) [#7422](https://github.com/typescript-eslint/typescript-eslint/issues/7422) + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) diff --git a/docs/users/Dependency_Versions.mdx b/docs/users/Dependency_Versions.mdx index 46542709154f..ff1cad710d73 100644 --- a/docs/users/Dependency_Versions.mdx +++ b/docs/users/Dependency_Versions.mdx @@ -3,6 +3,8 @@ id: dependency-versions title: Dependency Versions --- +import packageJson from '../../package.json'; + ## ESLint > The version range of ESLint currently supported is `^6.0.0 || ^7.0.0 || ^8.0.0`. @@ -16,7 +18,12 @@ Support for specific Current status releases are considered periodically. ## TypeScript -> The version range of TypeScript currently supported is `>=3.3.1 <5.2.0`. +
+

+ The version range of TypeScript currently supported is{' '} + {packageJson.devDependencies.typescript}. +

+
Note that we mirror [DefinitelyTyped's version support window](https://github.com/DefinitelyTyped/DefinitelyTyped/#support-window) - meaning we only support versions of TypeScript less than 2 years old. diff --git a/lerna.json b/lerna.json index 80a771e063c4..ca63dc1514ce 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", - "version": "6.2.1", + "version": "6.3.0", "npmClient": "yarn", "stream": true, "command": { diff --git a/package.json b/package.json index cd6d2e250b10..fac4d9ad4c9d 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "@types/marked": "^5.0.0", "@types/natural-compare": "^1.4.1", "@types/ncp": "^2.0.5", - "@types/node": "^18.16.19", + "@types/node": "^20.0.0", "@types/prettier": "^2.7.2", "@types/semver": "^7.5.0", "@types/tmp": "^0.2.3", @@ -93,7 +93,7 @@ "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-simple-import-sort": "^10.0.0", - "eslint-plugin-unicorn": "^47.0.0", + "eslint-plugin-unicorn": "^48.0.1", "execa": "7.1.1", "glob": "^10.3.3", "husky": "^8.0.3", @@ -109,7 +109,7 @@ "netlify": "^13.1.9", "nx-cloud": "16.1.1", "nx": "16.5.3", - "patch-package": "^7.0.0", + "patch-package": "^8.0.0", "prettier": "^2.8.4", "pretty-format": "^29.6.1", "raw-loader": "^4.0.2", @@ -135,7 +135,7 @@ "@types/eslint-scope": "link:./tools/dummypkg", "@types/eslint": "link:./tools/dummypkg", "@types/estree": "link:./tools/dummypkg", - "@types/node": "^18.16.19", + "@types/node": "^20.0.0", "@types/react": "^18.2.14", "eslint-visitor-keys": "^3.4.1", "jest-config": "^29", diff --git a/packages/ast-spec/CHANGELOG.md b/packages/ast-spec/CHANGELOG.md index 66257fe1310f..247aa37ab2a9 100644 --- a/packages/ast-spec/CHANGELOG.md +++ b/packages/ast-spec/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/ast-spec + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/ast-spec diff --git a/packages/ast-spec/package.json b/packages/ast-spec/package.json index b881fa5ae557..df79be75798e 100644 --- a/packages/ast-spec/package.json +++ b/packages/ast-spec/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/ast-spec", - "version": "6.2.1", + "version": "6.3.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 93cf6df53f43..b1bd897b6902 100644 --- a/packages/eslint-plugin-internal/CHANGELOG.md +++ b/packages/eslint-plugin-internal/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/eslint-plugin-internal + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/eslint-plugin-internal diff --git a/packages/eslint-plugin-internal/package.json b/packages/eslint-plugin-internal/package.json index 91ab1d0c7f27..8dd026f25f50 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": "6.2.1", + "version": "6.3.0", "private": true, "main": "dist/index.js", "scripts": { @@ -14,10 +14,10 @@ }, "dependencies": { "@types/prettier": "*", - "@typescript-eslint/rule-tester": "6.2.1", - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/type-utils": "6.2.1", - "@typescript-eslint/utils": "6.2.1", + "@typescript-eslint/rule-tester": "6.3.0", + "@typescript-eslint/scope-manager": "6.3.0", + "@typescript-eslint/type-utils": "6.3.0", + "@typescript-eslint/utils": "6.3.0", "prettier": "*" } } diff --git a/packages/eslint-plugin-tslint/CHANGELOG.md b/packages/eslint-plugin-tslint/CHANGELOG.md index b4cd5d49fb84..ead11f683960 100644 --- a/packages/eslint-plugin-tslint/CHANGELOG.md +++ b/packages/eslint-plugin-tslint/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/eslint-plugin-tslint + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/eslint-plugin-tslint diff --git a/packages/eslint-plugin-tslint/package.json b/packages/eslint-plugin-tslint/package.json index 3e6c4ed93892..fd3ecbdbbc58 100644 --- a/packages/eslint-plugin-tslint/package.json +++ b/packages/eslint-plugin-tslint/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/eslint-plugin-tslint", - "version": "6.2.1", + "version": "6.3.0", "main": "dist/index.js", "typings": "src/index.ts", "description": "ESLint plugin that wraps a TSLint configuration and lints the whole source using TSLint", @@ -46,7 +46,7 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/utils": "6.2.1" + "@typescript-eslint/utils": "6.3.0" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0", @@ -54,7 +54,7 @@ "typescript": "*" }, "devDependencies": { - "@typescript-eslint/parser": "6.2.1" + "@typescript-eslint/parser": "6.3.0" }, "funding": { "type": "opencollective", diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index ec78d4945ffa..aefd7fbc9235 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -3,6 +3,30 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + + +### Bug Fixes + +* **eslint-plugin:** [no-extra-parens] keep parens around call expression arguments when type arguments contain parens ([#7375](https://github.com/typescript-eslint/typescript-eslint/issues/7375)) ([38e5e4e](https://github.com/typescript-eslint/typescript-eslint/commit/38e5e4eb8624649a2b66e19a303383bebbda1e2e)) +* **eslint-plugin:** [no-restricted-imports] allow inline type qualifiers when `allowTypeImports` enabled ([#7379](https://github.com/typescript-eslint/typescript-eslint/issues/7379)) ([cc9a46d](https://github.com/typescript-eslint/typescript-eslint/commit/cc9a46d01bce4282ff841d5ccef5445984aff8f6)) + + +### Features + +* **eslint-plugin:** [prefer-nullish-coalescing] allow `ignorePrimitives` option to be `true` ([#7331](https://github.com/typescript-eslint/typescript-eslint/issues/7331)) ([dfcafae](https://github.com/typescript-eslint/typescript-eslint/commit/dfcafae515e7f4d1ae69387eb163200e455dd0ce)) + + +### Reverts + +* Revert "chore(deps): update dependency marked to v6" (#7429) ([7891a06](https://github.com/typescript-eslint/typescript-eslint/commit/7891a06892445a30c90c882d7e2f17fdf9da5601)), closes [#7429](https://github.com/typescript-eslint/typescript-eslint/issues/7429) [#7422](https://github.com/typescript-eslint/typescript-eslint/issues/7422) + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) diff --git a/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.md b/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.md index 451f7dff1d45..7c2f45a877b6 100644 --- a/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.md +++ b/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.md @@ -22,7 +22,7 @@ This rule will not work as expected if [`strictNullChecks`](https://www.typescri ### `ignoreTernaryTests` -Setting this option to `true` (the default) will cause the rule to ignore any ternary expressions that could be simplified by using the nullish coalescing operator. +Setting this option to `true` will cause the rule to ignore any ternary expressions that could be simplified by using the nullish coalescing operator. This is set to `false` by default. Incorrect code for `ignoreTernaryTests: false`, and correct code for `ignoreTernaryTests: true`: @@ -62,7 +62,7 @@ foo ?? 'a string'; ### `ignoreConditionalTests` -Setting this option to `true` (the default) will cause the rule to ignore any cases that are located within a conditional test. +Setting this option to `true` will cause the rule to ignore any cases that are located within a conditional test. This is set to `false` by default. Generally expressions within conditional tests intentionally use the falsy fallthrough behavior of the logical or operator, meaning that fixing the operator to the nullish coalesce operator could cause bugs. @@ -104,7 +104,7 @@ a ?? b ? true : false; ### `ignoreMixedLogicalExpressions` -Setting this option to `true` (the default) will cause the rule to ignore any logical or expressions that are part of a mixed logical expression (with `&&`). +Setting this option to `true` will cause the rule to ignore any logical or expressions that are part of a mixed logical expression (with `&&`). This is set to `false` by default. Generally expressions within mixed logical expressions intentionally use the falsy fallthrough behavior of the logical or operator, meaning that fixing the operator to the nullish coalesce operator could cause bugs. @@ -165,6 +165,8 @@ const foo: string | undefined = 'bar'; foo ?? 'a string'; ``` +Also, if you would like to ignore all primitives types, you can set `ignorePrimitives: true`. It would be equivalent to `ignorePrimitives: { string: true, number: true, bigint: true, boolean: true }`. + ## When Not To Use It If you are not using TypeScript 3.7 (or greater), then you will not be able to use this rule, as the operator is not supported. diff --git a/packages/eslint-plugin/docs/rules/return-await.md b/packages/eslint-plugin/docs/rules/return-await.md index 205c0eb0e8df..bf1c60ecd0b4 100644 --- a/packages/eslint-plugin/docs/rules/return-await.md +++ b/packages/eslint-plugin/docs/rules/return-await.md @@ -8,11 +8,11 @@ description: 'Enforce consistent returning of awaited values.' Returning an awaited promise can make sense for better stack trace information as well as for consistent error handling (returned promises will not be caught in an async function try/catch). -## Examples - This rule builds on top of the [`eslint/no-return-await`](https://eslint.org/docs/rules/no-return-await) rule. It expands upon the base rule to add support for optionally requiring `return await` in certain cases. +The extended rule is named `return-await` instead of `no-return-await` because the extended rule can enforce the positive or the negative. Additionally, while the core rule is now deprecated, the extended rule is still useful in many contexts. + ## Options ```ts diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index cecb078d9ac3..0c1154a0a03f 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/eslint-plugin", - "version": "6.2.1", + "version": "6.3.0", "description": "TypeScript plugin for ESLint", "files": [ "dist", @@ -57,10 +57,10 @@ }, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/type-utils": "6.2.1", - "@typescript-eslint/utils": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/scope-manager": "6.3.0", + "@typescript-eslint/type-utils": "6.3.0", + "@typescript-eslint/utils": "6.3.0", + "@typescript-eslint/visitor-keys": "6.3.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -74,8 +74,8 @@ "@types/marked": "*", "@types/natural-compare": "*", "@types/prettier": "*", - "@typescript-eslint/rule-schema-to-typescript-types": "6.2.1", - "@typescript-eslint/rule-tester": "6.2.1", + "@typescript-eslint/rule-schema-to-typescript-types": "6.3.0", + "@typescript-eslint/rule-tester": "6.3.0", "ajv": "^6.12.6", "chalk": "^5.3.0", "cross-fetch": "*", diff --git a/packages/eslint-plugin/rules.d.ts b/packages/eslint-plugin/rules.d.ts index 49518b6ee502..1778ba33ca75 100644 --- a/packages/eslint-plugin/rules.d.ts +++ b/packages/eslint-plugin/rules.d.ts @@ -37,8 +37,9 @@ This is likely not portable. A type annotation is necessary. ts(2742) import type { RuleModule } from '@typescript-eslint/utils/ts-eslint'; -export interface TypeScriptESLintRules { - [ruleName: string]: RuleModule; -} +export type TypeScriptESLintRules = Record< + string, + RuleModule +>; declare const rules: TypeScriptESLintRules; export default rules; diff --git a/packages/eslint-plugin/src/rules/consistent-type-exports.ts b/packages/eslint-plugin/src/rules/consistent-type-exports.ts index e65451ded1da..3c496ee63d61 100644 --- a/packages/eslint-plugin/src/rules/consistent-type-exports.ts +++ b/packages/eslint-plugin/src/rules/consistent-type-exports.ts @@ -67,7 +67,7 @@ export default util.createRule({ create(context, [{ fixMixedExportsWithInlineTypeSpecifier }]) { const sourceCode = context.getSourceCode(); - const sourceExportsMap: { [key: string]: SourceExports } = {}; + const sourceExportsMap: Record = {}; const services = util.getParserServices(context); /** diff --git a/packages/eslint-plugin/src/rules/consistent-type-imports.ts b/packages/eslint-plugin/src/rules/consistent-type-imports.ts index 98344aaeeba9..fac248681312 100644 --- a/packages/eslint-plugin/src/rules/consistent-type-imports.ts +++ b/packages/eslint-plugin/src/rules/consistent-type-imports.ts @@ -96,7 +96,7 @@ export default util.createRule({ const fixStyle = option.fixStyle ?? 'separate-type-imports'; const sourceCode = context.getSourceCode(); - const sourceImportsMap: { [key: string]: SourceImports } = {}; + const sourceImportsMap: Record = {}; return { ...(prefer === 'type-imports' diff --git a/packages/eslint-plugin/src/rules/no-extra-parens.ts b/packages/eslint-plugin/src/rules/no-extra-parens.ts index b3a150ad201e..5d26f8a5efb7 100644 --- a/packages/eslint-plugin/src/rules/no-extra-parens.ts +++ b/packages/eslint-plugin/src/rules/no-extra-parens.ts @@ -27,6 +27,7 @@ export default util.createRule({ }, defaultOptions: ['all'], create(context) { + const sourceCode = context.getSourceCode(); const rules = baseRule.create(context); function binaryExp( @@ -79,11 +80,9 @@ export default util.createRule({ if ( node.arguments.length === 1 && - node.typeArguments?.params.some( - param => - param.type === AST_NODE_TYPES.TSImportType || - param.type === AST_NODE_TYPES.TSArrayType, - ) + // is there any opening parenthesis in type arguments + sourceCode.getTokenAfter(node.callee, util.isOpeningParenToken) !== + sourceCode.getTokenBefore(node.arguments[0], util.isOpeningParenToken) ) { return rule({ ...node, diff --git a/packages/eslint-plugin/src/rules/no-restricted-imports.ts b/packages/eslint-plugin/src/rules/no-restricted-imports.ts index 28f001fcaaf0..71da6fe6c14d 100644 --- a/packages/eslint-plugin/src/rules/no-restricted-imports.ts +++ b/packages/eslint-plugin/src/rules/no-restricted-imports.ts @@ -1,4 +1,5 @@ import type { TSESTree } from '@typescript-eslint/utils'; +import { AST_NODE_TYPES } from '@typescript-eslint/utils'; import type { JSONSchema4AnyOfSchema, JSONSchema4ArraySchema, @@ -269,8 +270,15 @@ export default createRule({ } return { - ImportDeclaration(node): void { - if (node.importKind === 'type') { + ImportDeclaration(node: TSESTree.ImportDeclaration): void { + if ( + node.importKind === 'type' || + node.specifiers.every( + specifier => + specifier.type === AST_NODE_TYPES.ImportSpecifier && + specifier.importKind === 'type', + ) + ) { const importSource = node.source.value.trim(); if ( !isAllowedTypeImportPath(importSource) && @@ -287,7 +295,10 @@ export default createRule({ source: NonNullable; }, ): void { - if (node.exportKind === 'type') { + if ( + node.exportKind === 'type' || + node.specifiers.every(specifier => specifier.exportKind === 'type') + ) { const importSource = node.source.value.trim(); if ( !isAllowedTypeImportPath(importSource) && diff --git a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts index f9a953f501cf..d4f790770a51 100644 --- a/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts +++ b/packages/eslint-plugin/src/rules/prefer-nullish-coalescing.ts @@ -10,12 +10,14 @@ export type Options = [ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean; ignoreConditionalTests?: boolean; ignoreMixedLogicalExpressions?: boolean; - ignorePrimitives?: { - bigint?: boolean; - boolean?: boolean; - number?: boolean; - string?: boolean; - }; + ignorePrimitives?: + | { + bigint?: boolean; + boolean?: boolean; + number?: boolean; + string?: boolean; + } + | true; ignoreTernaryTests?: boolean; }, ]; @@ -60,13 +62,21 @@ export default util.createRule({ type: 'boolean', }, ignorePrimitives: { - type: 'object', - properties: { - bigint: { type: 'boolean' }, - boolean: { type: 'boolean' }, - number: { type: 'boolean' }, - string: { type: 'boolean' }, - }, + oneOf: [ + { + type: 'object', + properties: { + bigint: { type: 'boolean' }, + boolean: { type: 'boolean' }, + number: { type: 'boolean' }, + string: { type: 'boolean' }, + }, + }, + { + type: 'boolean', + enum: [true], + }, + ], }, ignoreTernaryTests: { type: 'boolean', @@ -302,12 +312,16 @@ export default util.createRule({ } const ignorableFlags = [ - ignorePrimitives!.bigint && ts.TypeFlags.BigInt, - ignorePrimitives!.boolean && ts.TypeFlags.BooleanLiteral, - ignorePrimitives!.number && ts.TypeFlags.Number, - ignorePrimitives!.string && ts.TypeFlags.String, + (ignorePrimitives === true || ignorePrimitives!.bigint) && + ts.TypeFlags.BigInt, + (ignorePrimitives === true || ignorePrimitives!.boolean) && + ts.TypeFlags.BooleanLiteral, + (ignorePrimitives === true || ignorePrimitives!.number) && + ts.TypeFlags.Number, + (ignorePrimitives === true || ignorePrimitives!.string) && + ts.TypeFlags.String, ] - .filter((flag): flag is number => flag !== undefined) + .filter((flag): flag is number => typeof flag === 'number') .reduce((previous, flag) => previous | flag, 0); if ( type.flags !== ts.TypeFlags.Null && diff --git a/packages/eslint-plugin/tests/rules/no-extra-parens.test.ts b/packages/eslint-plugin/tests/rules/no-extra-parens.test.ts index 6aad779b2b72..43f6902a20e3 100644 --- a/packages/eslint-plugin/tests/rules/no-extra-parens.test.ts +++ b/packages/eslint-plugin/tests/rules/no-extra-parens.test.ts @@ -515,6 +515,26 @@ f<(number | string)[]>(['a', 1]) }, }, }, + { + code: ` +f<(number)>(1) + `, + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + { + code: ` +f<(number) | string>(1) + `, + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, ], invalid: [ @@ -608,6 +628,16 @@ f<(number | string)[]>(['a', 1]) }, ], }, + { + code: 'a<(A) | number>((1));', + output: 'a<(A) | number>(1);', + errors: [ + { + messageId: 'unexpected', + column: 17, + }, + ], + }, { code: 'async function f(arg: Promise) { await (arg); }', output: 'async function f(arg: Promise) { await arg; }', diff --git a/packages/eslint-plugin/tests/rules/no-restricted-imports.test.ts b/packages/eslint-plugin/tests/rules/no-restricted-imports.test.ts index 1f3e4748b118..da3e78884914 100644 --- a/packages/eslint-plugin/tests/rules/no-restricted-imports.test.ts +++ b/packages/eslint-plugin/tests/rules/no-restricted-imports.test.ts @@ -254,6 +254,36 @@ import type { foo } from 'import2/private/bar'; }, ], }, + { + code: "import { type Bar } from 'import-foo';", + options: [ + { + paths: [ + { + name: 'import-foo', + importNames: ['Bar'], + message: 'Please use Bar from /import-bar/baz/ instead.', + allowTypeImports: true, + }, + ], + }, + ], + }, + { + code: "export { type Bar } from 'import-foo';", + options: [ + { + paths: [ + { + name: 'import-foo', + importNames: ['Bar'], + message: 'Please use Bar from /import-bar/baz/ instead.', + allowTypeImports: true, + }, + ], + }, + ], + }, ], invalid: [ { @@ -586,5 +616,55 @@ import type { foo } from 'import2/private/bar'; }, ], }, + { + code: "import { Bar, type Baz } from 'import-foo';", + options: [ + { + paths: [ + { + name: 'import-foo', + importNames: ['Bar', 'Baz'], + message: 'Please use Bar and Baz from /import-bar/baz/ instead.', + allowTypeImports: true, + }, + ], + }, + ], + errors: [ + { + messageId: 'importNameWithCustomMessage', + type: AST_NODE_TYPES.ImportDeclaration, + }, + { + messageId: 'importNameWithCustomMessage', + type: AST_NODE_TYPES.ImportDeclaration, + }, + ], + }, + { + code: "export { Bar, type Baz } from 'import-foo';", + options: [ + { + paths: [ + { + name: 'import-foo', + importNames: ['Bar', 'Baz'], + message: 'Please use Bar and Baz from /import-bar/baz/ instead.', + allowTypeImports: true, + }, + ], + }, + ], + errors: [ + { + messageId: 'importNameWithCustomMessage', + type: AST_NODE_TYPES.ExportNamedDeclaration, + }, + { + messageId: 'importNameWithCustomMessage', + type: AST_NODE_TYPES.ExportNamedDeclaration, + }, + ], + }, ], }); diff --git a/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts b/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts index 9ba8d2dd34f2..334754454f1c 100644 --- a/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts +++ b/packages/eslint-plugin/tests/rules/prefer-nullish-coalescing.test.ts @@ -215,6 +215,13 @@ x || y; `, options: [{ ignorePrimitives: { [type]: true } }], })), + ...ignorablePrimitiveTypes.map>(type => ({ + code: ` +declare const x: ${type} | undefined; +x || y; + `, + options: [{ ignorePrimitives: true }], + })), ], invalid: [ ...nullishTypeInvalidTest((nullish, type) => ({ diff --git a/packages/eslint-plugin/tests/schema-snapshots/prefer-nullish-coalescing.shot b/packages/eslint-plugin/tests/schema-snapshots/prefer-nullish-coalescing.shot index 622ae8649944..2a4fd6b7550e 100644 --- a/packages/eslint-plugin/tests/schema-snapshots/prefer-nullish-coalescing.shot +++ b/packages/eslint-plugin/tests/schema-snapshots/prefer-nullish-coalescing.shot @@ -18,21 +18,29 @@ exports[`Rule schemas should be convertible to TS types for documentation purpos "type": "boolean" }, "ignorePrimitives": { - "properties": { - "bigint": { - "type": "boolean" - }, - "boolean": { - "type": "boolean" - }, - "number": { - "type": "boolean" + "oneOf": [ + { + "properties": { + "bigint": { + "type": "boolean" + }, + "boolean": { + "type": "boolean" + }, + "number": { + "type": "boolean" + }, + "string": { + "type": "boolean" + } + }, + "type": "object" }, - "string": { + { + "enum": [true], "type": "boolean" } - }, - "type": "object" + ] }, "ignoreTernaryTests": { "type": "boolean" @@ -50,13 +58,15 @@ type Options = [ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing?: boolean; ignoreConditionalTests?: boolean; ignoreMixedLogicalExpressions?: boolean; - ignorePrimitives?: { - bigint?: boolean; - boolean?: boolean; - number?: boolean; - string?: boolean; - [k: string]: unknown; - }; + ignorePrimitives?: + | { + bigint?: boolean; + boolean?: boolean; + number?: boolean; + string?: boolean; + [k: string]: unknown; + } + | true; ignoreTernaryTests?: boolean; }, ]; diff --git a/packages/eslint-plugin/tools/generate-configs.ts b/packages/eslint-plugin/tools/generate-configs.ts index 5056bdb7de42..8fac06d16687 100644 --- a/packages/eslint-plugin/tools/generate-configs.ts +++ b/packages/eslint-plugin/tools/generate-configs.ts @@ -47,9 +47,7 @@ async function main(): Promise { const prettierConfig = prettier.resolveConfig.sync(__dirname); - interface LinterConfigRules { - [name: string]: TSESLint.Linter.RuleLevel; - } + type LinterConfigRules = Record; interface LinterConfig extends TSESLint.Linter.Config { extends?: string[] | string; diff --git a/packages/integration-tests/CHANGELOG.md b/packages/integration-tests/CHANGELOG.md index aaa19ec81784..e9f78a7fce08 100644 --- a/packages/integration-tests/CHANGELOG.md +++ b/packages/integration-tests/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/integration-tests + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/integration-tests diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 81f9914cf29e..639b95b706f6 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/integration-tests", - "version": "6.2.1", + "version": "6.3.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 6ca19b8f5393..07855153a208 100644 --- a/packages/parser/CHANGELOG.md +++ b/packages/parser/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/parser + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/parser diff --git a/packages/parser/package.json b/packages/parser/package.json index 2c82c43d37e7..4ed91c8a7f1e 100644 --- a/packages/parser/package.json +++ b/packages/parser/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/parser", - "version": "6.2.1", + "version": "6.3.0", "description": "An ESLint custom parser which leverages TypeScript ESTree", "files": [ "dist", @@ -51,10 +51,10 @@ "eslint": "^7.0.0 || ^8.0.0" }, "dependencies": { - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/typescript-estree": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/scope-manager": "6.3.0", + "@typescript-eslint/types": "6.3.0", + "@typescript-eslint/typescript-estree": "6.3.0", + "@typescript-eslint/visitor-keys": "6.3.0", "debug": "^4.3.4" }, "devDependencies": { diff --git a/packages/repo-tools/CHANGELOG.md b/packages/repo-tools/CHANGELOG.md index 23544e887621..dac8349b47f4 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/repo-tools + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/repo-tools diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 5bbc2a22f1a6..fbf98418986e 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/repo-tools", - "version": "6.2.1", + "version": "6.3.0", "private": true, "scripts": { "build": "tsc -b tsconfig.build.json", diff --git a/packages/rule-schema-to-typescript-types/CHANGELOG.md b/packages/rule-schema-to-typescript-types/CHANGELOG.md index 5f80c6a0bb83..76ec59af5001 100644 --- a/packages/rule-schema-to-typescript-types/CHANGELOG.md +++ b/packages/rule-schema-to-typescript-types/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/rule-schema-to-typescript-types + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/rule-schema-to-typescript-types diff --git a/packages/rule-schema-to-typescript-types/package.json b/packages/rule-schema-to-typescript-types/package.json index 3bfa00ab937a..154a097d0900 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": "6.2.1", + "version": "6.3.0", "private": true, "type": "commonjs", "exports": { @@ -33,8 +33,8 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/type-utils": "6.2.1", - "@typescript-eslint/utils": "6.2.1", + "@typescript-eslint/type-utils": "6.3.0", + "@typescript-eslint/utils": "6.3.0", "natural-compare": "^1.4.0", "prettier": "*" }, diff --git a/packages/rule-schema-to-typescript-types/src/index.ts b/packages/rule-schema-to-typescript-types/src/index.ts index 9101bc4026e4..e998719a3060 100644 --- a/packages/rule-schema-to-typescript-types/src/index.ts +++ b/packages/rule-schema-to-typescript-types/src/index.ts @@ -69,9 +69,7 @@ function compileSchema( const refMap = new Map(); // we only support defs at the top level for simplicity - const defs = (schema.$defs ?? schema.definitions) as - | Record - | undefined; + const defs = schema.$defs ?? schema.definitions; if (defs) { for (const [defKey, defSchema] of Object.entries(defs)) { const typeName = toPascalCase(defKey); diff --git a/packages/rule-tester/CHANGELOG.md b/packages/rule-tester/CHANGELOG.md index dacdb080ae7e..df67a1d835b7 100644 --- a/packages/rule-tester/CHANGELOG.md +++ b/packages/rule-tester/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/rule-tester + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/rule-tester diff --git a/packages/rule-tester/package.json b/packages/rule-tester/package.json index 18af0c4240e1..0eb0bf5326f6 100644 --- a/packages/rule-tester/package.json +++ b/packages/rule-tester/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/rule-tester", - "version": "6.2.1", + "version": "6.3.0", "description": "Tooling to test ESLint rules", "files": [ "dist", @@ -47,8 +47,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": "6.2.1", - "@typescript-eslint/utils": "6.2.1", + "@typescript-eslint/typescript-estree": "6.3.0", + "@typescript-eslint/utils": "6.3.0", "ajv": "^6.10.0", "lodash.merge": "4.6.2", "semver": "^7.5.4" @@ -59,7 +59,7 @@ }, "devDependencies": { "@types/lodash.merge": "4.6.7", - "@typescript-eslint/parser": "6.2.1", + "@typescript-eslint/parser": "6.3.0", "chai": "^4.3.7", "mocha": "^8.3.2", "sinon": "^11.0.0", diff --git a/packages/rule-tester/src/types/DependencyConstraint.ts b/packages/rule-tester/src/types/DependencyConstraint.ts index ecb86e912cdb..a59a0a737061 100644 --- a/packages/rule-tester/src/types/DependencyConstraint.ts +++ b/packages/rule-tester/src/types/DependencyConstraint.ts @@ -12,9 +12,7 @@ export type AtLeastVersionConstraint = export type VersionConstraint = | AtLeastVersionConstraint | SemverVersionConstraint; -export interface DependencyConstraint { - /** - * Passing a string for the value is shorthand for a '>=' constraint - */ - readonly [packageName: string]: VersionConstraint; -} +/** + * Passing a string for the value is shorthand for a '>=' constraint + */ +export type DependencyConstraint = Readonly>; diff --git a/packages/scope-manager/CHANGELOG.md b/packages/scope-manager/CHANGELOG.md index 5c6824e42479..1fd4035529e4 100644 --- a/packages/scope-manager/CHANGELOG.md +++ b/packages/scope-manager/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/scope-manager + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) diff --git a/packages/scope-manager/package.json b/packages/scope-manager/package.json index 3229dd7bbbfa..176a79637b58 100644 --- a/packages/scope-manager/package.json +++ b/packages/scope-manager/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/scope-manager", - "version": "6.2.1", + "version": "6.3.0", "description": "TypeScript scope analyser for ESLint", "files": [ "dist", @@ -44,12 +44,12 @@ "typecheck": "nx typecheck" }, "dependencies": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1" + "@typescript-eslint/types": "6.3.0", + "@typescript-eslint/visitor-keys": "6.3.0" }, "devDependencies": { "@types/glob": "*", - "@typescript-eslint/typescript-estree": "6.2.1", + "@typescript-eslint/typescript-estree": "6.3.0", "glob": "*", "jest-specific-snapshot": "*", "make-dir": "*", diff --git a/packages/type-utils/CHANGELOG.md b/packages/type-utils/CHANGELOG.md index 0f42fa8452ee..b8ce7226646f 100644 --- a/packages/type-utils/CHANGELOG.md +++ b/packages/type-utils/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/type-utils + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/type-utils diff --git a/packages/type-utils/package.json b/packages/type-utils/package.json index 7cfba3e83604..a357a419f74a 100644 --- a/packages/type-utils/package.json +++ b/packages/type-utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/type-utils", - "version": "6.2.1", + "version": "6.3.0", "description": "Type utilities for working with TypeScript + ESLint together", "files": [ "dist", @@ -45,13 +45,13 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/typescript-estree": "6.2.1", - "@typescript-eslint/utils": "6.2.1", + "@typescript-eslint/typescript-estree": "6.3.0", + "@typescript-eslint/utils": "6.3.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, "devDependencies": { - "@typescript-eslint/parser": "6.2.1", + "@typescript-eslint/parser": "6.3.0", "ajv": "^8.12.0", "typescript": "*" }, diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index 57629fd1332e..0d17e5a12c94 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/types + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/types diff --git a/packages/types/package.json b/packages/types/package.json index f872d8466108..9035938c560e 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/types", - "version": "6.2.1", + "version": "6.3.0", "description": "Types for the TypeScript-ESTree AST spec", "files": [ "dist", diff --git a/packages/typescript-estree/CHANGELOG.md b/packages/typescript-estree/CHANGELOG.md index d84131e7c2e4..7c83897cc4fd 100644 --- a/packages/typescript-estree/CHANGELOG.md +++ b/packages/typescript-estree/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/typescript-estree + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/typescript-estree diff --git a/packages/typescript-estree/package.json b/packages/typescript-estree/package.json index 7db6aab705b6..49c36a30d441 100644 --- a/packages/typescript-estree/package.json +++ b/packages/typescript-estree/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/typescript-estree", - "version": "6.2.1", + "version": "6.3.0", "description": "A parser that converts TypeScript source code into an ESTree compatible form", "files": [ "dist", @@ -52,8 +52,8 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/types": "6.3.0", + "@typescript-eslint/visitor-keys": "6.3.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", diff --git a/packages/typescript-estree/src/parser.ts b/packages/typescript-estree/src/parser.ts index 4bf5dec26bd9..887e54e0e1cc 100644 --- a/packages/typescript-estree/src/parser.ts +++ b/packages/typescript-estree/src/parser.ts @@ -158,7 +158,7 @@ function parseWithNodeMapsInternal( }; } -let parseAndGenerateServicesCalls: { [fileName: string]: number } = {}; +let parseAndGenerateServicesCalls: Record = {}; // Privately exported utility intended for use in typescript-eslint unit tests only function clearParseAndGenerateServicesCalls(): void { parseAndGenerateServicesCalls = {}; diff --git a/packages/typescript-estree/src/simple-traverse.ts b/packages/typescript-estree/src/simple-traverse.ts index bd6c3741c2c8..b02189678a49 100644 --- a/packages/typescript-estree/src/simple-traverse.ts +++ b/packages/typescript-estree/src/simple-traverse.ts @@ -27,12 +27,10 @@ type SimpleTraverseOptions = Readonly< } | { visitorKeys?: Readonly; - visitors: { - [key: string]: ( - node: TSESTree.Node, - parent: TSESTree.Node | undefined, - ) => void; - }; + visitors: Record< + string, + (node: TSESTree.Node, parent: TSESTree.Node | undefined) => void + >; } >; diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index c87c7c6b033e..f30636b783e0 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/utils + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/utils diff --git a/packages/utils/package.json b/packages/utils/package.json index 1bfd8f5c2a08..288fbd4a1d82 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/utils", - "version": "6.2.1", + "version": "6.3.0", "description": "Utilities for working with TypeScript + ESLint together", "files": [ "dist", @@ -68,16 +68,16 @@ "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/typescript-estree": "6.2.1", + "@typescript-eslint/scope-manager": "6.3.0", + "@typescript-eslint/types": "6.3.0", + "@typescript-eslint/typescript-estree": "6.3.0", "semver": "^7.5.4" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" }, "devDependencies": { - "@typescript-eslint/parser": "6.2.1", + "@typescript-eslint/parser": "6.3.0", "typescript": "*" }, "funding": { diff --git a/packages/utils/src/json-schema.ts b/packages/utils/src/json-schema.ts index b641637745ae..4a09a589ad20 100644 --- a/packages/utils/src/json-schema.ts +++ b/packages/utils/src/json-schema.ts @@ -106,19 +106,11 @@ interface JSONSchema4Base { /** * Reusable definitions that can be referenced via `$ref` */ - definitions?: - | { - [k: string]: JSONSchema4; - } - | undefined; + definitions?: Record | undefined; /** * Reusable definitions that can be referenced via `$ref` */ - $defs?: - | { - [k: string]: JSONSchema4; - } - | undefined; + $defs?: Record | undefined; /** * The value of this property MUST be another schema which will provide @@ -242,11 +234,7 @@ export interface JSONSchema4ObjectSchema extends JSONSchema4Base { * * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.2 */ - properties?: - | { - [k: string]: JSONSchema4; - } - | undefined; + properties?: Record | undefined; /** * This attribute is an object that defines the schema for a set of @@ -259,22 +247,14 @@ export interface JSONSchema4ObjectSchema extends JSONSchema4Base { * * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.3 */ - patternProperties?: - | { - [k: string]: JSONSchema4; - } - | undefined; + patternProperties?: Record | undefined; /** * The `dependencies` keyword conditionally applies a sub-schema when a given * property is present. This schema is applied in the same way `allOf` applies * schemas. Nothing is merged or extended. Both schemas apply independently. */ - dependencies?: - | { - [k: string]: JSONSchema4 | string[]; - } - | undefined; + dependencies?: Record | undefined; /** * The maximum number of properties allowed for record-style schemas diff --git a/packages/utils/src/ts-eslint/CLIEngine.ts b/packages/utils/src/ts-eslint/CLIEngine.ts index 15a58754ec93..2e668b49bfcd 100644 --- a/packages/utils/src/ts-eslint/CLIEngine.ts +++ b/packages/utils/src/ts-eslint/CLIEngine.ts @@ -106,7 +106,7 @@ declare class CLIEngineBase { namespace CLIEngine { export interface Options { allowInlineConfig?: boolean; - baseConfig?: false | { [name: string]: unknown }; + baseConfig?: false | Record; cache?: boolean; cacheFile?: string; cacheLocation?: string; @@ -125,9 +125,7 @@ namespace CLIEngine { parserOptions?: Linter.ParserOptions; plugins?: string[]; resolvePluginsRelativeTo?: string; - rules?: { - [name: string]: Linter.RuleLevel | Linter.RuleLevelAndOptions; - }; + rules?: Record; rulePaths?: string[]; reportUnusedDisableDirectives?: boolean; } @@ -158,9 +156,7 @@ namespace CLIEngine { } export interface LintResultData { - rulesMeta: { - [ruleId: string]: RuleMetaData; - }; + rulesMeta: Record>; } export type Formatter = ( diff --git a/packages/utils/src/ts-eslint/Linter.ts b/packages/utils/src/ts-eslint/Linter.ts index 59274a7e6fc4..62a6645e0091 100644 --- a/packages/utils/src/ts-eslint/Linter.ts +++ b/packages/utils/src/ts-eslint/Linter.ts @@ -130,12 +130,8 @@ namespace Linter { export type GlobalVariableOptionBase = 'off' | 'readonly' | 'writable'; export type GlobalVariableOption = GlobalVariableOptionBase | boolean; - export interface GlobalsConfig { - [name: string]: GlobalVariableOption; - } - export interface EnvironmentConfig { - [name: string]: boolean; - } + export type GlobalsConfig = Record; + export type EnvironmentConfig = Record; // https://github.com/eslint/eslint/blob/v6.8.0/conf/config-schema.js interface BaseConfig { diff --git a/packages/utils/src/ts-eslint/Rule.ts b/packages/utils/src/ts-eslint/Rule.ts index 0146255ac4ae..a4b49f074a98 100644 --- a/packages/utils/src/ts-eslint/Rule.ts +++ b/packages/utils/src/ts-eslint/Rule.ts @@ -170,9 +170,7 @@ type ReportDescriptor = * Plugins can add their settings using declaration * merging against this interface. */ -interface SharedConfigurationSettings { - [name: string]: unknown; -} +type SharedConfigurationSettings = Record; interface RuleContext< TMessageIds extends string, @@ -428,9 +426,7 @@ interface RuleListenerBaseSelectors { type RuleListenerExitSelectors = { [K in keyof RuleListenerBaseSelectors as `${K}:exit`]: RuleListenerBaseSelectors[K]; }; -interface RuleListenerCatchAllBaseCase { - [nodeSelector: string]: RuleFunction | undefined; -} +type RuleListenerCatchAllBaseCase = Record; // Interface to merge into for anyone that wants to add more selectors // eslint-disable-next-line @typescript-eslint/no-empty-interface interface RuleListenerExtension {} diff --git a/packages/utils/src/ts-eslint/SourceCode.ts b/packages/utils/src/ts-eslint/SourceCode.ts index 3d7f33dd93c2..7e8352b13d9d 100644 --- a/packages/utils/src/ts-eslint/SourceCode.ts +++ b/packages/utils/src/ts-eslint/SourceCode.ts @@ -384,9 +384,7 @@ namespace SourceCode { visitorKeys: VisitorKeys | null; } - export interface VisitorKeys { - [nodeType: string]: string[]; - } + export type VisitorKeys = Record; export type FilterPredicate = (token: TSESTree.Token) => boolean; export type GetFilterPredicate = diff --git a/packages/visitor-keys/CHANGELOG.md b/packages/visitor-keys/CHANGELOG.md index 1ed78ceb8735..18e71ac2e580 100644 --- a/packages/visitor-keys/CHANGELOG.md +++ b/packages/visitor-keys/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/visitor-keys + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/visitor-keys diff --git a/packages/visitor-keys/package.json b/packages/visitor-keys/package.json index 140dfa63bed3..a0c199b0c4be 100644 --- a/packages/visitor-keys/package.json +++ b/packages/visitor-keys/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/visitor-keys", - "version": "6.2.1", + "version": "6.3.0", "description": "Visitor keys used to help traverse the TypeScript-ESTree AST", "files": [ "dist", @@ -45,7 +45,7 @@ "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { - "@typescript-eslint/types": "6.2.1", + "@typescript-eslint/types": "6.3.0", "eslint-visitor-keys": "^3.4.1" }, "devDependencies": { diff --git a/packages/visitor-keys/src/visitor-keys.ts b/packages/visitor-keys/src/visitor-keys.ts index 0435304688f3..04aa32e5af20 100644 --- a/packages/visitor-keys/src/visitor-keys.ts +++ b/packages/visitor-keys/src/visitor-keys.ts @@ -1,9 +1,7 @@ import type { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/types'; import * as eslintVisitorKeys from 'eslint-visitor-keys'; -interface VisitorKeys { - readonly [type: string]: readonly string[] | undefined; -} +type VisitorKeys = Record; type GetNodeTypeKeys = Exclude< keyof Extract, diff --git a/packages/website-eslint/CHANGELOG.md b/packages/website-eslint/CHANGELOG.md index 554113414e69..d72dc6087ccb 100644 --- a/packages/website-eslint/CHANGELOG.md +++ b/packages/website-eslint/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package @typescript-eslint/website-eslint + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package @typescript-eslint/website-eslint diff --git a/packages/website-eslint/package.json b/packages/website-eslint/package.json index 56d41c3698f4..daaa3684abf5 100644 --- a/packages/website-eslint/package.json +++ b/packages/website-eslint/package.json @@ -1,6 +1,6 @@ { "name": "@typescript-eslint/website-eslint", - "version": "6.2.1", + "version": "6.3.0", "private": true, "description": "ESLint which works in browsers.", "files": [ @@ -23,18 +23,18 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/utils": "6.2.1" + "@typescript-eslint/types": "6.3.0", + "@typescript-eslint/utils": "6.3.0" }, "devDependencies": { - "@eslint/js": "8.45.0", - "@typescript-eslint/eslint-plugin": "6.2.1", - "@typescript-eslint/parser": "6.2.1", - "@typescript-eslint/scope-manager": "6.2.1", + "@eslint/js": "8.46.0", + "@typescript-eslint/eslint-plugin": "6.3.0", + "@typescript-eslint/parser": "6.3.0", + "@typescript-eslint/scope-manager": "6.3.0", "@typescript-eslint/types": "6.0.0", - "@typescript-eslint/typescript-estree": "6.2.1", + "@typescript-eslint/typescript-estree": "6.3.0", "@typescript-eslint/utils": "6.0.0", - "@typescript-eslint/visitor-keys": "6.2.1", + "@typescript-eslint/visitor-keys": "6.3.0", "esbuild": "~0.18.0", "eslint": "*", "esquery": "*", diff --git a/packages/website/CHANGELOG.md b/packages/website/CHANGELOG.md index 163ce9d5ac5a..c82c0af31db8 100644 --- a/packages/website/CHANGELOG.md +++ b/packages/website/CHANGELOG.md @@ -3,6 +3,16 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [6.3.0](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.1...v6.3.0) (2023-08-07) + +**Note:** Version bump only for package website + +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. + + + + + ## [6.2.1](https://github.com/typescript-eslint/typescript-eslint/compare/v6.2.0...v6.2.1) (2023-07-31) **Note:** Version bump only for package website diff --git a/packages/website/package.json b/packages/website/package.json index e31706008682..36ec9b56d662 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -1,6 +1,6 @@ { "name": "website", - "version": "6.2.1", + "version": "6.3.0", "private": true, "scripts": { "build": "docusaurus build", @@ -24,9 +24,9 @@ "@docusaurus/remark-plugin-npm2yarn": "~2.4.1", "@docusaurus/theme-common": "~2.4.1", "@mdx-js/react": "1.6.22", - "@typescript-eslint/parser": "6.2.1", - "@typescript-eslint/website-eslint": "6.2.1", - "clsx": "^1.2.1", + "@typescript-eslint/parser": "6.3.0", + "@typescript-eslint/website-eslint": "6.3.0", + "clsx": "^2.0.0", "eslint": "*", "json-schema": "^0.4.0", "json5": "^2.2.3", @@ -38,6 +38,7 @@ "react-dom": "^18.2.0", "react-split-pane": "^0.1.92", "remark-docusaurus-tabs": "^0.2.0", + "semver": "^7.5.4", "ts-node": "*", "typescript": "*" }, @@ -51,9 +52,9 @@ "@types/react": "*", "@types/react-helmet": "^6.1.6", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "6.2.1", - "@typescript-eslint/rule-schema-to-typescript-types": "6.2.1", - "@typescript-eslint/types": "6.2.1", + "@typescript-eslint/eslint-plugin": "6.3.0", + "@typescript-eslint/rule-schema-to-typescript-types": "6.3.0", + "@typescript-eslint/types": "6.3.0", "copy-webpack-plugin": "^11.0.0", "cross-fetch": "*", "globby": "^11.1.0", diff --git a/packages/website/src/components/editor/useSandboxServices.ts b/packages/website/src/components/editor/useSandboxServices.ts index 86cb92bdc199..997cc1cc6058 100644 --- a/packages/website/src/components/editor/useSandboxServices.ts +++ b/packages/website/src/components/editor/useSandboxServices.ts @@ -1,7 +1,9 @@ import { useColorMode } from '@docusaurus/theme-common'; import type * as Monaco from 'monaco-editor'; import { useEffect, useState } from 'react'; +import semverSatisfies from 'semver/functions/satisfies'; +import rootPackageJson from '../../../../../package.json'; import type { createTypeScriptSandbox } from '../../vendor/sandbox'; import { createCompilerOptions } from '../lib/createCompilerOptions'; import { createFileSystem } from '../linter/bridge'; @@ -93,7 +95,9 @@ export const useSandboxServices = ( Array.from( new Set([...sandboxInstance.supportedVersions, window.ts.version]), ) - .filter(item => parseFloat(item) >= 4.3) + .filter(item => + semverSatisfies(item, rootPackageJson.devDependencies.typescript), + ) .sort((a, b) => b.localeCompare(a)), ); diff --git a/packages/website/src/css/prism.css b/packages/website/src/css/prism.css index cb71c164fb75..d5a7c9f6b99d 100644 --- a/packages/website/src/css/prism.css +++ b/packages/website/src/css/prism.css @@ -2,7 +2,7 @@ --token-color: #393a34; --token-background: #f6f8fa; --token-border: var(--ifm-color-emphasis-300); - --token-color-comment: #998; + --token-color-comment: #008000; --token-color-doctype: #008000; --token-color-string: #a31515; --token-color-operator: #393a34; @@ -20,7 +20,7 @@ --token-color-boolean: #00f; --token-color-inserted: #247e81; --token-color-deleted: #d73a49; - --token-color-unchanged: #a7a9a8; + --token-color-unchanged: #727272; --token-color-highlight: rgb(193 222 241 / 20%); } diff --git a/yarn.lock b/yarn.lock index ff1ee1d51f94..b90010f7d98b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2347,12 +2347,12 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.1": +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": version "4.6.2" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.0": +"@eslint/eslintrc@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.1.tgz#18d635e24ad35f7276e8a49d135c7d3ca6a46f93" integrity sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA== @@ -2367,15 +2367,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.44.0": - version "8.44.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" - integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== - -"@eslint/js@8.45.0": - version "8.45.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.45.0.tgz#b0d59168e76993bded2897a19aef618ebfc33ceb" - integrity sha512-p/4a2uaWVHCbAPLxPcv9rkhooU1FVfUUiLoZq09v1dOgtLym/Qlsyw2L3JWr9inVRt1XaLKPP5PBcDtTxRUJPg== +"@eslint/js@8.46.0", "@eslint/js@^8.46.0": + version "8.46.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.46.0.tgz#3f7802972e8b6fe3f88ed1aabc74ec596c456db6" + integrity sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA== "@gar/promisify@^1.1.3": version "1.1.3" @@ -3338,12 +3333,12 @@ integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@playwright/test@^1.36.0": - version "1.36.1" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.36.1.tgz#0b1247d279f142ac0876ce25e7daf15439d5367b" - integrity sha512-YK7yGWK0N3C2QInPU6iaf/L3N95dlGdbsezLya4n0ZCh3IL7VgPGxC6Gnznh9ApWdOmkJeleT2kMTcWPRZvzqg== + version "1.36.2" + resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.36.2.tgz#9edd68a02b0929c5d78d9479a654ceb981dfb592" + integrity sha512-2rVZeyPRjxfPH6J0oGJqE8YxiM1IBRyM8hyrXYK7eSiAqmbNhxwcLa7dZ7fy9Kj26V7FYia5fh9XJRq4Dqme+g== dependencies: "@types/node" "*" - playwright-core "1.36.1" + playwright-core "1.36.2" optionalDependencies: fsevents "2.3.2" @@ -3634,84 +3629,97 @@ "@svgr/plugin-svgo" "^6.2.0" "@swc/core-android-arm-eabi@link:./tools/dummypkg": - version "1.0.0" + version "0.0.0" + uid "" "@swc/core-android-arm64@link:./tools/dummypkg": - version "1.0.0" + version "0.0.0" + uid "" -"@swc/core-darwin-arm64@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.70.tgz#056ac6899e22cb7f7be21388d4d938ca5123a72b" - integrity sha512-31+mcl0dgdRHvZRjhLOK9V6B+qJ7nxDZYINr9pBlqGWxknz37Vld5KK19Kpr79r0dXUZvaaelLjCnJk9dA2PcQ== +"@swc/core-darwin-arm64@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.74.tgz#5ec6f504fb8cd74fd5133080f6cc670327a867cd" + integrity sha512-2rMV4QxM583jXcREfo0MhV3Oj5pgRSfSh/kVrB1twL2rQxOrbzkAPT/8flmygdVoL4f2F7o1EY5lKlYxEBiIKQ== -"@swc/core-darwin-x64@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.70.tgz#3945814de6fadbee5b46cb2a3422353acb420c5c" - integrity sha512-GMFJ65E18zQC80t0os+TZvI+8lbRuitncWVge/RXmXbVLPRcdykP4EJ87cqzcG5Ah0z18/E0T+ixD6jHRisrYQ== +"@swc/core-darwin-x64@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.74.tgz#5da7bdc4ad0fb3b4375d9c1039672ae8f61efaeb" + integrity sha512-KKEGE1wXneYXe15fWDRM8/oekd/Q4yAuccA0vWY/7i6nOSPqWYcSDR0nRtR030ltDxWt0rk/eCTmNkrOWrKs3A== "@swc/core-freebsd-x64@link:./tools/dummypkg": - version "1.0.0" + version "0.0.0" + uid "" -"@swc/core-linux-arm-gnueabihf@1.3.70": - version "1.0.0" +"@swc/core-linux-arm-gnueabihf@1.3.74": + version "0.0.0" + uid "" "@swc/core-linux-arm-gnueabihf@link:./tools/dummypkg": - version "1.0.0" + version "0.0.0" + uid "" -"@swc/core-linux-arm64-gnu@1.3.70": - version "1.0.0" +"@swc/core-linux-arm64-gnu@1.3.74": + version "0.0.0" + uid "" "@swc/core-linux-arm64-gnu@link:./tools/dummypkg": - version "1.0.0" + version "0.0.0" + uid "" -"@swc/core-linux-arm64-musl@1.3.70": - version "1.0.0" +"@swc/core-linux-arm64-musl@1.3.74": + version "0.0.0" + uid "" "@swc/core-linux-arm64-musl@link:./tools/dummypkg": - version "1.0.0" + version "0.0.0" + uid "" -"@swc/core-linux-x64-gnu@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.70.tgz#774351532b154ed36a5c6d14b647e7a8ab510028" - integrity sha512-/nCly+V4xfMVwfEUoLLAukxUSot/RcSzsf6GdsGTjFcrp5sZIntAjokYRytm3VT1c2TK321AfBorsi9R5w8Y7Q== +"@swc/core-linux-x64-gnu@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.74.tgz#a98d9a984d47404aa2de478dd3cd33dbd195bba2" + integrity sha512-LEXpcShF6DLTWJSiBhMSYZkLQ27UvaQ24fCFhoIV/R3dhYaUpHmIyLPPBNC82T03lB3ONUFVwrRw6fxDJ/f00A== -"@swc/core-linux-x64-musl@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.70.tgz#c0b1b4ad5f4ef187eaa093589a4933ecb6836546" - integrity sha512-HoOsPJbt361KGKaivAK0qIiYARkhzlxeAfvF5NlnKxkIMOZpQ46Lwj3tR0VWohKbrhS+cYKFlVuDi5XnDkx0XA== +"@swc/core-linux-x64-musl@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.74.tgz#95e04431eba994b4fae23c578ad1ba73fb72c21d" + integrity sha512-sxsFctbFMZEFmDE7CmYljG0dMumH8XBTwwtGr8s6z0fYAzXBGNq2AFPcmEh2np9rPWkt7pE1m0ByESD+dMkbxQ== -"@swc/core-win32-arm64-msvc@1.3.70": - version "1.0.0" +"@swc/core-win32-arm64-msvc@1.3.74": + version "0.0.0" + uid "" "@swc/core-win32-arm64-msvc@link:./tools/dummypkg": - version "1.0.0" + version "0.0.0" + uid "" -"@swc/core-win32-ia32-msvc@1.3.70": - version "1.0.0" +"@swc/core-win32-ia32-msvc@1.3.74": + version "0.0.0" + uid "" "@swc/core-win32-ia32-msvc@link:./tools/dummypkg": - version "1.0.0" + version "0.0.0" + uid "" -"@swc/core-win32-x64-msvc@1.3.70": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.70.tgz#5b3acddb96fdf60df089b837061915cb4be94eaa" - integrity sha512-LE8lW46+TQBzVkn2mHBlk8DIElPIZ2dO5P8AbJiARNBAnlqQWu67l9gWM89UiZ2l33J2cI37pHzON3tKnT8f9g== +"@swc/core-win32-x64-msvc@1.3.74": + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.74.tgz#4fd459c7264d4c97d1b2965ed6aa86b1725ce38b" + integrity sha512-S3YAvvLprTnPRwQuy9Dkwubb5SRLpVK3JJsqYDbGfgj8PGQyKHZcVJ5X3nfFsoWLy3j9B/3Os2nawprRSzeC5A== "@swc/core@^1.3.68": - version "1.3.70" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.70.tgz#f5ddc6fe6add7a99f5b94d2214ad0d8527d11479" - integrity sha512-LWVWlEDLlOD25PvA2NEz41UzdwXnlDyBiZbe69s3zM0DfCPwZXLUm79uSqH9ItsOjTrXSL5/1+XUL6C/BZwChA== + version "1.3.74" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.74.tgz#b1d1a3c46ca32b7f10d970c8a209d2913c9de251" + integrity sha512-P+MIExOTdWlfq8Heb1/NhBAke6UTckd4cRDuJoFcFMGBRvgoCMNWhnfP3FRRXPLI7GGg27dRZS+xHiqYyQmSrA== optionalDependencies: - "@swc/core-darwin-arm64" "1.3.70" - "@swc/core-darwin-x64" "1.3.70" - "@swc/core-linux-arm-gnueabihf" "1.3.70" - "@swc/core-linux-arm64-gnu" "1.3.70" - "@swc/core-linux-arm64-musl" "1.3.70" - "@swc/core-linux-x64-gnu" "1.3.70" - "@swc/core-linux-x64-musl" "1.3.70" - "@swc/core-win32-arm64-msvc" "1.3.70" - "@swc/core-win32-ia32-msvc" "1.3.70" - "@swc/core-win32-x64-msvc" "1.3.70" + "@swc/core-darwin-arm64" "1.3.74" + "@swc/core-darwin-x64" "1.3.74" + "@swc/core-linux-arm-gnueabihf" "1.3.74" + "@swc/core-linux-arm64-gnu" "1.3.74" + "@swc/core-linux-arm64-musl" "1.3.74" + "@swc/core-linux-x64-gnu" "1.3.74" + "@swc/core-linux-x64-musl" "1.3.74" + "@swc/core-win32-arm64-msvc" "1.3.74" + "@swc/core-win32-ia32-msvc" "1.3.74" + "@swc/core-win32-x64-msvc" "1.3.74" "@swc/jest@^0.2.26": version "0.2.27" @@ -3852,10 +3860,12 @@ "@types/ms" "*" "@types/eslint-scope@^3.7.3": - version "1.0.0" + version "0.0.0" + uid "" "@types/eslint-scope@link:./tools/dummypkg": - version "1.0.0" + version "0.0.0" + uid "" "@types/eslint-visitor-keys@*": version "3.3.0" @@ -3865,16 +3875,20 @@ eslint-visitor-keys "*" "@types/eslint@link:./tools/dummypkg": - version "1.0.0" + version "0.0.0" + uid "" "@types/estree@0.0.39": - version "1.0.0" + version "0.0.0" + uid "" "@types/estree@^1.0.0": - version "1.0.0" + version "0.0.0" + uid "" "@types/estree@link:./tools/dummypkg": - version "1.0.0" + version "0.0.0" + uid "" "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": version "4.17.28" @@ -4044,10 +4058,10 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^17.0.5", "@types/node@^18.16.19": - version "18.17.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.1.tgz#84c32903bf3a09f7878c391d31ff08f6fe7d8335" - integrity sha512-xlR1jahfizdplZYRU59JlUx9uzF1ARa8jbhM11ccpCJya8kvos5jwdm2ZAgxSCwOl0fq21svP18EVwPBXMQudw== +"@types/node@*", "@types/node@^17.0.5", "@types/node@^20.0.0": + version "20.4.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.8.tgz#b5dda19adaa473a9bf0ab5cbd8f30ec7d43f5c85" + integrity sha512-0mHckf6D2DiIAzh8fM8f3HQCvMKDpK94YQ0DSVkfWTG9BZleYIWudw9cJxX8oCk9bM+vAkDyujDV6dmKHbvQpg== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -4118,9 +4132,9 @@ "@types/react" "*" "@types/react@*", "@types/react@^18.2.14": - version "18.2.17" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.17.tgz#baa565b17ddb649c2dac85b5eaf9e9a1fe0f3b4e" - integrity sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA== + version "18.2.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.18.tgz#c8b233919eef1bdc294f6f34b37f9727ad677516" + integrity sha512-da4NTSeBv/P34xoZPhtcLkmZuJ+oYaCxHmyHzwaDQo9RQPBeXV+06gEk2FpqEcsX9XrnNLvRpVh6bdavDSjtiQ== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -5634,6 +5648,11 @@ clsx@^1.2.1: resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== +clsx@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" + integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== + cmd-shim@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.1.tgz#a65878080548e1dca760b3aea1e21ed05194da9d" @@ -7136,9 +7155,9 @@ eslint-plugin-react-hooks@^4.6.0: integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== eslint-plugin-react@^7.32.2: - version "7.33.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.0.tgz#6c356fb0862fec2cd1b04426c669ea746e9b6eb3" - integrity sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw== + version "7.33.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.1.tgz#bc27cccf860ae45413a4a4150bf0977345c1ceab" + integrity sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" @@ -7161,12 +7180,12 @@ eslint-plugin-simple-import-sort@^10.0.0: resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz#cc4ceaa81ba73252427062705b64321946f61351" integrity sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw== -eslint-plugin-unicorn@^47.0.0: - version "47.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-47.0.0.tgz#960e9d3789f656ba3e21982420793b069a911011" - integrity sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA== +eslint-plugin-unicorn@^48.0.1: + version "48.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz#a6573bc1687ae8db7121fdd8f92394b6549a6959" + integrity sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw== dependencies: - "@babel/helper-validator-identifier" "^7.19.1" + "@babel/helper-validator-identifier" "^7.22.5" "@eslint-community/eslint-utils" "^4.4.0" ci-info "^3.8.0" clean-regexp "^1.0.0" @@ -7177,10 +7196,9 @@ eslint-plugin-unicorn@^47.0.0: lodash "^4.17.21" pluralize "^8.0.0" read-pkg-up "^7.0.1" - regexp-tree "^0.1.24" + regexp-tree "^0.1.27" regjsparser "^0.10.0" - safe-regex "^2.1.1" - semver "^7.3.8" + semver "^7.5.4" strip-indent "^3.0.0" eslint-scope@5.1.1, eslint-scope@^5.1.1: @@ -7191,10 +7209,10 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.2.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.1.tgz#936821d3462675f25a18ac5fd88a67cc15b393bd" - integrity sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -7206,32 +7224,32 @@ eslint-utils@^3.0.0: dependencies: eslint-visitor-keys "^2.0.0" -eslint-visitor-keys@*, eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== +eslint-visitor-keys@*, eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz#8c2095440eca8c933bedcadf16fefa44dbe9ba5f" + integrity sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw== eslint@*, eslint@^8.44.0: - version "8.45.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78" - integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== + version "8.46.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.46.0.tgz#a06a0ff6974e53e643acc42d1dcf2e7f797b3552" + integrity sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.1.0" - "@eslint/js" "8.44.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.1" + "@eslint/js" "^8.46.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.6.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.2" + espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -7254,7 +7272,7 @@ eslint@*, eslint@^8.44.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0: +espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -9807,6 +9825,13 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json-stable-stringify@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" + integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== + dependencies: + jsonify "^0.0.1" + json-stringify-safe@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -9845,6 +9870,11 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== + jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" @@ -9856,9 +9886,9 @@ jsonpointer@^5.0.0: integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3: - version "3.3.4" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.4.tgz#b896535fed5b867650acce5a9bd4135ffc7b3bf9" - integrity sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw== + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: array-includes "^3.1.6" array.prototype.flat "^1.3.1" @@ -10470,9 +10500,9 @@ markdownlint@~0.29.0: markdownlint-micromark "0.1.5" marked@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/marked/-/marked-5.1.1.tgz#40b3963bb9da225314f746d5012ba7e34942f636" - integrity sha512-bTmmGdEINWmOMDjnPWDxGPQ4qkDLeYorpYbEtFOXzOruTwUE671q4Guiuchn4N8h/v6NGd7916kXsm3Iz4iUSg== + version "5.1.2" + resolved "https://registry.yarnpkg.com/marked/-/marked-5.1.2.tgz#62b5ccfc75adf72ca3b64b2879b551d89e77677f" + integrity sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg== mathml-tag-names@^2.1.3: version "2.1.3" @@ -11783,10 +11813,10 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" -patch-package@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-7.0.2.tgz#c01589bb6964854b5210506a5845d47900641f5a" - integrity sha512-PMYfL8LXxGIRmxXLqlEaBxzKPu7/SdP13ld6GSfAUJUZRmBDPp8chZs0dpzaAFn9TSPnFiMwkC6PJt6pBiAl8Q== +patch-package@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.0.tgz#d191e2f1b6e06a4624a0116bcb88edd6714ede61" + integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA== dependencies: "@yarnpkg/lockfile" "^1.1.0" chalk "^4.1.2" @@ -11794,6 +11824,7 @@ patch-package@^7.0.0: cross-spawn "^7.0.3" find-yarn-workspace-root "^2.0.0" fs-extra "^9.0.0" + json-stable-stringify "^1.0.2" klaw-sync "^6.0.0" minimist "^1.2.6" open "^7.4.2" @@ -11934,10 +11965,10 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" -playwright-core@1.36.1: - version "1.36.1" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.36.1.tgz#f5f275d70548768ca892583519c89b237a381c77" - integrity sha512-7+tmPuMcEW4xeCL9cp9KxmYpQYHKkyjwoXRnoeTowaeNat8PoBMk/HwCYhqkH2fRkshfKEOiVus/IhID2Pg8kg== +playwright-core@1.36.2: + version "1.36.2" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.36.2.tgz#32382f2d96764c24c65a86ea336cf79721c2e50e" + integrity sha512-sQYZt31dwkqxOrP7xy2ggDfEzUxM1lodjhsQ3NMMv5uGTRDsLxU0e4xf4wwMkF2gplIxf17QMBCodSFgm6bFVQ== pluralize@^8.0.0: version "8.0.0" @@ -12845,7 +12876,7 @@ regenerator-transform@^0.15.1: dependencies: "@babel/runtime" "^7.8.4" -regexp-tree@^0.1.24, regexp-tree@~0.1.1: +regexp-tree@^0.1.27: version "0.1.27" resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== @@ -13223,13 +13254,6 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -safe-regex@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" - integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== - dependencies: - regexp-tree "~0.1.1" - "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"