Update dependency jsdom to v30 #18

Open
andras wants to merge 1 commit from renovate/jsdom-30.x into main
Owner

This PR contains the following updates:

Package Type Update Change
jsdom devDependencies major ^29.1.1 → ^30.0.0

Release Notes

jsdom/jsdom (jsdom)

v30.1.3

Compare Source

  • Improved performance of getComputedStyle() and computed CSS property reads, including with stylesheets containing attribute selectors. (@​scttcper, @​asamuzaK)
  • Fixed slowdowns when focusing elements and running interaction tests, which regressed in v30.1.2. (@​scttcper)
  • Fixed XMLHttpRequest reusing credentials supplied to xhr.open() after cross-origin redirects, including in response to authentication challenges from the destination.
  • Fixed XMLHttpRequest incorrectly sending and accepting cookies after cross-origin redirects back to the document's origin when xhr.withCredentials is false.
  • Fixed exceptions from malformed CSS math functions, such as calc(0px - @submenu_space), while parsing documents, stylesheets, and style declarations. (@​rnavarro)
  • Fixed getComputedStyle() ignoring style rules nested inside multiple @media rules.
  • Fixed CSS shorthands overwriting longhands with higher priority or specificity during style computation, including declarations containing CSS variables.
  • Fixed getComputedStyle() returning unresolved or inconsistent shorthand values, including for 'background', 'border', 'flex', 'font', 'margin', and 'padding', and incorrect shorthand defaults and inheritance.
  • Fixed computed background positions to resolve font-relative lengths using the final font size and handle multiple image layers correctly.
  • Fixed computed 'color' values depending on property read order, including unresolved color-mix() results, which regressed in v29.0.2.
  • Fixed currentcolor border colors incorrectly becoming transparent when 'color' uses light-dark() or relative color syntax.
  • Fixed CSS calculations that reduce to a percentage incorrectly producing pixel values, which regressed in v30.0.0.
  • Fixed numeric font weights in the 'font' shorthand incorrectly setting 'line-height'.
  • Fixed selector matching involving XML namespaces, and selectors such as [data-a|=""] failing to match empty values and values beginning with -. (@​asamuzaK)

v30.1.2

Compare Source

  • Updated URLs to support Unicode v18.0.0 in internationalized domain names.
  • Reduced package size and memory use for CSS property definitions. (@​scttcper)
  • Fixed severe slowdowns when building large DOM trees, including SVG charts with D3, which regressed in v30.1.0. (@​cmdcolin)
  • Fixed exponentially slow reads of empty inherited CSS custom properties in deeply nested documents, and custom properties incorrectly inheriting past an initial reset. (@​scttcper)
  • Fixed getComputedStyle() returning stale results after editing stylesheet declarations, selectors, or media queries, including in imported stylesheets.
  • Fixed selector matching and computed styles after changes to form control checkedness, indeterminacy, selection, values, and validity, including during form resets and canceled clicks.
  • Fixed computed styles for :focus, :focus-visible, :focus-within, and selectors containing them after focus changes, including inside focus and blur listeners. (@​asamuzaK)
  • Fixed element.focus() incorrectly focusing elements hidden by 'display', including through shadow hosts and slots, and elements excluded by shadow DOM slot assignment. (@​asamuzaK)
  • Fixed getComputedStyle() throwing for elements without inline-style support, including XML and MathML elements.
  • Fixed a memory leak where stylesheet parsing retained the last parsed stylesheet's window after window.close().
  • Fixed memory growth from long-lived MutationObserver instances retaining bookkeeping for garbage-collected nodes. (@​scttcper)
  • Fixed retained select.selectedOptions collections becoming stale after selection changes and form resets.
  • Fixed rejection of negative CSS sizing values, including for 'min-width', 'min-height', 'max-width', and 'max-height', which regressed in v30.1.0.
  • Fixed handling of deeply nested color-mix() expressions, including exceptions during color resolution. (@​asamuzaK)

v30.1.1

Compare Source

  • Fixed spurious window blur and focusout events and incorrect event.relatedTarget values when focusing an element after removing the previously focused element, which regressed in v30.1.0. (@​asamuzaK)
  • Fixed focus and blur behavior across frames, and focusing the document's viewport through document.documentElement.focus(). (@​asamuzaK)
  • Fixed focus targets removed or disabled by blur listeners becoming active, and text selections made by focus and blur listeners being overwritten. (@​asamuzaK)
  • Fixed element.focus() incorrectly focusing disabled form controls and <input type="hidden"> elements with tabindex="". (@​scttcper)
  • Fixed invalid style.setProperty() calls changing existing !important priorities, serialized styles, or mutation records. (@​FedgeNo)
  • Fixed !important handling when updating CSS longhands after shorthands, using variables or CSS-wide keywords, and assigning style properties directly. (@​FedgeNo)
  • Fixed <noscript> parsing with includeNodeLocations: true or inside frames to honor the runScripts option.
  • Fixed the storageQuota option being ignored by frames.
  • Fixed encoding detection of HTML and XML byte input to honor XML encoding declarations and detect UTF-16 without a byte order mark.
  • Fixed exceptions caused by truncated charset parameters in <meta> elements, and encoding detection incorrectly using incomplete <meta> tags. (@​FedgeNo)
  • Fixed XML serialization errors for namespaces named constructor, toString, __proto__, or "null", and incorrect reuse of namespace prefixes declared on sibling elements.
  • Fixed element.innerHTML and element.outerHTML in XML documents to reject invalid characters in attribute values and avoid stack overflows on large strings.
  • Fixed selector matching for :lang(), :nth-child(... of ...) after mutations, and :has() with duplicate IDs or nested logical pseudo-classes. (@​asamuzaK)

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.

