Skip to content

build: update dependency jsdom to v29 (main)#32770

Open
angular-robot wants to merge 1 commit intoangular:mainfrom
angular-robot:ng-renovate/main-jsdom-29-x
Open

build: update dependency jsdom to v29 (main)#32770
angular-robot wants to merge 1 commit intoangular:mainfrom
angular-robot:ng-renovate/main-jsdom-29-x

Conversation

@angular-robot
Copy link
Contributor

@angular-robot angular-robot commented Mar 16, 2026

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
jsdom 28.1.029.0.0 age adoption passing confidence

Release Notes

jsdom/jsdom (jsdom)

v29.0.0

Compare Source

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/cssom and cssstyle dependencies with fresh internal implementations built on webidl2js wrappers and the css-tree parser. Serialization, parsing, and API behavior is improved in various ways, especially around edge cases.
  • Added CSSCounterStyleRule and CSSNamespaceRule to jsdom Windows.
  • Added cssMediaRule.matches and cssSupportsRule.matches getters.
  • Added proper media query parsing in MediaList, using css-tree instead of naive comma-splitting. Invalid queries become "not all" per spec.
  • Added cssKeyframeRule.keyText getter/setter validation.
  • Added cssStyleRule.selectorText setter validation: invalid selectors are now rejected.
  • Added styleSheet.ownerNode, styleSheet.href, and styleSheet.title.
  • Added bad port blocking per the fetch specification, preventing fetches to commonly-abused ports.
  • Improved Document initialization performance by lazily initializing the CSS selector engine, avoiding ~0.5 ms of overhead per Document. (@​thypon)
  • Fixed a memory leak when stylesheets were removed from the document.
  • Fixed CSSStyleDeclaration modifications to properly trigger custom element reactions.
  • Fixed nested @media rule parsing.
  • Fixed CSSStyleSheet's "disallow modification" flag not being checked in all mutation methods.
  • Fixed XMLHttpRequest's response getter returning parsed JSON during the LOADING state instead of null.
  • Fixed getComputedStyle() crashing in XHTML documents when stylesheets contained at-rules such as @page or @font-face.
  • Fixed a potential hang in synchronous XMLHttpRequest caused by a race condition with the worker thread's idle timeout.

  • If you want to rebase/retry this PR, check this box

See associated pull request for more information.
@angular-robot angular-robot added action: merge The PR is ready for merge by the caretaker area: build & ci Related the build and CI infrastructure of the project target: automation This PR is targeted to only merge into the branch defined in Github [bot use only] labels Mar 16, 2026
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the jsdom dependency from version 28.1.0 to 29.0.0, a major version update. The changes are reflected in package.json files and the pnpm-lock.yaml lockfile, including updates to transitive dependencies. According to the release notes, this version of jsdom introduces a breaking change related to the minimum supported Node.js version and includes a significant overhaul of its CSSOM implementation. The lockfile has been updated accordingly. No other code changes are included in this pull request.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the jsdom dependency from 28.1.0 to 29.0.0. This is a major version update that, according to the release notes, introduces a breaking change by requiring Node.js v22.13.0+ (previously v22.12.0+). The update also brings significant improvements, including a completely overhauled CSSOM implementation, which removes dependencies on @acemir/cssom and cssstyle, along with numerous bug fixes and performance enhancements. The changes to package.json files and the pnpm-lock.yaml are consistent and reflect this upgrade. As long as the CI pipeline passes, this update is beneficial and recommended for merging.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the jsdom dependency from version 28.1.0 to 29.0.0. This is a major version update which introduces some breaking changes, most notably an increase in the minimum required Node.js v22 version. The changes in package.json files and the pnpm-lock.yaml are consistent with this update and the release notes for jsdom v29. The lockfile correctly reflects the updated main dependency, its new transitive dependencies, and the removal of old ones.

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

Labels

action: merge The PR is ready for merge by the caretaker area: build & ci Related the build and CI infrastructure of the project target: automation This PR is targeted to only merge into the branch defined in Github [bot use only]

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants