build(deps-dev): bump jsdom from 29.0.0 to 29.0.2#2644
Conversation
Bumps [jsdom](https://github.com/jsdom/jsdom) from 29.0.0 to 29.0.2. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](jsdom/jsdom@v29.0.0...v29.0.2) --- updated-dependencies: - dependency-name: jsdom dependency-version: 29.0.2 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
|
Suggested comment for Cursor review (copy and paste as a new comment): Note: GitHub Actions bot cannot trigger Cursor agent directly. Please copy the above comment to invoke the review. |
Build Branch
Static preview entry points
QR codes (mobile preview)
Integration commandsnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", branch: "pr-releases/dependabot/npm_and_yarn/main/jsdom-29.0.2")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/dependabot/npm_and_yarn/main/jsdom-29.0.2
git -C submodules/content-scope-scripts checkout origin/pr-releases/dependabot/npm_and_yarn/main/jsdom-29.0.2Pin to exact commitnpm (Android / Extension): Swift Package Manager (Apple): .package(url: "https://github.com/duckduckgo/content-scope-scripts.git", revision: "ff8220ba75996bd411b884159536df9d2651d1f6")git submodule (Windows): git -C submodules/content-scope-scripts fetch origin pr-releases/dependabot/npm_and_yarn/main/jsdom-29.0.2
git -C submodules/content-scope-scripts checkout ff8220ba75996bd411b884159536df9d2651d1f6 |
There was a problem hiding this comment.
Stale comment
Web Compatibility Assessment
injected/package.json(line 55), severity: info:jsdomis bumped from^29.0.0to^29.0.2indevDependenciesonly. No runtime injected feature code, wrapper utilities, API shims, or platform entry points are modified, so there is no direct browser API surface regression risk.package-lock.json(line 57, line 6598, line 9980), severity: info: Lockfile updates are constrained to dependency resolution for the test/tooling graph (jsdom,@asamuzakjp/*,@csstools/*,undici). No content-scope runtime bundle behavior is changed.Security Assessment
injected/package.json(line 55), severity: info: Change is isolated to a development dependency and does not alter hostile-page runtime paths (no changes to captured globals, message bridge, wrapper/proxy logic, or config gating).package-lock.json(line 6598), severity: info: Updated transitive packages execute in test tooling context, not in injected production script context. No newpostMessage, origin validation, bridge secret, or prototype-override attack surface is introduced.Risk Level
Low Risk — dependency/lockfile-only update in dev/test tooling with no modifications to injected runtime code or security-critical browser integration paths.
Recommendations
- Run injected test suites (
npm run test-unit --workspace injectedand relevant integration coverage) to catch anyjsdombehavioral shifts in DOM emulation that could affect test expectations.- If CI shows newly flaky DOM/CSS-selector tests, inspect changes from
@asamuzakjp/dom-selectorand@asamuzakjp/css-colorfirst; these are the most likely behavior-change vectors in this bump.- Keep this change isolated from functional code edits (as done here) to preserve rollback simplicity if test harness behavior regresses.
Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Stale comment
Dependency review for
jsdombump29.0.0 -> 29.0.2.Confirmed findings
No blocking issues found.
Evidence:
- Diff scope is limited to
injected/package.json+package-lock.jsondependency graph updates.jsdomis a devDependency only, used in injected unit tests (injected/unit-test/web-detection.js,injected/unit-test/page-context-dom.spec.js,injected/unit-test/dom-metadata.spec.js).- Upstream release notes for
v29.0.1andv29.0.2are behavior fixes in CSS parsing andgetComputedStyle()(no security-critical advisory in these notes).- Local validation on this PR state:
npm run test-unit --workspace=injectedpassed (889 specs, 0 failures).Uncertain concerns (non-blocking)
jsdomchangedgetComputedStyle()andbackground/bordershorthand parsing semantics across29.0.1/29.0.2.- Assumption: current tests adequately guard against behavior shifts. Required validation if we want higher confidence: add explicit assertions for
background/bordershorthand +var()+ indexedCSSStyleDeclarationaccess in the affected unit-test areas.Is this dependency still needed?
Yes, currently justified.
npm ls jsdom --allshowsjsdomis only pulled by theinjectedworkspace test harness, and there is no parallel DOM emulator dependency to consolidate.Separate follow-up PR
No fix PR is required for this bump.
Optional hardening PR: add targeted unit tests for the changed CSS/getComputedStyle behaviors to reduce future upgrade risk.Sent by Cursor Automation: Review dependabot
There was a problem hiding this comment.
Stale comment
Web Compatibility Assessment
- No compatibility regressions found in injected runtime code.
injected/package.json(devDependency update) — severity: info
jsdomwas bumped from^29.0.0to^29.0.2in dev tooling only. No changes to injected feature code, wrapper utilities, API shims, or platform entry points.package-lock.json(lockfile transitive updates) — severity: info
- Transitives (
@asamuzakjp/*,@csstools/*,undici) were updated as part of the jsdom bump. These affect test/runtime simulation in Node, not browser-injected production script behavior.Security Assessment
- No exploitable security issues identified in this diff.
injected/package.json,package-lock.json— severity: info
- No modifications to
captured-globals, message bridge, origin validation, stack-trace exemption logic, or any page-exposed override/shim code paths.- Change scope is limited to dev dependencies; no new messaging,
postMessage, eval-like execution, or DOM-injection patterns introduced.Risk Level
Low Risk — dependency/lockfile-only update in dev tooling (
jsdom) with no changes to injected production code paths or security-sensitive runtime surfaces.Recommendations
- Run
injectedunit/integration suites that rely onjsdomto catch subtle DOM emulation behavior changes in tests.- If any snapshot/assertion drift appears, prefer test expectation updates over production code changes unless a real browser behavior mismatch is proven.
- Keep this dependency bump isolated (no fallback code changes) unless CI demonstrates a concrete regression.
Sent by Cursor Automation: Web compat and sec
[Beta] Generated file diffTime updated: Fri, 22 May 2026 10:34:48 GMT |
There was a problem hiding this comment.
Dependency Update Risk Review (jsdom 29.0.0 → 29.0.2)
Findings (ordered by severity)
-
No confirmed blocking security/regression issues from this bump.
- Diff evidence: only
injected/package.jsonandpackage-lock.jsonchanged. - Upstream changelog evidence:
v29.0.1: fixes CSS shorthand parsing +getComputedStyle()regression.v29.0.2: furthergetComputedStyle()correctness/perf fixes + shorthand parsing fix.
- Diff evidence: only
-
Low / conditional concern (uncertain): transitive Node engine floor tightened in lockfile.
- New transitive deps (
@asamuzakjp/css-color,@asamuzakjp/dom-selector,@asamuzakjp/generational-cache) declarenode: ^20.19.0 || ^22.12.0 || >=24.0.0. - Assumption: installs run with
engine-strictoff (default npm behavior) and CI/dev Node from.nvmrc(22) is recent enough. - If any self-hosted/dev environments enforce strict engines on older Node patch versions, install could fail.
- New transitive deps (
Test Coverage Check
jsdomis used in targeted injected unit tests (dom-metadata,page-context,web-detection/evaluateMatch).- I ran targeted suites locally after
npm ci:dom-metadata.js: 18/18 passingpage-context.js - domToMarkdown: 20/20 passingevaluateMatch: 34/34 passing
- Coverage gap: full workspace unit/integration matrix was not rerun in this review pass.
Is dependency still needed?
- Yes, currently justified: it is the active DOM emulation layer for Node unit tests in
injected. - Alternative (non-blocking): evaluate
happy-dom/linkedomin a separate performance-focused PR if test runtime becomes a priority.
Recommendation
- Approve/merge is reasonable with current evidence.
- Optional hardening in a separate PR (not this one): add an explicit CI guard for Node floor compatibility (e.g., a lightweight
npm cijob with strict engines) to catch future transitive engine bumps early.
Sent by Cursor Automation: Review dependabot
|
A newer version of jsdom exists, but since this PR has been edited by someone other than Dependabot I haven't updated it. You'll get a PR for the updated version as normal once this PR is merged. |
There was a problem hiding this comment.
Stale comment
Web Compatibility Assessment
injected/package.jsonlines 58-58, severity: info:jsdomis bumped from^29.0.0to^29.0.2as an injected workspacedevDependencyonly. No injected feature code, wrapper utilities, API shims, platform entry points, or page-world lifecycle code changed, so there is no direct browser API surface or timing-regression risk.package-lock.jsonlines 61-61 and 6966-6997, severity: info: Lockfile movement is constrained to thejsdomtest/tooling dependency graph. The updated DOM/CSS selector/color behavior may affect Node unit-test expectations, but it does not change production content-scope bundles.package-lock.jsonlines 88-121 and 10395-10403, severity: info: Updated transitives (@asamuzakjp/*,@csstools/*,undici) are markeddev: true; no runtime web compatibility surface is introduced.Security Assessment
injected/package.jsonlines 58-58, severity: info: The change does not touch hostile-page runtime paths such ascaptured-globals,DDGProxy, wrapper utilities, message bridge, origin validation, stack-trace exemptions, or config gating.package-lock.jsonlines 6966-6997, severity: info: The newjsdompackage is still a dev-only test dependency. No new productionpostMessage, native messaging, eval-like execution, DOM injection, iframe access, or network request path is added to injected scripts.Risk Level
Low Risk — dependency/lockfile-only dev tooling update with no modifications to injected production code or security-critical browser integration paths.
Recommendations
- No blocking compatibility or security changes requested.
- Keep this PR dependency-only; avoid mixing in production code changes if CI exposes jsdom expectation drift.
- Validation run on current head:
npm cicompleted on Nodev22.22.0;npm run build --workspace=injected && npm run test-unit --workspace=injectedpassed (929 specs, 0 failures, 16 pending).Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Dependency review result: no blocking concerns found.
Evidence checked:
- Diff only updates
jsdomininjected/package.jsonand lockfile metadata from29.0.0to29.0.2; it remains a direct dev dependency. - Upstream
29.0.1/29.0.2release notes focus on CSS parsing andgetComputedStyle()/CSSStyleDeclarationfixes. The notable29.0.2getComputedStyle()regression report is closed, with the fix confirmed by using@asamuzakjp/dom-selector@7.1.1; this lockfile resolves that version. - Repo usage is limited to
JSDOMimports ininjected/unit-test/dom-metadata.spec.js,injected/unit-test/page-context-dom.spec.js, andinjected/unit-test/web-detection.js. - After
npm ci, verified installed versions includejsdom@29.0.2,@asamuzakjp/dom-selector@7.1.1,@asamuzakjp/css-color@5.1.11, andundici@7.25.0. - Targeted affected specs passed:
npx jasmine --config=unit-test/config.json unit-test/dom-metadata.spec.js unit-test/page-context-dom.spec.js unit-test/web-detection.js-> 118 specs, 0 failures. npm auditreports existing vulnerabilities, but none are attributed to the changed package set checked above.
Validation note: a full local npm run test-unit --workspace=injected run failed only because generated build artifacts were missing in this checkout (Sources/ContentScopeScripts/dist/*, build/*). PR CI shows the injected Ubuntu unit and injected integration jobs passing; some unrelated Windows / special-pages jobs were still running when reviewed.
No separate fix PR drafted because I did not find a concrete issue to fix.
Sent by Cursor Automation: Review dependabot
There was a problem hiding this comment.
Web Compatibility Assessment
injected/package.jsonlines 58-58, severity: info:jsdomis bumped from^29.0.0to^29.0.2as an injected workspacedevDependency. No injected feature code, wrapper utilities, API shims, DOM manipulation, lifecycle timing, or platform entry points changed, so there is no direct page-world compatibility surface.package-lock.jsonlines 61-61 and 6966-6997, severity: info: Lockfile changes are scoped to thejsdomtest/tooling graph. The likely behavior-change vectors are DOM/CSS emulation in Node tests (@asamuzakjp/*,@csstools/*,undici), not production content-scope bundles.
Security Assessment
injected/package.jsonlines 58-58, severity: info: No hostile-page runtime paths changed; this does not touchcaptured-globals,DDGProxy, wrapper utilities, message bridge, origin validation, stack-trace exemptions, config gating,postMessage, or iframe access.package-lock.jsonlines 88-129, 6966-6997, and 10395-10402, severity: info: Updated transitives are markeddev: true.npm auditstill reports existing repo vulnerabilities, but none match the changedjsdom/@asamuzakjp/@csstools/undicipackage set in this diff.
Risk Level
Low Risk — dependency/lockfile-only dev tooling update with no modifications to injected production code or security-critical browser integration paths.
Recommendations
- No blocking compatibility or security changes requested.
- Keep this PR dependency-only; if CI exposes
jsdomexpectation drift, handle it as test-harness behavior unless a real browser mismatch is demonstrated. - Validation on current head:
npm ci,npm run build --workspace=injected, andnpm run test-unit --workspace=injectedpassed (929 specs,0 failures,16 pending).
Sent by Cursor Automation: Web compat and sec
There was a problem hiding this comment.
Dependency update review for jsdom 29.0.0 -> 29.0.2:
No blocking concerns found.
Evidence checked:
- Diff only updates direct dev dependency
jsdomininjected/package.jsonplus lockfile transitive dev deps. - Upstream
jsdom29.0.1/29.0.2release notes are CSSOM-focused: fixes togetComputedStyle()indexed/liveness behavior, broader computed-value handling, andborder/backgroundshorthand parsing. - Lockfile transitive movement includes
@asamuzakjp/css-color,@asamuzakjp/dom-selector, new@asamuzakjp/generational-cache,@csstools/css-calc,@csstools/css-color-parser, andundici. These are all under the dev/test dependency graph here; the new package has no install lifecycle script in npm metadata. - Local repo usage of
JSDOMis limited to injected unit tests (web-detection,page-context-dom,dom-metadata), not shipped browser scripts.
Validation:
- Targeted dependency-sensitive specs passed locally:
npx jasmine --config=unit-test/config.json unit-test/web-detection.js unit-test/page-context-dom.spec.js unit-test/dom-metadata.spec.js --random=false-> 118 specs, 0 failures. - Full local
npm run test-unit -w injectedwas not a useful signal in this checkout because generated build artifacts were absent forverify-artifacts.js; PR CI shows the injected unit job and current injected integration jobs passing.
Residual risk:
- The main behavioral risk is test expectation drift around CSS computed styles/selectors, especially visibility checks using
display,visibility, andopacity. Existing targeted specs cover that surface and passed with29.0.2.
No separate fix PR appears necessary from this review.
Sent by Cursor Automation: Review dependabot


Bumps jsdom from 29.0.0 to 29.0.2.
Release notes
Sourced from jsdom's releases.
Commits
2a1e2cd29.0.24097d66Resolve computed CSS values lazily in CSSStyleDeclarationcf5523fAdd more test cases for nested color-mix with currentColorb33b616Add test that getComputedStyle() works with !important6bf559cAdd test for custom property inheritance in computed styles6817657Fix border shorthand handling470f5c5Consolidate color helpers3db53cbFix background shorthand handlers678e840Remove some longhand property filesd526a07Add regression test for getComputedStyle() livenessMaintainer changes
This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for jsdom since your current version.
You can trigger a rebase of this PR by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)Note
Low Risk
Low risk dependency-only update to the dev/test DOM environment; main risk is minor test behavior changes due to updated CSS/computed-style handling and transitive dependency bumps.
Overview
Updates the dev dependency
jsdomfrom29.0.0to29.0.2(and refreshespackage-lock.jsonaccordingly).This pulls in updated transitive packages (notably CSS parsing/computed style helpers and
undici) to match the newjsdomrelease.Reviewed by Cursor Bugbot for commit 1c7c9e2. Bugbot is set up for automated code reviews on this repo. Configure here.