Skip to content

Commit cada696

Browse files
chore(deps): update dependency jsdom to v29 (#260)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [jsdom](https://redirect.github.com/jsdom/jsdom) | [`^26.0.0` → `^29.0.0`](https://renovatebot.com/diffs/npm/jsdom/26.1.0/29.0.1) | ![age](https://developer.mend.io/api/mc/badges/age/npm/jsdom/29.0.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jsdom/26.1.0/29.0.1?slim=true) | --- ### Release Notes <details> <summary>jsdom/jsdom (jsdom)</summary> ### [`v29.0.1`](https://redirect.github.com/jsdom/jsdom/compare/v29.0.0...v29.0.1) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v29.0.0...v29.0.1) ### [`v29.0.0`](https://redirect.github.com/jsdom/jsdom/blob/HEAD/Changelog.md#2900) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v28.1.0...v29.0.0) Breaking changes: - Node.js v22.13.0+ is now the minimum supported v22 version (was v22.12.0+). Other changes: - Overhauled the CSSOM implementation, replacing the [`@acemir/cssom`](https://www.npmjs.com/package/@&#8203;acemir/cssom) and [`cssstyle`](https://redirect.github.com/jsdom/cssstyle) dependencies with fresh internal implementations built on webidl2js wrappers and the [`css-tree`](https://www.npmjs.com/package/css-tree) parser. Serialization, parsing, and API behavior is improved in various ways, especially around edge cases. - Added `CSSCounterStyleRule` and `CSSNamespaceRule` to jsdom `Window`s. - Added `cssMediaRule.matches` and `cssSupportsRule.matches` getters. - Added proper media query parsing in `MediaList`, using `css-tree` instead of naive comma-splitting. Invalid queries become `"not all"` per spec. - Added `cssKeyframeRule.keyText` getter/setter validation. - Added `cssStyleRule.selectorText` setter validation: invalid selectors are now rejected. - Added `styleSheet.ownerNode`, `styleSheet.href`, and `styleSheet.title`. - Added bad port blocking per the [fetch specification](https://fetch.spec.whatwg.org/#bad-port), preventing fetches to commonly-abused ports. - Improved `Document` initialization performance by lazily initializing the CSS selector engine, avoiding \~0.5 ms of overhead per `Document`. (thypon) - Fixed a memory leak when stylesheets were removed from the document. - Fixed `CSSStyleDeclaration` modifications to properly trigger custom element reactions. - Fixed nested `@media` rule parsing. - Fixed `CSSStyleSheet`'s "disallow modification" flag not being checked in all mutation methods. - Fixed `XMLHttpRequest`'s `response` getter returning parsed JSON during the `LOADING` state instead of `null`. - Fixed `getComputedStyle()` crashing in XHTML documents when stylesheets contained at-rules such as `@page` or `@font-face`. - Fixed a potential hang in synchronous `XMLHttpRequest` caused by a race condition with the worker thread's idle timeout. ### [`v28.1.0`](https://redirect.github.com/jsdom/jsdom/blob/HEAD/Changelog.md#2810) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v28.0.0...v28.1.0) - Added `blob.text()`, `blob.arrayBuffer()`, and `blob.bytes()` methods. - Improved `getComputedStyle()` to account for CSS specificity when multiple rules apply. (asamuzaK) - Improved synchronous `XMLHttpRequest` performance by using a persistent worker thread, avoiding \~400ms of setup overhead on every synchronous request after the first one. - Improved performance of `node.getRootNode()`, `node.isConnected`, and `event.dispatchEvent()` by caching the root node of document-connected trees. - Fixed `getComputedStyle()` to correctly handle `!important` priority. (asamuzaK) - Fixed `document.getElementById()` to return the first element in tree order when multiple elements share the same ID. - Fixed `<svg>` elements to no longer incorrectly proxy event handlers to the `Window`. - Fixed `FileReader` event timing and `fileReader.result` state to more closely follow the spec. - Fixed a potential hang when synchronous `XMLHttpRequest` encountered dispatch errors. - Fixed compatibility with environments where Node.js's built-in `fetch()` has been used before importing jsdom, by working around undici v6/v7 incompatibilities. ### [`v28.0.0`](https://redirect.github.com/jsdom/jsdom/blob/HEAD/Changelog.md#2800) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v27.4.0...v28.0.0) - Overhauled resource loading customization. See [the new README](https://redirect.github.com/jsdom/jsdom/blob/2b65c6a80af2c899e32933c5e0cb842164852149/README.md#loading-subresources) for details on the new API. - Added MIME type sniffing to `<iframe>` and `<frame>` loads. - Regression: `WebSocket`s are no longer correctly throttled to one connection per origin. This is a result of the bug at [nodejs/undici#4743](https://redirect.github.com/nodejs/undici/issues/4743). - Fixed decoding of the query components of `<a>` and `<area>` elements in non-UTF-8 documents. - Fixed `XMLHttpRequest` fetches and `WebSocket` upgrade requests to be interceptable by the new customizable resource loading. (Except synchronous `XMLHttpRequest`s.) - Fixed the referrer of a document to be set correctly when redirects are involved; it is now the initiating page, not the last hop in the redirect chain. - Fixed correctness bugs when passing `ArrayBuffer`s or typed arrays to various APIs, where they would not correctly snapshot the data. - Fixed `require("url").parse()` deprecation warning when using `WebSocket`s. - Fixed `<iframe>`, `<frame>`, and `<img>` (when `canvas` is installed) to fire `load` events, not `error` events, on non-OK HTTP responses. - Fixed many small issues in `XMLHttpRequest`. ### [`v27.4.0`](https://redirect.github.com/jsdom/jsdom/blob/HEAD/Changelog.md#2740) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v27.3.0...v27.4.0) - Added `TextEncoder` and `TextDecoder`. - Improved decoding of HTML bytes by using the new [`@exodus/bytes`](https://www.npmjs.com/package/@&#8203;exodus/bytes) package; it is now much more correct. (ChALkeR) - Improved decoding of XML bytes to use UTF-8 more often, instead of sniffing for `<meta charset>` or using the parent frame's encoding. - Fixed a memory leak when `Range`s were used and then the elements referred to by those ranges were removed. ### [`v27.3.0`](https://redirect.github.com/jsdom/jsdom/blob/HEAD/Changelog.md#2730) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v27.2.0...v27.3.0) - Improved CSS parsing and CSSOM object APIs via updates to [`@acemir/cssom`](https://www.npmjs.com/package/@&#8203;acemir/cssom). (acemir) ### [`v27.2.0`](https://redirect.github.com/jsdom/jsdom/blob/HEAD/Changelog.md#2720) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v27.1.0...v27.2.0) - Added `CSSGroupingRule`, `CSSNestedDeclarations`, `CSSConditionRule`, `CSSContainerRule`, `CSSScopeRule`, `CSSSupportsRule`, `CSSLayerBlockRule`, and `CSSLayerStatementRule` to jsdom `Window`s. (acemir) - Improved CSS parsing and CSSOM object APIs via updates to [`@acemir/cssom`](https://www.npmjs.com/package/@&#8203;acemir/cssom). (acemir) - Fixed `@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.0`](https://redirect.github.com/jsdom/jsdom/blob/HEAD/Changelog.md#2710) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v27.0.1...v27.1.0) - Improved CSS parsing by switching to [`@acemir/cssom`](https://www.npmjs.com/package/@&#8203;acemir/cssom), including support for nested selectors, nested declarations, layer statements, and improved at-rule validation. (acemir) - Fixed some selector cache invalidation issues where changes to attributes were not being picked up. (asamuzaK) - Fixed `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.1`](https://redirect.github.com/jsdom/jsdom/blob/HEAD/Changelog.md#2701) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v27.0.0...v27.0.1) - Fixed some regressions in CSS selectors. Most such regression fixes were done in a minor update of a dependency, and thus available for all fresh installs of v27.0.0. However, one related to `class=""` attribute changes is only possible with a new version of jsdom. (asamuzaK) ### [`v27.0.0`](https://redirect.github.com/jsdom/jsdom/blob/HEAD/Changelog.md#2700) [Compare Source](https://redirect.github.com/jsdom/jsdom/compare/v26.1.0...v27.0.0) ##### Changes since 26.1.0 - Node.js v20 is now the minimum supported version. - Added a variety of event constructors, even though we do not implement their associated specifications or ever fire them: `BeforeUnloadEvent`, `BlobEvent`, `DeviceMotionEvent` (omitting `requestPermission()`), `DeviceOrientationEvent` (omitting `requestPermission()`), `PointerEvent`, `PromiseRejectionEvent`, and `TransitionEvent`. - Added `movementX` and `movementY` to `MouseEvent`. (These are from the [Pointer Lock](https://w3c.github.io/pointerlock/) specification, the rest of which is not implemented.) - Added `customElements.getName()`. (mash-graz) - Updated the [virtual console](https://redirect.github.com/jsdom/jsdom/blob/ab384d4e381eb6bb99ade4146698d35167b54837/README.md#virtual-consoles): - `"jsdomError"` events are now documented, with specific `type` properties and other properties that depend on the type. - `sendTo()` was renamed to `forwardTo()`. - The `jsdomErrors` option to `forwardTo()` can be used to control which errors are sent to the Node.js console. This replaces the previous `omitJSDOMErrors` boolean option. - `"jsdomError"`s for failed `XMLHttpRequest` fetches are no longer emitted. - The values that are printed when forwarding `"jsdomError"`s to the Node.js console are streamlined. - Switched our CSS selector engine from [`nwsapi`](https://www.npmjs.com/nwsapi) to [`@asamuzakjp/dom-selector`](https://www.npmjs.com/package/@&#8203;asamuzakjp/dom-selector), closing over 20 selector-related bugs. - Upgraded [`tough-cookie`](https://www.npmjs.com/package/tough-cookie), which now considers URLs like `http://localhost/` to be secure contexts (per [the spec](https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy)), and thus will return `Secure`-flagged cookies for such URLs. (colincasey) - Upgraded [`cssstyle`](https://redirect.github.com/jsdom/cssstyle), which brings along many improvements and fixes to the `CSSStyleDeclaration` object and its properties. - Updated the user agent stylesheet to be derived from the HTML Standard, instead of from an old revision of Chromium. - Changed `element.click()` to fire a `PointerEvent` instead of a `MouseEvent`. - Changed certain events to be passive by default. - Changed the `<input>` element's `pattern=""` attribute to use the `v` regular expression flag, instead of `u`. - Fixed many specification conformance issues with the `Window` object, including named properties and changing various data properties to accessor properties. - Fixed `document.createEvent()` to accept a more correct set of event names. - Fixed the `ElementInternals` accessibility getters and setters. (They were introduced in v23.1.0, but due to inadequate test coverage never actually worked.) - Fixed using `Object.defineProperty()` on certain objects, such as `HTMLSelectElement` instances. - Fixed `jsdom.reconfigure({ url })` not updating `document.baseURI` or properties derived from it. (This regressed in v26.1.0.) - Fixed CSS system colors, as well as the `initial`, `inherit`, and `unset` keywords, to resolve correctly. (asamuzaK) - Fixed CSS `display` style resolution. (asamuzaK) ##### Changes since 27.0.0-beta.3 - Upgraded `cssstyle`, which brings along various CSS parsing fixes. </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), 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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/processone/fluux-messenger). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjEwMC4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWwiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Metalhearf <6446231+Metalhearf@users.noreply.github.com>
1 parent 12e75a0 commit cada696

3 files changed

Lines changed: 316 additions & 278 deletions

File tree

apps/fluux/src/utils/mediaCache.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,7 @@ async function doResolve(originalUrl: string): Promise<string> {
146146
const finalPath = await getCacheFilePath(originalUrl, mimeType)
147147

148148
const { writeFile } = await import('@tauri-apps/plugin-fs')
149-
// Use Response API for broader compatibility (jsdom Blob lacks arrayBuffer)
150-
const arrayBuffer = await new Response(blob).arrayBuffer()
149+
const arrayBuffer = await blob.arrayBuffer()
151150
await writeFile(finalPath, new Uint8Array(arrayBuffer))
152151

153152
const assetUrl = convertFileSrc(finalPath)

0 commit comments

Comments
 (0)