Skip to content

build(deps-dev): bump jsdom from 30.1.3 to 31.0.0 - #534

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/jsdom-31.0.0
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/jsdom-31.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Bumps jsdom from 30.1.3 to 31.0.0.

Release notes

Sourced from jsdom's releases.

v31.0.0

Breaking changes

  • Changed the optional canvas and image decoding backend from canvas to @napi-rs/canvas. Install @napi-rs/canvas v1.0.13 or later in the v1.x series alongside jsdom; installing canvas alone no longer enables this support. The new backend provides prebuilt Skia binaries on supported platforms, and rendering and encoded image bytes can differ. Projects using native canvas objects or custom font registration should follow the canvas migration guidance. Added WebP serialization through canvas.toDataURL() and canvas.toBlob(). Fixed image loading to wait for decoding before firing load, discard obsolete source requests, avoid refetching when dimensions change, and prevent failed images from drawing stale contents. Fixed canvas context and serialization behavior, including unsupported context types, read-only ctx.canvas, image-drawing exceptions, MIME type and quality normalization, and asynchronous null results from canvas.toBlob() for empty canvases or encoding failures. (@​Brooooooklyn)
  • Changed CSS parsing, selector matching, and computed styles to use a new integrated implementation, with substantially expanded support and faster selector queries and repeated style reads. This includes cascade layers, nesting, @scope, custom-property substitution and registration through @property and CSS.registerProperty(), typed attr(), conditional if(), shadow-tree styling with :host, ::slotted(), and ::part(), pseudo-element computed styles, and constructable stylesheets with document.adoptedStyleSheets and shadowRoot.adoptedStyleSheets. Fixed numerous cascade, shorthand, serialization, and default-style issues; computed declarations now stay live across DOM and stylesheet changes. CSS serialization and computed values can differ from previous releases.
  • Changed HTML and XML parsing to pause at blocking scripts until their required resources are ready. The JSDOM constructor, JSDOM.fromURL(), and JSDOM.fromFile() can now return partially parsed documents. Wait for DOMContentLoaded for the finished tree, or the window's load event for load-delaying resources, checking document.readyState first in case the event has already fired. XML syntax errors encountered after asynchronous parsing resumes are reported through the virtual console as "xml-parsing" errors.

Other changes

  • Added window.reportError(), which dispatches an error event and reports uncanceled errors to the virtual console. (@​sarankumar1325)
  • Added element.ariaBrailleLabel and element.ariaBrailleRoleDescription. (@​Kjubikstronk)
  • Fixed page-completion load events to fire only on the window. Use window.addEventListener("load", ...) or window.onload instead of listening on the document.
  • Fixed document.open(), including implicit calls from document.write(), to clear event listeners and handlers from the document, its descendants, and its window when replacing the input stream.
  • Fixed document.write() to process successive writes through the parser's input stream, preserve insertion points across nested scripts, and make completed text immediately visible. Script-created input streams now remain open until document.close().
  • Fixed dynamically inserted scripts to respect script.async = false execution order, use their source text and document from preparation time, and avoid executing after adoption into another document. Scripts parsed through inert fragment APIs no longer execute when subsequently inserted.
  • Fixed unrelated images, stylesheets, and frames being delayed behind scripts, and resource completion events firing before nested stylesheet imports finish. Cyclic imports no longer prevent completion, and <style> elements in shadow trees now fire load events.
  • Fixed window.stop() to cancel pending subresource and XMLHttpRequest requests in descendant frames and suppress completion events for canceled loads, while allowing subsequent requests to proceed.
  • Fixed repeated document.close() calls replaying readiness and load events, and incorrect iframe load events when reopening documents from event handlers.
  • Fixed memory leaks where pending request interceptor promises retained closed windows, introduced in v28.0.0.
  • Fixed focus remaining on elements that become non-focusable after DOM or style changes. Focus now moves asynchronously to the document's viewport, and element.blur() can release it immediately.
  • Fixed document.hasFocus() returning false before an element is focused or during focus transitions within the document, including inside frames.
  • Fixed \<template> parsing and template.innerHTML serialization in XML documents, including templates with namespace prefixes. (@​b84330808)
  • Fixed rect.toJSON() and performance.toJSON() to create their result objects in the method's realm instead of the host Node.js realm.
