Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Sep 26, 2025

This PR contains the following updates:

Package Change Age Confidence
jsdom ^24.0.0^27.0.0 age confidence
@types/jsdom (source) ^21.1.6^27.0.0 age confidence

Release Notes

jsdom/jsdom (jsdom)

v27.4.0

Compare Source

  • Added TextEncoder and TextDecoder.
  • Improved decoding of HTML bytes by using the new @exodus/bytes package; it is now much more correct. (ChALkeR)
  • Improved decoding of XML bytes to use UTF-8 more often, instead of sniffing for <meta charset> or using the parent frame's encoding.
  • Fixed a memory leak when Ranges were used and then the elements referred to by those ranges were removed.

v27.3.0

Compare Source

  • Improved CSS parsing and CSSOM object APIs via updates to @acemir/cssom. (acemir)

v27.2.0

Compare Source

  • Added CSSGroupingRule, CSSNestedDeclarations, CSSConditionRule, CSSContainerRule, CSSScopeRule, CSSSupportsRule, CSSLayerBlockRule, and CSSLayerStatementRule to jsdom Windows. (acemir)
  • Improved CSS parsing and CSSOM object APIs via updates to @acemir/cssom. (acemir)
  • Fixed @import-ed stylesheets to be properly exposed to CSSOM, and not to overwrite the sheet created from the <link> or <style> element. (acemir)

v27.1.0

Compare Source

  • Improved CSS parsing by switching to @acemir/cssom, including support for nested selectors, nested declarations, layer statements, and improved at-rule validation. (acemir)
  • Fixed some selector cache invalidation issues where changes to attributes were not being picked up. (asamuzaK)
  • Fixed package.json "engines" field to reflect the new minimum Node.js versions needed to run jsdom, as noted in the changelog for v27.0.1.

v27.0.1

Compare Source

  • Fixed some regressions in CSS selectors. Most such regression fixes were done in a minor update of a dependency, and thus available for all fresh installs of v27.0.0. However, one related to class="" attribute changes is only possible with a new version of jsdom. (asamuzaK)

v27.0.0

Compare Source

Changes since 26.1.0
  • Node.js v20 is now the minimum supported version.
  • Added a variety of event constructors, even though we do not implement their associated specifications or ever fire them: BeforeUnloadEvent, BlobEvent, DeviceMotionEvent (omitting requestPermission()), DeviceOrientationEvent (omitting requestPermission()), PointerEvent, PromiseRejectionEvent, and TransitionEvent.
  • Added movementX and movementY to MouseEvent. (These are from the Pointer Lock specification, the rest of which is not implemented.)
  • Added customElements.getName(). (mash-graz)
  • Updated the virtual console:
    • "jsdomError" events are now documented, with specific type properties and other properties that depend on the type.
    • sendTo() was renamed to forwardTo().
    • The jsdomErrors option to forwardTo() can be used to control which errors are sent to the Node.js console. This replaces the previous omitJSDOMErrors boolean option.
    • "jsdomError"s for failed XMLHttpRequest fetches are no longer emitted.
    • The values that are printed when forwarding "jsdomError"s to the Node.js console are streamlined.
  • Switched our CSS selector engine from nwsapi to @asamuzakjp/dom-selector, closing over 20 selector-related bugs.
  • Upgraded tough-cookie, which now considers URLs like http://localhost/ to be secure contexts (per the spec), and thus will return Secure-flagged cookies for such URLs. (colincasey)
  • Upgraded cssstyle, which brings along many improvements and fixes to the CSSStyleDeclaration object and its properties.
  • Updated the user agent stylesheet to be derived from the HTML Standard, instead of from an old revision of Chromium.
  • Changed element.click() to fire a PointerEvent instead of a MouseEvent.
  • Changed certain events to be passive by default.
  • Changed the <input> element's pattern="" attribute to use the v regular expression flag, instead of u.
  • Fixed many specification conformance issues with the Window object, including named properties and changing various data properties to accessor properties.
  • Fixed document.createEvent() to accept a more correct set of event names.
  • Fixed the ElementInternals accessibility getters and setters. (They were introduced in v23.1.0, but due to inadequate test coverage never actually worked.)
  • Fixed using Object.defineProperty() on certain objects, such as HTMLSelectElement instances.
  • Fixed jsdom.reconfigure({ url }) not updating document.baseURI or properties derived from it. (This regressed in v26.1.0.)
  • Fixed CSS system colors, as well as the initial, inherit, and unset keywords, to resolve correctly. (asamuzaK)
  • Fixed CSS display style resolution. (asamuzaK)
