chore(deps): update dependency jsdom to v29#18
Conversation
1e1359a to
e94d6ca
Compare
d50f6a6 to
8f17042
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
8f17042 to
9c45b05
Compare
📝 WalkthroughSummary by CodeRabbit
Walkthrough
Changesjsdom dependency update
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com>
9c45b05 to
a080194
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@package.json`:
- Line 72: The jsdom dependency has been bumped to a version that no longer
supports the current Node 16 baseline, so update the repository’s Node version
requirement or revert the jsdom upgrade. Check the Node version pinned in the
devcontainer Dockerfile and any project-level engine/baseline declarations, and
make them consistent with jsdom@29; use the jsdom entry in package.json and the
Node pin in Dockerfile.plugin as the main places to update.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 07de4aff-7bd7-49f1-a98f-8bbc0562ceae
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json,!**/package-lock.json
📒 Files selected for processing (1)
package.json
| "globals": "^17.4.0", | ||
| "i18next-parser": "^9.4.0", | ||
| "jsdom": "^26.1.0", | ||
| "jsdom": "^29.0.0", |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== package.json: jsdom + engines =="
jq '{engines, packageManager, devDependencies: {jsdom: .devDependencies.jsdom}}' package.json
echo
echo "== Node version pins across the repo =="
fd -HI '(^package\.json$|^\.nvmrc$|^\.node-version$|^\.tool-versions$|^Dockerfile.*$|^Containerfile.*$|^.*\.ya?ml$)' . -t f \
| while read -r f; do
matches="$(rg -n 'node-version|NODE_VERSION|node:|setup-node|20\\.|21\\.|22\\.|engines' "$f" || true)"
if [ -n "$matches" ]; then
echo "--- $f ---"
printf '%s\n' "$matches"
fi
done
echo
echo "== Downstream consumer =="
sed -n '1,40p' vitest.config.tsRepository: openshift/lightspeed-agentic-console
Length of output: 968
🌐 Web query:
jsdom 29 minimum Node.js version requirements
💡 Result:
The minimum Node.js version requirements for jsdom version 29 are defined in its package.json "engines" field as: ^20.19.0 || ^22.13.0 || >=24.0.0 [1][2] Specifically, with the release of version 29.0.0, the minimum supported version for the v22 branch was updated to v22.13.0+ (previously v22.12.0+) [3][4][5]. Users requiring support for older Node.js versions are advised to use earlier releases of jsdom (such as v26.1.0), as modern jsdom versions rely on dependencies that require these updated Node.js environments [3][6].
Citations:
- 1: https://npmx.dev/package/jsdom/v/29.1.1
- 2: https://npmx.dev/package/jsdom/v/latest
- 3: https://github.com/jsdom/jsdom/blob/v29.0.0/Changelog.md
- 4: https://github.com/jsdom/jsdom/releases/tag/29.0.0
- 5: https://github.com/jsdom/jsdom/releases
- 6: https://github.com/jsdom/jsdom/blob/main/Changelog.md
🌐 Web query:
jsdom 29 minimum Node.js version requirements
💡 Result:
The minimum Node.js version requirements for jsdom version 29 are defined by the engines field in its package.json file [1][2]. The supported versions are [2][3][4]: - Node.js ^20.19.0 - Node.js ^22.13.0 - Node.js >=24.0.0 These requirements mean that for the Node.js 20.x line, you must use version 20.19.0 or higher [2][3]. For the Node.js 22.x line, you must use version 22.13.0 or higher [5][2]. These versions are necessary due to the requirements of the project's dependencies [1].
Citations:
- 1: https://github.com/jsdom/jsdom/blob/v29.0.0/Changelog.md
- 2: https://npmx.dev/package/jsdom/v/29.1.1
- 3: https://npmx.dev/package/jsdom
- 4: https://npmx.dev/package/jsdom/v/latest
- 5: https://github.com/jsdom/jsdom/releases/tag/29.0.0
Update the Node baseline before merging this jsdom bump.
jsdom@29 requires Node ^20.19.0 || ^22.13.0 || >=24.0.0, but .devcontainer/Dockerfile.plugin still pins Node 16. Any environment using that image will break; either raise the repo’s Node baseline or keep jsdom on an older major.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@package.json` at line 72, The jsdom dependency has been bumped to a version
that no longer supports the current Node 16 baseline, so update the repository’s
Node version requirement or revert the jsdom upgrade. Check the Node version
pinned in the devcontainer Dockerfile and any project-level engine/baseline
declarations, and make them consistent with jsdom@29; use the jsdom entry in
package.json and the Node pin in Dockerfile.plugin as the main places to update.
This PR contains the following updates:
^26.1.0→^29.0.0Release Notes
jsdom/jsdom (jsdom)
v29.1.1Compare Source
'border-radius'computed style serialization. (@asamuzaK)'background-origin'and'background-clip'CSS properties. (@asamuzaK)getComputedStyle(), before the cache warms up. (@asamuzaK)v29.1.0Compare Source
getComputedStyle()sometimes returning outdated results after CSS was modified. (@asamuzaK)v29.0.2Compare Source
getComputedStyle(). Computed value rules are now applied across a broader set of properties, and include fixes related to inheritance, defaulting keywords, custom properties, and color-related values such ascurrentcolorand system colors. (@asamuzaK)'background' and'border'shorthand parsing. (@asamuzaK)v29.0.1Compare Source
'border','background', and their sub-shorthands containing keywords orvar(). (@asamuzaK)getComputedStyle()to return a more functionalCSSStyleDeclarationobject, including indexed access support, which regressed in v29.0.0.v29.0.0Compare Source
Breaking changes:
Other changes:
@acemir/cssomandcssstyledependencies with fresh internal implementations built on webidl2js wrappers and thecss-treeparser. Serialization, parsing, and API behavior is improved in various ways, especially around edge cases.CSSCounterStyleRuleandCSSNamespaceRuleto jsdomWindows.cssMediaRule.matchesandcssSupportsRule.matchesgetters.MediaList, usingcss-treeinstead of naive comma-splitting. Invalid queries become"not all"per spec.cssKeyframeRule.keyTextgetter/setter validation.cssStyleRule.selectorTextsetter validation: invalid selectors are now rejected.styleSheet.ownerNode,styleSheet.href, andstyleSheet.title.Documentinitialization performance by lazily initializing the CSS selector engine, avoiding ~0.5 ms of overhead perDocument. (@thypon)CSSStyleDeclarationmodifications to properly trigger custom element reactions.@mediarule parsing.CSSStyleSheet's "disallow modification" flag not being checked in all mutation methods.XMLHttpRequest'sresponsegetter returning parsed JSON during theLOADINGstate instead ofnull.getComputedStyle()crashing in XHTML documents when stylesheets contained at-rules such as@pageor@font-face.XMLHttpRequestcaused by a race condition with the worker thread's idle timeout.v28.1.0Compare Source
blob.text(),blob.arrayBuffer(), andblob.bytes()methods.getComputedStyle()to account for CSS specificity when multiple rules apply. (@asamuzaK)XMLHttpRequestperformance by using a persistent worker thread, avoiding ~400ms of setup overhead on every synchronous request after the first one.node.getRootNode(),node.isConnected, andevent.dispatchEvent()by caching the root node of document-connected trees.getComputedStyle()to correctly handle!importantpriority. (@asamuzaK)document.getElementById()to return the first element in tree order when multiple elements share the same ID.<svg>elements to no longer incorrectly proxy event handlers to theWindow.FileReaderevent timing andfileReader.resultstate to more closely follow the spec.XMLHttpRequestencountered dispatch errors.fetch()has been used before importing jsdom, by working around undici v6/v7 incompatibilities.v28.0.0Compare Source
<iframe>and<frame>loads.WebSockets are no longer correctly throttled to one connection per origin. This is a result of the bug at nodejs/undici#4743.<a>and<area>elements in non-UTF-8 documents.XMLHttpRequestfetches andWebSocketupgrade requests to be interceptable by the new customizable resource loading. (Except synchronousXMLHttpRequests.)ArrayBuffers or typed arrays to various APIs, where they would not correctly snapshot the data.require("url").parse()deprecation warning when usingWebSockets.<iframe>,<frame>, and<img>(whencanvasis installed) to fireloadevents, noterrorevents, on non-OK HTTP responses.XMLHttpRequest.v27.4.0Compare Source
TextEncoderandTextDecoder.@exodus/bytespackage; it is now much more correct. (@ChALkeR)<meta charset>or using the parent frame's encoding.Ranges were used and then the elements referred to by those ranges were removed.v27.3.0Compare Source
@acemir/cssom. (@acemir)v27.2.0Compare Source
CSSGroupingRule,CSSNestedDeclarations,CSSConditionRule,CSSContainerRule,CSSScopeRule,CSSSupportsRule,CSSLayerBlockRule, andCSSLayerStatementRuleto jsdomWindows. (@acemir)@acemir/cssom. (@acemir)@import-ed stylesheets to be properly exposed to CSSOM, and not to overwrite the sheet created from the<link>or<style>element. (@acemir)v27.1.0Compare Source
@acemir/cssom, including support for nested selectors, nested declarations, layer statements, and improved at-rule validation. (@acemir)package.json"engines"field to reflect the new minimum Node.js versions needed to run jsdom, as noted in the changelog for v27.0.1.v27.0.1Compare Source
This release inadvertently raised the minimum Node.js version from v20.0.0 to v20.19.0+, v22.12.0+, v24.0.0+. (This happened via a dependency update.) This probably should have been a breaking (major) change, instead of happening in a patch version, since it prevents using earlier Node.js versions.
After further testing, we found that most of our development dependencies also require these versions, and so it's not feasible for the jsdom project to support earlier Node.js versions. (For example, our testing frameworks will not run on them.) If you need to use such earlier versions, or otherwise are working in an environment which gives related errors such as
ERR_REQUIRE_ESM, then please stick with the v26.1.0 release of jsdom. (Noting, of course, that such versions are unsupported, and we will not respond to bug reports opened against them.)Subsequent jsdom releases will explicitly require these minimum Node.js versions, and will have CI testing to ensure that the minimum version is not accidentally raised again.
Normal changelog:
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.Configuration
📅 Schedule: (in timezone UTC)
* * * * *)🚦 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.
To execute skipped test pipelines write comment
/ok-to-test.Documentation
Find out how to configure dependency updates in MintMaker documentation or see all available configuration options in Renovate documentation.