Skip to content

chore(dev-deps): bump the dev-major group across 1 directory with 14 updates - #477

Open
dependabot[bot] wants to merge 3 commits into
mainfrom
dependabot/npm_and_yarn/dev-major-8589438c1d
Open

dependabot[bot] wants to merge 3 commits into
mainfrom
dependabot/npm_and_yarn/dev-major-8589438c1d

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 26, 2026

Copy link
Copy Markdown
Contributor

Bumps the dev-major group with 14 updates in the / directory:

Package From To
@oclif/test 4.1.18 5.0.3
@types/node 25.6.2 26.6.5
@vitest/coverage-v8 4.1.5 5.0.5
@vitest/ui 4.1.5 5.0.5
dotenv 17.4.2 18.0.8
eslint-plugin-n 17.24.0 18.5.0
eslint-plugin-unicorn 64.0.0 78.0.0
execa 9.6.1 10.2.0
nock 14.0.15 15.0.2
oclif 4.23.0 6.0.10
vitest 4.1.5 5.0.5
@testing-library/jest-dom 6.9.1 7.0.1
tsup 8.5.1 9.0.0
@vercel/node 5.7.15 24.0.3

Updates @oclif/test from 4.1.18 to 5.0.3

Release notes

Sourced from @​oclif/test's releases.

5.0.3

Bug Fixes

  • deps: bump @​humanfs/node from 0.16.6 to 0.16.8 (b21a731)

5.0.2

Bug Fixes

  • deps: bump source-map-js from 1.2.1 to 1.2.2 (be4be66)

5.0.1

Bug Fixes

  • deps: bump js-yaml from 4.3.1 to 4.3.2 (c547dbd)

5.0.0

BREAKING CHANGES

  • bump node engine to >=22.0.0

4.2.0

Features

  • bumped eslint to v10 (W-23473845) (8fb8c87)

4.1.22

Bug Fixes

  • deps: bump js-yaml from 4.3.0 to 4.3.1 (34b2397)

4.1.21

Bug Fixes

  • deps: bump js-yaml from 4.2.0 to 4.3.0 (c7f5819)

4.1.20

Bug Fixes

  • deps: bump js-yaml from 4.1.1 to 4.2.0 (18815a3)

4.1.19

Bug Fixes

  • deps: bump esbuild from 0.28.0 to 0.28.1 (429ee9b)
Changelog

Sourced from @​oclif/test's changelog.

5.0.3 (2026-10-10)

Bug Fixes

  • deps: bump @​humanfs/node from 0.16.6 to 0.16.8 (b21a731)

5.0.2 (2026-10-09)

Bug Fixes

  • deps: bump source-map-js from 1.2.1 to 1.2.2 (be4be66)

5.0.1 (2026-09-25)

Bug Fixes

  • deps: bump js-yaml from 4.3.1 to 4.3.2 (c547dbd)

5.0.0 (2026-08-31)

BREAKING CHANGES

  • bump node engine to >=22.0.0

4.2.0 (2026-08-24)

Features

  • bumped eslint to v10 (W-23473845) (8fb8c87)

4.1.22 (2026-08-09)

... (truncated)

Commits
  • 3bf17b1 chore(release): 5.0.3 [skip ci]
  • 0997424 Merge pull request #929 from oclif/dependabot-npm_and_yarn-humanfs-node-0.16.8
  • f85905a Merge pull request #936 from oclif/dependabot-npm_and_yarn-oclif-core-5.0.1
  • e81665f Merge pull request #937 from oclif/dependabot-npm_and_yarn-eslint-10.11.0
  • 2b0a3fb Merge pull request #938 from oclif/dependabot-npm_and_yarn-prettier-3.9.9
  • c01ba2e chore(release): 5.0.2 [skip ci]
  • fbfe246 Merge pull request #940 from oclif/dependabot-npm_and_yarn-source-map-js-1.2.2
  • 4c835bb chore(dev-deps): bump prettier from 3.9.6 to 3.9.9
  • be4be66 fix(deps): bump source-map-js from 1.2.1 to 1.2.2
  • 7720a90 Merge pull request #939 from oclif/dependabot-npm_and_yarn-tsx-4.23.15
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for @​oclif/test since your current version.


Updates @types/node from 25.6.2 to 26.6.5

Commits

