Skip to content

chore(deps): jsdom 30 and an .nvmrc for the Node floor - #57

Merged
ByteMeBaby merged 1 commit into
mainfrom
chore/deps-jsdom-30
Aug 2, 2026
Merged

chore(deps): jsdom 30 and an .nvmrc for the Node floor#57
ByteMeBaby merged 1 commit into
mainfrom
chore/deps-jsdom-30

Conversation

@ByteMeBaby

Copy link
Copy Markdown
Owner

Last of the three updates held back from #52. Supersedes #55, which closes out the Dependabot backlog.

What this changes

  • jsdom 29.1.1 -> 30.0.1 (apps/web, packages/ui)
  • New .nvmrc pinning Node 24.18.1

Why the .nvmrc

jsdom 30 declares engines: ^22.22.2 || ^24.15.0 || >=26.0.0. The toolchain here was on Node 24.8.0, which satisfies none of them, since ^24.15.0 means >=24.15.0 <25.0.0.

Nothing was enforcing that range. There is no engine-strict setting, and the component tests do pass on 24.8.0 today, so this was not a hard block. The floor still matters: any jsdom patch release is free to start using an API that only exists above it, and there was nothing in the repo recording the requirement. The .nvmrc makes it explicit and gives nvm use something to read.

24.18.1 is the current Krypton LTS.

Verification

Run on Node 24.18.1:

  • pnpm install reports no EBADENGINE or unmet peer warnings.
  • All four gates pass uncached under TURBO_FORCE=true.
  • pnpm test:e2e passes.
  • The 9 component test files in packages/ui and the 1 in apps/web run against the new jsdom and pass.

Also checked on Node 24.8.0 to establish whether the engine range was load-bearing: the component tests pass there too. That is why this is framed as recording a floor rather than fixing a break.

After merging

Anyone with an existing shell will still be on their old Node. nvm use in the repo root now picks up 24.18.1 from the .nvmrc.

With this, no Dependabot PRs remain open. typescript 7.0.2 is still outstanding and is not installable: typescript-eslint@8.65.0 declares a peer of typescript: >=4.8.4 <6.1.0, so it stays out until typescript-eslint widens that range.

jsdom 30 declares engines ^22.22.2 || ^24.15.0 || >=26.0.0. The toolchain
was on Node 24.8.0, which satisfies none of those, so this adds an .nvmrc
pinning 24.18.1 (current Krypton LTS) rather than leaving the repo running
below a dependency's supported range with nothing recording it.

Nothing enforced that range: there is no engine-strict setting, and the
component tests do pass on 24.8.0 today. The floor still matters, because
any jsdom patch is free to start using an API that only exists above it.

- jsdom 29.1.1 -> 30.0.1 (apps/web, packages/ui)
- .nvmrc pinning Node 24.18.1

Supersedes Dependabot #55.

Verified locally on Node 24.18.1: pnpm install reports no engine warnings,
and build, lint, typecheck, test, and the e2e spec all pass. The 9 component
test files in packages/ui run against the new jsdom.
@ByteMeBaby
ByteMeBaby merged commit 703c4ad into main Aug 2, 2026
2 checks passed
@ByteMeBaby
ByteMeBaby deleted the chore/deps-jsdom-30 branch August 2, 2026 19:35
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.

1 participant