chore(deps): update dependency jsdom to v30.1.0 #358

Merged
renovate merged 1 commits from renovate/jsdom-30.x into main 2026-09-20 02:19:19 +00:00
Owner

This PR contains the following updates:

Package Change Age Confidence
jsdom 30.0.1 → 30.1.0 age confidence

Release Notes

jsdom/jsdom (jsdom)

v30.1.0

Compare Source

jsdom is feeling the AGI!

This release is dedicated to @​scttcper, who unleashed @​codex upon jsdom and found tons of performance improvements. Along the way, he found and fixed many correctness issues as well.

We really appreciate his thoughtful PRs, which did a great job following the project's contribution guidelines, and were clearly human-curated, with their PR descriptions edited to be brief and respectful of the maintainers' time.

Thanks to @​scttcper, as well as all the other contributors of this release (most of whom were AI-assisted).

  • Added named access to elements on document, such as document.myForm for <form name="myForm">. (@​vojtisprime11)
  • Added QuotaExceededError, including its use for storage quota errors and oversized crypto.getRandomValues() requests.
  • Added support for the relaxed DOM naming rules when creating elements, attributes, and document types.
  • Improved performance of DOM construction, tree mutations, range operations, and live collection access, especially on large documents. (@​scttcper, @​erezrokah)
  • Improved performance of getComputedStyle(), style changes, and CSS serialization. (@​scttcper, @​jhult)
  • Improved performance of event dispatch, form control and label lookups, and updates to <select> elements and radio button groups. (@​scttcper)
  • Reduced memory use when creating and working with DOM nodes, attributes, event listeners, and mutation observers. (@​scttcper)
  • Changed window.close() to preserve access to the document and its DOM through retained references.
  • Fixed element.querySelectorAll() returning no matches when the first part of the selector matches the element itself, which regressed in v30.0.0. (@​asamuzaK)
  • Fixed case sensitivity in CSS attribute selectors, including selectors matching data-state="", title="", and other case-sensitive values. (@​asamuzaK)
  • Fixed document.querySelector() failing to find a matching element when an earlier element has the same ID but does not match the rest of the selector. (@​vojtisprime11)
  • Fixed :focus matching in shadow trees. (@​asamuzaK)
  • Fixed DOM insertion and replacement, including valid document.replaceChildren() calls, invalid document element and doctype placements, and mutations during element.replaceWith().
  • Fixed the ordering of script execution, custom element callbacks, iframe loading, and mutation observer notifications during DOM insertion, including in shadow trees.
  • Fixed queued events and navigation continuing after window.close() or iframe removal, and prevented new scripts, resource loads, timers, and animation frames from starting in destroyed documents. (@​scttcper)
  • Fixed parent documents waiting indefinitely for loading to finish when a child iframe removes itself during loading.
  • Fixed request cancellation across redirects, during pending requestInterceptor() callbacks, and when reusing an XMLHttpRequest after aborting it.
  • Fixed resource loading and JSDOM.fromURL() potentially hanging when response handling throws and response stream cleanup does not finish.
  • Fixed successful cached resource loads being treated as aborted.
  • Fixed getComputedStyle() and document.styleSheets using the wrong stylesheet order after inserting or updating <style> elements.
  • Fixed getComputedStyle() ignoring nested @import and @media rules in imported stylesheets, and returning stale results after imports finish loading.
  • Fixed style invalidation, stylesheet removal, and frame source updates in shadow trees.
  • Fixed repeated getComputedStyle() calls changing case-sensitive background URLs, and inconsistent resolution of border shorthands containing system colors. (@​scttcper)
  • Fixed computed border widths, including borderless elements incorrectly reporting 16px, which regressed in v30.0.0. (@​Alberto-BaseNet)
  • Fixed getComputedStyle() to resolve 'font-weight' keywords to numeric values. (@​tianrking)
  • Fixed getComputedStyle() to convert lengths to pixels inside CSS math functions containing percentages, and to resolve percentages in 'font-size' math functions. (@​soroushm)
  • Fixed serialization of min() and max() containing nested calc(), which regressed in v30.0.0. (@​asamuzaK)
  • Fixed CSS values mixing lengths or percentages with math functions, such as 'grid-template-columns' values containing both 100px and calc(). (@​rome-xi)
  • Fixed parsing of 'background' and 'border' shorthands with adjacent components, such as url(a.png)no-repeat, including a crash when parsing inline styles. Also fixed handling of invalid shorthand assignments and escaped or unusual characters in CSS declarations. (@​asamuzaK)
  • Fixed parsing of unitless zero values in 'flex' shorthands, such as 35 1 0, and rejection of negative 'flex-basis' lengths and percentages. (@​asamuzaK)
  • Fixed shorthand style assignments producing extra mutation records and custom element callbacks for intermediate values. (@​scttcper)
  • Fixed Range and Selection handling of CDATA sections, including boundary offsets and range cloning, extraction, deletion, insertion, and stringification. (@​scttcper)
  • Fixed text.normalize() incorrectly removing the text node or merging its siblings. (@​scttcper)
  • Fixed cloning and importing CDATA sections and processing instructions whose contents have been modified, and serialization of CDATA sections adopted into HTML documents.
  • Fixed stale named-property collections on window, and incorrect named access from empty or namespaced id="" and name="" values. (@​scttcper)
  • Fixed elements in documents created with DOMParser or document.implementation.createHTMLDocument() appearing as named properties on window and being retained in memory. (@​Iaotle)
  • Fixed memory leaks from mutation observers retaining observed nodes, abort signals retaining removed event listeners, and storage event tracking retaining closed windows. (@​scttcper)
  • Fixed storage events being sent to windows created after the storage change, and ensured surviving recipients still receive events when the source document is destroyed.
  • Fixed attribute lookups after namespace prefix changes, and namespaced attributes incorrectly affecting ID lookups and element behavior. (@​scttcper)
  • Fixed input.list in detached element trees. (@​scttcper)
  • Fixed attr.ownerDocument after setting an attribute node on an element in another document or adopting its element. (@​Kjubikstronk)
  • Fixed fresh element.getElementsByTagName() calls using the previous document's case-sensitivity rules after adoption between HTML and XML documents. (@​Kjubikstronk)
  • Fixed element.tagName returning stale casing after adoption between HTML and XML documents.
  • Fixed radio button grouping and checkedness updates for controls with different form owners, controls outside their form, unnamed controls, and canceled clicks.
  • Fixed <select> selection updates when moving options, and unintended selection resets when moving a whole <select> or changing unrelated descendants.
  • Fixed cloning <input> elements to preserve input.indeterminate.
  • Fixed focus state after removing a focused element or its ancestor, including inside shadow trees.
  • Fixed script execution when inserting children into a connected, empty <script>. (@​Kjubikstronk)
  • Fixed incorrect script execution after changes to src="", and handling of type="", for="", and event="".
  • Fixed document.currentScript during nested script execution and scripts in shadow trees.
  • Fixed event dispatch, window.event, and default passive listener handling for non-node event targets, and event dispatch when user code modifies window.constructor.
  • Fixed volumechange and ratechange events to fire asynchronously. (@​christianaurichzm)
  • Fixed DOM APIs accepting user-created proxies around DOM objects where genuine DOM objects are required.
  • Fixed XPath iterator invalidation after DOM mutations and errors for invalid result types.
  • Fixed NodeIterator traversal when its filter removes nodes.
  • Fixed fileReader.readAsText() to honor the blob's MIME type charset when no supported explicit encoding is supplied.
  • Fixed fractional seconds in time input parsing and serialization. (@​Jaybhade)
  • Fixed large input.valueAsNumber assignments for time and local date/time inputs.
  • Fixed hard wrapping of <textarea> values to use the numeric textarea.cols value.
  • Fixed document.readyState to be "complete" for documents created with document.implementation.createDocument() and document.implementation.createHTMLDocument().
  • Fixed element.translate for empty translate="" values and elements without a parent.
  • Fixed XML parsing of lone surrogates to replace them with the Unicode replacement character.
  • Fixed node.lookupNamespaceURI() for the xml and xmlns prefixes. (@​vojtisprime11)
  • Fixed <base> elements to ignore data: and javascript: URLs. (@​vojtisprime11)
  • Fixed svgElement.viewportElement inside <symbol> elements.
  • Fixed the default blobEvent.timecode to be NaN.
  • Fixed the object shape and property descriptors of CSS.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

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


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

