Commit 2bbbcc4
Update dependency jsdom to v27 (#42636)
This PR contains the following updates:
| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| [jsdom](https://redirect.github.com/jsdom/jsdom) | devDependencies | major | [`~26.1.0` -> `~27.1.0`](https://renovatebot.com/diffs/npm/jsdom/26.1.0/27.1.0) | `27.3.0` (+1) |
---
### Release Notes
<details>
<summary>jsdom/jsdom (jsdom)</summary>
### [`v27.1.0`](https://redirect.github.com/jsdom/jsdom/blob/HEAD/Changelog.md#2710)
[Compare Source](https://redirect.github.com/jsdom/jsdom/compare/27.0.1...27.1.0)
- Improved CSS parsing by switching to [`@acemir/cssom`](https://www.npmjs.com/package/@​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/27.0.0...27.0.1)
**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:
- 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/26.1.0...27.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/@​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 - "on the first day of the month" in timezone America/Los_Angeles, 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.
---
- [ ] If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate).
GitOrigin-RevId: 54e8e908dc3bc6e023db2ddacbbf7f9c09c42ec91 parent 40a8734 commit 2bbbcc4
1 file changed
+1
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
309 | 309 | | |
310 | 310 | | |
311 | 311 | | |
312 | | - | |
| 312 | + | |
313 | 313 | | |
314 | 314 | | |
315 | 315 | | |
| |||
0 commit comments