chore(deps): update dependency jsdom to v27 #15
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:
^11.3.0->^27.0.0Release Notes
jsdom/jsdom (jsdom)
v27.0.1Compare Source
class=""attribute changes is only possible with a new version of jsdom. (asamuzaK)v27.0.0Compare Source
Changes since 26.1.0
BeforeUnloadEvent,BlobEvent,DeviceMotionEvent(omittingrequestPermission()),DeviceOrientationEvent(omittingrequestPermission()),PointerEvent,PromiseRejectionEvent, andTransitionEvent.movementXandmovementYtoMouseEvent. (These are from the Pointer Lock specification, the rest of which is not implemented.)customElements.getName(). (mash-graz)"jsdomError"events are now documented, with specifictypeproperties and other properties that depend on the type.sendTo()was renamed toforwardTo().jsdomErrorsoption toforwardTo()can be used to control which errors are sent to the Node.js console. This replaces the previousomitJSDOMErrorsboolean option."jsdomError"s for failedXMLHttpRequestfetches are no longer emitted."jsdomError"s to the Node.js console are streamlined.nwsapito@asamuzakjp/dom-selector, closing over 20 selector-related bugs.tough-cookie, which now considers URLs likehttp://localhost/to be secure contexts (per the spec), and thus will returnSecure-flagged cookies for such URLs. (colincasey)cssstyle, which brings along many improvements and fixes to theCSSStyleDeclarationobject and its properties.element.click()to fire aPointerEventinstead of aMouseEvent.<input>element'spattern=""attribute to use thevregular expression flag, instead ofu.Windowobject, including named properties and changing various data properties to accessor properties.document.createEvent()to accept a more correct set of event names.ElementInternalsaccessibility getters and setters. (They were introduced in v23.1.0, but due to inadequate test coverage never actually worked.)Object.defineProperty()on certain objects, such asHTMLSelectElementinstances.jsdom.reconfigure({ url })not updatingdocument.baseURIor properties derived from it. (This regressed in v26.1.0.)initial,inherit, andunsetkeywords, to resolve correctly. (asamuzaK)displaystyle resolution. (asamuzaK)Changes since 27.0.0-beta.3
cssstyle, which brings along various CSS parsing fixes.v26.1.0Compare Source
<defs>(SVGDefsElement),<desc>(SVGDescElement),<g>(SVGGElement),<metadata>(SVGMetadataElement),<switch>(SVGSwitchElement), and<symbol>(SVGSymbolElement).SVGAnimatedPreserveAspectRatioandSVGAnimatedRect, including support in the reflection layer.SVGSVGElementcreateSVGRect()method, and theSVGRecttype (which is distinct fromDOMRect.)HTMLFormElement.SVGElementviewportElement()method to correctly establish the viewport based on ancestor elements.form-datadependency in favor of our own smaller implementation ofmultipart/form-dataserialization. No functional changes are expected.v26.0.0Compare Source
Breaking change:
canvaspeer dependency requirement has been upgraded from v2 to v3. (sebastianwachter)Other changes:
AbortSignal.any(). (jdbevan)ElementInternalslabelsproperty. The form-associated callbacks are not yet supported. (hesxenon)whatwg-url, adding support forURL.parse().cssstyleandrrweb-cssom, to improve CSS parsing capabilities.nwsapi, improving CSS selector matching.parse5, fixing a bug around<noframes>elements and HTML entity decoding.JSDOM.fromURL()to properly reject the returned promise if the server redirects to an invalid URL, instead of causing an uncaught exception.v25.0.1Compare Source
tough-cookie, which no longer prints a deprecation warning.v25.0.0Compare Source
This major release changes the prototype of a jsdom's
EventTarget.prototypeto point to theObject.prototypeinside the jsdom, instead of pointing to the Node.jsObject.prototype. Thus, the prototype chain ofWindowstays entirely within the jsdom, never crossing over into the Node.js realm.This only occurs when
runScriptsis set to non-default values of"dangerously"or"outside-only", as with the default value, there is no separateObject.prototypeinside the jsdom.This will likely not impact many programs, but could cause some changes in
instanceofbehavior, and so out of an abundance of caution, we're releasing it as a new major version.v24.1.3Compare Source
postMessage()that were done as a bare property (i.e.,postMessage()instead ofwindow.postMessage()).v24.1.2Compare Source
inoperator applied toEventTargetmethods, e.g.'addEventListener' in window, which only appeared in Node.js ≥22.5.0. (legendecas)blur(): it no longer firesfocusandfocusinon theDocument, andblurandfocusoutno longer have theirrelatedTargetproperty set. (asamuzaK)v24.1.1Compare Source
selectionchangeevent on theDocumentobject. (piotr-oles)v24.1.0Compare Source
getSetCookie()method to theHeadersclass. (ushiboy)Object.prototype, like"constructor"or"toString".rweb-cssom, which can now parse additional CSS constructs.v24.0.0Compare Source
This release reverts our selector engine back to
nwsapi. As discussed in #3659, the performance regressions from@asamuzakjp/dom-selectorturned out to be higher than anticipated. In the future, we can revisit@asamuzakjp/dom-selectorafter it reachesnwsapi's performance on the two real-world benchmarks provided by the community.Since reverting to
nwsapicauses 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.0Compare Source
This release switches our CSS selector engine from
nwsapito@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-selectoris appreciated, and feel free to open an issue if this has had a significant impact on your project.v23.1.0Compare Source
ElementInternals, including theshadowRootgetter 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.valueAsANumbersetter to handleNaNcorrectly. (alexandertrefz)cssstylewhich contains several bug fixes.v23.0.1Compare Source
canvaspeer dependency introduced in v23.0.0.v23.0.0Compare Source
whatwg-urlwhich integrates various additions to theURLandURLSearchParamsobjects.v22.1.0Compare Source
crypto.randomUUID(). (jamesbvaughan)DOMRectandDOMRectReadOnly.AbortSignal.timeout().abortSignal.throwIfAborted().submitterargument to theFormDataconstructor. (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.0Compare Source
v21.1.2Compare Source
setRangeText()used on<input>and<textarea>elements to calculate the new end index correctly. (pmstss)pageX,pageY,offsetX, andoffsetYonMouseEvents during dispatch. (jenseng)nwsapito v2.2.4, bringing along various fixes to our selector engine.v21.1.1Compare 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.cssomwithrweb-cssom, since the latter is maintained. (seanparmelee)v21.1.0Compare Source
x,y,pageX,pageY,offsetX, andoffsetYtoMouseEvent. (jenseng, ViniciusFXavier)unsetwithgetComputedStyle(). (jsnajdr)submitterproperty toSubmitEvent. (jenseng)MouseEvent'sscreenXandscreenYto no longer coerce to integers, allowing fractional values. (jenseng)formEl.submit()to not longer firesubmitevents. (jenseng)<link>is removed. (jsnajdr)pointer-eventsto inherit when used withgetComputedStyle(). (jnajdr)<script>elements with nosrc=""to no longer fireloadevents. (t1ger2080)getComputedStyle()to cache its results, which should make it much faster. (jsnajdr)v21.0.0Compare Source
A potentially-breaking bug fix:
window,document,location, andtopproperties ofWindowto be non-configurable. (ExE-Boss)Other changes:
<input type=image>submitting forms. (jenseng)locationsetter to theWindowobject, which forwards to thelocation.hrefsetter. Setting the URL is still only implemented for fragment navigations, however. (ExE-Boss)defer=""<script>elements that are added afterDOMContentLoadedto execute, instead of being skipped.selectElement.selectedOptionsbeing incorrect whenoptionElement.selectedis 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, andscreenproperties ofWindowto 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.3Compare Source
w3c-xmlserializer, which fixes usingDOMParseron XML documents containing emoji.v20.0.2Compare Source
xhr.abort()to no longer give an exception when the constructedXMLHttpRequestwas invalid. (whamtet)event.getModifierState()onMouseEventandKeyboardEventinstances to properly consult thectrlKey,altKey,metaKey, andshiftKeyproperties of the event. (juzerzarif)window.customElementsproperty. (bicknellr)v20.0.1Compare Source
<option>elements to<select>elements. (TheHound)location.pathnamegetter to not crash when theJSDOMinstance was created using an opaque-path URL, including the default URL ofabout:blank.crypto.getRandomValues()to accept typed array subclasses. (sebamarynissen)nwsapifixed some selectors bugs, andtough-cookiefixed some cookie bugs.v20.0.0Compare Source
crypto.getRandomValues(). (sjrd)HTMLFormControlsCollectionandRadioNodeList, soformEl.elementsnow behaves correctly. (UndefinedBehavior)signaloption toaddEventListener(). (cheap-glitch):rootpseudoclass to work correctly. (hughs-ch)parse5, bringing along some HTML parsing and serialization fixes. (fb55)v19.0.0Compare Source
jsdom.nodeLocation()to returnundefinedwhen 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'sloadevent to no longer crash. (MattiasBuelens)v18.1.1Compare Source
connectedCallbackto fire in situations involving document fragments, which was broken in v18.0.1. (GrantGryczan)v18.1.0Compare Source
headers.append()andheaders.set()to normalize values. (MattiasBuelens)pageshowevents to havebubbles: trueandcancelable: true. (MattiasBuelens)reasonproperty onAbortSignals, along with the correspondingreasonargument toabortSignal.abort()andAbortSignal.abort(). (MattiasBuelens)v18.0.1Compare Source
Ranges to update correctly after callingnode.normalize(). (hgiesel)Ranges to update correctly after removing child nodes. (hgiesel)inputEl.valueAsDate = nullto no longer throw an exception, but instead set the value to the empty string. (simon-weimann)node.contains(). (GrantGryczan)v18.0.0Compare Source
Potentially-breaking bug fixes:
ResourceLoader'sstrictSSLoption (which defaults totrue).PromiseandTypeErrorinstances are created to be the jsdom global, not the Node.js global. This could affect any code that usesinstanceof.Other changes:
tagNamecache, allowing it to return a lowercase value once it's in the XML document. (LucasLefevre)v17.0.0Compare Source
Breaking change: Node v12 is now the minimum supported version.
v16.7.0Compare Source
AbortSignal.abort(). (ninevra)xandyproperties to the return value ofgetBoundingClientRect(). (eiko)textareaEl.valueif thewrap=""attribute is specified. (ninevra)<textarea>s according to recent HTML Standard updates. (ninevra)getComputedStyle(). (romain-trotard)v16.6.0Compare Source
parentNode.replaceChildren(). (ninevra)nullorundefinedas an exception. (mbest)requestpackage, in the process fixing several issues with theXMLHttpRequestimplementation around header processing. Special thanks to vegardbb for completing this months-long effort!v16.5.3Compare Source
MutationObservers to observe elements inside aMutationObservercallback.v16.5.2Compare Source
Access-Control-Allow-Headers: *to work withXMLHttpRequest. (silviot)xhr.responseto strip any leading BOM whenxhr.responseTypeis"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.formto return the correct result based on its parent<fieldset>.optionEl.textto exclude<script>descendants.inputandchangeevents when disconnected.inputEl.indeterminateto reset to its previous value when canceling aclickevent on a checkbox or radio button.onclick="...code...") when there were global variables namedelementorformOwner. (ExE-Boss)WeakRefs are available, fixedNodeIteratorto no longer stop working when more than tenNodeIteratorinstances are created, and to use less memory due to inactiveNodeIterators sticking around. (ExE-Boss)v16.5.1Compare Source
customElements.get()in v16.5.0. (fdesforges)window.eventto have a setter which overwrites thewindow.eventproperty 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 namedeventin the jsdom context.v16.5.0Compare Source
window.queueMicrotask().window.event.inputEvent.inputType. (diegohaz)ondragexitfromWindowand friends, per a spec update.about:blankiframes. Previously it was getting set to the parent's URL. (SimonMueller)hidden=""attribute to causedisplay: noneper the user-agent stylesheet. (ph-fritsche)new File()constructor to no longer convert/to:, per a pending spec update.MutationObserverinstance as theirthisvalue.<input type=checkbox>and<input type=radio>to be mutable even when disabled, per a spec update.XMLHttpRequestto not fire a redundant finalprogressevent if aprogressevent was previously fired with the sameloadedvalue. This would usually occur with small files.XMLHttpRequestto expose theContent-Lengthheader on cross-origin responses.xhr.responseto returnnullfor failures that occur during the middle of the download.localStorageordataset. (ExE-Boss)v16.4.0Compare Source
getComputedStyle(), unless you pass a::partor::slottedpseudo-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.elementsto 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.completeto return true for<img>elements with empty or unsetsrc=""attributes. (strager)imgEl.completeto return true if an error occurs loading the<img>, when canvas is enabled. (strager)imgEl.completeto return false if the<img>element'ssrc=""attribute is reset. (strager)valueMissingvalidation check for<input type="radio">. (zjffun)translate=""anddraggable=""attribute processing to use ASCII case-insensitivity, instead of Unicode case-insensitivity. (zjffun)v16.3.0Compare Source
focusinandfocusoutwhen usingel.focus()andel.blur(). (trueadm)contenteditable=""attribute to be considered as focusable. (jamieliu386)window.NodeFilterto be per-Window, instead of shared across allWindows. (ExE-Boss)handleEventproperties as event listeners. (ExE-Boss)loadevent instead of anerrorevent, when thecanvaspackage is installed. (strager)v16.2.2Compare Source
StyleSheetListfor 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.valuewould not invalidate properties such asselectEl.selectedOptions. (ExE-Boss)<input>'ssrcproperty, and<ins>/<del>'sciteproperty, to properly reflect as URLs.window.addEventLister,window.removeEventListener, andwindow.dispatchEventto 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.1Compare Source
saxes, to bring in some BOM-related fixes.npm auditwarnings.v16.2.0Compare Source
Attras aNode, e.g. by checking itsbaseURIproperty or callingattr.cloneNode().v16.1.0Compare Source
console.timeLog().Attrto extendNode, to align with specifications. (ExE-Boss)<noscript>children to be parsed as nodes, instead of as text, whenrunScriptsis left as the default ofundefined. (ACHP)cssstyleto 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.1Compare Source
runScriptswas set.<input>'stype=""attribute.<input type="range">whenmax=""is less thanmin="".v16.0.0Compare 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.Windownow creates new instances of all the web platform globals. That is, our old shared constructor and prototypes caveat is no longer in play.Windownow exposes all JavaScript-spec-defined globals uniformly. WhenrunScriptsis disabled, it exposes them as aliases of the ones from the outer Node.js environment. Whereas whenrunScriptsis enabled, it exposes fresh copies of each global from the new scripting environment. (Previously, a few typed array classes would always be aliased, and withrunScriptsdisabled, 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.typeto 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 thecanvaspackage is installed.window.setTimeout()orwindow.setInterval().getComputedStyle(). (eps1lon)v15.2.1Compare 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)focusevents. (eps1lon)mediaElement.addTextTrack(). (mtsmfm)nwsapiminimum version to 2.2.0, which fixes issues with::-webkit-prefixed pseudo-elements and namespaced attribute selectors.v15.2.0Compare Source
getComputedStyle()for the'visibility'property. This sets the foundation for further work on inheritance, cascading, and specificity. (eps1lon)shadowRoot.activeElement.readystatechangeevents 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.valuewhen 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().canvasas an optional ``peerDependency`, which apparently helps with Yarn PnP support.v15.1.1Compare Source
nonceproperty fromHTMLScriptElementandHTMLStyleElementtoHTMLElement. 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.styleandon<event>properties to properly track their related attributes for SVG elements. (kbruneel)XMLHttpRequestmerging preflight and response headers. (thiagohirata)XMLHttpRequestreserializingcontent-typerequest headers unnecessarily. See whatwg/mimesniff#84 for more details. (thiagohirata)element.tagNameto be the ASCII uppercase of the element's qualified name, instead of the Unicode uppercase.v15.1.0Compare Source
Headersclass from the Fetch standard.element.translategetter and setter.XMLHttpRequeston the newly-released Node.js v12.form.elementsto exclude<input type="image">elements.pattern=""form control validation to apply the given regular expression to the whole string. (kontomondo)v15.0.0Compare Source
Several potentially-breaking changes, each of them fairly unlikely to actually break anything:
JSDOM.fromFile()now treats.xhtfiles asapplication/xhtml+xml, the same as it does for.xhtmland.xml. Previously, it would treat them astext/html.JSDOMconstructor'scontentTypeoption has acharsetparameter, and the first argument to the constructor is a binary data type (e.g.BufferorArrayBuffer), then thecharsetwill override any sniffed encoding in the same way as aContent-Typeheader would in browser scenarios. Previously, thecharsetparameter was ignored.BloborFileconstructor with theendings: "native"option, jsdom will now convert line endings to\non all operating systems, for consistency. Previously, on Windows, it would convert line endings to\r\n.v14.1.0Compare Source
<a>and<area>elements whosehref=""points to ajavascript:URL or fragment.<datalist>element'soptionsproperty.<input>element'slistproperty.PageTransitionEvent, and the firing ofpageshowevents during loading.Externalclass as a property ofwindow.innerHTMLandouterHTML) 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@importrule.<option>'slabelandvalueproperties to return correct values in various edge cases.loadevent during document loading to target theDocument, not theWindow.pretendToBeVisualoption to propagate to child subframes, as well as the mainWindow. (pyrho)nwsapiversion from v2.1.1 to v2.1.3, bringing along a few fixes in our selector engine.v14.0.0Compare Source
Breaking changes:
JSDOM.fragment()now creates fragments whose document has no browsing context, i.e. no associatedWindow. This means thedefaultViewproperty will be null, resources will not load, etc.JSDOM.fragment(), called with no arguments, now creates aDocumentFragmentwith 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 originatingJSDOMwas 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.v13.2.0Compare Source
MutationObservers! (pmdartus)<progress>element'svalue,max, andpositionproperties.navigator.pluginsandnavigator.mimeTypes. (But, they are always empty.)<summary>elements respond toclickevents by toggling their parent<details>.<summary>elements to be focusable.isTrustedset totrue.DOMParser-created documents to have theirreadyStateset to"complete".<fieldset>s get disabled.getComputedStyle()to throw a sensible exception when passed the wrong argument, instead of one that exposes jsdom internals.saxesdependency, so that it now correctly errors on XML fragments like<foo bar:="1"/>.v13.1.0Compare Source
el.insertAdjacentElement()andel.insertAdjacentText().resetevent toform.reset(). (epfremmer)type,value, anddefaultValueproperties to<output>elements, including their form reset behavior. (epfremmer)outputEl.htmlForproperty.<style>or<script>elements. This regressed in v11.6.0. To learn more, see V8 issue #6730.styleproperty on<a>and<area>elements. This regressed in v13.0.0.node.isConnectedto not always return false for nodes inside a shadow tree. (pmdartus)<button type="reset">and<input type="reset">elements to actually perform a form reset when clicked, instead of doing nothing. (epfremmer)el.setCustomValidity()for<output>and<fieldset>.clickevents, so that for example callingel.click()on the child of a submit button element will submit the form.focus/blurevents to be composed.mediaElement.durationto default toNaN.olEl.startto default to1.XMLHttpRequestagainst non-existantfile:URLs to treat that as a network error, instead of crashing. (pascalbayer) Note that in the future we may completely disableXMLHttpRequestusage againstfile:URLs to follow the browser security model.document.titlein SVG documents.titleElement.textto return the child text content, instead of being the same astitleElement.innerHTML.<textarea>s to properly account for child CDATA section nodes changing.Element.prototype[Symbol.unscopables].v13.0.0Compare Source
Breaking change:
canvaspackage, in favor of v2.x. This also removes support forcanvas-prebuilt, sincecanvasv2.x has a built-in prebuilt version.Other changes:
w3c-xmlserializerpackage. Previously we were just using the HTML serialization, even in XML documents.storageEvent.initStorageEvent()method.passiveoption toaddEventListener().relListproperty to<a>,<area>, and<link>elements.v12.2.0Compare Source
element.toggleAttribute()method.XMLHttpRequestsometimes sending an empty request body after a preflight request. (andreasf)formElement.formproperty to use an algorithm that also checks theform=""attribute, instead of always looking for the closest ancestor<form>element. (jamietre)canvasorcanvas-prebuiltpackages were installed, but failed to load. (joscha)v12.1.0Compare Source
saxpackage to the well-maintainedsaxesreplacement. This increases our specification conformance, including rejecting certain ill-formed XML documents that were previously accepted, and properly handling other constructs like empty comments, CDATA sections, and<script>elements. (lddubeau)fieldsetEl.elementsandfieldsetEl.typeproperties.optionsparameter todom.runVMScript(). (SimenB)fetch()implementations to see what element initiated the fetch. (sarvaje)inputandchangeevents for<input>elements to be trusted and uncancelable.<script>s with theasyncattribute to not execute before sync<script>s that precede them. We still do not, in general, have proper execution of scripts during the initial parsing of a document, so this fix is more of a reduction of badness than an alignment with the specification. This behavior regressed in v12.0.0. (sarvaje)v12.0.0Compare Source
This major release brings along our new resource loader API, finally bringing all the capabilities from jsdom v9 to the new (jsdom v10+) API. Thanks very much to @sarvaje for his work to make this possible!
Breaking changes:
parse5dependency to v5, which changes the format of the node locations returned bydom.nodeLocation().whatwg-urldependency to v7, which changes the origin offile:URLs to be an opaque origin (and thusfile:URLs are no longer same origin to each other).Other changes:
countReset(),dir()anddirxml()methods toconsole.InputEventclass.window.status.htmlElement.draggable.window.frameElementto correctly return an actualHTMLElementinstance, instead of a jsdom internal class.textareaelements to preserve their values.select.selectedOptionssometimes returning outdated results.:checked.window.nameto default to the empty string, per spec, instead of"nodejs".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 this update again.
This PR was generated by Mend Renovate. View the repository job log.