chore(deps): bump jsdom from 24.1.3 to 29.1.1#43
Conversation
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
Dependency Changes DetectedThis PR modifies dependency files. Please review whether these changes are intentional. Changed files:
Maintainer checklist:
|
lml2468
left a comment
There was a problem hiding this comment.
[APPROVE — self-review, posting as COMMENT] Acceptable major bump for a dev-only dependency.
jsdom 24.1.3 → 29.1.1 (five major versions):
✅ jsdom is a devDependency used only in tests (vitest jsdom environment). Production bundle is not affected.
✅ CSS parser deps updated (@csstools/* 3→4, new @asamuzakjp/* packages) — these are jsdom internals, not user-facing.
✅ New DOM selector engine (@asamuzakjp/dom-selector) replacing older nwsapi — improved spec compliance.
🟡 Minor concern: jsdom 24→29 includes breaking changes (stricter HTML parsing, removed deprecated APIs). Existing tests that rely on lenient jsdom behavior may break. Recommend running the test suite locally before merging and checking CI results carefully.
🔵 lru-cache removed as transitive dep (replaced by @asamuzakjp/generational-cache) — expected cleanup.
Ready to merge once CI confirms tests pass.
Jerry-Xin
left a comment
There was a problem hiding this comment.
Summary: The dependency update is project-relevant, but it breaks the repository’s existing Node 18 CI test lane.
🔴 Blocking
🔴 Critical — jsdom@29.1.1 no longer supports Node 18, but CI still runs tests on Node 18.
package.json:33 upgrades jsdom to ^29.1.1, and package-lock.json:2905-2906 records its engine as ^20.19.0 || ^22.13.0 || >=24.0.0. The repository CI matrix still includes Node 18 at .github/workflows/ci.yml:77, then runs npm test at .github/workflows/ci.yml:86. I reproduced the failure with the PR branch installed by running npx -p node@18 node ./node_modules/vitest/vitest.mjs run; Vitest fails while setting up the jsdom environment with ERR_REQUIRE_ESM from html-encoding-sniffer importing @exodus/bytes. This means the PR will break the current required test path unless the project drops Node 18 in CI/docs/Docker expectations or the dependency is pinned to a Node-18-compatible jsdom version.
💬 Non-blocking
🟡 Warning — Dockerfile:1 still uses node:18-alpine for the build image. This PR’s app build path may not import jsdom, so it is secondary to the failing test lane, but it leaves the repository with mixed Node support signals after introducing a dev dependency that explicitly requires Node 20.19+.
✅ Highlights
The PR is in scope for octo-admin because vite.config.ts uses environment: 'jsdom' for Vitest. On the current local Node 24.10.0 runtime, npm ci, npm test, and npm run build completed successfully.
lml2468
left a comment
There was a problem hiding this comment.
[CHANGES_REQUESTED] Independent cross-review.
🔴 Blocking: CI red — ESM/CJS incompatibility with vitest 2.x
Unlike the ERESOLVE failures in PRs #42/#44, this one installs fine but fails at test runtime:
Error: require() of ES Module .../node_modules/@exodus/bytes/encoding-lite.js
from .../node_modules/html-encoding-sniffer/lib/html-encoding-sniffer.js not supported.
Code: ERR_REQUIRE_ESM
Root cause: jsdom 29.x replaced the deprecated whatwg-encoding with @exodus/bytes (ESM-only). html-encoding-sniffer uses require() to load it, which fails under vitest 2.x's CJS-based module resolution.
Required fix: jsdom 25+ needs vitest 3+ for proper ESM dependency handling. This PR must wait until vitest is upgraded (see PR #42 discussion about grouping). Alternatively, stay on jsdom 24.x.
Recommended Dependabot grouping to prevent this class of issues:
groups:
test-infra:
patterns:
- "vitest"
- "@vitest/*"
- "jsdom"This ensures jsdom and vitest move together since they have implicit ESM compatibility constraints.
Bumps [jsdom](https://github.com/jsdom/jsdom) from 24.1.3 to 29.1.1. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](jsdom/jsdom@v24.1.3...v29.1.1) --- updated-dependencies: - dependency-name: jsdom dependency-version: 29.1.1 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
07bec70 to
b0c943b
Compare
Bumps jsdom from 24.1.3 to 29.1.1.
Release notes
Sourced from jsdom's releases.
... (truncated)
Commits
9b9ea7e29.1.107efb78Optimize computed style comparison5f66329Fix background-origin/background-clip in background shorthandad8af77Fix border shorthand handling5a3e88e29.1.073db204Update dependencies and dev dependenciesa7168a5Support ratio CSS unit type15346e0Fix style cache invalidation2a1e2cd29.0.24097d66Resolve computed CSS values lazily in CSSStyleDeclarationMaintainer changes
This version was pushed to npm by GitHub Actions, a new releaser for jsdom since your current version.
Install script changes
This version modifies
preparescript that runs during installation. Review the package contents before updating.