This PR has been generated by Mend Renovate CLI.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [jsdom](https://github.com/jsdom/jsdom) | [`30.0.1` → `30.1.0`](https://renovatebot.com/diffs/npm/jsdom/30.0.1/30.1.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/jsdom/30.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jsdom/30.0.1/30.1.0?slim=true) | --- ### Release Notes <details> <summary>jsdom/jsdom (jsdom)</summary> ### [`v30.1.0`](https://github.com/jsdom/jsdom/releases/tag/v30.1.0) [Compare Source](https://github.com/jsdom/jsdom/compare/v30.0.1...v30.1.0) jsdom is feeling the AGI! This release is dedicated to [@&#8203;scttcper](https://github.com/scttcper), who unleashed [@&#8203;codex](https://github.com/codex) upon jsdom and found tons of performance improvements. Along the way, he found and fixed many correctness issues as well. We really appreciate his thoughtful PRs, which did a great job following the project's contribution guidelines, and were clearly human-curated, with their PR descriptions edited to be brief and respectful of the maintainers' time. Thanks to [@&#8203;scttcper](https://github.com/scttcper), as well as all the other contributors of this release (most of whom were AI-assisted). - Added named access to elements on `document`, such as `document.myForm` for `<form name="myForm">`. ([@&#8203;vojtisprime11](https://github.com/vojtisprime11)) - Added `QuotaExceededError`, including its use for storage quota errors and oversized `crypto.getRandomValues()` requests. - Added support for the relaxed DOM naming rules when creating elements, attributes, and document types. - Improved performance of DOM construction, tree mutations, range operations, and live collection access, especially on large documents. ([@&#8203;scttcper](https://github.com/scttcper), [@&#8203;erezrokah](https://github.com/erezrokah)) - Improved performance of `getComputedStyle()`, style changes, and CSS serialization. ([@&#8203;scttcper](https://github.com/scttcper), [@&#8203;jhult](https://github.com/jhult)) - Improved performance of event dispatch, form control and label lookups, and updates to `<select>` elements and radio button groups. ([@&#8203;scttcper](https://github.com/scttcper)) - Reduced memory use when creating and working with DOM nodes, attributes, event listeners, and mutation observers. ([@&#8203;scttcper](https://github.com/scttcper)) - Changed `window.close()` to preserve access to the document and its DOM through retained references. - Fixed `element.querySelectorAll()` returning no matches when the first part of the selector matches the element itself, which regressed in v30.0.0. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed case sensitivity in CSS attribute selectors, including selectors matching `data-state=""`, `title=""`, and other case-sensitive values. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed `document.querySelector()` failing to find a matching element when an earlier element has the same ID but does not match the rest of the selector. ([@&#8203;vojtisprime11](https://github.com/vojtisprime11)) - Fixed `:focus` matching in shadow trees. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed DOM insertion and replacement, including valid `document.replaceChildren()` calls, invalid document element and doctype placements, and mutations during `element.replaceWith()`. - Fixed the ordering of script execution, custom element callbacks, iframe loading, and mutation observer notifications during DOM insertion, including in shadow trees. - Fixed queued events and navigation continuing after `window.close()` or iframe removal, and prevented new scripts, resource loads, timers, and animation frames from starting in destroyed documents. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed parent documents waiting indefinitely for loading to finish when a child iframe removes itself during loading. - Fixed request cancellation across redirects, during pending `requestInterceptor()` callbacks, and when reusing an `XMLHttpRequest` after aborting it. - Fixed resource loading and `JSDOM.fromURL()` potentially hanging when response handling throws and response stream cleanup does not finish. - Fixed successful cached resource loads being treated as aborted. - Fixed `getComputedStyle()` and `document.styleSheets` using the wrong stylesheet order after inserting or updating `<style>` elements. - Fixed `getComputedStyle()` ignoring nested `@import` and `@media` rules in imported stylesheets, and returning stale results after imports finish loading. - Fixed style invalidation, stylesheet removal, and frame source updates in shadow trees. - Fixed repeated `getComputedStyle()` calls changing case-sensitive background URLs, and inconsistent resolution of border shorthands containing system colors. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed computed border widths, including borderless elements incorrectly reporting `16px`, which regressed in v30.0.0. ([@&#8203;Alberto-BaseNet](https://github.com/Alberto-BaseNet)) - Fixed `getComputedStyle()` to resolve `'font-weight'` keywords to numeric values. ([@&#8203;tianrking](https://github.com/tianrking)) - Fixed `getComputedStyle()` to convert lengths to pixels inside CSS math functions containing percentages, and to resolve percentages in `'font-size'` math functions. ([@&#8203;soroushm](https://github.com/soroushm)) - Fixed serialization of `min()` and `max()` containing nested `calc()`, which regressed in v30.0.0. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed CSS values mixing lengths or percentages with math functions, such as `'grid-template-columns'` values containing both `100px` and `calc()`. ([@&#8203;rome-xi](https://github.com/rome-xi)) - Fixed parsing of `'background'` and `'border'` shorthands with adjacent components, such as `url(a.png)no-repeat`, including a crash when parsing inline styles. Also fixed handling of invalid shorthand assignments and escaped or unusual characters in CSS declarations. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed parsing of unitless zero values in `'flex'` shorthands, such as `35 1 0`, and rejection of negative `'flex-basis'` lengths and percentages. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed shorthand style assignments producing extra mutation records and custom element callbacks for intermediate values. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `Range` and `Selection` handling of CDATA sections, including boundary offsets and range cloning, extraction, deletion, insertion, and stringification. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `text.normalize()` incorrectly removing the text node or merging its siblings. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed cloning and importing CDATA sections and processing instructions whose contents have been modified, and serialization of CDATA sections adopted into HTML documents. - Fixed stale named-property collections on `window`, and incorrect named access from empty or namespaced `id=""` and `name=""` values. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed elements in documents created with `DOMParser` or `document.implementation.createHTMLDocument()` appearing as named properties on `window` and being retained in memory. ([@&#8203;Iaotle](https://github.com/Iaotle)) - Fixed memory leaks from mutation observers retaining observed nodes, abort signals retaining removed event listeners, and storage event tracking retaining closed windows. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `storage` events being sent to windows created after the storage change, and ensured surviving recipients still receive events when the source document is destroyed. - Fixed attribute lookups after namespace prefix changes, and namespaced attributes incorrectly affecting ID lookups and element behavior. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `input.list` in detached element trees. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `attr.ownerDocument` after setting an attribute node on an element in another document or adopting its element. ([@&#8203;Kjubikstronk](https://github.com/Kjubikstronk)) - Fixed fresh `element.getElementsByTagName()` calls using the previous document's case-sensitivity rules after adoption between HTML and XML documents. ([@&#8203;Kjubikstronk](https://github.com/Kjubikstronk)) - Fixed `element.tagName` returning stale casing after adoption between HTML and XML documents. - Fixed radio button grouping and checkedness updates for controls with different form owners, controls outside their form, unnamed controls, and canceled clicks. - Fixed `<select>` selection updates when moving options, and unintended selection resets when moving a whole `<select>` or changing unrelated descendants. - Fixed cloning `<input>` elements to preserve `input.indeterminate`. - Fixed focus state after removing a focused element or its ancestor, including inside shadow trees. - Fixed script execution when inserting children into a connected, empty `<script>`. ([@&#8203;Kjubikstronk](https://github.com/Kjubikstronk)) - Fixed incorrect script execution after changes to `src=""`, and handling of `type=""`, `for=""`, and `event=""`. - Fixed `document.currentScript` during nested script execution and scripts in shadow trees. - Fixed event dispatch, `window.event`, and default passive listener handling for non-node event targets, and event dispatch when user code modifies `window.constructor`. - Fixed `volumechange` and `ratechange` events to fire asynchronously. ([@&#8203;christianaurichzm](https://github.com/christianaurichzm)) - Fixed DOM APIs accepting user-created proxies around DOM objects where genuine DOM objects are required. - Fixed XPath iterator invalidation after DOM mutations and errors for invalid result types. - Fixed `NodeIterator` traversal when its filter removes nodes. - Fixed `fileReader.readAsText()` to honor the blob's MIME type charset when no supported explicit encoding is supplied. - Fixed fractional seconds in time input parsing and serialization. ([@&#8203;Jaybhade](https://github.com/Jaybhade)) - Fixed large `input.valueAsNumber` assignments for time and local date/time inputs. - Fixed hard wrapping of `<textarea>` values to use the numeric `textarea.cols` value. - Fixed `document.readyState` to be `"complete"` for documents created with `document.implementation.createDocument()` and `document.implementation.createHTMLDocument()`. - Fixed `element.translate` for empty `translate=""` values and elements without a parent. - Fixed XML parsing of lone surrogates to replace them with the Unicode replacement character. - Fixed `node.lookupNamespaceURI()` for the `xml` and `xmlns` prefixes. ([@&#8203;vojtisprime11](https://github.com/vojtisprime11)) - Fixed `<base>` elements to ignore `data:` and `javascript:` URLs. ([@&#8203;vojtisprime11](https://github.com/vojtisprime11)) - Fixed `svgElement.viewportElement` inside `<symbol>` elements. - Fixed the default `blobEvent.timecode` to be `NaN`. - Fixed the object shape and property descriptors of `CSS`. </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC44My4yIiwidXBkYXRlZEluVmVyIjoiNDQuODMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
renovate added 1 commit 2026-09-20 02:15:11 +00:00
chore(deps): update dependency jsdom to v30.1.0
schemas-app / build (push) Skipped
renovate/stability-days Updates have met minimum release age requirement
schemas-app / build (pull_request) Successful in 1m21s
schemas-app / deploy-prod (pull_request) Skipped
e9aa8c8812
renovate scheduled this pull request to auto merge when all checks succeed 2026-09-20 02:15:13 +00:00
renovate merged commit 874fa1eb36 into main 2026-09-20 02:19:19 +00:00
renovate deleted branch renovate/jsdom-30.x 2026-09-20 02:19:20 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unboundsoftware/schemas-app#358