Skip to content

chore(deps): consolidate open Renovate and Dependabot updates - #192

Merged
verascheunert merged 1 commit into
mainfrom
chore/deps-mega-update
Nov 6, 2026
Merged

verascheunert merged 1 commit into
mainfrom
chore/deps-mega-update

Conversation

@verascheunert

Copy link
Copy Markdown
Contributor

Summary

Replaces the open bot PRs (11 Renovate, 7 Dependabot) plus the rate-limited items from the Dependency Dashboard with one branch built fresh from main.

 package.json              @types/node 24→26, faker 10.6, execa 10.2.1, tsdown 0.23.7, turbo 2.11.10, oxlint 1.92, oxfmt 0.77, npm 12.2.2
 packages/cli/package.json yargs 17→18, @napi-rs/keyring 1→2, dotenv 17→18, playwright 1.65
 packages/sdk/package.json p-retry 8→9, axios 1.20
 .node-version             24.22.1 → 26.13.0
 .github/workflows/*       setup-node 7.1.0, upload-artifact 7.0.2, download-artifact 8.0.2, codeql 4.39.3, sonarqube-scan 8.4.1, ketryx 2.0.0
 package-lock.json         regenerated; carries the Dependabot transitive bumps (axios, qs, brace-expansion, ip-address, markdown-it, source-map-js)

Code changes are confined to tests and tool config:

  • class mocks in cli.test.ts, cli-functions.spec.ts, auth.spec.ts, token-storage.spec.ts use function implementations (vitest 4+ rejects arrow functions for anything called with new, so this is ready for that upgrade)
  • vite.config.ts imports defineConfig from vitest/config
  • tsdown.config.ts external pattern now matches msw/node, which was being inlined into the published @aignostics/sdk/test bundle (565 KB → 24 KB)
  • yargs 18 resolves main() after --help instead of throwing; the help test asserts on the printed usage only

Deliberately left out, each needs its own decision

Evidence

Local on Node 24: build, typecheck, lint, format check, unit tests and coverage thresholds pass for both packages (12 test files). Built bin.cjs and bin.js run with ESM-only yargs 18 from a CJS entry.

The e2e job already fails on main (403 from staging on applications versions get), unrelated to this change.

Merge Danger

Door: two-way

Revert restores the previous lockfile and pins. Nothing is published by merge alone; release-please cuts the release.

Blast Radius: consumers

  • @aignostics/cli now depends on ESM-only yargs 18 (Node 20.19+, 22.12+ or newer) while engines still says >=18. Node 18 is EOL. I left engines alone; say the word and I bump it.
  • keyring 2 throws on a locked or inaccessible OS keychain instead of returning null. token-storage.ts already wraps every call in try/catch with a file fallback, so behavior is unchanged.
  • Ketryx action 2 runs on Node 24, fine on GitHub-hosted runners.

🤖 Generated with Claude Code

Dependencies: yargs 18, p-retry 9, @napi-rs/keyring 2, dotenv 18,
@types/node 26, plus patch and minor bumps for faker, execa, playwright,
tsdown, turbo, oxlint, oxfmt, axios and npm. Node 26 in .node-version.
Actions: setup-node 7.1.0, upload-artifact 7.0.2, download-artifact 8.0.2,
codeql-action 4.39.3, sonarqube-scan 8.4.1, ketryx-github-action 2.0.0.
Transitive security bumps from Dependabot land through the regenerated
lockfile.

Test and config fixes carried along:
- class mocks use function implementations (required by vitest 4+)
- vitest config imports defineConfig from vitest/config
- tsdown external for msw now covers msw/node, which was being bundled
- yargs 18 resolves main() after --help instead of throwing

Left out on purpose: openid-client 6 (full API rewrite of auth.ts),
TypeScript 7 (typedoc and tsdown dts need the 5.x API), and vitest 4/5
plus msw 3 (both pull vite 7+, whose lightningcss dependency is MPL-2.0,
which license-checking-config.json prohibits).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@ox-security

ox-security Bot commented Nov 6, 2026

Copy link
Copy Markdown

OX Security Logo

OX Security reviewed this pull request — nothing to fix.

✔ No issues found

Branch chore/deps-mega-update → main

View scan in OX Security →

@verascheunert

Copy link
Copy Markdown
Contributor Author

Answering a review question from @tobi-ax on auth.spec.ts (Client: vi.fn(() => mockClient) became vi.fn(function () { ... }), "Why?"):

auth.ts does new issuer.Client(...). vitest 4 changed vi.fn so an arrow function implementation can no longer be called with new, it throws "is not a constructor". Only function or class implementations work for that. Same for vi.mocked(Entry) in token-storage.spec.ts and AuthService in cli.test.ts.

vitest 5 was in this PR until the license hook blocked it (vite 7+ pulls in lightningcss, MPL-2.0), so the mocks got fixed first and the bump dropped later. I kept the mock change because it is harmless on vitest 3 and saves whoever does the upgrade from hitting it again.

Written with Claude.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants