chore(deps): update dependency jsdom to v25 #604
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
13.2.0
->25.0.1
Release Notes
jsdom/jsdom (jsdom)
v25.0.1
Compare Source
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 theObject.prototype
inside the jsdom, instead of pointing to the Node.jsObject.prototype
. Thus, the prototype chain ofWindow
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 separateObject.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.v24.1.3
Compare Source
postMessage()
that were done as a bare property (i.e.,postMessage()
instead ofwindow.postMessage()
).v24.1.2
Compare Source
in
operator applied toEventTarget
methods, e.g.'addEventListener' in window
, which only appeared in Node.js ≥22.5.0. (legendecas)blur()
: it no longer firesfocus
andfocusin
on theDocument
, andblur
andfocusout
no longer have theirrelatedTarget
property set. (asamuzaK)v24.1.1
Compare Source
selectionchange
event on theDocument
object. (piotr-oles)v24.1.0
Compare Source
getSetCookie()
method to theHeaders
class. (ushiboy)Object.prototype
, like"constructor"
or"toString"
.rweb-cssom
, which can now parse additional CSS constructs.v24.0.0
Compare Source
This release reverts our selector engine back to
nwsapi
. As discussed in #3659, the performance regressions from@asamuzakjp/dom-selector
turned out to be higher than anticipated. In the future, we can revisit@asamuzakjp/dom-selector
after it reachesnwsapi
's performance on the two real-world benchmarks provided by the community.Since reverting to
nwsapi
causes several functionality regressions, e.g. removing:has()
support, we've decided to make this a major version.Additionally:
input.maxLength
,input.minLength
,input.size
,progress.max
,tableCell.colSpan
,tableCell.rowSpan
,tableCol.span
,textArea.cols
,textArea.maxLength
,textArea.minLength
,textArea.rows
.v23.2.0
Compare Source
This release switches our CSS selector engine from
nwsapi
to@asamuzakjp/dom-selector
. The new engine is more actively maintained, and supports many new selectors: see the package's documentation for the full list. It also works better with shadow trees.There is a potential of a performance regression due to this change. In our stress test benchmark, which runs most of these 273 selectors against this 128 KiB document, the new engine completes the benchmark only 0.25x as fast. However, we're hopeful that in more moderate usage this will not be a significant issue. Any help speeding up
@asamuzakjp/dom-selector
is appreciated, and feel free to open an issue if this has had a significant impact on your project.v23.1.0
Compare Source
ElementInternals
, including theshadowRoot
getter and the string-valued ARIA properties. (zjffun)Element
.history.pushState()
andhistory.replaceState()
to follow the latest specification, notably with regards to how they handle empty string inputs and what new URLs are possible.input.valueAsANumber
setter to handleNaN
correctly. (alexandertrefz)cssstyle
which contains several bug fixes.v23.0.1
Compare Source
canvas
peer dependency.v23.0.0
Compare Source
v22.1.0
Compare Source
crypto.randomUUID()
. (jamesbvaughan)DOMRect
andDOMRectReadOnly
.AbortSignal.timeout()
.abortSignal.throwIfAborted()
.submitter
argument to theFormData
constructor. (jenseng)getComputedStyle()
's results for color-based properties, to resolve named colors and attempt to provide initial inheritance support. (hoekz-wwt)Window
's event handler properties (e.g.oncopy
,ontouchstart
, etc.) to reflect the latest list from the standard.DOMParser
-created documents to inherit their URL from the creating document.v22.0.0
Compare Source
v21.1.2
Compare Source
setRangeText()
used on<input>
and<textarea>
elements to calculate the new end index correctly. (pmstss)pageX
,pageY
,offsetX
, andoffsetY
onMouseEvent
s during dispatch. (jenseng)nwsapi
to v2.2.4, bringing along various fixes to our selector engine.v21.1.1
Compare Source
jsdom.reconfigure()
to also adjust the URL as seen by the history API, so that e.g.history.replaceState(null, "")
would not mess up the URL. (jdufresne)location.hash = ""
to leave any#
in location.href.cssom
withrweb-cssom
, since the latter is maintained. (seanparmelee)v21.1.0
Compare Source
x
,y
,pageX
,pageY
,offsetX
, andoffsetY
toMouseEvent
. (jenseng, ViniciusFXavier)unset
withgetComputedStyle()
. (jsnajdr)submitter
property toSubmitEvent
. (jenseng)MouseEvent
'sscreenX
andscreenY
to no longer coerce to integers, allowing fractional values. (jenseng)formEl.submit()
to not longer firesubmit
events. (jenseng)<link>
is removed. (jsnajdr)pointer-events
to inherit when used withgetComputedStyle()
. (jnajdr)<script>
elements with nosrc=""
to no longer fireload
events. (t1ger2080)getComputedStyle()
to cache its results, which should make it much faster. (jsnajdr)v21.0.0
Compare Source
A potentially-breaking bug fix:
window
,document
,location
, andtop
properties ofWindow
to be non-configurable. (ExE-Boss)Other changes:
<input type=image>
submitting forms. (jenseng)location
setter to theWindow
object, which forwards to thelocation.href
setter. Setting the URL is still only implemented for fragment navigations, however. (ExE-Boss)defer=""
<script>
elements that are added afterDOMContentLoaded
to execute, instead of being skipped.selectElement.selectedOptions
being incorrect whenoptionElement.selected
is set. This was a regression introduced in v20.0.1. Unfortunately this also reverts the performance improvement when appending<option>
elements that was introduced then. (eps1lon)self
,locationbar
,menubar
,personalbar
,scrollbars
,statusbar
,toolbar
,frames
,parent
,external
,length
, andscreen
properties ofWindow
to be replaceable: that is, setting them will override their values, instead of having the new value be ignored. (ExE-Boss)JSDOM.fromURL()
in the browser build of jsdom. (LungZeno)v20.0.3
Compare Source
w3c-xmlserializer
, which fixes usingDOMParser
on XML documents containing emoji.v20.0.2
Compare Source
xhr.abort()
to no longer give an exception when the constructedXMLHttpRequest
was invalid. (whamtet)event.getModifierState()
onMouseEvent
andKeyboardEvent
instances to properly consult thectrlKey
,altKey
,metaKey
, andshiftKey
properties of the event. (juzerzarif)window.customElements
property. (bicknellr)v20.0.1
Compare Source
<option>
elements to<select>
elements. (TheHound)location.pathname
getter to not crash when theJSDOM
instance was created using an opaque-path URL, including the default URL ofabout:blank
.crypto.getRandomValues()
to accept typed array subclasses. (sebamarynissen)nwsapi
fixed some selectors bugs, andtough-cookie
fixed some cookie bugs.v20.0.0
Compare Source
crypto.getRandomValues()
. (sjrd)HTMLFormControlsCollection
andRadioNodeList
, soformEl.elements
now behaves correctly. (UndefinedBehavior)signal
option toaddEventListener()
. (cheap-glitch):root
pseudoclass to work correctly. (hughs-ch)parse5
, bringing along some HTML parsing and serialization fixes. (fb55)v19.0.0
Compare Source
jsdom.nodeLocation()
to returnundefined
when used on nodes that originate via fragment parsing (e.g., viainnerHTML
). Previously it would return based on the node location of the fragment string, which made node locations unreliable with respect to the original document source. This restores the behavior that was present in v14.0.0, and was accidentally broken in v14.1.0. (bakkot)window.close()
inside theWindow
'sload
event to no longer crash. (MattiasBuelens)v18.1.1
Compare Source
connectedCallback
to fire in situations involving document fragments, which was broken in v18.0.1. (GrantGryczan)v18.1.0
Compare Source
headers.append()
andheaders.set()
to normalize values. (MattiasBuelens)pageshow
events to havebubbles: true
andcancelable: true
. (MattiasBuelens)reason
property onAbortSignal
s, along with the correspondingreason
argument toabortSignal.abort()
andAbortSignal.abort()
. (MattiasBuelens)v18.0.1
Compare Source
Range
s to update correctly after callingnode.normalize()
. (hgiesel)Range
s to update correctly after removing child nodes. (hgiesel)inputEl.valueAsDate = null
to no longer throw an exception, but instead set the value to the empty string. (simon-weimann)node.contains()
. (GrantGryczan)v18.0.0
Compare Source
Potentially-breaking bug fixes:
ResourceLoader
'sstrictSSL
option (which defaults totrue
).Promise
andTypeError
instances are created to be the jsdom global, not the Node.js global. This could affect any code that usesinstanceof
.Other changes:
tagName
cache, allowing it to return a lowercase value once it's in the XML document. (LucasLefevre)v17.0.0
Compare Source
Breaking change: Node v12 is now the minimum supported version.
v16.7.0
Compare Source
AbortSignal.abort()
. (ninevra)x
andy
properties to the return value ofgetBoundingClientRect()
. (eiko)textareaEl.value
if thewrap=""
attribute is specified. (ninevra)<textarea>
s according to recent HTML Standard updates. (ninevra)getComputedStyle()
. (romain-trotard)v16.6.0
Compare Source
parentNode.replaceChildren()
. (ninevra)null
orundefined
as an exception. (mbest)request
package, in the process fixing several issues with theXMLHttpRequest
implementation around header processing. Special thanks to vegardbb for completing this months-long effort!v16.5.3
Compare Source
MutationObserver
s to observe elements inside aMutationObserver
callback.v16.5.2
Compare Source
Access-Control-Allow-Headers: *
to work withXMLHttpRequest
. (silviot)xhr.response
to strip any leading BOM whenxhr.responseType
is"json"
.new Text()
andnew Comment()
constructors to properly set the resulting node'sownerDocument
.customElements.whenDefined()
to resolve its returned promise with the custom element constructor, per recent spec updates. (ExE-Boss)<svg><template></template></svg>
does not throw an exception, but instead correctly produces a SVG-namespace<template>
element.domParser.parseFromString()
to treat<noscript>
elements appropriately.<form>
element and instead associated using theform=""
attribute.legendEl.form
to return the correct result based on its parent<fieldset>
.optionEl.text
to exclude<script>
descendants.input
andchange
events when disconnected.inputEl.indeterminate
to reset to its previous value when canceling aclick
event on a checkbox or radio button.onclick="...code..."
) when there were global variables namedelement
orformOwner
. (ExE-Boss)WeakRef
s are available, fixedNodeIterator
to no longer stop working when more than tenNodeIterator
instances are created, and to use less memory due to inactiveNodeIterator
s sticking around. (ExE-Boss)v16.5.1
Compare Source
customElements.get()
in v16.5.0. (fdesforges)window.event
to have a setter which overwrites thewindow.event
property with the given value, per the specification. This fixes an issue where after upgrading to jsdom v16.5.0 you would no longer be able to set a global variable namedevent
in the jsdom context.v16.5.0
Compare Source
window.queueMicrotask()
.window.event
.inputEvent.inputType
. (diegohaz)ondragexit
fromWindow
and friends, per a spec update.about:blank
iframes. Previously it was getting set to the parent's URL. (SimonMueller)hidden=""
attribute to causedisplay: none
per the user-agent stylesheet. (ph-fritsche)new File()
constructor to no longer convert/
to:
, per a pending spec update.MutationObserver
instance as theirthis
value.<input type=checkbox>
and<input type=radio>
to be mutable even when disabled, per a spec update.XMLHttpRequest
to not fire a redundant finalprogress
event if aprogress
event was previously fired with the sameloaded
value. This would usually occur with small files.XMLHttpRequest
to expose theContent-Length
header on cross-origin responses.xhr.response
to returnnull
for failures that occur during the middle of the download.localStorage
ordataset
. (ExE-Boss)v16.4.0
Compare Source
getComputedStyle()
, unless you pass a::part
or::slotted
pseudo-element, in which case we throw an error per the spec. (ExE-Boss)el.tagName
, which also indirectly improves performance of selector matching and style computation. (eps1lon)form.elements
to respect theform=""
attribute, so that it can contain non-descendant form controls. (ccwebdesign)el.focus()
to do nothing on disconnected elements. (eps1lon)el.focus()
to work on SVG elements. (zjffun)<body>
element. (eps1lon)imgEl.complete
to return true for<img>
elements with empty or unsetsrc=""
attributes. (strager)imgEl.complete
to return true if an error occurs loading the<img>
, when canvas is enabled. (strager)imgEl.complete
to return false if the<img>
element'ssrc=""
attribute is reset. (strager)valueMissing
validation check for<input type="radio">
. (zjffun)translate=""
anddraggable=""
attribute processing to use ASCII case-insensitivity, instead of Unicode case-insensitivity. (zjffun)v16.3.0
Compare Source
focusin
andfocusout
when usingel.focus()
andel.blur()
. (trueadm)contenteditable=""
attribute to be considered as focusable. (jamieliu386)window.NodeFilter
to be per-Window
, instead of shared across allWindow
s. (ExE-Boss)handleEvent
properties as event listeners. (ExE-Boss)load
event instead of anerror
event, when thecanvas
package is installed. (strager)v16.2.2
Compare Source
StyleSheetList
for better spec compliance; notably it no longer inherits fromArray.prototype
. (ExE-Boss)requestAnimationFrame()
from preventing process exit. This likely regressed in v16.1.0.setTimeout()
to no longer leak the closures passed in to it. This likely regressed in v16.1.0. (AviVahl)click()
on a<label>
element, or one of its descendants.getComputedStyle()
to consider inlinestyle=""
attributes. (eps1lon)<input type="number">
'sstepUp()
andstepDown()
functions to be properly decimal-based, instead of floating point-based.selectEl.value
would not invalidate properties such asselectEl.selectedOptions
. (ExE-Boss)<input>
'ssrc
property, and<ins>
/<del>
'scite
property, to properly reflect as URLs.window.addEventLister
,window.removeEventListener
, andwindow.dispatchEvent
to properly be inherited fromEventTarget
, instead of being distinct functions. (ExE-Boss)addEventListener
.data:
URLs.<input type="month">
that could occur in some time zones and for some times.document.implementation.createDocument()
to return anXMLDocument
, instead of aDocument
. (ExE-Boss)v16.2.1
Compare Source
saxes
, to bring in some BOM-related fixes.npm audit
warnings.v16.2.0
Compare Source
Attr
as aNode
, e.g. by checking itsbaseURI
property or callingattr.cloneNode()
.v16.1.0
Compare Source
console.timeLog()
.Attr
to extendNode
, to align with specifications. (ExE-Boss)<noscript>
children to be parsed as nodes, instead of as text, whenrunScripts
is left as the default ofundefined
. (ACHP)cssstyle
to v2.1.0, which brings along fixes to handling ofrgba()
andhsl()
colors. (kraynel)<input>
s and<textarea>
s. (Matthew-Goldberg)setTimeout()
,setInterval()
, andrequestAnimationFrame()
, particularly around window closing and recursive calls.v16.0.1
Compare Source
runScripts
was set.<input>
'stype=""
attribute.<input type="range">
whenmax=""
is less thanmin=""
.v16.0.0
Compare Source
For this release we'd like to welcome @pmdartus to the core team. Among other work, he's driven the heroic effort of constructor prototype and reform in jsdom and its dependencies over the last few months, to allow us to move away from shared constructors and prototypes, and set the groundwork for custom elements support (coming soon!).
Breaking changes:
dom.runVMScript()
API has been replaced with the more generaldom.getInternalVMContext()
API.Window
now creates new instances of all the web platform globals. That is, our old shared constructor and prototypes caveat is no longer in play.Window
now exposes all JavaScript-spec-defined globals uniformly. WhenrunScripts
is disabled, it exposes them as aliases of the ones from the outer Node.js environment. Whereas whenrunScripts
is enabled, it exposes fresh copies of each global from the new scripting environment. (Previously, a few typed array classes would always be aliased, and withrunScripts
disabled, the other classes would not be exposed at all.)Other changes:
AbstractRange
,Range
,StaticRange
,Selection
, andwindow.getSelection()
APIs.Comment
,Text
, andDocumentFragment
.valueAsDate
,valueAsNumber
,stepUp()
andstepDown()
to<input>
elements. (kraynel)window.origin
.document.origin
.<template>
to work correctly inside XML documents.<meta charset>
or<meta http-equiv="charset">
elements.input.type
to default to"text"
. (connormeredith)<input>
with fractional values for theirstep=""
attribute. (kontomondo)<input>
elements.<input type="email" multiple pattern="...">
validation.fileReader.readAsDataURL()
to always base64-encode the result. (ytetsuro)<img>
elements into documents without a browsing context to no longer crash when thecanvas
package is installed.window.setTimeout()
orwindow.setInterval()
.getComputedStyle()
. (eps1lon)v15.2.1
Compare Source
JSDOM.fromURL()
handling of URLs with hashes in them, to no longer send the hash to the server and append an extra copy of it when constructing theDocument
. (rchl)focus
events. (eps1lon)mediaElement.addTextTrack()
. (mtsmfm)nwsapi
minimum version to 2.2.0, which fixes issues with::-webkit-
prefixed pseudo-elements and namespaced attribute selectors.v15.2.0
Compare Source
getComputedStyle()
for the'visibility'
property. This sets the foundation for further work on inheritance, cascading, and specificity. (eps1lon)shadowRoot.activeElement
.readystatechange
events during document loading.form.requestSubmit()
, to match our existing stub forform.submit()
.el.tabIndex
's default value, when notabindex=""
attribute was set, to reflect the updated specification.el.attachShadow()
on something that's already a shadow host, to reflect the updated specification.<input type="range">
.selectEl.value
when no<option>
is selected to return the empty string, instead of the value of the first option. (tgohn)new FormData(formElement)
. (brendo)"undefined"
. (papandreou)el.getAttributeNS()
orel.setAttributeNS()
.canvas
as an optional ``peerDependency`, which apparently helps with Yarn PnP support.v15.1.1
Compare Source
nonce
property fromHTMLScriptElement
andHTMLStyleElement
toHTMLElement
. Note that it is still just a simple reflection of the attribute, and has not been updated for the rest of the changes in whatwg/html#2373.style
andon<event>
properties to properly track their related attributes for SVG elements. (kbruneel)XMLHttpRequest
merging preflight and response headers. (thiagohirata)XMLHttpRequest
reserializingcontent-type
request headers unnecessarily. See whatwg/mimesniff#84 for more details. (thiagohirata)element.tagName
to be the ASCII uppercase of the element's qualified name, instead of the Unicode uppercase.v15.1.0
Compare Source
Headers
class from the Fetch standard.element.translate
getter and setter.XMLHttpRequest
on the newly-released Node.js v12.form.elements
to exclude<input type="image">
elements.pattern=""
form control validation to apply the given regular expression to the whole string. (kontomondo)v15.0.0
Compare Source
Several potentially-breaking changes, each of them fairly unlikely to actually break anything:
JSDOM.fromFile()
now treats.xht
files asapplication/xhtml+xml
, the same as it does for.xhtml
and.xml
. Previously, it would treat them astext/html
.JSDOM
constructor'scontentType
option has acharset
parameter, and the first argument to the constructor is a binary data type (e.g.Buffer
orArrayBuffer
), then thecharset
will override any sniffed encoding in the same way as aContent-Type
header would in browser scenarios. Previously, thecharset
parameter was ignored.Blob
orFile
constructor with theendings: "native"
option, jsdom will now convert line endings to\n
on all operating systems, for consistency. Previously, on Windows, it would convert line endings to\r\n
.v14.1.0
Compare Source
<a>
and<area>
elements whosehref=""
points to ajavascript:
URL or fragment.<datalist>
element'soptions
property.<input>
element'slist
property.PageTransitionEvent
, and the firing ofpageshow
events during loading.External
class as a property ofwindow
.innerHTML
andouterHTML
) to be spec-compliant. (pmdartus)innerHTML
) breaking after setting certain properties to non-string values.<style>
s to no longer apply to documents without a browsing context. This includes fixing a crash that would occur with such styles if they had an@import
rule.<option>
'slabel
andvalue
properties to return correct values in various edge cases.load
event during document loading to target theDocument
, not theWindow
.pretendToBeVisual
option to propagate to child subframes, as well as the mainWindow
. (pyrho)nwsapi
version from v2.1.1 to v2.1.3, bringing along a few fixes in our selector engine.v14.0.0
Compare Source
Breaking changes:
JSDOM.fragment()
now creates fragments whose document has no browsing context, i.e. no associatedWindow
. This means thedefaultView
property will be null, resources will not load, etc.JSDOM.fragment()
, called with no arguments, now creates aDocumentFragment
with no children, instead of with a single child text node whose data was"undefined"
.Other changes:
element.blur()
on a focused element.<link>
elements into documents with no browsing context to no longer crash if the originatingJSDOM
was configured to fetch the resource. Now, per spec,<link>
elements only attempt to fetch if they are browsing-context connected.<template>
elements to have the correct semantics, of using a separate browsing-context-less document to store its contents. In particular this means resources will not be fetched for elements inside the<template>
, as per spec.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: Never, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.