chore(deps-dev): bump jsdom from 27.4.0 to 29.1.1
Bumps jsdom from 27.4.0 to 29.1.1.
Release notes
Sourced from jsdom's releases.
v29.1.1
- Fixed
'border-radius'computed style serialization. (@asamuzaK)- Fixed computed style computation when using
'background-origin'and'background-clip'CSS properties. (@asamuzaK)- Significantly optimized initial calls to
getComputedStyle(), before the cache warms up. (@asamuzaK)v29.1.0
- Added basic support for the ratio CSS type. (
@asamuzaK)- Fixed
getComputedStyle()sometimes returning outdated results after CSS was modified. (@asamuzaK)v29.0.2
- Significantly improved and sped up
getComputedStyle(). Computed value rules are now applied across a broader set of properties, and include fixes related to inheritance, defaulting keywords, custom properties, and color-related values such ascurrentcolorand system colors. (@asamuzaK)- Fixed CSS
'background' and'border'shorthand parsing. (@asamuzaK)v29.0.1
- Fixed CSS parsing of
'border','background', and their sub-shorthands containing keywords orvar(). (@asamuzaK)- Fixed
getComputedStyle()to return a more functionalCSSStyleDeclarationobject, including indexed access support, which regressed in v29.0.0.v29.0.0
Breaking changes:
- Node.js v22.13.0+ is now the minimum supported v22 version (was v22.12.0+).
Other changes:
- Overhauled the CSSOM implementation, replacing the
@acemir/cssomandcssstyledependencies with fresh internal implementations built on webidl2js wrappers and thecss-treeparser. Serialization, parsing, and API behavior is improved in various ways, especially around edge cases.- Added
CSSCounterStyleRuleandCSSNamespaceRuleto jsdomWindows.- Added
cssMediaRule.matchesandcssSupportsRule.matchesgetters.- Added proper media query parsing in
MediaList, usingcss-treeinstead of naive comma-splitting. Invalid queries become"not all"per spec.- Added
cssKeyframeRule.keyTextgetter/setter validation.- Added
cssStyleRule.selectorTextsetter validation: invalid selectors are now rejected.- Added
styleSheet.ownerNode,styleSheet.href, andstyleSheet.title.- Added bad port blocking per the fetch specification, preventing fetches to commonly-abused ports.
- Improved
Documentinitialization performance by lazily initializing the CSS selector engine, avoiding ~0.5 ms of overhead perDocument. (@thypon)- Fixed a memory leak when stylesheets were removed from the document.
- Fixed
CSSStyleDeclarationmodifications to properly trigger custom element reactions.- Fixed nested
@mediarule parsing.- Fixed
CSSStyleSheet's "disallow modification" flag not being checked in all mutation methods.- Fixed
XMLHttpRequest'sresponsegetter returning parsed JSON during theLOADINGstate instead ofnull.- Fixed
getComputedStyle()crashing in XHTML documents when stylesheets contained at-rules such as@pageor@font-face.- Fixed a potential hang in synchronous
XMLHttpRequestcaused by a race condition with the worker thread's idle timeout.v28.1.0
- Added
blob.text(),blob.arrayBuffer(), andblob.bytes()methods.- Improved
getComputedStyle()to account for CSS specificity when multiple rules apply. (@asamuzaK)- Improved synchronous
XMLHttpRequestperformance by using a persistent worker thread, avoiding ~400ms of setup overhead on every synchronous request after the first one.- Improved performance of
node.getRootNode(),node.isConnected, andevent.dispatchEvent()by caching the root node of document-connected trees.- Fixed
getComputedStyle()to correctly handle!importantpriority. (@asamuzaK)- Fixed
document.getElementById()to return the first element in tree order when multiple elements share the same ID.- Fixed
<svg>elements to no longer incorrectly proxy event handlers to theWindow.- Fixed
FileReaderevent timing andfileReader.resultstate to more closely follow the spec.
... (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 CSSStyleDeclaration- Additional commits viewable in compare view
Maintainer 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 prepare script that runs during installation. Review the package contents before updating.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Summary by cubic
Upgrade jsdom from 27.4.0 to 29.1.1 to improve test accuracy and performance, especially around CSSOM and getComputedStyle. This affects our Vitest jsdom environment and raises the minimum Node version for dev/tests.
-
Dependencies
- Bump
jsdomto29.1.1with a revamped CSSOM, fastergetComputedStyle, more accurate CSS parsing/serialization, and updated internals (css-tree,undici, etc.).
- Bump
-
Migration
- Requires Node.js v22.13+ for dev/tests (update local and CI Node versions if needed).
- CSS behavior and serialization are stricter; update snapshots or assertions if they rely on previous edge cases.
- Tests that mock network APIs may see differences (
undici, bad-port blocking); adjust mocks where necessary.