-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New rule to flag invalid aria-label format #418
Conversation
README.md
Outdated
| [require-passive-events](docs/rules/require-passive-events.md) | enforce marking high frequency event handlers as passive | 🔍 | | | | ||
| [role-supports-aria-props](docs/rules/role-supports-aria-props.md) | Enforce that elements with explicit or implicit roles defined contain only `aria-*` properties supported by that `role`. | ⚛️ | | | | ||
| [unescaped-html-literal](docs/rules/unescaped-html-literal.md) | disallow unescaped HTML literals | 🔍 | | | | ||
| Name | Description | 💼 | 🔧 | ❌ | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this auto-generator is so cool!
16f28f6
to
381f2bc
Compare
👋 Hello and thanks for pinging us! An accessibility first responder will review this soon.
|
I think we can assume that there's no valid If |
}) | ||
|
||
const errorMessage = | ||
'[aria-label] text should be formatted the same as you would visual text. Use sentence case and make sure you are not using hyphens.' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about words with hyphens? Example: six-pack
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this answer your concern: #418 (comment)?
I think it's highly unlike we'll run into a valid, hard-coded aria-label
that downcased with only letters and optionally a hyphen. If we do run into one, we can consider adding a way to configure an exception list that can be set at the config level. Do you think this rule should ship with that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Theoretically, this rule would flag six-pack
(since it does not start with an uppercase letter), but it wouldn't flag Six-pack
😂.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmmm, what if we also only flag these aria-labels if they don't have a single space?... Technically six-pack
would still get flagged but it's a more safe check?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SIX-PACK
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what if we also only flag these aria-labels if they don't have a single space?...
I think we'd still want to flag something like:
show
hide
close
(these are examples I'm pulling from real aria-label we have right now in our codebase)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
approving -- we worked through the six-pack idea on slack
c410285
to
bff637e
Compare
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | [`18.15.3` -> `18.15.11`](https://renovatebot.com/diffs/npm/@types%2fnode/18.15.3/18.15.11) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.55.0` -> `5.57.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.55.0/5.57.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.55.0` -> `5.57.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.55.0/5.57.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [eslint](https://eslint.org) ([source](https://togithub.com/eslint/eslint)) | [`8.36.0` -> `8.37.0`](https://renovatebot.com/diffs/npm/eslint/8.36.0/8.37.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [eslint-plugin-github](https://togithub.com/github/eslint-plugin-github) | [`4.6.1` -> `4.7.0`](https://renovatebot.com/diffs/npm/eslint-plugin-github/4.6.1/4.7.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [prettier](https://prettier.io) ([source](https://togithub.com/prettier/prettier)) | [`2.8.4` -> `2.8.7`](https://renovatebot.com/diffs/npm/prettier/2.8.4/2.8.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [ts-jest](https://kulshekhar.github.io/ts-jest) ([source](https://togithub.com/kulshekhar/ts-jest)) | [`29.0.5` -> `29.1.0`](https://renovatebot.com/diffs/npm/ts-jest/29.0.5/29.1.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### ⚠ Dependency Lookup Warnings ⚠ Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v5.57.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5570-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5560v5570-2023-03-27) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.56.0...v5.57.0) ##### Bug Fixes - **eslint-plugin:** \[no-unnecessary-boolean-literal-compare] simplify fixer and add support for double negation ([#​6620](https://togithub.com/typescript-eslint/typescript-eslint/issues/6620)) ([81c8519](https://togithub.com/typescript-eslint/typescript-eslint/commit/81c85193d27d2e7f6d12bc259088b9b73dbe1e8b)) - **eslint-plugin:** correct crashes with getTypeArguments for ts < 3.7 ([#​6767](https://togithub.com/typescript-eslint/typescript-eslint/issues/6767)) ([59eab58](https://togithub.com/typescript-eslint/typescript-eslint/commit/59eab587890a915387444d00c4a9387aed602718)) ##### Features - **eslint-plugin:** \[consistent-type-assertions] add suggestions for objectLiteralTypeAssertions ([#​6642](https://togithub.com/typescript-eslint/typescript-eslint/issues/6642)) ([720e811](https://togithub.com/typescript-eslint/typescript-eslint/commit/720e81138b66c94c60c4a4471b86b7d8567b6df0)) - **eslint-plugin:** \[consistent-type-assertions] autofix angle bracket assertions to as ([#​6641](https://togithub.com/typescript-eslint/typescript-eslint/issues/6641)) ([ad8ea64](https://togithub.com/typescript-eslint/typescript-eslint/commit/ad8ea64dbdf06c92ff72b48022f041693a8d7076)) - **eslint-plugin:** add `no-duplicate-type-constituents` rule ([#​5728](https://togithub.com/typescript-eslint/typescript-eslint/issues/5728)) ([bc31078](https://togithub.com/typescript-eslint/typescript-eslint/commit/bc31078cf86d69eee881e4a7daeffa347c1d82a7)) ### [`v5.56.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5560-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5550v5560-2023-03-20) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.55.0...v5.56.0) ##### Bug Fixes - **eslint-plugin:** \[member-ordering] check order when optionalityOrder is present with no optional members ([#​6619](https://togithub.com/typescript-eslint/typescript-eslint/issues/6619)) ([6aff431](https://togithub.com/typescript-eslint/typescript-eslint/commit/6aff431668eb0d25aa74b527cbe458f9dcd0d92a)) - **eslint-plugin:** \[no-misused-promises] avoid unnecessary calls to getContextualType ([#​6193](https://togithub.com/typescript-eslint/typescript-eslint/issues/6193)) ([745cfe4](https://togithub.com/typescript-eslint/typescript-eslint/commit/745cfe4a35319416b3c307ee9fd57c63bf1660cd)) - **eslint-plugin:** \[no-misused-promises] fix incorrect detection of void functions in JSX attributes ([#​6638](https://togithub.com/typescript-eslint/typescript-eslint/issues/6638)) ([9e41cee](https://togithub.com/typescript-eslint/typescript-eslint/commit/9e41ceeaea3bf266e5114cfb1855e70a1a13284b)) - **eslint-plugin:** \[strict-boolean-expression] support falsy and truthy literals simultaneously ([#​6672](https://togithub.com/typescript-eslint/typescript-eslint/issues/6672)) ([62ef487](https://togithub.com/typescript-eslint/typescript-eslint/commit/62ef487a99010827e99a792db5e565ad7c1d6220)) - **eslint-plugin:** \[strict-boolean-expressions] handle truthy enums ([#​6618](https://togithub.com/typescript-eslint/typescript-eslint/issues/6618)) ([0d0639f](https://togithub.com/typescript-eslint/typescript-eslint/commit/0d0639fb25e5ac8d7b5e4ceac4273e17e8ee0249)) - **eslint-plugin:** add TSPropertySignature with TSFunctionType annotation to typeMethod selector ([#​6645](https://togithub.com/typescript-eslint/typescript-eslint/issues/6645)) ([3fc5c63](https://togithub.com/typescript-eslint/typescript-eslint/commit/3fc5c63f87bfd9d95f7e51fddc7ef16a6c3c5662)) ##### Features - **eslint-plugin:** add allowNever support to restrict-template-expressions ([#​6554](https://togithub.com/typescript-eslint/typescript-eslint/issues/6554)) ([423f164](https://togithub.com/typescript-eslint/typescript-eslint/commit/423f1642424293488fa03a52777c0df73a40e5fd)) </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v5.57.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5570-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5560v5570-2023-03-27) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.56.0...v5.57.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) ### [`v5.56.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5560-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5550v5560-2023-03-20) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.55.0...v5.56.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) </details> <details> <summary>eslint/eslint</summary> ### [`v8.37.0`](https://togithub.com/eslint/eslint/releases/tag/v8.37.0) [Compare Source](https://togithub.com/eslint/eslint/compare/v8.36.0...v8.37.0) ##### Features - [`b6ab8b2`](https://togithub.com/eslint/eslint/commit/b6ab8b2a2ca8807baca121407f5bfb0a0a839427) feat: `require-unicode-regexp` add suggestions ([#​17007](https://togithub.com/eslint/eslint/issues/17007)) (Josh Goldberg) - [`10022b1`](https://togithub.com/eslint/eslint/commit/10022b1f4bda1ad89193512ecf18c2ee61db8202) feat: Copy getScope() to SourceCode ([#​17004](https://togithub.com/eslint/eslint/issues/17004)) (Nicholas C. Zakas) - [`1665c02`](https://togithub.com/eslint/eslint/commit/1665c029acb92bf8812267f1647ad1a7054cbcb4) feat: Use plugin metadata for flat config serialization ([#​16992](https://togithub.com/eslint/eslint/issues/16992)) (Nicholas C. Zakas) - [`b3634f6`](https://togithub.com/eslint/eslint/commit/b3634f695ddab6a82c0a9b1d8695e62b60d23366) feat: docs license ([#​17010](https://togithub.com/eslint/eslint/issues/17010)) (Samuel Roldan) - [`892e6e5`](https://togithub.com/eslint/eslint/commit/892e6e58c5a07a549d3104de3b6b5879797dc97f) feat: languageOptions.parser must be an object. ([#​16985](https://togithub.com/eslint/eslint/issues/16985)) (Nicholas C. Zakas) ##### Bug Fixes - [`619f3fd`](https://togithub.com/eslint/eslint/commit/619f3fd17324c7b71bf17e02047d0c6dc7e5109e) fix: correctly handle `null` default config in `RuleTester` ([#​17023](https://togithub.com/eslint/eslint/issues/17023)) (Brad Zacher) - [`1fbf118`](https://togithub.com/eslint/eslint/commit/1fbf1184fed57df02640aad4659afb54dc26a2e9) fix: `getFirstToken`/`getLastToken` on comment-only node ([#​16889](https://togithub.com/eslint/eslint/issues/16889)) (Francesco Trotta) - [`129e252`](https://togithub.com/eslint/eslint/commit/129e252132c7c476d7de17f40b54a333ddb2e6bb) fix: Fix typo in `logical-assignment-operators` rule description ([#​17000](https://togithub.com/eslint/eslint/issues/17000)) (Francesco Trotta) ##### Documentation - [`75339df`](https://togithub.com/eslint/eslint/commit/75339df99418df4d7e05a77e42ed7e22eabcc9e0) docs: fix typos and missing info in id-match docs ([#​17029](https://togithub.com/eslint/eslint/issues/17029)) (Ed Lucas) - [`ec2d830`](https://togithub.com/eslint/eslint/commit/ec2d8307850dd039e118c001416606e1e0342bc8) docs: Fix typos in the `semi` rule docs ([#​17012](https://togithub.com/eslint/eslint/issues/17012)) (Andrii Lundiak) - [`e39f28d`](https://togithub.com/eslint/eslint/commit/e39f28d8578a00f4da8d4ddad559547950128a0d) docs: add back to top button ([#​16979](https://togithub.com/eslint/eslint/issues/16979)) (Tanuj Kanti) - [`721c717`](https://togithub.com/eslint/eslint/commit/721c71782a7c11025689a1500e7690fb3794fcce) docs: Custom Processors cleanup and expansion ([#​16838](https://togithub.com/eslint/eslint/issues/16838)) (Ben Perlmutter) - [`d049f97`](https://togithub.com/eslint/eslint/commit/d049f974103e530ef76ede25af701635caf1f405) docs: 'How ESLint is Maintained' page ([#​16961](https://togithub.com/eslint/eslint/issues/16961)) (Ben Perlmutter) - [`5251a92`](https://togithub.com/eslint/eslint/commit/5251a921866e8d3b380dfe8db8a6e6ab97773d5e) docs: Describe guard options for guard-for-in ([#​16986](https://togithub.com/eslint/eslint/issues/16986)) (alope107) - [`6157d81`](https://togithub.com/eslint/eslint/commit/6157d813e19b80481a46f8cbdf9eae18a55e5619) docs: Add example to guard-for-in docs. ([#​16983](https://togithub.com/eslint/eslint/issues/16983)) (alope107) - [`fd47998`](https://togithub.com/eslint/eslint/commit/fd47998af6efadcdf5ba93e0bd1f4c02d97d22b3) docs: update `Array.prototype.toSorted` specification link ([#​16982](https://togithub.com/eslint/eslint/issues/16982)) (Milos Djermanovic) - [`3e1cf6b`](https://togithub.com/eslint/eslint/commit/3e1cf6bfc5ebc29314ddbe462d6cb580e9ab085c) docs: Copy edits on Maintain ESLint docs ([#​16939](https://togithub.com/eslint/eslint/issues/16939)) (Ben Perlmutter) ##### Chores - [`c67f299`](https://togithub.com/eslint/eslint/commit/c67f2992a743de4765bb6f11c12622e3651324b9) chore: upgrade [@​eslint/js](https://togithub.com/eslint/js)[@​8](https://togithub.com/8).37.0 ([#​17033](https://togithub.com/eslint/eslint/issues/17033)) (Milos Djermanovic) - [`ee9ddbd`](https://togithub.com/eslint/eslint/commit/ee9ddbd63e262aed0052853760866c7a054af561) chore: package.json update for [@​eslint/js](https://togithub.com/eslint/js) release (ESLint Jenkins) - [`dddb475`](https://togithub.com/eslint/eslint/commit/dddb47528816cd7e2e737bfde108ed4d62e6a219) chore: upgrade [@​eslint/eslintrc](https://togithub.com/eslint/eslintrc)[@​2](https://togithub.com/2).0.2 ([#​17032](https://togithub.com/eslint/eslint/issues/17032)) (Milos Djermanovic) - [`522431e`](https://togithub.com/eslint/eslint/commit/522431e5206bac2fcb41c0d6dc98a84929203bee) chore: upgrade espree@9.5.1 ([#​17031](https://togithub.com/eslint/eslint/issues/17031)) (Milos Djermanovic) - [`f5f9a88`](https://togithub.com/eslint/eslint/commit/f5f9a88c79b32222c0331a9bac1c02571d953b69) chore: upgrade eslint-visitor-keys@3.4.0 ([#​17030](https://togithub.com/eslint/eslint/issues/17030)) (Milos Djermanovic) - [`4dd8d52`](https://togithub.com/eslint/eslint/commit/4dd8d524e0fc9e8e2019df13f8b968021600e85c) ci: bump actions/stale from 7 to 8 ([#​17026](https://togithub.com/eslint/eslint/issues/17026)) (dependabot\[bot]) - [`ad9dd6a`](https://togithub.com/eslint/eslint/commit/ad9dd6a933fd098a0d99c6a9aa059850535c23ee) chore: remove duplicate scss, ([#​17005](https://togithub.com/eslint/eslint/issues/17005)) (Strek) - [`ada6a3e`](https://togithub.com/eslint/eslint/commit/ada6a3e6e3607523958f35e1260537630ec0e976) ci: unpin Node 19 ([#​16993](https://togithub.com/eslint/eslint/issues/16993)) (Milos Djermanovic) - [`c3da975`](https://togithub.com/eslint/eslint/commit/c3da975e69fde46f35338ce48528841a8dc1ffd2) chore: Remove triage label from template ([#​16990](https://togithub.com/eslint/eslint/issues/16990)) (Nicholas C. Zakas) - [`69bc0e2`](https://togithub.com/eslint/eslint/commit/69bc0e2f4412998f9384600a100d7882ea4dd3f3) ci: pin Node 19 to 19.7.0 ([#​16987](https://togithub.com/eslint/eslint/issues/16987)) (Milos Djermanovic) </details> <details> <summary>github/eslint-plugin-github</summary> ### [`v4.7.0`](https://togithub.com/github/eslint-plugin-github/releases/tag/v4.7.0) [Compare Source](https://togithub.com/github/eslint-plugin-github/compare/v4.6.1...v4.7.0) #### What's Changed - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.51.0 to 5.52.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/403](https://togithub.com/github/eslint-plugin-github/pull/403) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.51.0 to 5.52.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/405](https://togithub.com/github/eslint-plugin-github/pull/405) - chore(deps): bump eslint-plugin-escompat from 3.3.4 to 3.4.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/404](https://togithub.com/github/eslint-plugin-github/pull/404) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.52.0 to 5.53.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/409](https://togithub.com/github/eslint-plugin-github/pull/409) - chore(deps-dev): bump eslint from 8.34.0 to 8.35.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/408](https://togithub.com/github/eslint-plugin-github/pull/408) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.52.0 to 5.53.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/407](https://togithub.com/github/eslint-plugin-github/pull/407) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.53.0 to 5.54.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/410](https://togithub.com/github/eslint-plugin-github/pull/410) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.53.0 to 5.54.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/411](https://togithub.com/github/eslint-plugin-github/pull/411) - chore(deps): bump eslint-config-prettier from 8.6.0 to 8.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/415](https://togithub.com/github/eslint-plugin-github/pull/415) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.54.0 to 5.54.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/414](https://togithub.com/github/eslint-plugin-github/pull/414) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.54.0 to 5.54.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/412](https://togithub.com/github/eslint-plugin-github/pull/412) - chore(deps-dev): bump eslint from 8.35.0 to 8.36.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/413](https://togithub.com/github/eslint-plugin-github/pull/413) - Automate docs with eslint-doc-generator by [@​bmish](https://togithub.com/bmish) in [https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.54.1 to 5.55.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/417](https://togithub.com/github/eslint-plugin-github/pull/417) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.54.1 to 5.55.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/416](https://togithub.com/github/eslint-plugin-github/pull/416) - Update no-inner-html.md by [@​khiga8](https://togithub.com/khiga8) in [https://github.com/github/eslint-plugin-github/pull/381](https://togithub.com/github/eslint-plugin-github/pull/381) - New rule to flag invalid aria-label format by [@​khiga8](https://togithub.com/khiga8) in [https://github.com/github/eslint-plugin-github/pull/418](https://togithub.com/github/eslint-plugin-github/pull/418) #### New Contributors - [@​bmish](https://togithub.com/bmish) made their first contribution in [https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398) **Full Changelog**: github/eslint-plugin-github@v4.6.1...v4.7.0 </details> <details> <summary>prettier/prettier</summary> ### [`v2.8.7`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​287) [Compare Source](https://togithub.com/prettier/prettier/compare/2.8.6...2.8.7) [diff](https://togithub.com/prettier/prettier/compare/2.8.6...2.8.7) ##### Allow multiple decorators on same getter/setter ([#​14584](https://togithub.com/prettier/prettier/pull/14584) by [@​fisker](https://togithub.com/fisker)) <!-- prettier-ignore --> ```ts // Input class A { @​decorator() get foo () {} @​decorator() set foo (value) {} } // Prettier 2.8.6 SyntaxError: Decorators cannot be applied to multiple get/set accessors of the same name. (5:3) 3 | get foo () {} 4 | > 5 | @​decorator() | ^^^^^^^^^^^^ 6 | set foo (value) {} 7 | } // Prettier 2.8.7 class A { @​decorator() get foo() {} @​decorator() set foo(value) {} } ``` ### [`v2.8.6`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​286) [Compare Source](https://togithub.com/prettier/prettier/compare/2.8.5...2.8.6) [diff](https://togithub.com/prettier/prettier/compare/2.8.5...2.8.6) ##### Allow decorators on private members and class expressions ([#​14548](https://togithub.com/prettier/prettier/pull/14548) by [@​fisker](https://togithub.com/fisker)) <!-- prettier-ignore --> ```ts // Input class A { @​decorator() #privateMethod () {} } // Prettier 2.8.5 SyntaxError: Decorators are not valid here. (2:3) 1 | class A { > 2 | @​decorator() | ^^^^^^^^^^^^ 3 | #privateMethod () {} 4 | } // Prettier 2.8.6 class A { @​decorator() #privateMethod() {} } ``` ### [`v2.8.5`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​285) [Compare Source](https://togithub.com/prettier/prettier/compare/2.8.4...2.8.5) [diff](https://togithub.com/prettier/prettier/compare/2.8.4...2.8.5) ##### Support TypeScript 5.0 ([#​14391](https://togithub.com/prettier/prettier/pull/14391) by [@​fisker](https://togithub.com/fisker), [#​13819](https://togithub.com/prettier/prettier/pull/13819) by [@​fisker](https://togithub.com/fisker), [@​sosukesuzuki](https://togithub.com/sosukesuzuki)) TypeScript 5.0 introduces two new syntactic features: - `const` modifiers for type parameters - `export type *` declarations ##### Add missing parentheses for decorator ([#​14393](https://togithub.com/prettier/prettier/pull/14393) by [@​fisker](https://togithub.com/fisker)) <!-- prettier-ignore --> ```jsx // Input class Person { @​(myDecoratorArray[0]) greet() {} } // Prettier 2.8.4 class Person { @​myDecoratorArray[0] greet() {} } // Prettier 2.8.5 class Person { @​(myDecoratorArray[0]) greet() {} } ``` ##### Add parentheses for `TypeofTypeAnnotation` to improve readability ([#​14458](https://togithub.com/prettier/prettier/pull/14458) by [@​fisker](https://togithub.com/fisker)) <!-- prettier-ignore --> ```tsx // Input type A = (typeof node.children)[]; // Prettier 2.8.4 type A = typeof node.children[]; // Prettier 2.8.5 type A = (typeof node.children)[]; ``` ##### Support `max_line_length=off` when parsing `.editorconfig` ([#​14516](https://togithub.com/prettier/prettier/pull/14516) by [@​josephfrazier](https://togithub.com/josephfrazier)) If an .editorconfig file is in your project and it sets `max_line_length=off` for the file you're formatting, it will be interpreted as a `printWidth` of `Infinity` rather than being ignored (which previously resulted in the default `printWidth` of 80 being applied, if not overridden by Prettier-specific configuration). <!-- prettier-ignore --> ```html <!-- Input --> <div className='HelloWorld' title={`You are visitor number ${ num }`} onMouseOver={onMouseOver}/> <!-- Prettier 2.8.4 --> <div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver} />; <!-- Prettier 2.8.5 --> <div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver} />; ``` </details> <details> <summary>kulshekhar/ts-jest</summary> ### [`v29.1.0`](https://togithub.com/kulshekhar/ts-jest/blob/HEAD/CHANGELOG.md#​2910-httpsgithubcomkulshekharts-jestcomparev2905v2910-2023-03-26) [Compare Source](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.5...v29.1.0) ##### Features - Support TypeScript 5.x ([#​4064](https://togithub.com/kulshekhar/ts-jest/issues/4064)) ([db98cc9](https://togithub.com/kulshekhar/ts-jest/commit/87f27821db99be411288b50a4f9baa7bedb98cc9)), closes [#​4048](https://togithub.com/kulshekhar/ts-jest/issues/4048) #### [29.0.5](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.4...v29.0.5) (2023-01-13) ##### Reverts - Revert "fix(transformer): don't use cache when `tsJestConfig` is different ([#​3966](https://togithub.com/kulshekhar/ts-jest/issues/3966))" ([185eb18](https://togithub.com/kulshekhar/ts-jest/commit/185eb189d7076c717a107066817d2d6959a8fe39)), closes [#​3966](https://togithub.com/kulshekhar/ts-jest/issues/3966) #### [29.0.4](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.3...v29.0.4) (2023-01-10) ##### Bug Fixes - **transformer:** don't use cache when `tsJestConfig` is different ([#​3966](https://togithub.com/kulshekhar/ts-jest/issues/3966)) ([a445638](https://togithub.com/kulshekhar/ts-jest/commit/a445638ca631911e8ab1a896ffdfcd21506ce71a)) - bump `json5` to `2.2.3` ([#​3976](https://togithub.com/kulshekhar/ts-jest/pull/3976))([b9f7809](https://togithub.com/kulshekhar/ts-jest/commit/b9f7809948309f92534aeba63f3ffb01cb7dc536)) #### [29.0.3](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.2...v29.0.3) (2022-09-28) ##### Bug Fixes - merge config from `globals` with transformer config correctly ([#​3842](https://togithub.com/kulshekhar/ts-jest/issues/3842)) ([9c9fd60](https://togithub.com/kulshekhar/ts-jest/commit/9c9fd6097aea36a6e8b06b0e8841df22896f9121)), closes [#​3841](https://togithub.com/kulshekhar/ts-jest/issues/3841) - **presets:** allow merging transform config when using presets ([#​3833](https://togithub.com/kulshekhar/ts-jest/issues/3833)) ([afc6a94](https://togithub.com/kulshekhar/ts-jest/commit/afc6a948b17c2dc22be51b1a9475a0f6ecbbc372)) ##### Features - add `useESM` option to `pathsToModuleNameMapper` options ([#​3792](https://togithub.com/kulshekhar/ts-jest/issues/3792)) ([eabe906](https://togithub.com/kulshekhar/ts-jest/commit/eabe906e1dd6b132a7b0d05ffc13172cd8a6b73b)) #### [29.0.2](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.1...v29.0.2) (2022-09-23) ##### Bug Fixes - mark `ts-jest` as optional in `ConfigGlobals` ([#​3816](https://togithub.com/kulshekhar/ts-jest/issues/3816)) ([cbb88bb](https://togithub.com/kulshekhar/ts-jest/commit/cbb88bba34dbb852d8f4013be6e020769feb306d)), closes [#​3815](https://togithub.com/kulshekhar/ts-jest/issues/3815) - use correct typings for `config:init` command ([#​3825](https://togithub.com/kulshekhar/ts-jest/issues/3825)) ([21b94db](https://togithub.com/kulshekhar/ts-jest/commit/21b94dbca25b762f79e63b92dea12d830f444570)) #### [29.0.2](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.1...v29.0.2) (2022-09-22) ##### Bug Fixes - mark `ts-jest` as optional in `ConfigGlobals` ([#​3816](https://togithub.com/kulshekhar/ts-jest/issues/3816)) ([cbb88bb](https://togithub.com/kulshekhar/ts-jest/commit/cbb88bba34dbb852d8f4013be6e020769feb306d)), closes [#​3815](https://togithub.com/kulshekhar/ts-jest/issues/3815) #### [29.0.1](https://togithub.com/kulshekhar/ts-jest/compare/v29.0.0...v29.0.1) (2022-09-13) ##### Bug Fixes - **legacy:** include existing globals config in cached config ([#​3803](https://togithub.com/kulshekhar/ts-jest/issues/3803)) ([e79be47](https://togithub.com/kulshekhar/ts-jest/commit/e79be47d2b81a677d0dd39d84328a38ca0f0ffc6)) ##### Features - add typings for `ts-jest` options via `transform` config ([#​3805](https://togithub.com/kulshekhar/ts-jest/issues/3805)) ([664b0f2](https://togithub.com/kulshekhar/ts-jest/commit/664b0f2b446a36dd7661f4840ca3dd7722f1f6ff)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/slsa-framework/slsa-github-generator). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNC4yIiwidXBkYXRlZEluVmVyIjoiMzUuMjMuMyJ9--> Signed-off-by: Renovate Bot <bot@renovateapp.com>
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) | [`18.15.3` -> `18.15.11`](https://renovatebot.com/diffs/npm/@types%2fnode/18.15.3/18.15.11) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.55.0` -> `5.57.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.55.0/5.57.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint) | [`5.55.0` -> `5.57.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.55.0/5.57.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [eslint](https://eslint.org) ([source](https://togithub.com/eslint/eslint)) | [`8.36.0` -> `8.37.0`](https://renovatebot.com/diffs/npm/eslint/8.36.0/8.37.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [eslint-plugin-github](https://togithub.com/github/eslint-plugin-github) | [`4.6.1` -> `4.7.0`](https://renovatebot.com/diffs/npm/eslint-plugin-github/4.6.1/4.7.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [prettier](https://prettier.io) ([source](https://togithub.com/prettier/prettier)) | [`2.8.4` -> `2.8.7`](https://renovatebot.com/diffs/npm/prettier/2.8.4/2.8.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### ⚠ Dependency Lookup Warnings ⚠ Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v5.57.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5570-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5560v5570-2023-03-27) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.56.0...v5.57.0) ##### Bug Fixes - **eslint-plugin:** \[no-unnecessary-boolean-literal-compare] simplify fixer and add support for double negation ([#​6620](https://togithub.com/typescript-eslint/typescript-eslint/issues/6620)) ([81c8519](https://togithub.com/typescript-eslint/typescript-eslint/commit/81c85193d27d2e7f6d12bc259088b9b73dbe1e8b)) - **eslint-plugin:** correct crashes with getTypeArguments for ts < 3.7 ([#​6767](https://togithub.com/typescript-eslint/typescript-eslint/issues/6767)) ([59eab58](https://togithub.com/typescript-eslint/typescript-eslint/commit/59eab587890a915387444d00c4a9387aed602718)) ##### Features - **eslint-plugin:** \[consistent-type-assertions] add suggestions for objectLiteralTypeAssertions ([#​6642](https://togithub.com/typescript-eslint/typescript-eslint/issues/6642)) ([720e811](https://togithub.com/typescript-eslint/typescript-eslint/commit/720e81138b66c94c60c4a4471b86b7d8567b6df0)) - **eslint-plugin:** \[consistent-type-assertions] autofix angle bracket assertions to as ([#​6641](https://togithub.com/typescript-eslint/typescript-eslint/issues/6641)) ([ad8ea64](https://togithub.com/typescript-eslint/typescript-eslint/commit/ad8ea64dbdf06c92ff72b48022f041693a8d7076)) - **eslint-plugin:** add `no-duplicate-type-constituents` rule ([#​5728](https://togithub.com/typescript-eslint/typescript-eslint/issues/5728)) ([bc31078](https://togithub.com/typescript-eslint/typescript-eslint/commit/bc31078cf86d69eee881e4a7daeffa347c1d82a7)) ### [`v5.56.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5560-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5550v5560-2023-03-20) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.55.0...v5.56.0) ##### Bug Fixes - **eslint-plugin:** \[member-ordering] check order when optionalityOrder is present with no optional members ([#​6619](https://togithub.com/typescript-eslint/typescript-eslint/issues/6619)) ([6aff431](https://togithub.com/typescript-eslint/typescript-eslint/commit/6aff431668eb0d25aa74b527cbe458f9dcd0d92a)) - **eslint-plugin:** \[no-misused-promises] avoid unnecessary calls to getContextualType ([#​6193](https://togithub.com/typescript-eslint/typescript-eslint/issues/6193)) ([745cfe4](https://togithub.com/typescript-eslint/typescript-eslint/commit/745cfe4a35319416b3c307ee9fd57c63bf1660cd)) - **eslint-plugin:** \[no-misused-promises] fix incorrect detection of void functions in JSX attributes ([#​6638](https://togithub.com/typescript-eslint/typescript-eslint/issues/6638)) ([9e41cee](https://togithub.com/typescript-eslint/typescript-eslint/commit/9e41ceeaea3bf266e5114cfb1855e70a1a13284b)) - **eslint-plugin:** \[strict-boolean-expression] support falsy and truthy literals simultaneously ([#​6672](https://togithub.com/typescript-eslint/typescript-eslint/issues/6672)) ([62ef487](https://togithub.com/typescript-eslint/typescript-eslint/commit/62ef487a99010827e99a792db5e565ad7c1d6220)) - **eslint-plugin:** \[strict-boolean-expressions] handle truthy enums ([#​6618](https://togithub.com/typescript-eslint/typescript-eslint/issues/6618)) ([0d0639f](https://togithub.com/typescript-eslint/typescript-eslint/commit/0d0639fb25e5ac8d7b5e4ceac4273e17e8ee0249)) - **eslint-plugin:** add TSPropertySignature with TSFunctionType annotation to typeMethod selector ([#​6645](https://togithub.com/typescript-eslint/typescript-eslint/issues/6645)) ([3fc5c63](https://togithub.com/typescript-eslint/typescript-eslint/commit/3fc5c63f87bfd9d95f7e51fddc7ef16a6c3c5662)) ##### Features - **eslint-plugin:** add allowNever support to restrict-template-expressions ([#​6554](https://togithub.com/typescript-eslint/typescript-eslint/issues/6554)) ([423f164](https://togithub.com/typescript-eslint/typescript-eslint/commit/423f1642424293488fa03a52777c0df73a40e5fd)) </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v5.57.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5570-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5560v5570-2023-03-27) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.56.0...v5.57.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) ### [`v5.56.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5560-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5550v5560-2023-03-20) [Compare Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v5.55.0...v5.56.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) </details> <details> <summary>eslint/eslint</summary> ### [`v8.37.0`](https://togithub.com/eslint/eslint/releases/tag/v8.37.0) [Compare Source](https://togithub.com/eslint/eslint/compare/v8.36.0...v8.37.0) ##### Features - [`b6ab8b2`](https://togithub.com/eslint/eslint/commit/b6ab8b2a2ca8807baca121407f5bfb0a0a839427) feat: `require-unicode-regexp` add suggestions ([#​17007](https://togithub.com/eslint/eslint/issues/17007)) (Josh Goldberg) - [`10022b1`](https://togithub.com/eslint/eslint/commit/10022b1f4bda1ad89193512ecf18c2ee61db8202) feat: Copy getScope() to SourceCode ([#​17004](https://togithub.com/eslint/eslint/issues/17004)) (Nicholas C. Zakas) - [`1665c02`](https://togithub.com/eslint/eslint/commit/1665c029acb92bf8812267f1647ad1a7054cbcb4) feat: Use plugin metadata for flat config serialization ([#​16992](https://togithub.com/eslint/eslint/issues/16992)) (Nicholas C. Zakas) - [`b3634f6`](https://togithub.com/eslint/eslint/commit/b3634f695ddab6a82c0a9b1d8695e62b60d23366) feat: docs license ([#​17010](https://togithub.com/eslint/eslint/issues/17010)) (Samuel Roldan) - [`892e6e5`](https://togithub.com/eslint/eslint/commit/892e6e58c5a07a549d3104de3b6b5879797dc97f) feat: languageOptions.parser must be an object. ([#​16985](https://togithub.com/eslint/eslint/issues/16985)) (Nicholas C. Zakas) ##### Bug Fixes - [`619f3fd`](https://togithub.com/eslint/eslint/commit/619f3fd17324c7b71bf17e02047d0c6dc7e5109e) fix: correctly handle `null` default config in `RuleTester` ([#​17023](https://togithub.com/eslint/eslint/issues/17023)) (Brad Zacher) - [`1fbf118`](https://togithub.com/eslint/eslint/commit/1fbf1184fed57df02640aad4659afb54dc26a2e9) fix: `getFirstToken`/`getLastToken` on comment-only node ([#​16889](https://togithub.com/eslint/eslint/issues/16889)) (Francesco Trotta) - [`129e252`](https://togithub.com/eslint/eslint/commit/129e252132c7c476d7de17f40b54a333ddb2e6bb) fix: Fix typo in `logical-assignment-operators` rule description ([#​17000](https://togithub.com/eslint/eslint/issues/17000)) (Francesco Trotta) ##### Documentation - [`75339df`](https://togithub.com/eslint/eslint/commit/75339df99418df4d7e05a77e42ed7e22eabcc9e0) docs: fix typos and missing info in id-match docs ([#​17029](https://togithub.com/eslint/eslint/issues/17029)) (Ed Lucas) - [`ec2d830`](https://togithub.com/eslint/eslint/commit/ec2d8307850dd039e118c001416606e1e0342bc8) docs: Fix typos in the `semi` rule docs ([#​17012](https://togithub.com/eslint/eslint/issues/17012)) (Andrii Lundiak) - [`e39f28d`](https://togithub.com/eslint/eslint/commit/e39f28d8578a00f4da8d4ddad559547950128a0d) docs: add back to top button ([#​16979](https://togithub.com/eslint/eslint/issues/16979)) (Tanuj Kanti) - [`721c717`](https://togithub.com/eslint/eslint/commit/721c71782a7c11025689a1500e7690fb3794fcce) docs: Custom Processors cleanup and expansion ([#​16838](https://togithub.com/eslint/eslint/issues/16838)) (Ben Perlmutter) - [`d049f97`](https://togithub.com/eslint/eslint/commit/d049f974103e530ef76ede25af701635caf1f405) docs: 'How ESLint is Maintained' page ([#​16961](https://togithub.com/eslint/eslint/issues/16961)) (Ben Perlmutter) - [`5251a92`](https://togithub.com/eslint/eslint/commit/5251a921866e8d3b380dfe8db8a6e6ab97773d5e) docs: Describe guard options for guard-for-in ([#​16986](https://togithub.com/eslint/eslint/issues/16986)) (alope107) - [`6157d81`](https://togithub.com/eslint/eslint/commit/6157d813e19b80481a46f8cbdf9eae18a55e5619) docs: Add example to guard-for-in docs. ([#​16983](https://togithub.com/eslint/eslint/issues/16983)) (alope107) - [`fd47998`](https://togithub.com/eslint/eslint/commit/fd47998af6efadcdf5ba93e0bd1f4c02d97d22b3) docs: update `Array.prototype.toSorted` specification link ([#​16982](https://togithub.com/eslint/eslint/issues/16982)) (Milos Djermanovic) - [`3e1cf6b`](https://togithub.com/eslint/eslint/commit/3e1cf6bfc5ebc29314ddbe462d6cb580e9ab085c) docs: Copy edits on Maintain ESLint docs ([#​16939](https://togithub.com/eslint/eslint/issues/16939)) (Ben Perlmutter) ##### Chores - [`c67f299`](https://togithub.com/eslint/eslint/commit/c67f2992a743de4765bb6f11c12622e3651324b9) chore: upgrade [@​eslint/js](https://togithub.com/eslint/js)[@​8](https://togithub.com/8).37.0 ([#​17033](https://togithub.com/eslint/eslint/issues/17033)) (Milos Djermanovic) - [`ee9ddbd`](https://togithub.com/eslint/eslint/commit/ee9ddbd63e262aed0052853760866c7a054af561) chore: package.json update for [@​eslint/js](https://togithub.com/eslint/js) release (ESLint Jenkins) - [`dddb475`](https://togithub.com/eslint/eslint/commit/dddb47528816cd7e2e737bfde108ed4d62e6a219) chore: upgrade [@​eslint/eslintrc](https://togithub.com/eslint/eslintrc)[@​2](https://togithub.com/2).0.2 ([#​17032](https://togithub.com/eslint/eslint/issues/17032)) (Milos Djermanovic) - [`522431e`](https://togithub.com/eslint/eslint/commit/522431e5206bac2fcb41c0d6dc98a84929203bee) chore: upgrade espree@9.5.1 ([#​17031](https://togithub.com/eslint/eslint/issues/17031)) (Milos Djermanovic) - [`f5f9a88`](https://togithub.com/eslint/eslint/commit/f5f9a88c79b32222c0331a9bac1c02571d953b69) chore: upgrade eslint-visitor-keys@3.4.0 ([#​17030](https://togithub.com/eslint/eslint/issues/17030)) (Milos Djermanovic) - [`4dd8d52`](https://togithub.com/eslint/eslint/commit/4dd8d524e0fc9e8e2019df13f8b968021600e85c) ci: bump actions/stale from 7 to 8 ([#​17026](https://togithub.com/eslint/eslint/issues/17026)) (dependabot\[bot]) - [`ad9dd6a`](https://togithub.com/eslint/eslint/commit/ad9dd6a933fd098a0d99c6a9aa059850535c23ee) chore: remove duplicate scss, ([#​17005](https://togithub.com/eslint/eslint/issues/17005)) (Strek) - [`ada6a3e`](https://togithub.com/eslint/eslint/commit/ada6a3e6e3607523958f35e1260537630ec0e976) ci: unpin Node 19 ([#​16993](https://togithub.com/eslint/eslint/issues/16993)) (Milos Djermanovic) - [`c3da975`](https://togithub.com/eslint/eslint/commit/c3da975e69fde46f35338ce48528841a8dc1ffd2) chore: Remove triage label from template ([#​16990](https://togithub.com/eslint/eslint/issues/16990)) (Nicholas C. Zakas) - [`69bc0e2`](https://togithub.com/eslint/eslint/commit/69bc0e2f4412998f9384600a100d7882ea4dd3f3) ci: pin Node 19 to 19.7.0 ([#​16987](https://togithub.com/eslint/eslint/issues/16987)) (Milos Djermanovic) </details> <details> <summary>github/eslint-plugin-github</summary> ### [`v4.7.0`](https://togithub.com/github/eslint-plugin-github/releases/tag/v4.7.0) [Compare Source](https://togithub.com/github/eslint-plugin-github/compare/v4.6.1...v4.7.0) #### What's Changed - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.51.0 to 5.52.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/403](https://togithub.com/github/eslint-plugin-github/pull/403) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.51.0 to 5.52.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/405](https://togithub.com/github/eslint-plugin-github/pull/405) - chore(deps): bump eslint-plugin-escompat from 3.3.4 to 3.4.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/404](https://togithub.com/github/eslint-plugin-github/pull/404) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.52.0 to 5.53.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/409](https://togithub.com/github/eslint-plugin-github/pull/409) - chore(deps-dev): bump eslint from 8.34.0 to 8.35.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/408](https://togithub.com/github/eslint-plugin-github/pull/408) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.52.0 to 5.53.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/407](https://togithub.com/github/eslint-plugin-github/pull/407) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.53.0 to 5.54.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/410](https://togithub.com/github/eslint-plugin-github/pull/410) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.53.0 to 5.54.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/411](https://togithub.com/github/eslint-plugin-github/pull/411) - chore(deps): bump eslint-config-prettier from 8.6.0 to 8.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/415](https://togithub.com/github/eslint-plugin-github/pull/415) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.54.0 to 5.54.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/414](https://togithub.com/github/eslint-plugin-github/pull/414) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.54.0 to 5.54.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/412](https://togithub.com/github/eslint-plugin-github/pull/412) - chore(deps-dev): bump eslint from 8.35.0 to 8.36.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/413](https://togithub.com/github/eslint-plugin-github/pull/413) - Automate docs with eslint-doc-generator by [@​bmish](https://togithub.com/bmish) in [https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.54.1 to 5.55.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/417](https://togithub.com/github/eslint-plugin-github/pull/417) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.54.1 to 5.55.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/416](https://togithub.com/github/eslint-plugin-github/pull/416) - Update no-inner-html.md by [@​khiga8](https://togithub.com/khiga8) in [https://github.com/github/eslint-plugin-github/pull/381](https://togithub.com/github/eslint-plugin-github/pull/381) - New rule to flag invalid aria-label format by [@​khiga8](https://togithub.com/khiga8) in [https://github.com/github/eslint-plugin-github/pull/418](https://togithub.com/github/eslint-plugin-github/pull/418) #### New Contributors - [@​bmish](https://togithub.com/bmish) made their first contribution in [https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398) **Full Changelog**: github/eslint-plugin-github@v4.6.1...v4.7.0 </details> <details> <summary>prettier/prettier</summary> ### [`v2.8.7`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​287) [Compare Source](https://togithub.com/prettier/prettier/compare/2.8.6...2.8.7) [diff](https://togithub.com/prettier/prettier/compare/2.8.6...2.8.7) ##### Allow multiple decorators on same getter/setter ([#​14584](https://togithub.com/prettier/prettier/pull/14584) by [@​fisker](https://togithub.com/fisker)) <!-- prettier-ignore --> ```ts // Input class A { @​decorator() get foo () {} @​decorator() set foo (value) {} } // Prettier 2.8.6 SyntaxError: Decorators cannot be applied to multiple get/set accessors of the same name. (5:3) 3 | get foo () {} 4 | > 5 | @​decorator() | ^^^^^^^^^^^^ 6 | set foo (value) {} 7 | } // Prettier 2.8.7 class A { @​decorator() get foo() {} @​decorator() set foo(value) {} } ``` ### [`v2.8.6`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​286) [Compare Source](https://togithub.com/prettier/prettier/compare/2.8.5...2.8.6) [diff](https://togithub.com/prettier/prettier/compare/2.8.5...2.8.6) ##### Allow decorators on private members and class expressions ([#​14548](https://togithub.com/prettier/prettier/pull/14548) by [@​fisker](https://togithub.com/fisker)) <!-- prettier-ignore --> ```ts // Input class A { @​decorator() #privateMethod () {} } // Prettier 2.8.5 SyntaxError: Decorators are not valid here. (2:3) 1 | class A { > 2 | @​decorator() | ^^^^^^^^^^^^ 3 | #privateMethod () {} 4 | } // Prettier 2.8.6 class A { @​decorator() #privateMethod() {} } ``` ### [`v2.8.5`](https://togithub.com/prettier/prettier/blob/HEAD/CHANGELOG.md#​285) [Compare Source](https://togithub.com/prettier/prettier/compare/2.8.4...2.8.5) [diff](https://togithub.com/prettier/prettier/compare/2.8.4...2.8.5) ##### Support TypeScript 5.0 ([#​14391](https://togithub.com/prettier/prettier/pull/14391) by [@​fisker](https://togithub.com/fisker), [#​13819](https://togithub.com/prettier/prettier/pull/13819) by [@​fisker](https://togithub.com/fisker), [@​sosukesuzuki](https://togithub.com/sosukesuzuki)) TypeScript 5.0 introduces two new syntactic features: - `const` modifiers for type parameters - `export type *` declarations ##### Add missing parentheses for decorator ([#​14393](https://togithub.com/prettier/prettier/pull/14393) by [@​fisker](https://togithub.com/fisker)) <!-- prettier-ignore --> ```jsx // Input class Person { @​(myDecoratorArray[0]) greet() {} } // Prettier 2.8.4 class Person { @​myDecoratorArray[0] greet() {} } // Prettier 2.8.5 class Person { @​(myDecoratorArray[0]) greet() {} } ``` ##### Add parentheses for `TypeofTypeAnnotation` to improve readability ([#​14458](https://togithub.com/prettier/prettier/pull/14458) by [@​fisker](https://togithub.com/fisker)) <!-- prettier-ignore --> ```tsx // Input type A = (typeof node.children)[]; // Prettier 2.8.4 type A = typeof node.children[]; // Prettier 2.8.5 type A = (typeof node.children)[]; ``` ##### Support `max_line_length=off` when parsing `.editorconfig` ([#​14516](https://togithub.com/prettier/prettier/pull/14516) by [@​josephfrazier](https://togithub.com/josephfrazier)) If an .editorconfig file is in your project and it sets `max_line_length=off` for the file you're formatting, it will be interpreted as a `printWidth` of `Infinity` rather than being ignored (which previously resulted in the default `printWidth` of 80 being applied, if not overridden by Prettier-specific configuration). <!-- prettier-ignore --> ```html <!-- Input --> <div className='HelloWorld' title={`You are visitor number ${ num }`} onMouseOver={onMouseOver}/> <!-- Prettier 2.8.4 --> <div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver} />; <!-- Prettier 2.8.5 --> <div className="HelloWorld" title={`You are visitor number ${num}`} onMouseOver={onMouseOver} />; ``` </details> --- ### Configuration 📅 **Schedule**: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/slsa-framework/slsa-github-generator). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMy4zIiwidXBkYXRlZEluVmVyIjoiMzUuMjMuMyJ9--> Signed-off-by: Renovate Bot <bot@renovateapp.com>
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [eslint-plugin-github](https://togithub.com/github/eslint-plugin-github) | [`4.6.1` -> `4.7.0`](https://renovatebot.com/diffs/npm/eslint-plugin-github/4.6.1/4.7.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>github/eslint-plugin-github</summary> ### [`v4.7.0`](https://togithub.com/github/eslint-plugin-github/releases/tag/v4.7.0) [Compare Source](https://togithub.com/github/eslint-plugin-github/compare/v4.6.1...v4.7.0) #### What's Changed - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.51.0 to 5.52.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/403](https://togithub.com/github/eslint-plugin-github/pull/403) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.51.0 to 5.52.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/405](https://togithub.com/github/eslint-plugin-github/pull/405) - chore(deps): bump eslint-plugin-escompat from 3.3.4 to 3.4.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/404](https://togithub.com/github/eslint-plugin-github/pull/404) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.52.0 to 5.53.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/409](https://togithub.com/github/eslint-plugin-github/pull/409) - chore(deps-dev): bump eslint from 8.34.0 to 8.35.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/408](https://togithub.com/github/eslint-plugin-github/pull/408) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.52.0 to 5.53.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/407](https://togithub.com/github/eslint-plugin-github/pull/407) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.53.0 to 5.54.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/410](https://togithub.com/github/eslint-plugin-github/pull/410) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.53.0 to 5.54.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/411](https://togithub.com/github/eslint-plugin-github/pull/411) - chore(deps): bump eslint-config-prettier from 8.6.0 to 8.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/415](https://togithub.com/github/eslint-plugin-github/pull/415) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.54.0 to 5.54.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/414](https://togithub.com/github/eslint-plugin-github/pull/414) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.54.0 to 5.54.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/412](https://togithub.com/github/eslint-plugin-github/pull/412) - chore(deps-dev): bump eslint from 8.35.0 to 8.36.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/413](https://togithub.com/github/eslint-plugin-github/pull/413) - Automate docs with eslint-doc-generator by [@​bmish](https://togithub.com/bmish) in [https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398) - chore(deps): bump [@​typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/eslint-plugin) from 5.54.1 to 5.55.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/417](https://togithub.com/github/eslint-plugin-github/pull/417) - chore(deps): bump [@​typescript-eslint/parser](https://togithub.com/typescript-eslint/parser) from 5.54.1 to 5.55.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/github/eslint-plugin-github/pull/416](https://togithub.com/github/eslint-plugin-github/pull/416) - Update no-inner-html.md by [@​khiga8](https://togithub.com/khiga8) in [https://github.com/github/eslint-plugin-github/pull/381](https://togithub.com/github/eslint-plugin-github/pull/381) - New rule to flag invalid aria-label format by [@​khiga8](https://togithub.com/khiga8) in [https://github.com/github/eslint-plugin-github/pull/418](https://togithub.com/github/eslint-plugin-github/pull/418) #### New Contributors - [@​bmish](https://togithub.com/bmish) made their first contribution in [https://github.com/github/eslint-plugin-github/pull/398](https://togithub.com/github/eslint-plugin-github/pull/398) **Full Changelog**: github/eslint-plugin-github@v4.6.1...v4.7.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "monthly" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/WtfJoke/setup-tectonic). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMiIsInVwZGF0ZWRJblZlciI6IjM1LjEwMi4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
This new lint rule flags when
aria-label
content is not well-formatted. Specifically, it flags when a JSX opening tag has anaria-label
content that is aLiteral
, and starts with downcase.aria-label
content should be formatted in the same way as one would visual text, but there seems to be a misconception that it doesn't have to be. As a result, we're seeingaria-label
that looks like an ID, or is downcased.Staff-only: For fun, here's a list of flagged
aria-label
in ERB using this logic.Comment from @jscholes:
Relates to:
I plan to follow-up with a similar rule in
erblint-github
.