chore: update dependency eslint-plugin-unicorn to ^63.0.0#20584
chore: update dependency eslint-plugin-unicorn to ^63.0.0#20584mdjermanovic merged 1 commit intomainfrom
Conversation
✅ Deploy Preview for docs-eslint canceled.
|
There was a problem hiding this comment.
Updating eslint-plugin-unicorn looks good to me, but I have a few questions about it.
Currently, eslint-config-eslint specifies a Node.js version range of "^18.18.0 || ^20.9.0 || >=21.1.0".
eslint/packages/eslint-config-eslint/package.json
Lines 91 to 93 in f4c9cf9
However, it appears that as of v60.0.0, eslint-plugin-unicorn requires Node.js 20.10 or later. (To clarify, it now requires ^20.10.0 || >=21.0.0)
https://github.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v60.0.0
Also, because eslint is listed under optional peerDependencies, Node.js 18 or 20.9 users may be affected: a transitive dependency now requires a higher Node.js version, which is effectively a breaking change.
eslint/packages/eslint-config-eslint/package.json
Lines 80 to 84 in f4c9cf9
Maybe this change is an intentional breaking change — would also updating the Node.js supported version range of eslint-config-eslint make sense here?
Another question: as I recall, there was a discussion about introducing an external ESM dependency.
Lines 213 to 219 in f4c9cf9
However, ESLint does not yet support an async core (eslint/rewrite#352 (comment)), So, could it be ensured that the external ESLint config ESM package does not use top-level await?
Oh, we missed that. I'll update |
I think it's fine that this policy doesn't apply to eslint-config-eslint since this package is intended for projects maintained by the ESLint team and we use it only as a dev dependency. @eslint/eslint-tsc thoughts? |
Here's a PR for this update: #20586 |
|
We discussed in the TSC meeting today and concluded that it's okay to use ESM-only packages in our own internal packages because they don't risk ecosystem breakage. |
lumirlumir
left a comment
There was a problem hiding this comment.
LGTM, thanks!
Should we also update the "ESM Dependencies" description to note that the policy does not apply to internal packages like eslint-config-eslint?
If possible, I think merging or rebasing this PR once would be helpful, since the CI setup changed slightly in #20478.
260fc33 to
ffc0b66
Compare
|
Rebased now. |
Good idea, here's a PR: #20660 |
|
The TSC agreed on 2026-03-19 that the ESM-only dependencies policy doesn't apply to eslint-config-eslint because it's intended for internal use only and doesn't pose an ecosystem risk. |
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | devDependencies | major | [`^9.39.4` → `^10.0.0`](https://renovatebot.com/diffs/npm/eslint/9.39.4/10.2.0) | --- ### Release Notes <details> <summary>eslint/eslint (eslint)</summary> ### [`v10.2.0`](https://github.com/eslint/eslint/releases/tag/v10.2.0) [Compare Source](eslint/eslint@v10.1.0...v10.2.0) #### Features - [`586ec2f`](eslint/eslint@586ec2f) feat: Add `meta.languages` support to rules ([#​20571](eslint/eslint#20571)) (Copilot) - [`14207de`](eslint/eslint@14207de) feat: add `Temporal` to `no-obj-calls` ([#​20675](eslint/eslint#20675)) (Pixel998) - [`bbb2c93`](eslint/eslint@bbb2c93) feat: add Temporal to ES2026 globals ([#​20672](eslint/eslint#20672)) (Pixel998) #### Bug Fixes - [`542cb3e`](eslint/eslint@542cb3e) fix: update first-party dependencies ([#​20714](eslint/eslint#20714)) (Francesco Trotta) #### Documentation - [`a2af743`](eslint/eslint@a2af743) docs: add `language` to configuration objects ([#​20712](eslint/eslint#20712)) (Francesco Trotta) - [`845f23f`](eslint/eslint@845f23f) docs: Update README (GitHub Actions Bot) - [`5fbcf59`](eslint/eslint@5fbcf59) docs: remove `sourceType` from ts playground link ([#​20477](eslint/eslint#20477)) (Tanuj Kanti) - [`8702a47`](eslint/eslint@8702a47) docs: Update README (GitHub Actions Bot) - [`ddeaded`](eslint/eslint@ddeaded) docs: Update README (GitHub Actions Bot) - [`2b44966`](eslint/eslint@2b44966) docs: add Major Releases section to Manage Releases ([#​20269](eslint/eslint#20269)) (Milos Djermanovic) - [`eab65c7`](eslint/eslint@eab65c7) docs: update `eslint` versions in examples ([#​20664](eslint/eslint#20664)) (루밀LuMir) - [`3e4a299`](eslint/eslint@3e4a299) docs: update ESM Dependencies policies with note for own-usage packages ([#​20660](eslint/eslint#20660)) (Milos Djermanovic) #### Chores - [`8120e30`](eslint/eslint@8120e30) refactor: extract no unmodified loop condition ([#​20679](eslint/eslint#20679)) (kuldeep kumar) - [`46e8469`](eslint/eslint@46e8469) chore: update dependency markdownlint-cli2 to ^0.22.0 ([#​20697](eslint/eslint#20697)) (renovate\[bot]) - [`01ed3aa`](eslint/eslint@01ed3aa) test: add unit tests for unicode utilities ([#​20622](eslint/eslint#20622)) (Manish chaudhary) - [`811f493`](eslint/eslint@811f493) ci: remove `--legacy-peer-deps` from types integration tests ([#​20667](eslint/eslint#20667)) (Milos Djermanovic) - [`6b86fcf`](eslint/eslint@6b86fcf) chore: update dependency npm-run-all2 to v8 ([#​20663](eslint/eslint#20663)) (renovate\[bot]) - [`632c4f8`](eslint/eslint@632c4f8) chore: add `prettier` update commit to `.git-blame-ignore-revs` ([#​20662](eslint/eslint#20662)) (루밀LuMir) - [`b0b0f21`](eslint/eslint@b0b0f21) chore: update dependency eslint-plugin-regexp to ^3.1.0 ([#​20659](eslint/eslint#20659)) (Milos Djermanovic) - [`228a2dd`](eslint/eslint@228a2dd) chore: update dependency eslint-plugin-eslint-plugin to ^7.3.2 ([#​20661](eslint/eslint#20661)) (Milos Djermanovic) - [`3ab4d7e`](eslint/eslint@3ab4d7e) test: Add tests for eslintrc-style keys ([#​20645](eslint/eslint#20645)) (kuldeep kumar) ### [`v10.1.0`](https://github.com/eslint/eslint/releases/tag/v10.1.0) [Compare Source](eslint/eslint@v10.0.3...v10.1.0) #### Features - [`ff4382b`](eslint/eslint@ff4382b) feat: apply fix for `no-var` in `TSModuleBlock` ([#​20638](eslint/eslint#20638)) (Tanuj Kanti) - [`0916995`](eslint/eslint@0916995) feat: Implement api support for bulk-suppressions ([#​20565](eslint/eslint#20565)) (Blake Sager) #### Bug Fixes - [`2b8824e`](eslint/eslint@2b8824e) fix: Prevent `no-var` autofix when a variable is used before declaration ([#​20464](eslint/eslint#20464)) (Amaresh S M) - [`e58b4bf`](eslint/eslint@e58b4bf) fix: update eslint ([#​20597](eslint/eslint#20597)) (renovate\[bot]) #### Documentation - [`b7b57fe`](eslint/eslint@b7b57fe) docs: use correct JSDoc link in require-jsdoc.md ([#​20641](eslint/eslint#20641)) (mkemna-clb) - [`58e4cfc`](eslint/eslint@58e4cfc) docs: add deprecation notice partial ([#​20639](eslint/eslint#20639)) (Milos Djermanovic) - [`7143dbf`](eslint/eslint@7143dbf) docs: update v9 migration guide for `@eslint/js` usage ([#​20540](eslint/eslint#20540)) (fnx) - [`035fc4f`](eslint/eslint@035fc4f) docs: note that `globalReturn` applies only with `sourceType: "script"` ([#​20630](eslint/eslint#20630)) (Milos Djermanovic) - [`e972c88`](eslint/eslint@e972c88) docs: merge ESLint option descriptions into type definitions ([#​20608](eslint/eslint#20608)) (Francesco Trotta) - [`7f10d84`](eslint/eslint@7f10d84) docs: Update README (GitHub Actions Bot) - [`aeed007`](eslint/eslint@aeed007) docs: open playground link in new tab ([#​20602](eslint/eslint#20602)) (Tanuj Kanti) - [`a0d1a37`](eslint/eslint@a0d1a37) docs: Add AI Usage Policy ([#​20510](eslint/eslint#20510)) (Nicholas C. Zakas) #### Chores - [`a9f9cce`](eslint/eslint@a9f9cce) chore: update dependency eslint-plugin-unicorn to ^63.0.0 ([#​20584](eslint/eslint#20584)) (Milos Djermanovic) - [`1f42bd7`](eslint/eslint@1f42bd7) chore: update `prettier` to 3.8.1 ([#​20651](eslint/eslint#20651)) (루밀LuMir) - [`c0a6f4a`](eslint/eslint@c0a6f4a) chore: update dependency [@​eslint/json](https://github.com/eslint/json) to ^1.2.0 ([#​20652](eslint/eslint#20652)) (renovate\[bot]) - [`cc43f79`](eslint/eslint@cc43f79) chore: update dependency c8 to v11 ([#​20650](eslint/eslint#20650)) (renovate\[bot]) - [`2ce4635`](eslint/eslint@2ce4635) chore: update dependency [@​eslint/json](https://github.com/eslint/json) to v1 ([#​20649](eslint/eslint#20649)) (renovate\[bot]) - [`f0406ee`](eslint/eslint@f0406ee) chore: update dependency markdownlint-cli2 to ^0.21.0 ([#​20646](eslint/eslint#20646)) (renovate\[bot]) - [`dbb4c95`](eslint/eslint@dbb4c95) chore: remove trunk ([#​20478](eslint/eslint#20478)) (sethamus) - [`c672a2a`](eslint/eslint@c672a2a) test: fix CLI test for empty output file ([#​20640](eslint/eslint#20640)) (kuldeep kumar) - [`c7ada24`](eslint/eslint@c7ada24) ci: bump pnpm/action-setup from 4.3.0 to 4.4.0 ([#​20636](eslint/eslint#20636)) (dependabot\[bot]) - [`07c4b8b`](eslint/eslint@07c4b8b) test: fix `RuleTester` test without test runners ([#​20631](eslint/eslint#20631)) (Francesco Trotta) - [`079bba7`](eslint/eslint@079bba7) test: Add tests for `isValidWithUnicodeFlag` ([#​20601](eslint/eslint#20601)) (Manish chaudhary) - [`5885ae6`](eslint/eslint@5885ae6) ci: unpin Node.js 25.x in CI ([#​20615](eslint/eslint#20615)) (Copilot) - [`f65e5d3`](eslint/eslint@f65e5d3) chore: update pnpm/action-setup digest to [`b906aff`](eslint/eslint@b906aff) ([#​20610](eslint/eslint#20610)) (renovate\[bot]) ### [`v10.0.3`](https://github.com/eslint/eslint/releases/tag/v10.0.3) [Compare Source](eslint/eslint@v10.0.2...v10.0.3) #### Bug Fixes - [`e511b58`](eslint/eslint@e511b58) fix: update eslint ([#​20595](eslint/eslint#20595)) (renovate\[bot]) - [`f4c9cf9`](eslint/eslint@f4c9cf9) fix: include variable name in `no-useless-assignment` message ([#​20581](eslint/eslint#20581)) (sethamus) - [`ee9ff31`](eslint/eslint@ee9ff31) fix: update dependency minimatch to ^10.2.4 ([#​20562](eslint/eslint#20562)) (Milos Djermanovic) #### Documentation - [`9fc31b0`](eslint/eslint@9fc31b0) docs: Update README (GitHub Actions Bot) - [`4efaa36`](eslint/eslint@4efaa36) docs: add info box for `eslint-plugin-eslint-comments` ([#​20570](eslint/eslint#20570)) (DesselBane) - [`23b2759`](eslint/eslint@23b2759) docs: add v10 migration guide link to Use docs index ([#​20577](eslint/eslint#20577)) (Pixel998) - [`80259a9`](eslint/eslint@80259a9) docs: Remove deprecated eslintrc documentation files ([#​20472](eslint/eslint#20472)) (Copilot) - [`9b9b4ba`](eslint/eslint@9b9b4ba) docs: fix typo in no-await-in-loop documentation ([#​20575](eslint/eslint#20575)) (Pixel998) - [`e7d72a7`](eslint/eslint@e7d72a7) docs: document TypeScript 5.3 minimum supported version ([#​20547](eslint/eslint#20547)) (sethamus) #### Chores - [`ef8fb92`](eslint/eslint@ef8fb92) chore: package.json update for eslint-config-eslint release (Jenkins) - [`e8f2104`](eslint/eslint@e8f2104) chore: updates for v9.39.4 release (Jenkins) - [`5cd1604`](eslint/eslint@5cd1604) refactor: simplify isCombiningCharacter helper ([#​20524](eslint/eslint#20524)) (Huáng Jùnliàng) - [`70ff1d0`](eslint/eslint@70ff1d0) chore: eslint-config-eslint require Node `^20.19.0 || ^22.13.0 || >=24` ([#​20586](eslint/eslint#20586)) (Milos Djermanovic) - [`e32df71`](eslint/eslint@e32df71) chore: update eslint-plugin-eslint-comments, remove legacy-peer-deps ([#​20576](eslint/eslint#20576)) (Milos Djermanovic) - [`53ca6ee`](eslint/eslint@53ca6ee) chore: disable `eslint-comments/no-unused-disable` rule ([#​20578](eslint/eslint#20578)) (Milos Djermanovic) - [`e121895`](eslint/eslint@e121895) ci: pin Node.js 25.6.1 ([#​20559](eslint/eslint#20559)) (Milos Djermanovic) - [`efc5aef`](eslint/eslint@efc5aef) chore: update `tsconfig.json` in `eslint-config-eslint` ([#​20551](eslint/eslint#20551)) (Francesco Trotta) ### [`v10.0.2`](https://github.com/eslint/eslint/releases/tag/v10.0.2) [Compare Source](eslint/eslint@v10.0.1...v10.0.2) #### Bug Fixes - [`2b72361`](eslint/eslint@2b72361) fix: update `ajv` to `6.14.0` to address security vulnerabilities ([#​20537](eslint/eslint#20537)) (루밀LuMir) #### Documentation - [`13eeedb`](eslint/eslint@13eeedb) docs: link rule type explanation to CLI option --fix-type ([#​20548](eslint/eslint#20548)) (Mike McCready) - [`98cbf6b`](eslint/eslint@98cbf6b) docs: update migration guide per Program range change ([#​20534](eslint/eslint#20534)) (Huáng Jùnliàng) - [`61a2405`](eslint/eslint@61a2405) docs: add missing semicolon in vars-on-top rule example ([#​20533](eslint/eslint#20533)) (Abilash) #### Chores - [`951223b`](eslint/eslint@951223b) chore: update dependency [@​eslint/eslintrc](https://github.com/eslint/eslintrc) to ^3.3.4 ([#​20553](eslint/eslint#20553)) (renovate\[bot]) - [`6aa1afe`](eslint/eslint@6aa1afe) chore: update dependency eslint-plugin-jsdoc to ^62.7.0 ([#​20536](eslint/eslint#20536)) (Milos Djermanovic) ### [`v10.0.1`](https://github.com/eslint/eslint/releases/tag/v10.0.1) [Compare Source](eslint/eslint@v10.0.0...v10.0.1) ##### Bug Fixes - [`c87d5bd`](eslint/eslint@c87d5bd) fix: update eslint ([#​20531](eslint/eslint#20531)) (renovate\[bot]) - [`d841001`](eslint/eslint@d841001) fix: update `minimatch` to `10.2.1` to address security vulnerabilities ([#​20519](eslint/eslint#20519)) (루밀LuMir) - [`04c2147`](eslint/eslint@04c2147) fix: update error message for unused suppressions ([#​20496](eslint/eslint#20496)) (fnx) - [`38b089c`](eslint/eslint@38b089c) fix: update dependency [@​eslint/config-array](https://github.com/eslint/config-array) to ^0.23.1 ([#​20484](eslint/eslint#20484)) (renovate\[bot]) ##### Documentation - [`5b3dbce`](eslint/eslint@5b3dbce) docs: add AI acknowledgement section to templates ([#​20431](eslint/eslint#20431)) (루밀LuMir) - [`6f23076`](eslint/eslint@6f23076) docs: toggle nav in no-JS mode ([#​20476](eslint/eslint#20476)) (Tanuj Kanti) - [`b69cfb3`](eslint/eslint@b69cfb3) docs: Update README (GitHub Actions Bot) ##### Chores - [`e5c281f`](eslint/eslint@e5c281f) chore: updates for v9.39.3 release (Jenkins) - [`8c3832a`](eslint/eslint@8c3832a) chore: update [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) to ^8.56.0 ([#​20514](eslint/eslint#20514)) (Milos Djermanovic) - [`8330d23`](eslint/eslint@8330d23) test: add tests for config-api ([#​20493](eslint/eslint#20493)) (Milos Djermanovic) - [`37d6e91`](eslint/eslint@37d6e91) chore: remove eslint v10 prereleases from eslint-config-eslint deps ([#​20494](eslint/eslint#20494)) (Milos Djermanovic) - [`da7cd0e`](eslint/eslint@da7cd0e) refactor: cleanup error message templates ([#​20479](eslint/eslint#20479)) (Francesco Trotta) - [`84fb885`](eslint/eslint@84fb885) chore: package.json update for [@​eslint/js](https://github.com/eslint/js) release (Jenkins) - [`1f66734`](eslint/eslint@1f66734) chore: add `eslint` to `peerDependencies` of `@eslint/js` ([#​20467](eslint/eslint#20467)) (Milos Djermanovic) ### [`v10.0.0`](https://github.com/eslint/eslint/releases/tag/v10.0.0) [Compare Source](eslint/eslint@v9.39.4...v10.0.0) ##### Breaking Changes - [`f9e54f4`](eslint/eslint@f9e54f4) feat!: estimate rule-tester failure location ([#​20420](eslint/eslint#20420)) (ST-DDT) - [`a176319`](eslint/eslint@a176319) feat!: replace `chalk` with `styleText` and add `color` to `ResultsMeta` ([#​20227](eslint/eslint#20227)) (루밀LuMir) - [`c7046e6`](eslint/eslint@c7046e6) feat!: enable JSX reference tracking ([#​20152](eslint/eslint#20152)) (Pixel998) - [`fa31a60`](eslint/eslint@fa31a60) feat!: add `name` to configs ([#​20015](eslint/eslint#20015)) (Kirk Waiblinger) - [`3383e7e`](eslint/eslint@3383e7e) fix!: remove deprecated `SourceCode` methods ([#​20137](eslint/eslint#20137)) (Pixel998) - [`501abd0`](eslint/eslint@501abd0) feat!: update dependency minimatch to v10 ([#​20246](eslint/eslint#20246)) (renovate\[bot]) - [`ca4d3b4`](eslint/eslint@ca4d3b4) fix!: stricter rule tester assertions for valid test cases ([#​20125](eslint/eslint#20125)) (唯然) - [`96512a6`](eslint/eslint@96512a6) fix!: Remove deprecated rule context methods ([#​20086](eslint/eslint#20086)) (Nicholas C. Zakas) - [`c69fdac`](eslint/eslint@c69fdac) feat!: remove eslintrc support ([#​20037](eslint/eslint#20037)) (Francesco Trotta) - [`208b5cc`](eslint/eslint@208b5cc) feat!: Use `ScopeManager#addGlobals()` ([#​20132](eslint/eslint#20132)) (Milos Djermanovic) - [`a2ee188`](eslint/eslint@a2ee188) fix!: add `uniqueItems: true` in `no-invalid-regexp` option ([#​20155](eslint/eslint#20155)) (Tanuj Kanti) - [`a89059d`](eslint/eslint@a89059d) feat!: Program range span entire source text ([#​20133](eslint/eslint#20133)) (Pixel998) - [`39a6424`](eslint/eslint@39a6424) fix!: assert 'text' is a string across all RuleFixer methods ([#​20082](eslint/eslint#20082)) (Pixel998) - [`f28fbf8`](eslint/eslint@f28fbf8) fix!: Deprecate `"always"` and `"as-needed"` options of the `radix` rule ([#​20223](eslint/eslint#20223)) (Milos Djermanovic) - [`aa3fb2b`](eslint/eslint@aa3fb2b) fix!: tighten `func-names` schema ([#​20119](eslint/eslint#20119)) (Pixel998) - [`f6c0ed0`](eslint/eslint@f6c0ed0) feat!: report `eslint-env` comments as errors ([#​20128](eslint/eslint#20128)) (Francesco Trotta) - [`4bf739f`](eslint/eslint@4bf739f) fix!: remove deprecated `LintMessage#nodeType` and `TestCaseError#type` ([#​20096](eslint/eslint#20096)) (Pixel998) - [`523c076`](eslint/eslint@523c076) feat!: drop support for jiti < 2.2.0 ([#​20016](eslint/eslint#20016)) (michael faith) - [`454a292`](eslint/eslint@454a292) feat!: update `eslint:recommended` configuration ([#​20210](eslint/eslint#20210)) (Pixel998) - [`4f880ee`](eslint/eslint@4f880ee) feat!: remove `v10_*` and inactive `unstable_*` flags ([#​20225](eslint/eslint#20225)) (sethamus) - [`f18115c`](eslint/eslint@f18115c) feat!: `no-shadow-restricted-names` report `globalThis` by default ([#​20027](eslint/eslint#20027)) (sethamus) - [`c6358c3`](eslint/eslint@c6358c3) feat!: Require Node.js `^20.19.0 || ^22.13.0 || >=24` ([#​20160](eslint/eslint#20160)) (Milos Djermanovic) ##### Features - [`bff9091`](eslint/eslint@bff9091) feat: handle `Array.fromAsync` in `array-callback-return` ([#​20457](eslint/eslint#20457)) (Francesco Trotta) - [`290c594`](eslint/eslint@290c594) feat: add `self` to `no-implied-eval` rule ([#​20468](eslint/eslint#20468)) (sethamus) - [`43677de`](eslint/eslint@43677de) feat: fix handling of function and class expression names in `no-shadow` ([#​20432](eslint/eslint#20432)) (Milos Djermanovic) - [`f0cafe5`](eslint/eslint@f0cafe5) feat: rule tester add assertion option `requireData` ([#​20409](eslint/eslint#20409)) (fnx) - [`f7ab693`](eslint/eslint@f7ab693) feat: output RuleTester test case failure index ([#​19976](eslint/eslint#19976)) (ST-DDT) - [`7cbcbf9`](eslint/eslint@7cbcbf9) feat: add `countThis` option to `max-params` ([#​20236](eslint/eslint#20236)) (Gerkin) - [`f148a5e`](eslint/eslint@f148a5e) feat: add error assertion options ([#​20247](eslint/eslint#20247)) (ST-DDT) - [`09e6654`](eslint/eslint@09e6654) feat: update error loc of `require-yield` and `no-useless-constructor` ([#​20267](eslint/eslint#20267)) (Tanuj Kanti) ##### Bug Fixes - [`436b82f`](eslint/eslint@436b82f) fix: update eslint ([#​20473](eslint/eslint#20473)) (renovate\[bot]) - [`1d29d22`](eslint/eslint@1d29d22) fix: detect default `this` binding in `Array.fromAsync` callbacks ([#​20456](eslint/eslint#20456)) (Francesco Trotta) - [`727451e`](eslint/eslint@727451e) fix: fix regression of global mode report range in `strict` rule ([#​20462](eslint/eslint#20462)) (ntnyq) - [`e80485f`](eslint/eslint@e80485f) fix: remove fake `FlatESLint` and `LegacyESLint` exports ([#​20460](eslint/eslint#20460)) (Francesco Trotta) - [`9eeff3b`](eslint/eslint@9eeff3b) fix: update esquery ([#​20423](eslint/eslint#20423)) (cryptnix) - [`b34b938`](eslint/eslint@b34b938) fix: use `Error.prepareStackTrace` to estimate failing test location ([#​20436](eslint/eslint#20436)) (Francesco Trotta) - [`51aab53`](eslint/eslint@51aab53) fix: update eslint ([#​20443](eslint/eslint#20443)) (renovate\[bot]) - [`23490b2`](eslint/eslint@23490b2) fix: handle space before colon in `RuleTester` location estimation ([#​20433](eslint/eslint#20433)) (Francesco Trotta) - [`f244dbf`](eslint/eslint@f244dbf) fix: use `MessagePlaceholderData` type from `@eslint/core` ([#​20348](eslint/eslint#20348)) (루밀LuMir) - [`d186f8c`](eslint/eslint@d186f8c) fix: update eslint ([#​20427](eslint/eslint#20427)) (renovate\[bot]) - [`2332262`](eslint/eslint@2332262) fix: error location should not modify error message in RuleTester ([#​20421](eslint/eslint#20421)) (Milos Djermanovic) - [`ab99b21`](eslint/eslint@ab99b21) fix: ensure `filename` is passed as third argument to `verifyAndFix()` ([#​20405](eslint/eslint#20405)) (루밀LuMir) - [`8a60f3b`](eslint/eslint@8a60f3b) fix: remove `ecmaVersion` and `sourceType` from `ParserOptions` type ([#​20415](eslint/eslint#20415)) (Pixel998) - [`eafd727`](eslint/eslint@eafd727) fix: remove `TDZ` scope type ([#​20231](eslint/eslint#20231)) (jaymarvelz) - [`39d1f51`](eslint/eslint@39d1f51) fix: correct `Scope` typings ([#​20404](eslint/eslint#20404)) (sethamus) - [`2bd0f13`](eslint/eslint@2bd0f13) fix: update `verify` and `verifyAndFix` types ([#​20384](eslint/eslint#20384)) (Francesco Trotta) - [`ba6ebfa`](eslint/eslint@ba6ebfa) fix: correct typings for `loadESLint()` and `shouldUseFlatConfig()` ([#​20393](eslint/eslint#20393)) (루밀LuMir) - [`e7673ae`](eslint/eslint@e7673ae) fix: correct RuleTester typings ([#​20105](eslint/eslint#20105)) (Pixel998) - [`53e9522`](eslint/eslint@53e9522) fix: strict removed formatters check ([#​20241](eslint/eslint#20241)) (ntnyq) - [`b017f09`](eslint/eslint@b017f09) fix: correct `no-restricted-import` messages ([#​20374](eslint/eslint#20374)) (Francesco Trotta) ##### Documentation - [`e978dda`](eslint/eslint@e978dda) docs: Update README (GitHub Actions Bot) - [`4cecf83`](eslint/eslint@4cecf83) docs: Update README (GitHub Actions Bot) - [`c79f0ab`](eslint/eslint@c79f0ab) docs: Update README (GitHub Actions Bot) - [`773c052`](eslint/eslint@773c052) docs: Update README (GitHub Actions Bot) - [`f2962e4`](eslint/eslint@f2962e4) docs: document `meta.docs.frozen` property ([#​20475](eslint/eslint#20475)) (Pixel998) - [`8e94f58`](eslint/eslint@8e94f58) docs: fix broken anchor links from gerund heading updates ([#​20449](eslint/eslint#20449)) (Copilot) - [`1495654`](eslint/eslint@1495654) docs: Update README (GitHub Actions Bot) - [`0b8ed5c`](eslint/eslint@0b8ed5c) docs: document support for `:is` selector alias ([#​20454](eslint/eslint#20454)) (sethamus) - [`1c4b33f`](eslint/eslint@1c4b33f) docs: Document policies about ESM-only dependencies ([#​20448](eslint/eslint#20448)) (Milos Djermanovic) - [`3e5d38c`](eslint/eslint@3e5d38c) docs: add missing indentation space in rule example ([#​20446](eslint/eslint#20446)) (fnx) - [`63a0c7c`](eslint/eslint@63a0c7c) docs: Update README (GitHub Actions Bot) - [`65ed0c9`](eslint/eslint@65ed0c9) docs: Update README (GitHub Actions Bot) - [`b0e4717`](eslint/eslint@b0e4717) docs: \[no-await-in-loop] Expand inapplicability ([#​20363](eslint/eslint#20363)) (Niklas Hambüchen) - [`fca421f`](eslint/eslint@fca421f) docs: Update README (GitHub Actions Bot) - [`d925c54`](eslint/eslint@d925c54) docs: update config syntax in `no-lone-blocks` ([#​20413](eslint/eslint#20413)) (Pixel998) - [`7d5c95f`](eslint/eslint@7d5c95f) docs: remove redundant `sourceType: "module"` from rule examples ([#​20412](eslint/eslint#20412)) (Pixel998) - [`02e7e71`](eslint/eslint@02e7e71) docs: correct `.mts` glob pattern in files with extensions example ([#​20403](eslint/eslint#20403)) (Ali Essalihi) - [`264b981`](eslint/eslint@264b981) docs: Update README (GitHub Actions Bot) - [`5a4324f`](eslint/eslint@5a4324f) docs: clarify `"local"` option of `no-unused-vars` ([#​20385](eslint/eslint#20385)) (Milos Djermanovic) - [`e593aa0`](eslint/eslint@e593aa0) docs: improve clarity, grammar, and wording in documentation site README ([#​20370](eslint/eslint#20370)) (Aditya) - [`3f5062e`](eslint/eslint@3f5062e) docs: Add messages property to rule meta documentation ([#​20361](eslint/eslint#20361)) (Sabya Sachi) - [`9e5a5c2`](eslint/eslint@9e5a5c2) docs: remove `Examples` headings from rule docs ([#​20364](eslint/eslint#20364)) (Milos Djermanovic) - [`194f488`](eslint/eslint@194f488) docs: Update README (GitHub Actions Bot) - [`0f5a94a`](eslint/eslint@0f5a94a) docs: \[class-methods-use-this] explain purpose of rule ([#​20008](eslint/eslint#20008)) (Kirk Waiblinger) - [`df5566f`](eslint/eslint@df5566f) docs: add Options section to all rule docs ([#​20296](eslint/eslint#20296)) (sethamus) - [`adf7a2b`](eslint/eslint@adf7a2b) docs: no-unsafe-finally note for generator functions ([#​20330](eslint/eslint#20330)) (Tom Pereira) - [`ef7028c`](eslint/eslint@ef7028c) docs: Update README (GitHub Actions Bot) - [`fbae5d1`](eslint/eslint@fbae5d1) docs: consistently use "v10.0.0" in migration guide ([#​20328](eslint/eslint#20328)) (Pixel998) - [`778aa2d`](eslint/eslint@778aa2d) docs: ignoring default file patterns ([#​20312](eslint/eslint#20312)) (Tanuj Kanti) - [`4b5dbcd`](eslint/eslint@4b5dbcd) docs: reorder v10 migration guide ([#​20315](eslint/eslint#20315)) (Milos Djermanovic) - [`5d84a73`](eslint/eslint@5d84a73) docs: Update README (GitHub Actions Bot) - [`37c8863`](eslint/eslint@37c8863) docs: fix incorrect anchor link in v10 migration guide ([#​20299](eslint/eslint#20299)) (Pixel998) - [`077ff02`](eslint/eslint@077ff02) docs: add migrate-to-10.0.0 doc ([#​20143](eslint/eslint#20143)) (唯然) - [`3822e1b`](eslint/eslint@3822e1b) docs: Update README (GitHub Actions Bot) ##### Build Related - [`9f08712`](eslint/eslint@9f08712) Build: changelog update for 10.0.0-rc.2 (Jenkins) - [`1e2c449`](eslint/eslint@1e2c449) Build: changelog update for 10.0.0-rc.1 (Jenkins) - [`c4c72a8`](eslint/eslint@c4c72a8) Build: changelog update for 10.0.0-rc.0 (Jenkins) - [`7e4daf9`](eslint/eslint@7e4daf9) Build: changelog update for 10.0.0-beta.0 (Jenkins) - [`a126a2a`](eslint/eslint@a126a2a) build: add .scss files entry to knip ([#​20389](eslint/eslint#20389)) (Francesco Trotta) - [`f5c0193`](eslint/eslint@f5c0193) Build: changelog update for 10.0.0-alpha.1 (Jenkins) - [`165326f`](eslint/eslint@165326f) Build: changelog update for 10.0.0-alpha.0 (Jenkins) ##### Chores - [`1ece282`](eslint/eslint@1ece282) chore: ignore `/docs/v9.x` in link checker ([#​20452](eslint/eslint#20452)) (Milos Djermanovic) - [`034e139`](eslint/eslint@034e139) ci: add type integration test for `@html-eslint/eslint-plugin` ([#​20345](eslint/eslint#20345)) (sethamus) - [`f3fbc2f`](eslint/eslint@f3fbc2f) chore: set `@eslint/js` version to 10.0.0 to skip releasing it ([#​20466](eslint/eslint#20466)) (Milos Djermanovic) - [`afc0681`](eslint/eslint@afc0681) chore: remove scopeManager.addGlobals patch for typescript-eslint parser ([#​20461](eslint/eslint#20461)) (fnx) - [`3e5a173`](eslint/eslint@3e5a173) refactor: use types from `@eslint/plugin-kit` ([#​20435](eslint/eslint#20435)) (Pixel998) - [`11644b1`](eslint/eslint@11644b1) ci: rename workflows ([#​20463](eslint/eslint#20463)) (Milos Djermanovic) - [`2d14173`](eslint/eslint@2d14173) chore: fix typos in docs and comments ([#​20458](eslint/eslint#20458)) (o-m12a) - [`6742f92`](eslint/eslint@6742f92) test: add endLine/endColumn to invalid test case in no-alert ([#​20441](eslint/eslint#20441)) (경하) - [`3e22c82`](eslint/eslint@3e22c82) test: add missing location data to no-template-curly-in-string tests ([#​20440](eslint/eslint#20440)) (Haeun Kim) - [`b4b3127`](eslint/eslint@b4b3127) chore: package.json update for [@​eslint/js](https://github.com/eslint/js) release (Jenkins) - [`f658419`](eslint/eslint@f658419) refactor: remove `raw` parser option from JS language ([#​20416](eslint/eslint#20416)) (Pixel998) - [`2c3efb7`](eslint/eslint@2c3efb7) chore: remove `category` from type test fixtures ([#​20417](eslint/eslint#20417)) (Pixel998) - [`36193fd`](eslint/eslint@36193fd) chore: remove `category` from formatter test fixtures ([#​20418](eslint/eslint#20418)) (Pixel998) - [`e8d203b`](eslint/eslint@e8d203b) chore: add JSX language tag validation to `check-rule-examples` ([#​20414](eslint/eslint#20414)) (Pixel998) - [`bc465a1`](eslint/eslint@bc465a1) chore: pin dependencies ([#​20397](eslint/eslint#20397)) (renovate\[bot]) - [`703f0f5`](eslint/eslint@703f0f5) test: replace deprecated rules in `linter` tests ([#​20406](eslint/eslint#20406)) (루밀LuMir) - [`ba71baa`](eslint/eslint@ba71baa) test: enable `strict` mode in type tests ([#​20398](eslint/eslint#20398)) (루밀LuMir) - [`f9c4968`](eslint/eslint@f9c4968) refactor: remove `lib/linter/rules.js` ([#​20399](eslint/eslint#20399)) (Francesco Trotta) - [`6f1c48e`](eslint/eslint@6f1c48e) chore: updates for v9.39.2 release (Jenkins) - [`54bf0a3`](eslint/eslint@54bf0a3) ci: create package manager test ([#​20392](eslint/eslint#20392)) (루밀LuMir) - [`3115021`](eslint/eslint@3115021) refactor: simplify JSDoc comment detection logic ([#​20360](eslint/eslint#20360)) (Pixel998) - [`4345b17`](eslint/eslint@4345b17) chore: update `@eslint-community/regexpp` to `4.12.2` ([#​20366](eslint/eslint#20366)) (루밀LuMir) - [`772c9ee`](eslint/eslint@772c9ee) chore: update dependency [@​eslint/eslintrc](https://github.com/eslint/eslintrc) to ^3.3.3 ([#​20359](eslint/eslint#20359)) (renovate\[bot]) - [`0b14059`](eslint/eslint@0b14059) chore: package.json update for [@​eslint/js](https://github.com/eslint/js) release (Jenkins) - [`d6e7bf3`](eslint/eslint@d6e7bf3) ci: bump actions/checkout from 5 to 6 ([#​20350](eslint/eslint#20350)) (dependabot\[bot]) - [`139d456`](eslint/eslint@139d456) chore: require mandatory headers in rule docs ([#​20347](eslint/eslint#20347)) (Milos Djermanovic) - [`3b0289c`](eslint/eslint@3b0289c) chore: remove unused `.eslintignore` and test fixtures ([#​20316](eslint/eslint#20316)) (Pixel998) - [`a463e7b`](eslint/eslint@a463e7b) chore: update dependency js-yaml to v4 \[security] ([#​20319](eslint/eslint#20319)) (renovate\[bot]) - [`ebfe905`](eslint/eslint@ebfe905) chore: remove redundant rules from eslint-config-eslint ([#​20327](eslint/eslint#20327)) (Milos Djermanovic) - [`88dfdb2`](eslint/eslint@88dfdb2) test: add regression tests for message placeholder interpolation ([#​20318](eslint/eslint#20318)) (fnx) - [`6ed0f75`](eslint/eslint@6ed0f75) chore: skip type checking in `eslint-config-eslint` ([#​20323](eslint/eslint#20323)) (Francesco Trotta) - [`1e2cad5`](eslint/eslint@1e2cad5) chore: package.json update for [@​eslint/js](https://github.com/eslint/js) release (Jenkins) - [`9da2679`](eslint/eslint@9da2679) chore: update `@eslint/*` dependencies ([#​20321](eslint/eslint#20321)) (Milos Djermanovic) - [`0439794`](eslint/eslint@0439794) refactor: use types from [@​eslint/core](https://github.com/eslint/core) ([#​20235](eslint/eslint#20235)) (jaymarvelz) - [`cb51ec2`](eslint/eslint@cb51ec2) test: cleanup `SourceCode#traverse` tests ([#​20289](eslint/eslint#20289)) (Milos Djermanovic) - [`897a347`](eslint/eslint@897a347) chore: remove restriction for `type` in rule tests ([#​20305](eslint/eslint#20305)) (Pixel998) - [`d972098`](eslint/eslint@d972098) chore: ignore prettier updates in renovate to keep in sync with trunk ([#​20304](eslint/eslint#20304)) (Pixel998) - [`a086359`](eslint/eslint@a086359) chore: remove redundant `fast-glob` dev-dependency ([#​20301](eslint/eslint#20301)) (루밀LuMir) - [`564b302`](eslint/eslint@564b302) chore: install `prettier` as a dev dependency ([#​20302](eslint/eslint#20302)) (michael faith) - [`8257b57`](eslint/eslint@8257b57) refactor: correct regex for `eslint-plugin/report-message-format` ([#​20300](eslint/eslint#20300)) (루밀LuMir) - [`e251671`](eslint/eslint@e251671) refactor: extract assertions in RuleTester ([#​20135](eslint/eslint#20135)) (唯然) - [`2e7f25e`](eslint/eslint@2e7f25e) chore: add `legacy-peer-deps` to `.npmrc` ([#​20281](eslint/eslint#20281)) (Milos Djermanovic) - [`39c638a`](eslint/eslint@39c638a) chore: update eslint-config-eslint dependencies for v10 prereleases ([#​20278](eslint/eslint#20278)) (Milos Djermanovic) - [`8533b3f`](eslint/eslint@8533b3f) chore: update dependency [@​eslint/json](https://github.com/eslint/json) to ^0.14.0 ([#​20288](eslint/eslint#20288)) (renovate\[bot]) - [`796ddf6`](eslint/eslint@796ddf6) chore: update dependency [@​eslint/js](https://github.com/eslint/js) to ^9.39.1 ([#​20285](eslint/eslint#20285)) (renovate\[bot]) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - 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. 🔕 **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 [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDQuMyIsInVwZGF0ZWRJblZlciI6IjQzLjEwNC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Reviewed-on: https://git.travisf.ca/travisfriesen/travisfriesen.ca/pulls/6 Co-authored-by: Renovate [Bot] <renovate@infrastructure.travisf.ca> Co-committed-by: Renovate [Bot] <renovate@infrastructure.travisf.ca>
Prerequisites checklist
AI acknowledgment
What is the purpose of this pull request? (put an "X" next to an item)
[ ] Documentation update
[ ] Bug fix (template)
[ ] New rule (template)
[ ] Changes an existing rule (template)
[ ] Add autofix to a rule
[ ] Add a CLI option
[ ] Add something to the core
[x] Other, please explain:
Updates
eslint-plugin-unicorndev dependecy ofeslint-config-eslintto the latest major version.I believe the only breaking change that affects us is that
unicorn/prefer-array-findnow also reports some cases whereArray#findLast()can be used. There's an option to disable this behavior but I didn't set it as it seems useful.The
eslint-plugin-unicornpackage is now ESM-only.require(esm)works in all version of Node.js we support, so we can use it.What changes did you make? (Give an overview)
packages/eslint-config-eslint/package.json.require("eslint-plugin-unicorn").defaultsince it's now exported withexport defaultandrequire(esm)returns the namespace object.Is there anything you'd like reviewers to focus on?