Updates @vitest/coverage-v8 from 4.1.5 to 5.0.5

Release notes

Sourced from @​vitest/coverage-v8's releases.

v5.0.5

   🐞 Bug Fixes

    View changes on GitHub

v5.0.4

   🚀 Features

   🐞 Bug Fixes

... (truncated)

Commits

Updates @vitest/ui from 4.1.5 to 5.0.5

Release notes

Sourced from @​vitest/ui's releases.

v5.0.5

   🐞 Bug Fixes

    View changes on GitHub

v5.0.4

   🚀 Features

   🐞 Bug Fixes

... (truncated)

Commits

Updates dotenv from 17.4.2 to 18.0.8

Changelog

Sourced from dotenv's changelog.

18.0.8 (2026-10-14)

Changed

  • Fast parser should strip appended extra quotes (#1073)
  • Type detail improvement (#1074)

18.0.7 (2026-10-09)

Changed

  • Treat undefined settings like quiet: true as null rather than falsey (#1070)
  • CLI should honor DOTENV_QUIET setting in .env file (#1071)

18.0.6 (2026-10-06)

Changed

  • Use smarter parseBoolean not Boolean() to fix override (#1069)

18.0.5 (2026-09-30)

Changed

  • Fix missing typescript module declaration (#1068)
  • Improve performance for large .env files (#1066)

18.0.4 (2026-09-25)

Changed

  • import dotenv/config should default quiet: true (#1063)

18.0.3 (2026-09-22)

Changed

  • Patch DOTENV_QUIET setting when inside .env file (#1059)

18.0.2 (2026-09-21)

Changed

  • Patch additional edge cases for the fast parser (#1056)

18.0.1 (2026-09-18)

Changed

  • Handle file urls in config logging (#1054)

... (truncated)

Commits
  • e2fe95e 18.0.8
  • 7aa712a type detail improvement
  • 53405b0 Merge pull request #1074 from himanshu748/codex/fix-dotenv-populate-undefined...
  • 0b4843a changelog
  • 55855ab Merge pull request #1073 from xiehuanyi/fix/unicode-unquoting-parity
  • f757811 fix(types): allow undefined values in populate output
  • fde5db2 Keep fast-parser unquoting consistent at Unicode line boundaries
  • 2953207 18.0.7
  • 9944723 make more readable for undefined -> null
  • d455db0 Merge branch 'master' of github.com:motdotla/dotenv
  • Additional commits viewable in compare view

Updates eslint-plugin-n from 17.24.0 to 18.5.0

Release notes

Sourced from eslint-plugin-n's releases.

v18.5.0

18.5.0 (2026-10-18)

🌟 Features

  • node-builtins: ✨ support 20.20, 22.23, 24.22 and 26.12 (#578) (2fa0069)

🩹 Fixes

  • no-mixed-requires: classify modern Node built-ins (#580) (58c5d56)
  • no-unsupported-features/es-syntax: Promise.withResolvers is supported since Node.js 22.0.0 (#577) (4a6dee1)

📚 Documentation

  • explain module aliases for no-missing-require (#579) (fcf1256)

v18.4.1

18.4.1 (2026-10-03)

🩹 Fixes

  • prefer-promises/fs: cover fs.watch (#566) (37bf3a2)
  • properly handle extension override mappings in file-extension-in-import (#572) (995c881)

🧹 Chores

  • cache parsed tsconfig per directory (#571) (1cfd694)
  • Remove stale TypeScript suppressions blocking the Lint job (#574) (73f4d4f)
  • resolve import targets lazily and reuse resolvers (#570) (aff82d1)

v18.4.0

18.4.0 (2026-09-26)

🌟 Features

  • no-extraneous: Support pnpm workspaces in no-extraneous rules (#569) (3aae430)

📚 Documentation

v18.3.0

18.3.0 (2026-08-08)

... (truncated)

Changelog

Sourced from eslint-plugin-n's changelog.

18.5.0 (2026-10-18)

🌟 Features

  • node-builtins: ✨ support 20.20, 22.23, 24.22 and 26.12 (#578) (2fa0069)

🩹 Fixes

  • no-mixed-requires: classify modern Node built-ins (#580) (58c5d56)
  • no-unsupported-features/es-syntax: Promise.withResolvers is supported since Node.js 22.0.0 (#577) (4a6dee1)

📚 Documentation

  • explain module aliases for no-missing-require (#579) (fcf1256)

18.4.1 (2026-10-03)

🩹 Fixes

  • prefer-promises/fs: cover fs.watch (#566) (37bf3a2)
  • properly handle extension override mappings in file-extension-in-import (#572) (995c881)

🧹 Chores

  • cache parsed tsconfig per directory (#571) (1cfd694)
  • Remove stale TypeScript suppressions blocking the Lint job (#574) (73f4d4f)
  • resolve import targets lazily and reuse resolvers (#570) (aff82d1)

18.4.0 (2026-09-26)

🌟 Features

  • no-extraneous: Support pnpm workspaces in no-extraneous rules (#569) (3aae430)

📚 Documentation

18.3.0 (2026-08-08)

🌟 Features

... (truncated)

Commits
  • 5bbe603 chore(master): release 18.5.0 (#581)
  • 2fa0069 feat(node-builtins): ✨ support 20.20, 22.23, 24.22 and 26.12 (#578)
  • fcf1256 docs: explain module aliases for no-missing-require (#579)
  • 58c5d56 fix(no-mixed-requires): classify modern Node built-ins (#580)
  • 4a6dee1 fix(no-unsupported-features/es-syntax): Promise.withResolvers is supported si...
  • f1d47af chore(master): release 18.4.1 (#573)
  • 73f4d4f chore: Remove stale TypeScript suppressions blocking the Lint job (#574)
  • 37bf3a2 fix(prefer-promises/fs): cover fs.watch (#566)
  • aff82d1 perf: resolve import targets lazily and reuse resolvers (#570)
  • 1cfd694 perf: cache parsed tsconfig per directory (#571)
  • Additional commits viewable in compare view

Updates eslint-plugin-unicorn from 64.0.0 to 78.0.0

Release notes

Sourced from eslint-plugin-unicorn's releases.

v78.0.0

New rules

Improvements

  • Add SOML support, including a recommended-soml preset (#3870) 7419b835
  • Report code that contains comments instead of ignoring it (#3847) 003f0bdc
    • Many rules skipped code with comments. They now report it, and only withhold fixes that would remove comments. You may see new reports.
  • Fix cyclic resolution in type-aware checks (#3826) 5e77e19e
  • prefer-default-parameters: Add checkFallbackExpressions option (#3837) 71bbf59a
  • prefer-ternary: Add checkVaryingBase and checkComputedMemberAccess options (#3869) 1af3c2b2
  • consistent-boolean-name: Allow does prefix by default (#3853) cfad028d
  • consistent-boolean-name: Recognize promise-returning functions (#3879) 769e3b87
  • consistent-boolean-name: Fix cyclic type parameter resolution (#3821) 5c4808ba
  • no-asterisk-prefix-in-documentation-comments: Remove shared indentation (#3820) a92aee19
  • no-await-in-promise-methods: Clarify the message for nested await (#3867) 8f73d539
  • no-immediate-mutation: Combine a declaration with an assignment that follows it immediately (#3851) 811e4678
  • no-negated-condition: Support && and || chains of negated operands (#3834) 15bfade7
  • no-top-level-side-effects: Allow known pure imported helpers, like defineConfig() and React memo(), and check default-exported expressions (#3822) 3826236d
  • no-unnecessary-parameters: Fix false positive for recursive defaults (#3844) e2d8d0ff
  • no-unnecessary-parameters: Ignore parameters named by type predicates (#3859) f0c631ce
  • no-using-resource-escape: Check TypeScript instantiation expressions (#3833) 7a9f7df1
  • prefer-at: Fix false positives for DOM collections (#3842) ca78a7aa
  • prefer-combined-guards: Combine non-literal exits in TypeScript when type information is available (#3860) 2bcc7be6
  • prefer-default-parameters: Support static template literal fallbacks (#3835) 3d8b40a5
  • prefer-default-parameters: Support fallbacks to earlier bindings (#3840) d4bfc1cf
  • prefer-default-parameters: Handle nullable fallback types (#3858) d75786f7
  • prefer-early-return, prefer-continue: Suggest opposite relational comparisons (#3873) de2e6daa
  • prefer-logical-operator-over-ternary: Handle non-boolean conditions (#3843) 5c4d50cf
  • prefer-minimal-ternary: Ignore formatting differences in shared expressions (#3841) b0c21423
  • prefer-minimal-ternary: Prevent unsafe TypeScript object autofixes (#3846) 2f33c916
  • prefer-observer-apis: Check let and var listener functions, and ignore reassigned listeners (#3833) 7a9f7df1
  • prefer-private-class-fields: Do not autofix reassigned methods, and suggest private arrow functions for bound methods (#3823) 6f0f4bb8
  • prefer-scoped-selector: Ignore queries on more non-element roots, like ownerDocument and getRootNode() (#3833) 7a9f7df1
  • prefer-spread: Prevent unsafe TypeScript autofixes (#3882) 21e99ff8
  • prefer-ternary: Support destructuring assignments (#3852) e29d1eee
  • prefer-ternary: Support statements that differ in only one part, like call(test ? a : b) (#3869) 1af3c2b2
  • prefer-top-level-await: Allow cached promise assignments (#3819) 2fb8eb60
  • prefer-top-level-await: Avoid false positives on non-promise calls (#38...

    Description has been truncated

…updates

Bumps the dev-major group with 14 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@oclif/test](https://github.com/oclif/test) | `4.1.18` | `5.0.3` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.6.2` | `26.6.5` |
| [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) | `4.1.5` | `5.0.5` |
| [@vitest/ui](https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui) | `4.1.5` | `5.0.5` |
| [dotenv](https://github.com/motdotla/dotenv) | `17.4.2` | `18.0.8` |
| [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) | `17.24.0` | `18.5.0` |
| [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) | `64.0.0` | `78.0.0` |
| [execa](https://github.com/sindresorhus/execa) | `9.6.1` | `10.2.0` |
| [nock](https://github.com/nock/nock) | `14.0.15` | `15.0.2` |
| [oclif](https://github.com/oclif/oclif) | `4.23.0` | `6.0.10` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.5` | `5.0.5` |
| [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) | `6.9.1` | `7.0.1` |
| [tsup](https://github.com/egoist/tsup) | `8.5.1` | `9.0.0` |
| [@vercel/node](https://github.com/vercel/vercel/tree/HEAD/packages/node) | `5.7.15` | `24.0.3` |



Updates `@oclif/test` from 4.1.18 to 5.0.3
- [Release notes](https://github.com/oclif/test/releases)
- [Changelog](https://github.com/oclif/test/blob/main/CHANGELOG.md)
- [Commits](oclif/test@4.1.18...5.0.3)

Updates `@types/node` from 25.6.2 to 26.6.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@vitest/coverage-v8` from 4.1.5 to 5.0.5
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v5.0.5/packages/coverage-v8)

Updates `@vitest/ui` from 4.1.5 to 5.0.5
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v5.0.5/packages/ui)

Updates `dotenv` from 17.4.2 to 18.0.8
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](motdotla/dotenv@v17.4.2...v18.0.8)

Updates `eslint-plugin-n` from 17.24.0 to 18.5.0
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)
- [Commits](eslint-community/eslint-plugin-n@v17.24.0...v18.5.0)

Updates `eslint-plugin-unicorn` from 64.0.0 to 78.0.0
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](sindresorhus/eslint-plugin-unicorn@v64.0.0...v78.0.0)

Updates `execa` from 9.6.1 to 10.2.0
- [Release notes](https://github.com/sindresorhus/execa/releases)
- [Commits](sindresorhus/execa@v9.6.1...v10.2.0)

Updates `nock` from 14.0.15 to 15.0.2
- [Release notes](https://github.com/nock/nock/releases)
- [Changelog](https://github.com/nock/nock/blob/main/CHANGELOG.md)
- [Commits](nock/nock@v14.0.15...v15.0.2)

Updates `oclif` from 4.23.0 to 6.0.10
- [Release notes](https://github.com/oclif/oclif/releases)
- [Changelog](https://github.com/oclif/oclif/blob/main/CHANGELOG.md)
- [Commits](oclif/oclif@4.23.0...6.0.10)

Updates `vitest` from 4.1.5 to 5.0.5
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v5.0.5/packages/vitest)

Updates `@testing-library/jest-dom` from 6.9.1 to 7.0.1
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](testing-library/jest-dom@v6.9.1...v7.0.1)

Updates `tsup` from 8.5.1 to 9.0.0
- [Release notes](https://github.com/egoist/tsup/releases)
- [Commits](egoist/tsup@v8.5.1...v9.0.0)

Updates `@vercel/node` from 5.7.15 to 24.0.3
- [Release notes](https://github.com/vercel/vercel/releases)
- [Changelog](https://github.com/vercel/vercel/blob/main/packages/node/CHANGELOG.md)
- [Commits](https://github.com/vercel/vercel/commits/HEAD/packages/node)

---
updated-dependencies:
- dependency-name: "@oclif/test"
  dependency-version: 5.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: "@types/node"
  dependency-version: 26.6.5
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 5.0.5
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: "@vitest/ui"
  dependency-version: 5.0.5
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: dotenv
  dependency-version: 18.0.8
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: eslint-plugin-n
  dependency-version: 18.5.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: eslint-plugin-unicorn
  dependency-version: 78.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: execa
  dependency-version: 10.2.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: nock
  dependency-version: 15.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: oclif
  dependency-version: 6.0.10
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: vitest
  dependency-version: 5.0.5
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: "@testing-library/jest-dom"
  dependency-version: 7.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: tsup
  dependency-version: 9.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
- dependency-name: "@vercel/node"
  dependency-version: 24.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: dev-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@vercel

vercel Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
cli-web-cli Ready Ready Preview Oct 26, 2026 9:38am UTC

Request Review

@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Oct 26, 2026
eslint-plugin-unicorn jumped from v64 to v78, introducing 60+ new rules
in the recommended config and a bug in logical-assignment-operators where
defaultOptions resolves to [null], failing ESLint 10 schema validation.

Changes:
- Explicitly set unicorn/logical-assignment-operators to ["error", "always"]
  to work around the broken defaultOptions: [null] in the rule's meta
- Disable all new rules added between v65–v78 that weren't enforced before
  (name-replacements, no-top-level-side-effects, consistent-boolean-name,
  etc.) — 62 new rules with 2,700+ violations; defer adoption for a
  dedicated PR
- Exempt **/hooks/command_not_found/** from unicorn/filename-case since
  oclif uses underscore naming for hook directories
- Fix two unicorn/logical-assignment-operators violations in test file
  (= x || y → ||=)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ci-lockfile-regen

Copy link
Copy Markdown

Dependabot Fix Assessment

Package: `eslint-plugin-unicorn` `64.0.0` → `78.0.0` (major, +14 packages total in group bump)
Scope: devDependency
Workspace: root

What changed upstream

  • eslint-plugin-unicorn v65–v78 added 60+ new rules to the recommended config
  • A bug in v78: `logical-assignment-operators` sets `defaultOptions: [null]` (because `baseRule.meta.defaultOptions` is `undefined`, so `[undefined]` → `[null]`), which fails ESLint 10's `oneOf` schema validation requiring `"always"` or `"never"`
  • The `filename-case` rule in v78 now also checks directory names (not just files), catching `command_not_found` directories that use oclif's underscore hook naming convention

Migration concerns checked

  • Peer dependencies: OK
  • Type changes: OK
  • Config files: Fixed — `eslint.config.js` needed updates for new rules and the schema bug
  • Module format: OK
  • React compatibility: OK
  • Monorepo impact: OK — only root `eslint.config.js` affected

What broke

  • Lint check (all 3 CI workflows): `unicorn/logical-assignment-operators` rule crashes ESLint with schema validation error due to `defaultOptions: [null]` bug in unicorn v78

What was fixed

  1. Added `"unicorn/logical-assignment-operators": ["error", "always"]` — explicit options override the broken `defaultOptions: [null]`
  2. Disabled 62 new unicorn rules added in v65–v78 (2,700+ violations across the codebase — deferring adoption to a dedicated PR)
  3. Added a `/hooks/command_not_found/` override to disable `unicorn/filename-case` — oclif uses underscore naming for hook directories
  4. Fixed 2 actual `logical-assignment-operators` violations in `test/hooks/command_not_found/did-you-mean.test.ts` (`x = x || y` → `x ||= y`)

Verification

  • Build: ✅ (pnpm prepare)
  • Lint: ✅ (0 errors, 10 pre-existing warnings)
  • Unit tests: ✅ (188 files, 2645 tests passed)
  • Web CLI tests: not run locally (CI will validate)

Notes for reviewer

  • The 62 disabled rules represent genuinely useful new linting from unicorn v65–v78. A follow-up PR should evaluate which ones to adopt and fix the violations — particularly `unicorn/no-unsafe-string-replacement`, `unicorn/no-multiple-promise-resolver-calls`, and `unicorn/no-duplicate-if-branches` which catch real bugs.
  • The `logical-assignment-operators` bug is in eslint-plugin-unicorn itself; the explicit `["error", "always"]` config is the correct workaround until upstream fixes it.

@ci-lockfile-regen

Copy link
Copy Markdown

Dependabot Fix Assessment

Package group: dev-major (14 packages) — all major version bumps
Scope: devDependencies (build tools, linters, test framework)
Workspace: root

Packages updated

Package From To Type
@oclif/test 4.1.18 5.0.3 major
@types/node 25.6.2 26.6.5 major
@vitest/coverage-v8 4.1.5 5.0.5 major
@vitest/ui 4.1.5 5.0.5 major
dotenv 17.4.2 18.0.8 major
eslint-plugin-n 17.24.0 18.5.0 major
eslint-plugin-unicorn 64.0.0 78.0.0 major (+14 versions)
execa 9.6.1 10.2.0 major
nock 14.0.15 15.0.2 major
oclif 4.23.0 6.0.10 major
vitest 4.1.5 5.0.5 major
@testing-library/jest-dom 6.9.1 7.0.1 major
tsup 8.5.1 9.0.0 major
@vercel/node 5.7.15 24.0.3 major

What broke and what was fixed

1. Lockfile mismatch (ERR_PNPM_LOCKFILE_CONFIG_MISMATCH)
The overrides section in package.json (added by a previous security audit commit) wasn't yet recorded in pnpm-lock.yaml. Fixed by b70c62d (lockfile regeneration).

2. ESLint failures (2,779 errors across the entire codebase)
eslint-plugin-unicorn jumped from v64 to v78, introducing 70+ new rules in the recommended config. Two sub-issues:

  • Schema validation bug: unicorn/logical-assignment-operators v78 sets defaultOptions: [null] in its rule meta. ESLint 10 applies this as the default options array when the rule is configured as plain "error", but the schema only accepts "always" or "never" — null fails validation. Fixed by explicitly configuring the rule as ["error", "always"].

  • New recommended rules: ~70 rules added between v65–v78 were all enabled in the recommended config, producing 2,779 violations across existing code that was clean under v64. Fixed in fca10153 by disabling all new rules in eslint.config.js with a comment marking them for future adoption. Examples of new rules disabled: unicorn/name-replacements, unicorn/consistent-boolean-name, unicorn/no-top-level-assignment-in-function, unicorn/consistent-class-member-order, unicorn/no-asterisk-prefix-in-documentation-comments.

  • Actual violation: Two unicorn/logical-assignment-operators violations in test/hooks/command_not_found/did-you-mean.test.ts (lines 385–386) were fixed by converting x = x || y → x ||= y.

Migration concerns checked

  • Peer dependencies: OK — no conflicts
  • Type changes: OK — @types/node 26.x adds new Node.js APIs but nothing was removed that we use
  • Config files: Fixed (eslint.config.js updated for unicorn v78)
  • Module format: OK — all packages still ESM-compatible
  • React compatibility: OK — no React version changes in this group
  • Monorepo impact: OK — React Web CLI tests pass; vitest 5 is compatible

Verification

  • Install (pnpm install --frozen-lockfile): ✅
  • Build (pnpm prepare): ✅
  • Lint (pnpm exec eslint .): ✅ (0 errors, 10 pre-existing warnings)
  • Unit tests (pnpm test:unit): ✅ (188 passed, 1 skipped)
  • Web CLI tests (pnpm --filter @ably/react-web-cli test): ✅ (57 passed, 6 skipped)

Notes for reviewer

The 70+ disabled unicorn rules are all new style/lint rules — none are correctness or security rules. They can be adopted incrementally in dedicated PRs. The most impactful ones to consider adopting first would be unicorn/logical-assignment-operators (already enabled — ||= style), unicorn/prefer-early-return, and unicorn/no-unnecessary-global-this.

This branch was successfully deployed

1 active deployment
Preview — fca10153 Deployed Oct 26, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Development

Successfully merging this pull request may close these issues.

0 participants