Changes since 27.0.0-beta.3
  • Upgraded cssstyle, which brings along various CSS parsing fixes.

v26.1.0

Compare Source

  • Added at least partial support for various SVG elements and their classes: <defs> (SVGDefsElement), <desc> (SVGDescElement), <g> (SVGGElement), <metadata> (SVGMetadataElement), <switch> (SVGSwitchElement), and <symbol> (SVGSymbolElement).
  • Added SVGAnimatedPreserveAspectRatio and SVGAnimatedRect, including support in the reflection layer.
  • Added the SVGSVGElement createSVGRect() method, and the SVGRect type (which is distinct from DOMRect.)
  • Added indexed property support to HTMLFormElement.
  • Updated the SVGElement viewportElement() method to correctly establish the viewport based on ancestor elements.
  • Removed the now-bloated form-data dependency in favor of our own smaller implementation of multipart/form-data serialization. No functional changes are expected.
  • Various performance improvements, caches, microoptimizations, and deferred object creation.

v26.0.0

Compare Source

Breaking change: canvas peer dependency requirement has been upgraded from v2 to v3. (sebastianwachter)

Other changes:

  • Added AbortSignal.any(). (jdbevan)
  • Added initial support for form-associated custom elements, in particular making them labelable and supporting the ElementInternals labels property. The form-associated callbacks are not yet supported. (hesxenon)
  • Updated whatwg-url, adding support for URL.parse().
  • Updated cssstyle and rrweb-cssom, to improve CSS parsing capabilities.
  • Updated nwsapi, improving CSS selector matching.
  • Updated parse5, fixing a bug around <noframes> elements and HTML entity decoding.
  • Fixed JSDOM.fromURL() to properly reject the returned promise if the server redirects to an invalid URL, instead of causing an uncaught exception.

v25.0.1

Compare Source

  • Updated dependencies, notably tough-cookie, which no longer prints a deprecation warning.

v25.0.0

Compare Source

This major release changes the prototype of a jsdom's EventTarget.prototype to point to the Object.prototype inside the jsdom, instead of pointing to the Node.js Object.prototype. Thus, the prototype chain of Window stays entirely within the jsdom, never crossing over into the Node.js realm.

This only occurs when runScripts is set to non-default values of "dangerously" or "outside-only", as with the default value, there is no separate Object.prototype inside the jsdom.

This will likely not impact many programs, but could cause some changes in instanceof behavior, and so out of an abundance of caution, we're releasing it as a new major version.


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


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

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/jsdom-27.x branch from b97481c to 69413b1 Compare September 29, 2025 23:47
@renovate renovate bot force-pushed the renovate/jsdom-27.x branch 2 times, most recently from 95af959 to 40f5a51 Compare October 21, 2025 19:47
@renovate renovate bot force-pushed the renovate/jsdom-27.x branch from 40f5a51 to 301535e Compare October 31, 2025 09:48
@renovate renovate bot force-pushed the renovate/jsdom-27.x branch 2 times, most recently from 668da5a to cb0e947 Compare November 12, 2025 05:54
@renovate renovate bot force-pushed the renovate/jsdom-27.x branch from cb0e947 to 963adc4 Compare November 18, 2025 23:31
@renovate renovate bot force-pushed the renovate/jsdom-27.x branch 2 times, most recently from d775bfe to fb4a287 Compare December 8, 2025 16:46
@renovate renovate bot force-pushed the renovate/jsdom-27.x branch 2 times, most recently from 1a9fc4f to 634e983 Compare December 31, 2025 18:50
@renovate renovate bot force-pushed the renovate/jsdom-27.x branch from 634e983 to 15b03f2 Compare January 8, 2026 20:42
@renovate renovate bot force-pushed the renovate/jsdom-27.x branch from 15b03f2 to f7b51d9 Compare January 19, 2026 16:54
@renovate renovate bot force-pushed the renovate/jsdom-27.x branch from f7b51d9 to e2dae0b Compare January 23, 2026 20:47
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.

0 participants