Skip to content

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Oct 11, 2025

Bumps happy-dom from 18.0.1 to 20.0.0.

Release notes

Sourced from happy-dom's releases.

v20.0.0

I avoid making breaking changes as much as possible in Happy DOM. When I have to make a breaking change, I try to keep it as minimal as possible. This could be a breaking change that impacts many projects, and I am truly sorry if you are negatively affected by this.

💣 Breaking Changes

  • Due to security risks, JavaScript evaluation is now disabled by default - By @​capricorn86 in task #1930
    • A security advisory (GHSA-37j7-fg3j-429f) has been reported that shows a security vulnerability where it's possible to escape the VM context and get access to process level functionality. Big thanks to @​Mas0nShi for reporting this!
    • Due to this security risk, JavaScript evaluation is now disabled by default to prevent that consumers accidentally executes untrusted code without taking precautions
    • JavaScript evaluation can be enabled by setting enableJavaScriptEvaluation to "true". Read more about how to enable this in a safer way in the Wiki

v19.0.2

👷‍♂️ Patch fixes

  • Fixes issue related to CSS pseudo selector :scope that didn't work correctly for direct descendants to root - By @​capricorn86 in task #1620

v19.0.1

👷‍♂️ Patch fixes

  • Fixes issue with sending in URLs as string in @happy-dom/server-renderer config using CLI - By @​capricorn86 in task #1908

v19.0.0

💣 Breaking Changes

  • Removes support for CommonJS - By @​capricorn86 in task #1730
    • Support for CommonJS is no longer needed as Node.js v18 is deprecated and v20 and above supports loading ES modules from CommonJS using require()
  • Updates Jest to v30 in the @happy-dom/jest-environment package - By @​capricorn86 in task #1730
  • Makes Jest packages peer dependencies to make it easier to align versions with the project using @happy-dom/jest-environment - By @​capricorn86 in task #1730

🎨 Features

  • Adds a new package called @happy-dom/server-renderer - By @​capricorn86 in task #1730
    • This package provides a simple way to statically render (SSG) or server-side render (SSR) your client-side application
    • Read more in the Wiki under Server-Renderer
  • Adds support for import.meta to the ESM compiler - By @​capricorn86 in task #1730
  • Adds support for the CSS pseudo selector :scope - By @​capricorn86 in task #1620
  • Improves support for MediaList - By @​capricorn86 in task #1730
  • Adds support for CSSKeywordValue, CSSStyleValue, StylePropertyMap, StylePropertyMap, StylePropertyMapReadOnly - By @​capricorn86 in task #1730
  • Improves debug information in the ESM compiler - By @​capricorn86 in task #1730
  • Adds validation of browser settings when creating a new Browser instance - By @​capricorn86 in task #1730
  • Adds support for the browser setting navigation.beforeContentCallback which makes it possible to inject event listeners or logic before content is loaded to the document when navigating a browser frame - By @​capricorn86 in task #1730
  • Adds support for the browser setting fetch.requestHeaders which provides with a declarative and simple way to add request headers - By @​capricorn86 in task #1730
  • Adds support for setting an object to timer.preventTimerLoops which makes it possible to define different settings for setTimeout() and requestAnimationFrame() - By @​capricorn86 in task #1730
  • Adds support for the browser setting viewport which makes it possible to define a default viewport size - By @​capricorn86 in task #1730
  • Adds support for the parameters beforeContentCallback and headers to BrowserFrame.goto(), BrowserFrame.goBack(), BrowserFrame.goForward(), BrowserFrame.goSteps() and BrowserFrame.reload() - By @​capricorn86 in task #1730
  • Adds support for PopStateEvent and trigger the event when navigating the page history using History.pushState() - By @​capricorn86 in task #1730
  • Use local file paths for virtual server files in stack traces - By @​capricorn86 in task #1730
  • Adds support for ResponseCache.fileSystem.load() and ResponseCache.fileSystem.save() for storing and loading cache from the file system - By @​capricorn86 in task #1730