v30.0.1

Compare Source

  • Fixed getComputedStyle() with calc() and other functions throwing an exception, which regressed in v30.0.0. (@​asamuzaK)
  • Sped up up range operations on large documents (@​leonidaz)

v30.0.0

Compare Source

Breaking changes:

  • Node.js minimum version raised to ^22.22.2 || ^24.15.0 || >=26.0.0.

Other changes:

  • Added CSS.escape() and CSS.supports() functions. (@​asamuzaK)
  • Added 'background-position-x' and 'background-position-y' CSS properties. (@​olagokemills)
  • Fixed getComputedStyle() to convert length values into pixels. (@​asamuzaK)
  • Fixed CSS function serialization, e.g., in the return value of getPropertyValue(). (@​asamuzaK)
  • Fixed the type of error thrown by document.evaluate() (@​dokson)

Configuration

📅 Schedule: (UTC)

  • 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 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 | Type | Update | Change | |---|---|---|---| | [jsdom](https://github.com/jsdom/jsdom) | devDependencies | major | [`^29.1.1` → `^30.0.0`](https://renovatebot.com/diffs/npm/jsdom/29.1.1/30.1.3) | --- ### Release Notes <details> <summary>jsdom/jsdom (jsdom)</summary> ### [`v30.1.3`](https://github.com/jsdom/jsdom/releases/tag/v30.1.3) [Compare Source](https://github.com/jsdom/jsdom/compare/v30.1.2...v30.1.3) - Improved performance of `getComputedStyle()` and computed CSS property reads, including with stylesheets containing attribute selectors. ([@&#8203;scttcper](https://github.com/scttcper), [@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed slowdowns when focusing elements and running interaction tests, which regressed in v30.1.2. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `XMLHttpRequest` reusing credentials supplied to `xhr.open()` after cross-origin redirects, including in response to authentication challenges from the destination. - Fixed `XMLHttpRequest` incorrectly sending and accepting cookies after cross-origin redirects back to the document's origin when `xhr.withCredentials` is false. - Fixed exceptions from malformed CSS math functions, such as `calc(0px - @submenu_space)`, while parsing documents, stylesheets, and style declarations. ([@&#8203;rnavarro](https://github.com/rnavarro)) - Fixed `getComputedStyle()` ignoring style rules nested inside multiple `@media` rules. - Fixed CSS shorthands overwriting longhands with higher priority or specificity during style computation, including declarations containing CSS variables. - Fixed `getComputedStyle()` returning unresolved or inconsistent shorthand values, including for 'background', 'border', 'flex', 'font', 'margin', and 'padding', and incorrect shorthand defaults and inheritance. - Fixed computed background positions to resolve font-relative lengths using the final font size and handle multiple image layers correctly. - Fixed computed 'color' values depending on property read order, including unresolved `color-mix()` results, which regressed in v29.0.2. - Fixed `currentcolor` border colors incorrectly becoming transparent when 'color' uses `light-dark()` or relative color syntax. - Fixed CSS calculations that reduce to a percentage incorrectly producing pixel values, which regressed in v30.0.0. - Fixed numeric font weights in the 'font' shorthand incorrectly setting 'line-height'. - Fixed selector matching involving XML namespaces, and selectors such as `[data-a|=""]` failing to match empty values and values beginning with `-`. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) ### [`v30.1.2`](https://github.com/jsdom/jsdom/releases/tag/v30.1.2) [Compare Source](https://github.com/jsdom/jsdom/compare/v30.1.1...v30.1.2) - Updated URLs to support Unicode v18.0.0 in internationalized domain names. - Reduced package size and memory use for CSS property definitions. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed severe slowdowns when building large DOM trees, including SVG charts with D3, which regressed in v30.1.0. ([@&#8203;cmdcolin](https://github.com/cmdcolin)) - Fixed exponentially slow reads of empty inherited CSS custom properties in deeply nested documents, and custom properties incorrectly inheriting past an `initial` reset. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed `getComputedStyle()` returning stale results after editing stylesheet declarations, selectors, or media queries, including in imported stylesheets. - Fixed selector matching and computed styles after changes to form control checkedness, indeterminacy, selection, values, and validity, including during form resets and canceled clicks. - Fixed computed styles for `:focus`, `:focus-visible`, `:focus-within`, and selectors containing them after focus changes, including inside focus and blur listeners. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed `element.focus()` incorrectly focusing elements hidden by 'display', including through shadow hosts and slots, and elements excluded by shadow DOM slot assignment. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed `getComputedStyle()` throwing for elements without inline-style support, including XML and MathML elements. - Fixed a memory leak where stylesheet parsing retained the last parsed stylesheet's window after `window.close()`. - Fixed memory growth from long-lived `MutationObserver` instances retaining bookkeeping for garbage-collected nodes. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed retained `select.selectedOptions` collections becoming stale after selection changes and form resets. - Fixed rejection of negative CSS sizing values, including for 'min-width', 'min-height', 'max-width', and 'max-height', which regressed in v30.1.0. - Fixed handling of deeply nested `color-mix()` expressions, including exceptions during color resolution. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) ### [`v30.1.1`](https://github.com/jsdom/jsdom/releases/tag/v30.1.1) [Compare Source](https://github.com/jsdom/jsdom/compare/v30.1.0...v30.1.1) - Fixed spurious window `blur` and `focusout` events and incorrect `event.relatedTarget` values when focusing an element after removing the previously focused element, which regressed in v30.1.0. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed focus and blur behavior across frames, and focusing the document's viewport through `document.documentElement.focus()`. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed focus targets removed or disabled by `blur` listeners becoming active, and text selections made by focus and blur listeners being overwritten. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed `element.focus()` incorrectly focusing disabled form controls and `<input type="hidden">` elements with `tabindex=""`. ([@&#8203;scttcper](https://github.com/scttcper)) - Fixed invalid `style.setProperty()` calls changing existing `!important` priorities, serialized styles, or mutation records. ([@&#8203;FedgeNo](https://github.com/FedgeNo)) - Fixed `!important` handling when updating CSS longhands after shorthands, using variables or CSS-wide keywords, and assigning style properties directly. ([@&#8203;FedgeNo](https://github.com/FedgeNo)) - Fixed `<noscript>` parsing with `includeNodeLocations: true` or inside frames to honor the `runScripts` option. - Fixed the `storageQuota` option being ignored by frames. - Fixed encoding detection of HTML and XML byte input to honor XML encoding declarations and detect UTF-16 without a byte order mark. - Fixed exceptions caused by truncated `charset` parameters in `<meta>` elements, and encoding detection incorrectly using incomplete `<meta>` tags. ([@&#8203;FedgeNo](https://github.com/FedgeNo)) - Fixed XML serialization errors for namespaces named `constructor`, `toString`, `__proto__`, or `"null"`, and incorrect reuse of namespace prefixes declared on sibling elements. - Fixed `element.innerHTML` and `element.outerHTML` in XML documents to reject invalid characters in attribute values and avoid stack overflows on large strings. - Fixed selector matching for `:lang()`, `:nth-child(... of ...)` after mutations, and `:has()` with duplicate IDs or nested logical pseudo-classes. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) ### [`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`. ### [`v30.0.1`](https://github.com/jsdom/jsdom/releases/tag/v30.0.1) [Compare Source](https://github.com/jsdom/jsdom/compare/v30.0.0...v30.0.1) - Fixed `getComputedStyle()` with `calc()` and other functions throwing an exception, which regressed in v30.0.0. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Sped up up range operations on large documents ([@&#8203;leonidaz](https://github.com/leonidaz)) ### [`v30.0.0`](https://github.com/jsdom/jsdom/releases/tag/v30.0.0) [Compare Source](https://github.com/jsdom/jsdom/compare/v29.1.1...v30.0.0) Breaking changes: - Node.js minimum version raised to `^22.22.2 || ^24.15.0 || >=26.0.0`. Other changes: - Added `CSS.escape()` and `CSS.supports()` functions. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Added `'background-position-x'` and `'background-position-y'` CSS properties. ([@&#8203;olagokemills](https://github.com/olagokemills)) - Fixed `getComputedStyle()` to convert length values into pixels. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed CSS function serialization, e.g., in the return value of `getPropertyValue()`. ([@&#8203;asamuzaK](https://github.com/asamuzaK)) - Fixed the type of error thrown by `document.evaluate()` ([@&#8203;dokson](https://github.com/dokson)) </details> --- ### Configuration 📅 **Schedule**: (UTC) - 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 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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xOTcuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjE5Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Update dependency jsdom to v30
Some checks failed
Check & deploy / validate (pull_request) Failing after 8m51s
Check & deploy / deploy (pull_request) Has been skipped
7c60850ca0
Some checks failed
Check & deploy / validate (pull_request) Failing after 8m51s
Check & deploy / deploy (pull_request) Has been skipped
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin "renovate/jsdom-30.x:renovate/jsdom-30.x"
git switch "renovate/jsdom-30.x"

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch "main"
git merge --no-ff "renovate/jsdom-30.x"
git switch "renovate/jsdom-30.x"
git rebase "main"
git switch "main"
git merge --ff-only "renovate/jsdom-30.x"
git switch "renovate/jsdom-30.x"
git rebase "main"
git switch "main"
git merge --no-ff "renovate/jsdom-30.x"
git switch "main"
git merge --squash "renovate/jsdom-30.x"
git switch "main"
git merge --ff-only "renovate/jsdom-30.x"
git switch "main"
git merge "renovate/jsdom-30.x"
git push origin "main"
Sign in to join this conversation.
No description provided.