Commits
  • 825fa8e 31.0.0
  • 9f2e49a Add ariaBrailleLabel and ariaBrailleRoleDescription
  • 4c0a35e Flush text written with document.write()
  • fce11d3 Switch canvas support to @​napi-rs/canvas
  • 27614bf Fix document.hasFocus() during focus changes
  • 627ade2 Implement asynchronous focus fixup
  • 8bd17a2 Implement reportError()
  • 5ae66cf Update webidl2js and remove IDL workarounds
  • ce5a100 Align development scripts and CI
  • 9cc717f Adopt ESLint config v6 and oxfmt
  • Additional commits viewable in compare view

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

Deploying podnotes with  Cloudflare Pages  Cloudflare Pages

Latest commit: ab2ff0b
Status: ✅  Deploy successful!
Preview URL: https://14a8f413.podnotes.pages.dev
Branch Preview URL: https://dependabot-npm-and-yarn-jsdo-tkd1.podnotes.pages.dev

View logs

@dependabot
dependabot Bot requested a review from chhoumann as a code owner November 12, 2026 12:23
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Nov 12, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not mergeable as a lockfile-only bump. jsdom 31.0.0 replaces CSS parsing, selector matching, and computed styles; src/ui/PodcastView/styles.test.ts is written against jsdom 30 serialization and fails 10 of 16 cases. GitHub Test / Unit tests is red. Plugin runtime is untouched (jsdom is test-only), so this needs a dedicated assertion migration, not Dependabot.

Bump: jsdom 30.1.3 → 31.0.0 (package.json + lockfile). Published 2026-11-05; 7-day cooldown is satisfied. Title is build(deps-dev): and will not cut a release.

What passed (Node 22.23.4): npm ci (lockfile unchanged), lint, format:check, typecheck, build, size (318892 raw / 103371 gzip, same as #530). npm audit --omit=dev 0. Remaining 127 unit files / 2816 tests pass. Six style cases still pass (unguarded :hover scan, tablet padding, disabled opacity, search-field padding).

What failed (local and CI):

Case jsdom 30.1.3 jsdom 31.0.0
play/card transition transform 120ms ease transform 0.12s
play/card animation "" none
EQ bars "" / pn-eq 1s ease-in-out infinite all / 1s ease-in-out -0.8s infinite pn-eq
focus outline 2px solid var(--interactive-accent) 3px rgb(0, 0, 0) (UA default; unresolved var() dropped)
hover background-color: var(--background-modifier-hover) preserved custom property rgba(0, 0, 0, 0)
skip-button rest rgba(0, 0, 0, 0) rgb(204, 204, 204)
transcript label display inline block
artwork box-shadow var(--shadow-s) currentcolor none

The hover workaround that retargets background: var( to background-color: var( (added after #515) no longer keeps unresolved custom properties. Same class of failure as #515, worse (10 vs 5).

Do not merge until styles.test.ts is migrated to jsdom 31’s computed-style serialization (and the hover/outline/shadow var() behavior is re-proven, not just retuned). Keep this PR as the version bump only if that migration lands with it; otherwise close in favor of a dedicated PR.

Open in Web View Automation 

Sent by Cursor Automation: Dependabot PRs

Comment thread package.json
"acorn": "^8.19.0",
"eslint-plugin-obsidianmd": "^0.4.2",
"jsdom": "^30.1.3",
"jsdom": "^31.0.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jsdom 31.0.0 is a CSS-engine major. This pin is the only source change, and it reds src/ui/PodcastView/styles.test.ts (10/16) on both this checkout and GitHub Unit tests. Do not land the version bump until those assertions are migrated.

Bumps [jsdom](https://github.com/jsdom/jsdom) from 30.1.3 to 31.0.0.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Commits](jsdom/jsdom@v30.1.3...v31.0.0)

---
updated-dependencies:
- dependency-name: jsdom
  dependency-version: 31.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/jsdom-31.0.0 branch from d75b765 to ab2ff0b Compare November 12, 2026 12:28

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants