💣 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()
- Support for CommonJS is no longer needed as Node.js v18 is deprecated and v20 and above supports loading ES modules from CommonJS using
- 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()
andrequestAnimationFrame()
- 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
andheaders
toBrowserFrame.goto()
,BrowserFrame.goBack()
,BrowserFrame.goForward()
,BrowserFrame.goSteps()
andBrowserFrame.reload()
- By @capricorn86 in task #1730 - Adds support for
PopStateEvent
and trigger the event when navigating the page history usingHistory.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()
andResponseCache.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
- Adds try and catch to listeners for events dispatched from
XMLHttpRequest
to prevent it from being set to an invalid state if a listener throws an Error - By @capricorn86 in task #1730