👷‍♂️ Patch fixes

  • Fixes a bug in the ESM compiler that caused it to fail to parse certain code - By @​capricorn86 in task #1730
  • Disables the same origin policy when navigating a browser frame using BrowserFrame.goto() - By @​capricorn86 in task #1730
  • Fixes bug where CSS selectors with the pseudos "+" and ">" failed for selectors without arguments - By @​capricorn86 in task #1730

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Summary by cubic

Upgrade the dev dependency happy-dom from 18.0.1 to 20.0.0. This brings a security hardening that disables JavaScript evaluation by default, which may affect tests that rely on script execution.

  • Migration
    • If tests need scripts to run, enable it via enableJavaScriptEvaluation: true in Happy DOM settings (e.g., Vitest environment options).
    • Ensure any direct happy-dom usage is ESM; CommonJS is no longer supported.

Bumps [happy-dom](https://github.com/capricorn86/happy-dom) from 18.0.1 to 20.0.0.
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v18.0.1...v20.0.0)

---
updated-dependencies:
- dependency-name: happy-dom
  dependency-version: 20.0.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Oct 11, 2025
Copy link

changeset-bot bot commented Oct 11, 2025

⚠️ No Changeset found

Latest commit: 66e5f70

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link

vercel bot commented Oct 11, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
react-email Ready Ready Preview Comment Oct 11, 2025 0:09am
react-email-demo Ready Ready Preview Comment Oct 11, 2025 0:09am

Copy link

Caution

Review the following alerts detected in dependencies.

According to your organization's Security Policy, you must resolve all "Block" alerts before proceeding. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Block Medium
@swc/[email protected] has Install scripts.

Install script: postinstall

Source: node postinstall.js

From: pnpm-lock.yamlnpm/@swc/[email protected]

ℹ Read more on: This package | This alert | What is an install script?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Packages should not be running non-essential scripts during install and there are often solutions to problems people solve with install scripts that can be run at publish time instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@swc/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

1 issue found across 2 files

Prompt for AI agents (all 1 issues)

Understand the root cause of the following 1 issues and fix them.


<file name="package.json">

<violation number="1" location="package.json:22">
This update to `happy-dom` v20.0.0 introduces a breaking change by disabling JavaScript evaluation by default. Multiple `vitest.config.ts` files across the repository use `happy-dom` as the test environment but have not been updated to re-enable it, which will cause widespread test failures.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

"@types/react": "19.0.1",
"@types/react-dom": "19.0.1",
"happy-dom": "18.0.1",
"happy-dom": "20.0.0",
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Oct 11, 2025

Choose a reason for hiding this comment

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

This update to happy-dom v20.0.0 introduces a breaking change by disabling JavaScript evaluation by default. Multiple vitest.config.ts files across the repository use happy-dom as the test environment but have not been updated to re-enable it, which will cause widespread test failures.

Prompt for AI agents
Address the following comment on package.json at line 22:

<comment>This update to `happy-dom` v20.0.0 introduces a breaking change by disabling JavaScript evaluation by default. Multiple `vitest.config.ts` files across the repository use `happy-dom` as the test environment but have not been updated to re-enable it, which will cause widespread test failures.</comment>

<file context>
@@ -19,7 +19,7 @@
     &quot;@types/react&quot;: &quot;19.0.1&quot;,
     &quot;@types/react-dom&quot;: &quot;19.0.1&quot;,
-    &quot;happy-dom&quot;: &quot;18.0.1&quot;,
+    &quot;happy-dom&quot;: &quot;20.0.0&quot;,
     &quot;pkg-pr-new&quot;: &quot;0.0.54&quot;,
     &quot;tsconfig&quot;: &quot;workspace:*&quot;,
</file context>
Fix with Cubic

Copy link
Contributor Author

dependabot bot commented on behalf of github Oct 15, 2025

Superseded by #2568.

@dependabot dependabot bot closed this Oct 15, 2025
@dependabot dependabot bot deleted the dependabot/npm_and_yarn/happy-dom-20.0.0 branch October 15, 2025 20:52
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