No description
Find a file
renovate[bot] ec4be1f839
chore(deps): update website npm packages (major) (#3599)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change | Age | Adoption | Passing |
Confidence |
|---|---|---|---|---|---|---|---|
| [node](https://nodejs.org)
([source](https://togithub.com/nodejs/node)) | engines | major |
[`>=16.20.2` ->
`>=20.14.0`](https://renovatebot.com/diffs/npm/node/v16.20.2/v20.14.0) |
[![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/node-version/node/v20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/node-version/node/v16.20.2/v20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v16.20.2/v20.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [pnpm](https://pnpm.io) ([source](https://togithub.com/pnpm/pnpm)) |
engines | major | [`>=8.15.8` ->
`>=9.2.0`](https://renovatebot.com/diffs/npm/pnpm/8.15.8/9.2.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/9.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/9.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/8.15.8/9.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/8.15.8/9.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nodejs/node (node)</summary>

###
[`v20.14.0`](https://togithub.com/nodejs/node/compare/v20.13.1...v20.14.0)

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.13.1...v20.14.0)

###
[`v20.13.1`](https://togithub.com/nodejs/node/releases/tag/v20.13.1):
2024-05-09, Version 20.13.1 &#x27;Iron&#x27; (LTS),
@&#8203;marco-ippolito

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.13.0...v20.13.1)

#### 2024-05-09, Version 20.13.1 'Iron' (LTS),
[@&#8203;marco-ippolito](https://togithub.com/marco-ippolito)

##### Revert "tools: install npm PowerShell scripts on Windows"

Due to a regression in the npm installation on Windows, this commit
reverts the change that installed npm PowerShell scripts on Windows.

##### Commits

- \[[`b7d80802cc`](https://togithub.com/nodejs/node/commit/b7d80802cc)]
- ***Revert*** "**tools**: install npm PowerShell scripts on Windows"
(marco-ippolito)
[#&#8203;52897](https://togithub.com/nodejs/node/pull/52897)

###
[`v20.13.0`](https://togithub.com/nodejs/node/compare/v20.12.2...v20.13.0)

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.12.2...v20.13.0)

###
[`v20.12.2`](https://togithub.com/nodejs/node/releases/tag/v20.12.2):
2024-04-10, Version 20.12.2 &#x27;Iron&#x27; (LTS), @&#8203;RafaelGSS

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.12.1...v20.12.2)

This is a security release.

##### Notable Changes

- CVE-2024-27980 - Command injection via args parameter of
`child_process.spawn` without shell option enabled on Windows

##### Commits

- \[[`69ffc6d50d`](https://togithub.com/nodejs/node/commit/69ffc6d50d)]
- **src**: disallow direct .bat and .cmd file spawning (Ben Noordhuis)
[nodejs-private/node-private#563](https://togithub.com/nodejs-private/node-private/pull/563)

###
[`v20.12.1`](https://togithub.com/nodejs/node/compare/v20.12.0...v20.12.1)

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.12.0...v20.12.1)

###
[`v20.12.0`](https://togithub.com/nodejs/node/compare/v20.11.1...v20.12.0)

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.11.1...v20.12.0)

###
[`v20.11.1`](https://togithub.com/nodejs/node/compare/v20.11.0...v20.11.1)

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.11.0...v20.11.1)

###
[`v20.11.0`](https://togithub.com/nodejs/node/compare/v20.10.0...v20.11.0)

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.10.0...v20.11.0)

###
[`v20.10.0`](https://togithub.com/nodejs/node/compare/v20.9.0...v20.10.0)

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.9.0...v20.10.0)

###
[`v20.9.0`](https://togithub.com/nodejs/node/compare/v20.8.1...v20.9.0)

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.8.1...v20.9.0)

### [`v20.8.1`](https://togithub.com/nodejs/node/releases/tag/v20.8.1):
2023-10-13, Version 20.8.1 (Current), @&#8203;RafaelGSS

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.8.0...v20.8.1)

This is a security release.

##### Notable Changes

The following CVEs are fixed in this release:

-
[CVE-2023-44487](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-44487):
`nghttp2` Security Release (High)
-
[CVE-2023-45143](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-45143):
`undici` Security Release (High)
-
[CVE-2023-39332](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39332):
Path traversal through path stored in Uint8Array (High)
-
[CVE-2023-39331](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39331):
Permission model improperly protects against path traversal (High)
-
[CVE-2023-38552](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-38552):
Integrity checks according to policies can be circumvented (Medium)
-
[CVE-2023-39333](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39333):
Code injection via WebAssembly export names (Low)

More detailed information on each of the vulnerabilities can be found in
[October 2023 Security
Releases](https://nodejs.org/en/blog/vulnerability/october-2023-security-releases/)
blog post.

##### Commits

- \[[`c86883e844`](https://togithub.com/nodejs/node/commit/c86883e844)]
- **deps**: update nghttp2 to 1.57.0 (James M Snell)
[#&#8203;50121](https://togithub.com/nodejs/node/pull/50121)
- \[[`2860631359`](https://togithub.com/nodejs/node/commit/2860631359)]
- **deps**: update undici to v5.26.3 (Matteo Collina)
[#&#8203;50153](https://togithub.com/nodejs/node/pull/50153)
- \[[`cd37838bf8`](https://togithub.com/nodejs/node/commit/cd37838bf8)]
- **lib**: let deps require `node` prefixed modules (Matthew Aitken)
[#&#8203;50047](https://togithub.com/nodejs/node/pull/50047)
- \[[`f5c90b2951`](https://togithub.com/nodejs/node/commit/f5c90b2951)]
- **module**: fix code injection through export names (Tobias Nießen)
[nodejs-private/node-private#461](https://togithub.com/nodejs-private/node-private/pull/461)
- \[[`fa5dae1944`](https://togithub.com/nodejs/node/commit/fa5dae1944)]
- **permission**: fix Uint8Array path traversal (Tobias Nießen)
[nodejs-private/node-private#456](https://togithub.com/nodejs-private/node-private/pull/456)
- \[[`cd35275111`](https://togithub.com/nodejs/node/commit/cd35275111)]
- **permission**: improve path traversal protection (Tobias Nießen)
[nodejs-private/node-private#456](https://togithub.com/nodejs-private/node-private/pull/456)
- \[[`a4cb7fc7c0`](https://togithub.com/nodejs/node/commit/a4cb7fc7c0)]
- **policy**: use tamper-proof integrity check function (Tobias Nießen)
[nodejs-private/node-private#462](https://togithub.com/nodejs-private/node-private/pull/462)

### [`v20.8.0`](https://togithub.com/nodejs/node/releases/tag/v20.8.0):
2023-09-28, Version 20.8.0 (Current), @&#8203;ruyadorno

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.7.0...v20.8.0)

##### Notable Changes

##### Stream performance improvements

Performance improvements to writable and readable streams, improving the
creation and destruction by ±15% and reducing the memory overhead each
stream takes in Node.js

Contributed by Benjamin Gruenbaum in
[#&#8203;49745](https://togithub.com/nodejs/node/pull/49745) and Raz
Luvaton in [#&#8203;49834](https://togithub.com/nodejs/node/pull/49834).

Performance improvements for readable webstream, improving readable
stream async iterator consumption by ±140% and improving readable stream
`pipeTo` consumption by ±60%

Contributed by Raz Luvaton in
[#&#8203;49662](https://togithub.com/nodejs/node/pull/49662) and
[#&#8203;49690](https://togithub.com/nodejs/node/pull/49690).

##### Rework of memory management in `vm` APIs with the
`importModuleDynamically` option

This rework addressed a series of long-standing memory leaks and
use-after-free issues in the following APIs that support
`importModuleDynamically`:

-   `vm.Script`
-   `vm.compileFunction`
-   `vm.SyntheticModule`
-   `vm.SourceTextModule`

This should enable affected users (in particular Jest users) to upgrade
from older versions of Node.js.

Contributed by Joyee Cheung in
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510).

##### Other notable changes

- \[[`32d4d29d02`](https://togithub.com/nodejs/node/commit/32d4d29d02)]
- **deps**: add v8::Object::SetInternalFieldForNodeCore() (Joyee Cheung)
[#&#8203;49874](https://togithub.com/nodejs/node/pull/49874)
- \[[`0e686d096b`](https://togithub.com/nodejs/node/commit/0e686d096b)]
- **doc**: deprecate `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia
Medeiros) [#&#8203;49683](https://togithub.com/nodejs/node/pull/49683)
- \[[`a5dd057540`](https://togithub.com/nodejs/node/commit/a5dd057540)]
- **doc**: deprecate `util.toUSVString` (Yagiz Nizipli)
[#&#8203;49725](https://togithub.com/nodejs/node/pull/49725)
- \[[`7b6a73172f`](https://togithub.com/nodejs/node/commit/7b6a73172f)]
- **doc**: deprecate calling `promisify` on a function that returns a
promise (Antoine du Hamel)
[#&#8203;49647](https://togithub.com/nodejs/node/pull/49647)
- \[[`1beefd5f16`](https://togithub.com/nodejs/node/commit/1beefd5f16)]
- **esm**: set all hooks as release candidate (Geoffrey Booth)
[#&#8203;49597](https://togithub.com/nodejs/node/pull/49597)
- \[[`b0ce78a75b`](https://togithub.com/nodejs/node/commit/b0ce78a75b)]
- **module**: fix the leak in SourceTextModule and ContextifySript
(Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`4e578f8ab1`](https://togithub.com/nodejs/node/commit/4e578f8ab1)]
- **module**: fix leak of vm.SyntheticModule (Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`69e4218772`](https://togithub.com/nodejs/node/commit/69e4218772)]
- **module**: use symbol in WeakMap to manage host defined options
(Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`14ece0aa76`](https://togithub.com/nodejs/node/commit/14ece0aa76)]
- **(SEMVER-MINOR)** **src**: allow embedders to override
NODE_MODULE_VERSION (Cheng Zhao)
[#&#8203;49279](https://togithub.com/nodejs/node/pull/49279)
- \[[`9fd67fbff0`](https://togithub.com/nodejs/node/commit/9fd67fbff0)]
- **stream**: use bitmap in writable state (Raz Luvaton)
[#&#8203;49834](https://togithub.com/nodejs/node/pull/49834)
- \[[`0ccd4638ac`](https://togithub.com/nodejs/node/commit/0ccd4638ac)]
- **stream**: use bitmap in readable state (Benjamin Gruenbaum)
[#&#8203;49745](https://togithub.com/nodejs/node/pull/49745)
- \[[`7c5e322346`](https://togithub.com/nodejs/node/commit/7c5e322346)]
- **stream**: improve webstream readable async iterator performance (Raz
Luvaton) [#&#8203;49662](https://togithub.com/nodejs/node/pull/49662)
- \[[`80b342cc38`](https://togithub.com/nodejs/node/commit/80b342cc38)]
- **(SEMVER-MINOR)** **test_runner**: accept `testOnly` in `run` (Moshe
Atlow) [#&#8203;49753](https://togithub.com/nodejs/node/pull/49753)
- \[[`17a05b141d`](https://togithub.com/nodejs/node/commit/17a05b141d)]
- **(SEMVER-MINOR)** **test_runner**: add junit reporter (Moshe Atlow)
[#&#8203;49614](https://togithub.com/nodejs/node/pull/49614)

##### Commits

- \[[`4879e3fbbe`](https://togithub.com/nodejs/node/commit/4879e3fbbe)]
- **benchmark**: add a benchmark for read() of ReadableStreams (Debadree
Chatterjee) [#&#8203;49622](https://togithub.com/nodejs/node/pull/49622)
- \[[`78a6c73157`](https://togithub.com/nodejs/node/commit/78a6c73157)]
- **benchmark**: shorten pipe-to by reducing number of chunks (Raz
Luvaton) [#&#8203;49577](https://togithub.com/nodejs/node/pull/49577)
- \[[`4126a6e4c9`](https://togithub.com/nodejs/node/commit/4126a6e4c9)]
- **benchmark**: fix webstream pipe-to (Raz Luvaton)
[#&#8203;49552](https://togithub.com/nodejs/node/pull/49552)
- \[[`6010a91825`](https://togithub.com/nodejs/node/commit/6010a91825)]
- **bootstrap**: do not expand argv1 for snapshots (Joyee Cheung)
[#&#8203;49506](https://togithub.com/nodejs/node/pull/49506)
- \[[`8480280c4b`](https://togithub.com/nodejs/node/commit/8480280c4b)]
- **bootstrap**: only use the isolate snapshot when compiling code cache
(Joyee Cheung)
[#&#8203;49288](https://togithub.com/nodejs/node/pull/49288)
- \[[`b30754aa87`](https://togithub.com/nodejs/node/commit/b30754aa87)]
- **build**: run embedtest using node executable (Joyee Cheung)
[#&#8203;49506](https://togithub.com/nodejs/node/pull/49506)
- \[[`31db0b8e2b`](https://togithub.com/nodejs/node/commit/31db0b8e2b)]
- **build**: add --write-snapshot-as-array-literals to configure.py
(Joyee Cheung)
[#&#8203;49312](https://togithub.com/nodejs/node/pull/49312)
- \[[`6fcb51d3ba`](https://togithub.com/nodejs/node/commit/6fcb51d3ba)]
- **debugger**: use `internal/url.URL` instead of `url.parse`
(LiviaMedeiros)
[#&#8203;49590](https://togithub.com/nodejs/node/pull/49590)
- \[[`32d4d29d02`](https://togithub.com/nodejs/node/commit/32d4d29d02)]
- **deps**: add v8::Object::SetInternalFieldForNodeCore() (Joyee Cheung)
[#&#8203;49874](https://togithub.com/nodejs/node/pull/49874)
- \[[`ad37cadc3f`](https://togithub.com/nodejs/node/commit/ad37cadc3f)]
- **deps**: V8: backport
[`de9a5de`](https://togithub.com/nodejs/node/commit/de9a5de2274f) (Joyee
Cheung) [#&#8203;49703](https://togithub.com/nodejs/node/pull/49703)
- \[[`cdd1c66222`](https://togithub.com/nodejs/node/commit/cdd1c66222)]
- **deps**: V8: cherry-pick
[`b33bf2d`](https://togithub.com/nodejs/node/commit/b33bf2dfd261) (Joyee
Cheung) [#&#8203;49703](https://togithub.com/nodejs/node/pull/49703)
- \[[`61d18d6473`](https://togithub.com/nodejs/node/commit/61d18d6473)]
- **deps**: update undici to 5.24.0 (Node.js GitHub Bot)
[#&#8203;49559](https://togithub.com/nodejs/node/pull/49559)
- \[[`b8a4fef393`](https://togithub.com/nodejs/node/commit/b8a4fef393)]
- **deps**: remove pthread-fixes.c from uv.gyp (Ben Noordhuis)
[#&#8203;49744](https://togithub.com/nodejs/node/pull/49744)
- \[[`6c86c0683c`](https://togithub.com/nodejs/node/commit/6c86c0683c)]
- **deps**: update googletest to
[`d1467f5`](https://togithub.com/nodejs/node/commit/d1467f5) (Node.js
GitHub Bot) [#&#8203;49676](https://togithub.com/nodejs/node/pull/49676)
- \[[`1424404742`](https://togithub.com/nodejs/node/commit/1424404742)]
- **deps**: update nghttp2 to 1.56.0 (Node.js GitHub Bot)
[#&#8203;49582](https://togithub.com/nodejs/node/pull/49582)
- \[[`15b54ff95d`](https://togithub.com/nodejs/node/commit/15b54ff95d)]
- **deps**: update googletest to
[`8a6feab`](https://togithub.com/nodejs/node/commit/8a6feab) (Node.js
GitHub Bot) [#&#8203;49463](https://togithub.com/nodejs/node/pull/49463)
- \[[`2ceab877c2`](https://togithub.com/nodejs/node/commit/2ceab877c2)]
- **deps**: update corepack to 0.20.0 (Node.js GitHub Bot)
[#&#8203;49464](https://togithub.com/nodejs/node/pull/49464)
- \[[`4814872ddc`](https://togithub.com/nodejs/node/commit/4814872ddc)]
- **doc**: fix `DEP0176` number (LiviaMedeiros)
[#&#8203;49858](https://togithub.com/nodejs/node/pull/49858)
- \[[`0e686d096b`](https://togithub.com/nodejs/node/commit/0e686d096b)]
- **doc**: deprecate `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia
Medeiros) [#&#8203;49683](https://togithub.com/nodejs/node/pull/49683)
- \[[`5877c403a2`](https://togithub.com/nodejs/node/commit/5877c403a2)]
- **doc**: add mertcanaltin as a triager (mert.altin)
[#&#8203;49826](https://togithub.com/nodejs/node/pull/49826)
- \[[`864fe56432`](https://togithub.com/nodejs/node/commit/864fe56432)]
- **doc**: add `git node backport` way to the backporting guide (Raz
Luvaton) [#&#8203;49760](https://togithub.com/nodejs/node/pull/49760)
- \[[`e0f93492d5`](https://togithub.com/nodejs/node/commit/e0f93492d5)]
- **doc**: improve documentation about ICU data fallback (Joyee Cheung)
[#&#8203;49666](https://togithub.com/nodejs/node/pull/49666)
- \[[`a5dd057540`](https://togithub.com/nodejs/node/commit/a5dd057540)]
- **doc**: deprecate `util.toUSVString` (Yagiz Nizipli)
[#&#8203;49725](https://togithub.com/nodejs/node/pull/49725)
- \[[`774c1cfd52`](https://togithub.com/nodejs/node/commit/774c1cfd52)]
- **doc**: add missing function call to example for `util.promisify`
(Jungku Lee)
[#&#8203;49719](https://togithub.com/nodejs/node/pull/49719)
- \[[`fe78a34845`](https://togithub.com/nodejs/node/commit/fe78a34845)]
- **doc**: update output of example in `mimeParams.set()` (Deokjin Kim)
[#&#8203;49718](https://togithub.com/nodejs/node/pull/49718)
- \[[`4175ea33bd`](https://togithub.com/nodejs/node/commit/4175ea33bd)]
- **doc**: add missed `inspect` with numericSeparator to example
(Deokjin Kim)
[#&#8203;49717](https://togithub.com/nodejs/node/pull/49717)
- \[[`3a88571972`](https://togithub.com/nodejs/node/commit/3a88571972)]
- **doc**: fix history comments (Antoine du Hamel)
[#&#8203;49701](https://togithub.com/nodejs/node/pull/49701)
- \[[`db4ab1ccbb`](https://togithub.com/nodejs/node/commit/db4ab1ccbb)]
- **doc**: add missing history info for `import.meta.resolve` (Antoine
du Hamel) [#&#8203;49700](https://togithub.com/nodejs/node/pull/49700)
- \[[`a304d1ee19`](https://togithub.com/nodejs/node/commit/a304d1ee19)]
- **doc**: link maintaining deps to pull-request.md (Marco Ippolito)
[#&#8203;49716](https://togithub.com/nodejs/node/pull/49716)
- \[[`35294486ad`](https://togithub.com/nodejs/node/commit/35294486ad)]
- **doc**: fix print results in `events` (Jungku Lee)
[#&#8203;49548](https://togithub.com/nodejs/node/pull/49548)
- \[[`9f0b0e15c9`](https://togithub.com/nodejs/node/commit/9f0b0e15c9)]
- **doc**: alphabetize cli.md sections (Geoffrey Booth)
[#&#8203;49668](https://togithub.com/nodejs/node/pull/49668)
- \[[`7b6a73172f`](https://togithub.com/nodejs/node/commit/7b6a73172f)]
- **doc**: deprecate calling `promisify` on a function that returns a
promise (Antoine du Hamel)
[#&#8203;49647](https://togithub.com/nodejs/node/pull/49647)
- \[[`d316b32fff`](https://togithub.com/nodejs/node/commit/d316b32fff)]
- **doc**: update `corepack.md` to account for 0.20.0 changes (Antoine
du Hamel) [#&#8203;49486](https://togithub.com/nodejs/node/pull/49486)
- \[[`c2eac7dc7c`](https://togithub.com/nodejs/node/commit/c2eac7dc7c)]
- **doc**: remove `@anonrig` from performance initiative (Yagiz Nizipli)
[#&#8203;49641](https://togithub.com/nodejs/node/pull/49641)
- \[[`3d839fbf87`](https://togithub.com/nodejs/node/commit/3d839fbf87)]
- **doc**: mark Node.js 16 as End-of-Life (Richard Lau)
[#&#8203;49651](https://togithub.com/nodejs/node/pull/49651)
- \[[`53fb5aead8`](https://togithub.com/nodejs/node/commit/53fb5aead8)]
- **doc**: save user preference for JS flavor (Vidar Eldøy)
[#&#8203;49526](https://togithub.com/nodejs/node/pull/49526)
- \[[`e3594d5658`](https://togithub.com/nodejs/node/commit/e3594d5658)]
- **doc**: update documentation for node:process warning (Shubham
Pandey) [#&#8203;49517](https://togithub.com/nodejs/node/pull/49517)
- \[[`8e033c3963`](https://togithub.com/nodejs/node/commit/8e033c3963)]
- **doc**: rename possibly confusing variable and CSS class (Antoine du
Hamel) [#&#8203;49536](https://togithub.com/nodejs/node/pull/49536)
- \[[`d0e0eb4bb3`](https://togithub.com/nodejs/node/commit/d0e0eb4bb3)]
- **doc**: update outdated history info (Antoine du Hamel)
[#&#8203;49530](https://togithub.com/nodejs/node/pull/49530)
- \[[`b4724e2e3a`](https://togithub.com/nodejs/node/commit/b4724e2e3a)]
- **doc**: close a parenthesis (Sébastien Règne)
[#&#8203;49525](https://togithub.com/nodejs/node/pull/49525)
- \[[`0471c5798e`](https://togithub.com/nodejs/node/commit/0471c5798e)]
- **doc**: cast GetInternalField() return type to v8::Value in addons.md
(Joyee Cheung)
[#&#8203;49439](https://togithub.com/nodejs/node/pull/49439)
- \[[`9f8bea3dda`](https://togithub.com/nodejs/node/commit/9f8bea3dda)]
- **doc**: fix documentation for input option in child_process (Ariel
Weiss) [#&#8203;49481](https://togithub.com/nodejs/node/pull/49481)
- \[[`f3fea92f8a`](https://togithub.com/nodejs/node/commit/f3fea92f8a)]
- **doc**: fix missing imports in `test.run` code examples (Oshri
Asulin) [#&#8203;49489](https://togithub.com/nodejs/node/pull/49489)
- \[[`e426b77b67`](https://togithub.com/nodejs/node/commit/e426b77b67)]
- **doc**: fix documentation for fs.createWriteStream highWaterMark
option (Mert Can Altın)
[#&#8203;49456](https://togithub.com/nodejs/node/pull/49456)
- \[[`2b119108ff`](https://togithub.com/nodejs/node/commit/2b119108ff)]
- **doc**: updated releasers instructions for node.js website (Claudio
W) [#&#8203;49427](https://togithub.com/nodejs/node/pull/49427)
- \[[`b9d4a80183`](https://togithub.com/nodejs/node/commit/b9d4a80183)]
- **doc**: edit `import.meta.resolve` documentation (Antoine du Hamel)
[#&#8203;49247](https://togithub.com/nodejs/node/pull/49247)
- \[[`f67433f666`](https://togithub.com/nodejs/node/commit/f67433f666)]
- **doc,tools**: switch to `@node-core/utils` (Michaël Zasso)
[#&#8203;49851](https://togithub.com/nodejs/node/pull/49851)
- \[[`142e256fc5`](https://togithub.com/nodejs/node/commit/142e256fc5)]
- **errors**: improve classRegExp in errors.js (Uzlopak)
[#&#8203;49643](https://togithub.com/nodejs/node/pull/49643)
- \[[`6377f1bce2`](https://togithub.com/nodejs/node/commit/6377f1bce2)]
- **errors**: use `determineSpecificType` in more error messages
(Antoine du Hamel)
[#&#8203;49580](https://togithub.com/nodejs/node/pull/49580)
- \[[`05f0fcb4c4`](https://togithub.com/nodejs/node/commit/05f0fcb4c4)]
- **esm**: identify parent importing a url with invalid host (Jacob
Smith) [#&#8203;49736](https://togithub.com/nodejs/node/pull/49736)
- \[[`8a6f5fb8f3`](https://togithub.com/nodejs/node/commit/8a6f5fb8f3)]
- **esm**: fix return type of `import.meta.resolve` (Antoine du Hamel)
[#&#8203;49698](https://togithub.com/nodejs/node/pull/49698)
- \[[`a6140f1b8c`](https://togithub.com/nodejs/node/commit/a6140f1b8c)]
- **esm**: update loaders warning (Geoffrey Booth)
[#&#8203;49633](https://togithub.com/nodejs/node/pull/49633)
- \[[`521a9327e0`](https://togithub.com/nodejs/node/commit/521a9327e0)]
- **esm**: fix support for `URL` instances in `register` (Antoine du
Hamel) [#&#8203;49655](https://togithub.com/nodejs/node/pull/49655)
- \[[`3a9ea0925a`](https://togithub.com/nodejs/node/commit/3a9ea0925a)]
- **esm**: clarify ERR_REQUIRE_ESM errors (Daniel Compton)
[#&#8203;49521](https://togithub.com/nodejs/node/pull/49521)
- \[[`1beefd5f16`](https://togithub.com/nodejs/node/commit/1beefd5f16)]
- **esm**: set all hooks as release candidate (Geoffrey Booth)
[#&#8203;49597](https://togithub.com/nodejs/node/pull/49597)
- \[[`be48267888`](https://togithub.com/nodejs/node/commit/be48267888)]
- **esm**: remove return value for `Module.register` (Antoine du Hamel)
[#&#8203;49529](https://togithub.com/nodejs/node/pull/49529)
- \[[`e74a075124`](https://togithub.com/nodejs/node/commit/e74a075124)]
- **esm**: refactor test-esm-loader-resolve-type (Geoffrey Booth)
[#&#8203;49493](https://togithub.com/nodejs/node/pull/49493)
- \[[`17823b3533`](https://togithub.com/nodejs/node/commit/17823b3533)]
- **esm**: refactor test-esm-named-exports (Geoffrey Booth)
[#&#8203;49493](https://togithub.com/nodejs/node/pull/49493)
- \[[`f34bd15ac1`](https://togithub.com/nodejs/node/commit/f34bd15ac1)]
- **esm**: refactor mocking test (Geoffrey Booth)
[#&#8203;49465](https://togithub.com/nodejs/node/pull/49465)
- \[[`ec323bbd99`](https://togithub.com/nodejs/node/commit/ec323bbd99)]
- **fs**: replace `SetMethodNoSideEffect` in node_file (CanadaHonk)
[#&#8203;49857](https://togithub.com/nodejs/node/pull/49857)
- \[[`6acf800123`](https://togithub.com/nodejs/node/commit/6acf800123)]
- **fs**: improve error performance for `unlinkSync` (CanadaHonk)
[#&#8203;49856](https://togithub.com/nodejs/node/pull/49856)
- \[[`31702c9403`](https://togithub.com/nodejs/node/commit/31702c9403)]
- **fs**: improve `readFileSync` with file descriptors (Yagiz Nizipli)
[#&#8203;49691](https://togithub.com/nodejs/node/pull/49691)
- \[[`835f9fe7b9`](https://togithub.com/nodejs/node/commit/835f9fe7b9)]
- **fs**: fix file descriptor validator (Yagiz Nizipli)
[#&#8203;49752](https://togithub.com/nodejs/node/pull/49752)
- \[[`b618fe262f`](https://togithub.com/nodejs/node/commit/b618fe262f)]
- **fs**: improve error performance of `opendirSync` (Yagiz Nizipli)
[#&#8203;49705](https://togithub.com/nodejs/node/pull/49705)
- \[[`938471ef55`](https://togithub.com/nodejs/node/commit/938471ef55)]
- **fs**: improve error performance of sync methods (Yagiz Nizipli)
[#&#8203;49593](https://togithub.com/nodejs/node/pull/49593)
- \[[`db3fc6d087`](https://togithub.com/nodejs/node/commit/db3fc6d087)]
- **fs**: fix readdir and opendir recursive with unknown file types
(William Marlow)
[#&#8203;49603](https://togithub.com/nodejs/node/pull/49603)
- \[[`0f020ed22d`](https://togithub.com/nodejs/node/commit/0f020ed22d)]
- **gyp**: put cctest filenames in variables (Cheng Zhao)
[#&#8203;49178](https://togithub.com/nodejs/node/pull/49178)
- \[[`0ce1e94d12`](https://togithub.com/nodejs/node/commit/0ce1e94d12)]
- **lib**: update encoding sets in `WHATWG API` (Jungku Lee)
[#&#8203;49610](https://togithub.com/nodejs/node/pull/49610)
- \[[`efd6815a7a`](https://togithub.com/nodejs/node/commit/efd6815a7a)]
- **lib**: fix `internalBinding` typings (Yagiz Nizipli)
[#&#8203;49742](https://togithub.com/nodejs/node/pull/49742)
- \[[`1287d5b74e`](https://togithub.com/nodejs/node/commit/1287d5b74e)]
- **lib**: allow byob reader for 'blob.stream()' (Debadree Chatterjee)
[#&#8203;49713](https://togithub.com/nodejs/node/pull/49713)
- \[[`bbc710522d`](https://togithub.com/nodejs/node/commit/bbc710522d)]
- **lib**: reset the cwd cache before execution (Maël Nison)
[#&#8203;49684](https://togithub.com/nodejs/node/pull/49684)
- \[[`f62d649e4d`](https://togithub.com/nodejs/node/commit/f62d649e4d)]
- **lib**: use internal `fileURLToPath` (Deokjin Kim)
[#&#8203;49558](https://togithub.com/nodejs/node/pull/49558)
- \[[`e515046941`](https://togithub.com/nodejs/node/commit/e515046941)]
- **lib**: use internal `pathToFileURL` (Livia Medeiros)
[#&#8203;49553](https://togithub.com/nodejs/node/pull/49553)
- \[[`00608e8070`](https://togithub.com/nodejs/node/commit/00608e8070)]
- **lib**: check SharedArrayBuffer availability in freeze_intrinsics.js
(Milan Burda)
[#&#8203;49482](https://togithub.com/nodejs/node/pull/49482)
- \[[`8bfbe7079c`](https://togithub.com/nodejs/node/commit/8bfbe7079c)]
- **meta**: fix linter error (Antoine du Hamel)
[#&#8203;49755](https://togithub.com/nodejs/node/pull/49755)
- \[[`58f7a9e096`](https://togithub.com/nodejs/node/commit/58f7a9e096)]
- **meta**: add primordials strategic initiative (Benjamin Gruenbaum)
[#&#8203;49706](https://togithub.com/nodejs/node/pull/49706)
- \[[`5366027756`](https://togithub.com/nodejs/node/commit/5366027756)]
- **meta**: bump github/codeql-action from 2.21.2 to 2.21.5
(dependabot\[bot])
[#&#8203;49438](https://togithub.com/nodejs/node/pull/49438)
- \[[`fe26b74082`](https://togithub.com/nodejs/node/commit/fe26b74082)]
- **meta**: bump rtCamp/action-slack-notify from 2.2.0 to 2.2.1
(dependabot\[bot])
[#&#8203;49437](https://togithub.com/nodejs/node/pull/49437)
- \[[`b0ce78a75b`](https://togithub.com/nodejs/node/commit/b0ce78a75b)]
- **module**: fix the leak in SourceTextModule and ContextifySript
(Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`4e578f8ab1`](https://togithub.com/nodejs/node/commit/4e578f8ab1)]
- **module**: fix leak of vm.SyntheticModule (Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`69e4218772`](https://togithub.com/nodejs/node/commit/69e4218772)]
- **module**: use symbol in WeakMap to manage host defined options
(Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`96874e8fbc`](https://togithub.com/nodejs/node/commit/96874e8fbc)]
- **node-api**: enable uncaught exceptions policy by default (Chengzhong
Wu) [#&#8203;49313](https://togithub.com/nodejs/node/pull/49313)
- \[[`b931aeadfd`](https://togithub.com/nodejs/node/commit/b931aeadfd)]
- **perf_hooks**: reduce overhead of new performance_entries (Vinicius
Lourenço) [#&#8203;49803](https://togithub.com/nodejs/node/pull/49803)
- \[[`ad043bac31`](https://togithub.com/nodejs/node/commit/ad043bac31)]
- **process**: add custom dir support for heapsnapshot-signal (Jithil P
Ponnan) [#&#8203;47854](https://togithub.com/nodejs/node/pull/47854)
- \[[`8a7c10194c`](https://togithub.com/nodejs/node/commit/8a7c10194c)]
- **repl**: don't accumulate excess indentation in .load (Daniel X
Moore) [#&#8203;49461](https://togithub.com/nodejs/node/pull/49461)
- \[[`10a2adeed5`](https://togithub.com/nodejs/node/commit/10a2adeed5)]
- **src**: improve error message when ICU data cannot be initialized
(Joyee Cheung)
[#&#8203;49666](https://togithub.com/nodejs/node/pull/49666)
- \[[`ce37688bac`](https://togithub.com/nodejs/node/commit/ce37688bac)]
- **src**: remove unnecessary todo (Rafael Gonzaga)
[#&#8203;49227](https://togithub.com/nodejs/node/pull/49227)
- \[[`f611583b71`](https://togithub.com/nodejs/node/commit/f611583b71)]
- **src**: use SNAPSHOT_SERDES to log snapshot ser/deserialization
(Joyee Cheung)
[#&#8203;49637](https://togithub.com/nodejs/node/pull/49637)
- \[[`a597cb8457`](https://togithub.com/nodejs/node/commit/a597cb8457)]
- **src**: port Pipe to uv_pipe_bind2, uv_pipe_connect2 (Geoff Goodman)
[#&#8203;49667](https://togithub.com/nodejs/node/pull/49667)
- \[[`fb21062338`](https://togithub.com/nodejs/node/commit/fb21062338)]
- **src**: set --rehash-snapshot explicitly (Joyee Cheung)
[#&#8203;49556](https://togithub.com/nodejs/node/pull/49556)
- \[[`14ece0aa76`](https://togithub.com/nodejs/node/commit/14ece0aa76)]
- **(SEMVER-MINOR)** **src**: allow embedders to override
NODE_MODULE_VERSION (Cheng Zhao)
[#&#8203;49279](https://togithub.com/nodejs/node/pull/49279)
- \[[`4b5e23c71b`](https://togithub.com/nodejs/node/commit/4b5e23c71b)]
- **src**: set ModuleWrap internal fields only once (Joyee Cheung)
[#&#8203;49391](https://togithub.com/nodejs/node/pull/49391)
- \[[`2d3f5c7cab`](https://togithub.com/nodejs/node/commit/2d3f5c7cab)]
- **src**: fix fs_type_to_name default value (Mustafa Ateş Uzun)
[#&#8203;49239](https://togithub.com/nodejs/node/pull/49239)
- \[[`cfbcb1059c`](https://togithub.com/nodejs/node/commit/cfbcb1059c)]
- **src**: fix comment on StreamResource (rogertyang)
[#&#8203;49193](https://togithub.com/nodejs/node/pull/49193)
- \[[`39fb83ad16`](https://togithub.com/nodejs/node/commit/39fb83ad16)]
- **src**: do not rely on the internal field being default to undefined
(Joyee Cheung)
[#&#8203;49413](https://togithub.com/nodejs/node/pull/49413)
- \[[`9fd67fbff0`](https://togithub.com/nodejs/node/commit/9fd67fbff0)]
- **stream**: use bitmap in writable state (Raz Luvaton)
[#&#8203;49834](https://togithub.com/nodejs/node/pull/49834)
- \[[`0ccd4638ac`](https://togithub.com/nodejs/node/commit/0ccd4638ac)]
- **stream**: use bitmap in readable state (Benjamin Gruenbaum)
[#&#8203;49745](https://togithub.com/nodejs/node/pull/49745)
- \[[`b29d927010`](https://togithub.com/nodejs/node/commit/b29d927010)]
- **stream**: improve readable webstream `pipeTo` (Raz Luvaton)
[#&#8203;49690](https://togithub.com/nodejs/node/pull/49690)
- \[[`7c5e322346`](https://togithub.com/nodejs/node/commit/7c5e322346)]
- **stream**: improve webstream readable async iterator performance (Raz
Luvaton) [#&#8203;49662](https://togithub.com/nodejs/node/pull/49662)
- \[[`be211ef818`](https://togithub.com/nodejs/node/commit/be211ef818)]
- **test**: deflake test-vm-contextified-script-leak (Joyee Cheung)
[#&#8203;49710](https://togithub.com/nodejs/node/pull/49710)
- \[[`355f10dab2`](https://togithub.com/nodejs/node/commit/355f10dab2)]
- **test**: use checkIfCollectable in vm leak tests (Joyee Cheung)
[#&#8203;49671](https://togithub.com/nodejs/node/pull/49671)
- \[[`17cfc531aa`](https://togithub.com/nodejs/node/commit/17cfc531aa)]
- **test**: add checkIfCollectable to test/common/gc.js (Joyee Cheung)
[#&#8203;49671](https://togithub.com/nodejs/node/pull/49671)
- \[[`e49a573752`](https://togithub.com/nodejs/node/commit/e49a573752)]
- **test**: add os setPriority, getPriority test coverage (Wael)
[#&#8203;38771](https://togithub.com/nodejs/node/pull/38771)
- \[[`5f02711522`](https://togithub.com/nodejs/node/commit/5f02711522)]
- **test**: deflake test-runner-output (Moshe Atlow)
[#&#8203;49878](https://togithub.com/nodejs/node/pull/49878)
- \[[`cd9754d6a7`](https://togithub.com/nodejs/node/commit/cd9754d6a7)]
- **test**: mark test-runner-output as flaky (Joyee Cheung)
[#&#8203;49854](https://togithub.com/nodejs/node/pull/49854)
- \[[`5ad00424dd`](https://togithub.com/nodejs/node/commit/5ad00424dd)]
- **test**: use mustSucceed instead of mustCall (SiddharthDevulapalli)
[#&#8203;49788](https://togithub.com/nodejs/node/pull/49788)
- \[[`3db9b40081`](https://togithub.com/nodejs/node/commit/3db9b40081)]
- **test**: refactor test-readline-async-iterators into a benchmark
(Shubham Pandey)
[#&#8203;49237](https://togithub.com/nodejs/node/pull/49237)
- \[[`2cc5ad7859`](https://togithub.com/nodejs/node/commit/2cc5ad7859)]
- ***Revert*** "**test**: mark
test-http-regr-[gh-2928](https://togithub.com/nodejs/node/issues/2928)
as flaky" (Luigi Pinca)
[#&#8203;49708](https://togithub.com/nodejs/node/pull/49708)
- \[[`e5185b053c`](https://togithub.com/nodejs/node/commit/e5185b053c)]
- **test**: use `fs.constants` for `fs.access` constants (Livia
Medeiros) [#&#8203;49685](https://togithub.com/nodejs/node/pull/49685)
- \[[`b9e5b43462`](https://togithub.com/nodejs/node/commit/b9e5b43462)]
- **test**: deflake
test-http-regr-[gh-2928](https://togithub.com/nodejs/node/issues/2928)
(Luigi Pinca)
[#&#8203;49574](https://togithub.com/nodejs/node/pull/49574)
- \[[`1fffda504e`](https://togithub.com/nodejs/node/commit/1fffda504e)]
- **test**: fix argument computation in embedtest (Joyee Cheung)
[#&#8203;49506](https://togithub.com/nodejs/node/pull/49506)
- \[[`6e56f2db52`](https://togithub.com/nodejs/node/commit/6e56f2db52)]
- **test**: skip test-child-process-stdio-reuse-readable-stdio on
Windows (Joyee Cheung)
[#&#8203;49621](https://togithub.com/nodejs/node/pull/49621)
- \[[`ab3afb330d`](https://togithub.com/nodejs/node/commit/ab3afb330d)]
- **test**: mark test-runner-watch-mode as flaky (Joyee Cheung)
[#&#8203;49627](https://togithub.com/nodejs/node/pull/49627)
- \[[`185d9b50db`](https://togithub.com/nodejs/node/commit/185d9b50db)]
- **test**: deflake test-tls-socket-close (Luigi Pinca)
[#&#8203;49575](https://togithub.com/nodejs/node/pull/49575)
- \[[`c70c74a9e6`](https://togithub.com/nodejs/node/commit/c70c74a9e6)]
- **test**: show more info on failure in test-cli-syntax-require.js
(Joyee Cheung)
[#&#8203;49561](https://togithub.com/nodejs/node/pull/49561)
- \[[`ed7c6d1114`](https://togithub.com/nodejs/node/commit/ed7c6d1114)]
- **test**: mark
test-http-regr-[gh-2928](https://togithub.com/nodejs/node/issues/2928)
as flaky (Joyee Cheung)
[#&#8203;49565](https://togithub.com/nodejs/node/pull/49565)
- \[[`3599eebab9`](https://togithub.com/nodejs/node/commit/3599eebab9)]
- **test**: use spawnSyncAndExitWithoutError in sea tests (Joyee Cheung)
[#&#8203;49543](https://togithub.com/nodejs/node/pull/49543)
- \[[`f79b153e89`](https://togithub.com/nodejs/node/commit/f79b153e89)]
- **test**: use spawnSyncAndExitWithoutError in test/common/sea.js
(Joyee Cheung)
[#&#8203;49543](https://togithub.com/nodejs/node/pull/49543)
- \[[`c079c73769`](https://togithub.com/nodejs/node/commit/c079c73769)]
- **test**: use setImmediate() in test-heapdump-shadowrealm.js (Joyee
Cheung) [#&#8203;49573](https://togithub.com/nodejs/node/pull/49573)
- \[[`667a92493c`](https://togithub.com/nodejs/node/commit/667a92493c)]
- **test**: skip test-child-process-pipe-dataflow.js on Windows (Joyee
Cheung) [#&#8203;49563](https://togithub.com/nodejs/node/pull/49563)
- \[[`91af0a9a3c`](https://togithub.com/nodejs/node/commit/91af0a9a3c)]
- ***Revert*** "**test**: ignore the copied entry_point.c" (Chengzhong
Wu) [#&#8203;49515](https://togithub.com/nodejs/node/pull/49515)
- \[[`567afc71b8`](https://togithub.com/nodejs/node/commit/567afc71b8)]
- **test**: avoid copying test source files (Chengzhong Wu)
[#&#8203;49515](https://togithub.com/nodejs/node/pull/49515)
- \[[`ced25a976d`](https://togithub.com/nodejs/node/commit/ced25a976d)]
- **test**: increase coverage of `Module.register` and `initialize` hook
(Antoine du Hamel)
[#&#8203;49532](https://togithub.com/nodejs/node/pull/49532)
- \[[`be02fbdb8a`](https://togithub.com/nodejs/node/commit/be02fbdb8a)]
- **test**: isolate `globalPreload` tests (Geoffrey Booth)
[#&#8203;49545](https://togithub.com/nodejs/node/pull/49545)
- \[[`f214428845`](https://togithub.com/nodejs/node/commit/f214428845)]
- **test**: split test-crypto-dh to avoid timeout on slow machines in
the CI (Joyee Cheung)
[#&#8203;49492](https://togithub.com/nodejs/node/pull/49492)
- \[[`3987094569`](https://togithub.com/nodejs/node/commit/3987094569)]
- **test**: make `test-dotenv-node-options` locale-independent (Livia
Medeiros) [#&#8203;49470](https://togithub.com/nodejs/node/pull/49470)
- \[[`34c1741792`](https://togithub.com/nodejs/node/commit/34c1741792)]
- **test**: add test for urlstrings usage in `node:fs` (Livia Medeiros)
[#&#8203;49471](https://togithub.com/nodejs/node/pull/49471)
- \[[`c3c6c4f007`](https://togithub.com/nodejs/node/commit/c3c6c4f007)]
- **test**: make test-worker-prof more robust (Joyee Cheung)
[#&#8203;49274](https://togithub.com/nodejs/node/pull/49274)
- \[[`843df1a4da`](https://togithub.com/nodejs/node/commit/843df1a4da)]
- **test,crypto**: update WebCryptoAPI WPT (Filip Skokan)
[#&#8203;49714](https://togithub.com/nodejs/node/pull/49714)
- \[[`80b342cc38`](https://togithub.com/nodejs/node/commit/80b342cc38)]
- **(SEMVER-MINOR)** **test_runner**: accept `testOnly` in `run` (Moshe
Atlow) [#&#8203;49753](https://togithub.com/nodejs/node/pull/49753)
- \[[`76865515b9`](https://togithub.com/nodejs/node/commit/76865515b9)]
- **test_runner**: fix test runner watch mode when no positional
arguments (Moshe Atlow)
[#&#8203;49578](https://togithub.com/nodejs/node/pull/49578)
- \[[`17a05b141d`](https://togithub.com/nodejs/node/commit/17a05b141d)]
- **(SEMVER-MINOR)** **test_runner**: add junit reporter (Moshe Atlow)
[#&#8203;49614](https://togithub.com/nodejs/node/pull/49614)
- \[[`5672e38457`](https://togithub.com/nodejs/node/commit/5672e38457)]
- **test_runner**: add jsdocs to mock.js (Caio Borghi)
[#&#8203;49555](https://togithub.com/nodejs/node/pull/49555)
- \[[`b4d42a8f2b`](https://togithub.com/nodejs/node/commit/b4d42a8f2b)]
- **test_runner**: fix invalid timer call (Erick Wendel)
[#&#8203;49477](https://togithub.com/nodejs/node/pull/49477)
- \[[`f755e6786b`](https://togithub.com/nodejs/node/commit/f755e6786b)]
- **test_runner**: add jsdocs to MockTimers (Erick Wendel)
[#&#8203;49476](https://togithub.com/nodejs/node/pull/49476)
- \[[`e7285d4bf0`](https://togithub.com/nodejs/node/commit/e7285d4bf0)]
- **test_runner**: fix typescript coverage (Moshe Atlow)
[#&#8203;49406](https://togithub.com/nodejs/node/pull/49406)
- \[[`07a2e29bf3`](https://togithub.com/nodejs/node/commit/07a2e29bf3)]
- **tools**: support updating
[@&#8203;reporters/github](https://togithub.com/reporters/github)
manually (Moshe Atlow)
[#&#8203;49871](https://togithub.com/nodejs/node/pull/49871)
- \[[`5ac6722031`](https://togithub.com/nodejs/node/commit/5ac6722031)]
- **tools**: skip ruff on tools/node_modules (Moshe Atlow)
[#&#8203;49838](https://togithub.com/nodejs/node/pull/49838)
- \[[`462228bd24`](https://togithub.com/nodejs/node/commit/462228bd24)]
- **tools**: fix uvwasi updater (Michael Dawson)
[#&#8203;49682](https://togithub.com/nodejs/node/pull/49682)
- \[[`ff81bfb958`](https://togithub.com/nodejs/node/commit/ff81bfb958)]
- **tools**: update lint-md-dependencies to rollup@3.29.2 (Node.js
GitHub Bot) [#&#8203;49679](https://togithub.com/nodejs/node/pull/49679)
- \[[`08ffc6344c`](https://togithub.com/nodejs/node/commit/08ffc6344c)]
- **tools**: restrict internal code from using public `url` module
(LiviaMedeiros)
[#&#8203;49590](https://togithub.com/nodejs/node/pull/49590)
- \[[`728ebf6c97`](https://togithub.com/nodejs/node/commit/728ebf6c97)]
- **tools**: update eslint to 8.49.0 (Node.js GitHub Bot)
[#&#8203;49586](https://togithub.com/nodejs/node/pull/49586)
- \[[`20d038ffb1`](https://togithub.com/nodejs/node/commit/20d038ffb1)]
- **tools**: update lint-md-dependencies to rollup@3.29.0 unified@11.0.3
(Node.js GitHub Bot)
[#&#8203;49584](https://togithub.com/nodejs/node/pull/49584)
- \[[`210c15bd12`](https://togithub.com/nodejs/node/commit/210c15bd12)]
- **tools**: allow passing absolute path of config.gypi in js2c (Cheng
Zhao) [#&#8203;49162](https://togithub.com/nodejs/node/pull/49162)
- \[[`e341efe173`](https://togithub.com/nodejs/node/commit/e341efe173)]
- **tools**: configure never-stale label correctly (Michaël Zasso)
[#&#8203;49498](https://togithub.com/nodejs/node/pull/49498)
- \[[`a8a8a498ce`](https://togithub.com/nodejs/node/commit/a8a8a498ce)]
- **tools**: update doc dependencies (Node.js GitHub Bot)
[#&#8203;49467](https://togithub.com/nodejs/node/pull/49467)
- \[[`ac06607f9e`](https://togithub.com/nodejs/node/commit/ac06607f9e)]
- **typings**: fix missing property in `ExportedHooks` (Antoine du
Hamel) [#&#8203;49567](https://togithub.com/nodejs/node/pull/49567)
- \[[`097b59807a`](https://togithub.com/nodejs/node/commit/097b59807a)]
- **url**: improve invalid url performance (Yagiz Nizipli)
[#&#8203;49692](https://togithub.com/nodejs/node/pull/49692)
- \[[`7c2060cfac`](https://togithub.com/nodejs/node/commit/7c2060cfac)]
- **util**: add `getCwdSafe` internal util fn (João Lenon)
[#&#8203;48434](https://togithub.com/nodejs/node/pull/48434)
- \[[`c23c60f545`](https://togithub.com/nodejs/node/commit/c23c60f545)]
- **zlib**: disable CRC32 SIMD optimization (Luigi Pinca)
[#&#8203;49511](https://togithub.com/nodejs/node/pull/49511)

### [`v20.7.0`](https://togithub.com/nodejs/node/releases/tag/v20.7.0):
2023-09-18, Version 20.7.0 (Current), @&#8203;UlisesGascon

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.6.1...v20.7.0)

##### Notable Changes

- \[[`022f1b70c1`](https://togithub.com/nodejs/node/commit/022f1b70c1)]
- **src**: support multiple `--env-file` declarations (Yagiz Nizipli)
[#&#8203;49542](https://togithub.com/nodejs/node/pull/49542)
- \[[`4a1d1cad61`](https://togithub.com/nodejs/node/commit/4a1d1cad61)]
- **crypto**: update root certificates to NSS 3.93 (Node.js GitHub Bot)
[#&#8203;49341](https://togithub.com/nodejs/node/pull/49341)
- \[[`a1a65f593c`](https://togithub.com/nodejs/node/commit/a1a65f593c)]
- **deps**: upgrade npm to 10.1.0 (npm team)
[#&#8203;49570](https://togithub.com/nodejs/node/pull/49570)
- \[[`6c2480cad9`](https://togithub.com/nodejs/node/commit/6c2480cad9)]
- **(SEMVER-MINOR)** **deps**: upgrade npm to 10.0.0 (npm team)
[#&#8203;49423](https://togithub.com/nodejs/node/pull/49423)
- \[[`bef900e56b`](https://togithub.com/nodejs/node/commit/bef900e56b)]
- **doc**: move and rename loaders section (Geoffrey Booth)
[#&#8203;49261](https://togithub.com/nodejs/node/pull/49261)
- \[[`db4ce8a593`](https://togithub.com/nodejs/node/commit/db4ce8a593)]
- **doc**: add release key for Ulises Gascon (Ulises Gascón)
[#&#8203;49196](https://togithub.com/nodejs/node/pull/49196)
- \[[`11c85ffa98`](https://togithub.com/nodejs/node/commit/11c85ffa98)]
- **(SEMVER-MINOR)** **lib**: add api to detect whether source-maps are
enabled (翠 / green)
[#&#8203;46391](https://togithub.com/nodejs/node/pull/46391)
- \[[`ec51e25ed7`](https://togithub.com/nodejs/node/commit/ec51e25ed7)]
- **src,permission**: add multiple allow-fs-\* flags (Carlos Espa)
[#&#8203;49047](https://togithub.com/nodejs/node/pull/49047)
- \[[`efdc95fbc0`](https://togithub.com/nodejs/node/commit/efdc95fbc0)]
- **(SEMVER-MINOR)** **test_runner**: expose location of tests (Colin
Ihrig) [#&#8203;48975](https://togithub.com/nodejs/node/pull/48975)

##### Commits

- \[[`e84515594e`](https://togithub.com/nodejs/node/commit/e84515594e)]
- **benchmark**: use `tmpdir.resolve()` (Livia Medeiros)
[#&#8203;49137](https://togithub.com/nodejs/node/pull/49137)
- \[[`f37444e896`](https://togithub.com/nodejs/node/commit/f37444e896)]
- **bootstrap**: build code cache from deserialized isolate (Joyee
Cheung) [#&#8203;49099](https://togithub.com/nodejs/node/pull/49099)
- \[[`af6dc1754d`](https://togithub.com/nodejs/node/commit/af6dc1754d)]
- **bootstrap**: do not generate code cache in an unfinalized isolate
(Joyee Cheung)
[#&#8203;49108](https://togithub.com/nodejs/node/pull/49108)
- \[[`cade5716df`](https://togithub.com/nodejs/node/commit/cade5716df)]
- **build**: add symlink to `compile_commands.json` file if needed (Juan
José) [#&#8203;49260](https://togithub.com/nodejs/node/pull/49260)
- \[[`34a2590b05`](https://togithub.com/nodejs/node/commit/34a2590b05)]
- **build**: expand when we run internet tests (Michael Dawson)
[#&#8203;49218](https://togithub.com/nodejs/node/pull/49218)
- \[[`f637fd46ab`](https://togithub.com/nodejs/node/commit/f637fd46ab)]
- **build**: fix typo `libray` -> `library` (configure.py)
(michalbiesek)
[#&#8203;49106](https://togithub.com/nodejs/node/pull/49106)
- \[[`ef3d8dd493`](https://togithub.com/nodejs/node/commit/ef3d8dd493)]
- **crypto**: remove webcrypto EdDSA key checks and properties (Filip
Skokan) [#&#8203;49408](https://togithub.com/nodejs/node/pull/49408)
- \[[`4a1d1cad61`](https://togithub.com/nodejs/node/commit/4a1d1cad61)]
- **crypto**: update root certificates to NSS 3.93 (Node.js GitHub Bot)
[#&#8203;49341](https://togithub.com/nodejs/node/pull/49341)
- \[[`7eb10a38ea`](https://togithub.com/nodejs/node/commit/7eb10a38ea)]
- **crypto**: remove getDefaultEncoding() (Tobias Nießen)
[#&#8203;49170](https://togithub.com/nodejs/node/pull/49170)
- \[[`772496c030`](https://togithub.com/nodejs/node/commit/772496c030)]
- **crypto**: remove default encoding from DiffieHellman (Tobias Nießen)
[#&#8203;49169](https://togithub.com/nodejs/node/pull/49169)
- \[[`c795083232`](https://togithub.com/nodejs/node/commit/c795083232)]
- **crypto**: remove default encoding from Hash/Hmac (Tobias Nießen)
[#&#8203;49167](https://togithub.com/nodejs/node/pull/49167)
- \[[`08197aa010`](https://togithub.com/nodejs/node/commit/08197aa010)]
- **crypto**: remove default encoding from sign/verify (Tobias Nießen)
[#&#8203;49145](https://togithub.com/nodejs/node/pull/49145)
- \[[`a1a65f593c`](https://togithub.com/nodejs/node/commit/a1a65f593c)]
- **deps**: upgrade npm to 10.1.0 (npm team)
[#&#8203;49570](https://togithub.com/nodejs/node/pull/49570)
- \[[`6c2480cad9`](https://togithub.com/nodejs/node/commit/6c2480cad9)]
- **(SEMVER-MINOR)** **deps**: upgrade npm to 10.0.0 (npm team)
[#&#8203;49423](https://togithub.com/nodejs/node/pull/49423)
- \[[`84195d9584`](https://togithub.com/nodejs/node/commit/84195d9584)]
- **deps**: add missing thread-common.c in uv.gyp (Santiago Gimeno)
[#&#8203;49410](https://togithub.com/nodejs/node/pull/49410)
- \[[`5b70b68b3d`](https://togithub.com/nodejs/node/commit/5b70b68b3d)]
- **deps**: V8: cherry-pick
[`eadaef5`](https://togithub.com/nodejs/node/commit/eadaef581c29) (Adam
Majer) [#&#8203;49401](https://togithub.com/nodejs/node/pull/49401)
- \[[`fe34d632e8`](https://togithub.com/nodejs/node/commit/fe34d632e8)]
- **deps**: update zlib to 1.2.13.1-motley-f5fd0ad (Node.js GitHub Bot)
[#&#8203;49252](https://togithub.com/nodejs/node/pull/49252)
- \[[`db4ce8a593`](https://togithub.com/nodejs/node/commit/db4ce8a593)]
- **doc**: add release key for Ulises Gascon (Ulises Gascón)
[#&#8203;49196](https://togithub.com/nodejs/node/pull/49196)
- \[[`e5f3a694cf`](https://togithub.com/nodejs/node/commit/e5f3a694cf)]
- **doc**: fix node-api call example (Chengzhong Wu)
[#&#8203;49395](https://togithub.com/nodejs/node/pull/49395)
- \[[`021345a724`](https://togithub.com/nodejs/node/commit/021345a724)]
- **doc**: add news issue for Diagnostics WG (Michael Dawson)
[#&#8203;49306](https://togithub.com/nodejs/node/pull/49306)
- \[[`f82347266b`](https://togithub.com/nodejs/node/commit/f82347266b)]
- **doc**: clarify policy expectations (Rafael Gonzaga)
[#&#8203;48947](https://togithub.com/nodejs/node/pull/48947)
- \[[`73cfd9c895`](https://togithub.com/nodejs/node/commit/73cfd9c895)]
- **doc**: add print results for examples in `StringDecoder` (Jungku
Lee) [#&#8203;49326](https://togithub.com/nodejs/node/pull/49326)
- \[[`63ab591416`](https://togithub.com/nodejs/node/commit/63ab591416)]
- **doc**: update outdated reference to NIST SP 800-131A (Tobias Nießen)
[#&#8203;49316](https://togithub.com/nodejs/node/pull/49316)
- \[[`935dfe2afd`](https://togithub.com/nodejs/node/commit/935dfe2afd)]
- **doc**: use `cjs` as block code's type in `MockTimers` (Deokjin Kim)
[#&#8203;49309](https://togithub.com/nodejs/node/pull/49309)
- \[[`7c0cd2fb87`](https://togithub.com/nodejs/node/commit/7c0cd2fb87)]
- **doc**: update `options.filter` description for `fs.cp` (Shubham
Pandey) [#&#8203;49289](https://togithub.com/nodejs/node/pull/49289)
- \[[`f72e79ea67`](https://togithub.com/nodejs/node/commit/f72e79ea67)]
- **doc**: add riscv64 to list of architectures (Stewart X Addison)
[#&#8203;49284](https://togithub.com/nodejs/node/pull/49284)
- \[[`d19c710064`](https://togithub.com/nodejs/node/commit/d19c710064)]
- **doc**: avoid "not currently recommended" (Tobias Nießen)
[#&#8203;49300](https://togithub.com/nodejs/node/pull/49300)
- \[[`ae656101c0`](https://togithub.com/nodejs/node/commit/ae656101c0)]
- **doc**: update module hooks docs (Geoffrey Booth)
[#&#8203;49265](https://togithub.com/nodejs/node/pull/49265)
- \[[`fefbdb92f2`](https://togithub.com/nodejs/node/commit/fefbdb92f2)]
- **doc**: modify param description for end(),write() in `StringDecoder`
(Jungku Lee)
[#&#8203;49285](https://togithub.com/nodejs/node/pull/49285)
- \[[`59e66a1ebe`](https://togithub.com/nodejs/node/commit/59e66a1ebe)]
- **doc**: use NODE_API_SUPPORTED_VERSION_MAX in release doc (Cheng
Zhao) [#&#8203;49268](https://togithub.com/nodejs/node/pull/49268)
- \[[`ac3b88449b`](https://togithub.com/nodejs/node/commit/ac3b88449b)]
- **doc**: fix typo in `stream.finished` documentation (Antoine du
Hamel) [#&#8203;49271](https://togithub.com/nodejs/node/pull/49271)
- \[[`7428ebf6c3`](https://togithub.com/nodejs/node/commit/7428ebf6c3)]
- **doc**: update description for `percent_encode` sets in `WHATWG API`
(Jungku Lee)
[#&#8203;49258](https://togithub.com/nodejs/node/pull/49258)
- \[[`bef900e56b`](https://togithub.com/nodejs/node/commit/bef900e56b)]
- **doc**: move and rename loaders section (Geoffrey Booth)
[#&#8203;49261](https://togithub.com/nodejs/node/pull/49261)
- \[[`a22e0d9696`](https://togithub.com/nodejs/node/commit/a22e0d9696)]
- **doc**: clarify use of Uint8Array for n-api (Fedor Indutny)
[#&#8203;48742](https://togithub.com/nodejs/node/pull/48742)
- \[[`1704f24cb9`](https://togithub.com/nodejs/node/commit/1704f24cb9)]
- **doc**: add signature for `module.register` (Geoffrey Booth)
[#&#8203;49251](https://togithub.com/nodejs/node/pull/49251)
- \[[`5a363bb01b`](https://togithub.com/nodejs/node/commit/5a363bb01b)]
- **doc**: caveat unavailability of `import.meta.resolve` in custom
loaders (Jacob Smith)
[#&#8203;49242](https://togithub.com/nodejs/node/pull/49242)
- \[[`8101f2b259`](https://togithub.com/nodejs/node/commit/8101f2b259)]
- **doc**: use same name in the doc as in the code (Hyunjin Kim)
[#&#8203;49216](https://togithub.com/nodejs/node/pull/49216)
- \[[`edf278d60d`](https://togithub.com/nodejs/node/commit/edf278d60d)]
- **doc**: add notable-change label mention to PR template (Rafael
Gonzaga) [#&#8203;49188](https://togithub.com/nodejs/node/pull/49188)
- \[[`3df2251a6a`](https://togithub.com/nodejs/node/commit/3df2251a6a)]
- **doc**: add h1 summary to security release process (Rafael Gonzaga)
[#&#8203;49112](https://togithub.com/nodejs/node/pull/49112)
- \[[`9fcd99a744`](https://togithub.com/nodejs/node/commit/9fcd99a744)]
- **doc**: update to semver-minor releases by default (Rafael Gonzaga)
[#&#8203;49175](https://togithub.com/nodejs/node/pull/49175)
- \[[`777931f499`](https://togithub.com/nodejs/node/commit/777931f499)]
- **doc**: fix wording in napi_async_init (Tobias Nießen)
[#&#8203;49180](https://togithub.com/nodejs/node/pull/49180)
- \[[`f45c8e10c0`](https://togithub.com/nodejs/node/commit/f45c8e10c0)]
- **doc,test**: add known path resolution issue in permission model
(Tobias Nießen)
[#&#8203;49155](https://togithub.com/nodejs/node/pull/49155)
- \[[`a6cfea3f74`](https://togithub.com/nodejs/node/commit/a6cfea3f74)]
- **esm**: align sync and async load implementations (Antoine du Hamel)
[#&#8203;49152](https://togithub.com/nodejs/node/pull/49152)
- \[[`9fac310b33`](https://togithub.com/nodejs/node/commit/9fac310b33)]
- **fs**: add the options param description in openAsBlob() (Yeseul Lee)
[#&#8203;49308](https://togithub.com/nodejs/node/pull/49308)
- \[[`92772a8175`](https://togithub.com/nodejs/node/commit/92772a8175)]
- **fs**: remove redundant code in readableWebStream() (Deokjin Kim)
[#&#8203;49298](https://togithub.com/nodejs/node/pull/49298)
- \[[`88ba79b083`](https://togithub.com/nodejs/node/commit/88ba79b083)]
- **fs**: make sure to write entire buffer (Robert Nagy)
[#&#8203;49211](https://togithub.com/nodejs/node/pull/49211)
- \[[`11c85ffa98`](https://togithub.com/nodejs/node/commit/11c85ffa98)]
- **(SEMVER-MINOR)** **lib**: add api to detect whether source-maps are
enabled (翠 / green)
[#&#8203;46391](https://togithub.com/nodejs/node/pull/46391)
- \[[`c12711ebfe`](https://togithub.com/nodejs/node/commit/c12711ebfe)]
- **lib**: implement WeakReference on top of JS WeakRef (Joyee Cheung)
[#&#8203;49053](https://togithub.com/nodejs/node/pull/49053)
- \[[`9a0891f88d`](https://togithub.com/nodejs/node/commit/9a0891f88d)]
- **meta**: bump step-security/harden-runner from 2.5.0 to 2.5.1
(dependabot\[bot])
[#&#8203;49435](https://togithub.com/nodejs/node/pull/49435)
- \[[`ae67f41ef1`](https://togithub.com/nodejs/node/commit/ae67f41ef1)]
- **meta**: bump actions/checkout from 3.5.3 to 3.6.0 (dependabot\[bot])
[#&#8203;49436](https://togithub.com/nodejs/node/pull/49436)
- \[[`71b4411fb2`](https://togithub.com/nodejs/node/commit/71b4411fb2)]
- **meta**: bump actions/setup-node from 3.7.0 to 3.8.1
(dependabot\[bot])
[#&#8203;49434](https://togithub.com/nodejs/node/pull/49434)
- \[[`83b7d3a395`](https://togithub.com/nodejs/node/commit/83b7d3a395)]
- **meta**: remove modules team from CODEOWNERS (Benjamin Gruenbaum)
[#&#8203;49412](https://togithub.com/nodejs/node/pull/49412)
- \[[`81ff68c45c`](https://togithub.com/nodejs/node/commit/81ff68c45c)]
- **meta**: move one or more collaborators to emeritus (Node.js GitHub
Bot) [#&#8203;49264](https://togithub.com/nodejs/node/pull/49264)
- \[[`ab975233cc`](https://togithub.com/nodejs/node/commit/ab975233cc)]
- **meta**: mention nodejs/tsc when changing GH templates (Rafael
Gonzaga) [#&#8203;49189](https://togithub.com/nodejs/node/pull/49189)
- \[[`ceaa5494de`](https://togithub.com/nodejs/node/commit/ceaa5494de)]
- **meta**: add test/reporters to codeowners (Chemi Atlow)
[#&#8203;49186](https://togithub.com/nodejs/node/pull/49186)
- \[[`de0a51b7cf`](https://togithub.com/nodejs/node/commit/de0a51b7cf)]
- **net**: improve performance of isIPv4 and isIPv6 (Uzlopak)
[#&#8203;49568](https://togithub.com/nodejs/node/pull/49568)
- \[[`8d0913bf95`](https://togithub.com/nodejs/node/commit/8d0913bf95)]
- **net**: use asserts in JS Socket Stream to catch races in future (Tim
Perry) [#&#8203;49400](https://togithub.com/nodejs/node/pull/49400)
- \[[`2486836a7d`](https://togithub.com/nodejs/node/commit/2486836a7d)]
- **net**: fix crash due to simultaneous close/shutdown on JS Stream
Sockets (Tim Perry)
[#&#8203;49400](https://togithub.com/nodejs/node/pull/49400)
- \[[`7a808340cd`](https://togithub.com/nodejs/node/commit/7a808340cd)]
- **node-api**: fix compiler warning in node_api.h (Michael Graeb)
[#&#8203;49103](https://togithub.com/nodejs/node/pull/49103)
- \[[`30f26a99f4`](https://togithub.com/nodejs/node/commit/30f26a99f4)]
- **permission**: ensure to resolve path when calling mkdtemp
(RafaelGSS)
[nodejs-private/node-private#440](https://togithub.com/nodejs-private/node-private/pull/440)
- \[[`5051c75a5b`](https://togithub.com/nodejs/node/commit/5051c75a5b)]
- **policy**: fix path to URL conversion (Antoine du Hamel)
[#&#8203;49133](https://togithub.com/nodejs/node/pull/49133)
- \[[`173aed4757`](https://togithub.com/nodejs/node/commit/173aed4757)]
- **report**: fix recent coverity warning (Michael Dawson)
[#&#8203;48954](https://togithub.com/nodejs/node/pull/48954)
- \[[`d7ff78b442`](https://togithub.com/nodejs/node/commit/d7ff78b442)]
- **sea**: generate code cache with deserialized isolate (Joyee Cheung)
[#&#8203;49226](https://togithub.com/nodejs/node/pull/49226)
- \[[`022f1b70c1`](https://togithub.com/nodejs/node/commit/022f1b70c1)]
- **src**: support multiple `--env-file` declarations (Yagiz Nizipli)
[#&#8203;49542](https://togithub.com/nodejs/node/pull/49542)
- \[[`154b1c2115`](https://togithub.com/nodejs/node/commit/154b1c2115)]
- **src**: don't overwrite environment from .env file (Phil Nash)
[#&#8203;49424](https://togithub.com/nodejs/node/pull/49424)
- \[[`dc4de1c69b`](https://togithub.com/nodejs/node/commit/dc4de1c69b)]
- **src**: modify code for empty string (pluris)
[#&#8203;49336](https://togithub.com/nodejs/node/pull/49336)
- \[[`701c46f967`](https://togithub.com/nodejs/node/commit/701c46f967)]
- **src**: remove unused PromiseWrap-related code (Joyee Cheung)
[#&#8203;49335](https://togithub.com/nodejs/node/pull/49335)
- \[[`4a094dc7af`](https://togithub.com/nodejs/node/commit/4a094dc7af)]
- **src**: rename IsAnyByteSource to IsAnyBufferSource (Tobias Nießen)
[#&#8203;49346](https://togithub.com/nodejs/node/pull/49346)
- \[[`55d6649175`](https://togithub.com/nodejs/node/commit/55d6649175)]
- **src**: support snapshot deserialization in RAIIIsolate (Joyee
Cheung) [#&#8203;49226](https://togithub.com/nodejs/node/pull/49226)
- 

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 10am on monday" in timezone
Asia/Shanghai, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/oxc-project/oxc).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-10 00:48:37 +00:00
.cargo chore: add cargo oxlint command 2024-05-28 11:10:08 +08:00
.github ci: use personal access token to push tag 2024-06-08 17:05:14 +08:00
.vscode chore: add some useful informantion log (#1912) 2024-01-06 22:30:01 +08:00
apps/oxlint Release oxlint v0.4.3 (#3581) 2024-06-07 16:39:51 +08:00
crates feat(span): port over more methods from TextRange (#3592) 2024-06-10 00:59:00 +08:00
editors/vscode chore(deps): update vscode npm packages (#3598) 2024-06-09 23:24:08 +00:00
fuzz chore(fuzz): add a timeout command 2024-02-05 14:41:14 +08:00
napi/parser refactor(diagnostics): remove export of miette 2024-05-12 11:46:48 +08:00
npm Release crates v0.13.5 (#3584) 2024-06-08 16:44:50 +08:00
tasks chore(deps): update npm packages (#3593) 2024-06-09 17:50:05 +00:00
wasm/parser Release crates v0.13.5 (#3584) 2024-06-08 16:44:50 +08:00
website chore(deps): update website npm packages (major) (#3599) 2024-06-10 00:48:37 +00:00
.git-blame-ignore-revs chore: update .git-blame-ignore-revs 2023-07-28 13:57:29 +08:00
.gitignore feat(tasks): shard benchmarks in CI (#2751) 2024-03-18 10:45:44 +08:00
.ignore chore: add just watch command for overcoming cargo-watch being slow 2023-05-16 13:22:42 +08:00
.rustfmt.toml chore: move rustfmt.toml -> .rustfmt.toml 2024-05-12 13:14:50 +08:00
.taplo.toml chore: format top level toml files 2024-06-04 16:05:08 +08:00
.typos.toml feat(linter/jsdoc): Implement require-param rule (#3554) 2024-06-07 15:58:16 +08:00
Cargo.lock chore(deps): update rust crates (#3595) 2024-06-09 17:56:49 +00:00
Cargo.toml chore(deps): update rust crates (#3595) 2024-06-09 17:56:49 +00:00
CHANGELOG.md chore: update CHANGELOG.md 2024-06-06 20:24:19 +08:00
cliff.toml chore: format toml files 2024-06-08 11:48:14 +08:00
CONTRIBUTING.md chore: change website url to https://oxc.rs 2024-06-05 22:05:08 +08:00
deny.toml chore: format top level toml files 2024-06-04 16:05:08 +08:00
justfile chore: fix build-wasm command 2024-06-07 17:05:46 +08:00
LICENSE Change license holder to @boshen 2023-11-10 14:26:11 +08:00
MAINTENANCE.md chore: update MAINTENANCE.md 2024-04-20 16:59:47 +08:00
oxc_release.toml chore: format toml files 2024-06-08 11:48:14 +08:00
README.md chore: change website url to https://oxc.rs 2024-06-05 22:05:08 +08:00
rust-toolchain.toml chore(deps): update dependency rust to v1.78.0 (#3151) 2024-05-03 00:01:42 +08:00
THIRD-PARTY-LICENSE chore(index): fork index_vec crate. (#3092) 2024-04-25 06:09:53 +00:00

OXC Logo

MIT licensed Build Status Code Coverage CodSpeed Badge Sponsors

Discord chat Playground Website

Oxc

The Oxidation Compiler is creating a collection of high-performance tools for JavaScript and TypeScript.

Oxc is building a parser, linter, formatter, transpiler, minifier, resolver ... all written in Rust.

See more at oxc-project.github.io!

🙋Who's using Oxc?

Linter Quick Start

The linter is ready to catch mistakes for you. It comes with 91 rules turned on by default (out of 340+ in total) and no configuration is required.

To get started, run oxlint or via npx:

npx oxlint@latest

To give you an idea of its capabilities, here is an example from the vscode repository, which finishes linting 4800+ files in 0.7 seconds.

Performance

  • The parser aims to be the fastest Rust-based ready-for-production parser.
  • The linter is more than 50 times faster than ESLint, and scales with the number of CPU cores.

⌨️ Rust, Node.js and Wasm Usage

Rust

Individual crates are published, you may use them to build your own JavaScript tools.

  • The umbrella crate oxc exports all public crates from this repository.
  • The AST and parser crates oxc_ast and oxc_parser are production ready.
  • The resolver crate oxc_resolver for module resolution is also production ready.
  • Example usages of these crates can be found in their respective crates/*/examples directory.

While Rust has gained a reputation for its comparatively slower compilation speed, we have dedicated significant effort to fine-tune the Rust compilation speed. Our aim is to minimize any impact on your development workflow, ensuring that developing your own Oxc based tools remains a smooth and efficient experience.

This is demonstrated by our CI runs, where warm runs complete in 3 minutes.

Node.js

Wasm


🎯 Tools

🔸 AST and Parser

Oxc maintains its own AST and parser, which is by far the fastest and most conformant JavaScript and TypeScript (including JSX and TSX) parser written in Rust.

As the parser often represents a key performance bottleneck in JavaScript tooling, any minor improvements can have a cascading effect on our downstream tools. By developing our parser, we have the opportunity to explore and implement well-researched performance techniques.

While many existing JavaScript tools rely on estree as their AST specification, a notable drawback is its abundance of ambiguous nodes. This ambiguity often leads to confusion during development with estree.

The Oxc AST differs slightly from the estree AST by removing ambiguous nodes and introducing distinct types. For example, instead of using a generic estree Identifier, the Oxc AST provides specific types such as BindingIdentifier, IdentifierReference, and IdentifierName. This clear distinction greatly enhances the development experience by aligning more closely with the ECMAScript specification.

🏆 Parser Performance

Our benchmark reveals that the Oxc parser surpasses the speed of the swc parser by approximately 3 times and the Biome parser by 5 times.

How is it so fast?
  • AST is allocated in a memory arena (bumpalo) for fast AST memory allocation and deallocation.
  • Short strings are inlined by CompactString.
  • No other heap allocations are done except the above two.
  • Scope binding, symbol resolution and some syntax errors are not done in the parser, they are delegated to the semantic analyzer.

🔸 Linter

The linter embraces convention over configuration, eliminating the need for extensive configuration and plugin setup. Unlike other linters like ESLint, which often require intricate configurations and plugin installations (e.g. @typescript-eslint), our linter only requires a single command that you can immediately run on your codebase:

npx oxlint@latest

🏆 Linter Performance

The linter is 50 - 100 times faster than ESLint depending on the number of rules and number of CPU cores used. It completes in less than a second for most codebases with a few hundred files and completes in a few seconds for larger monorepos. See bench-javascript-linter for details.

As an upside, the binary is approximately 5MB, whereas ESLint and its associated plugin dependencies can easily exceed 100.

You may also download the linter binary from the latest release tag as a standalone binary, this lets you run the linter without a Node.js installation in your CI.

How is it so fast?
  • Oxc parser is used.
  • AST visit is a fast operation due to linear memory scan from the memory arena.
  • Files are linted in a multi-threaded environment, so scales with the total number of CPU cores.
  • Every single lint rule is tuned for performance.

🔸 Resolver

Module resolution plays a crucial role in JavaScript tooling, especially for tasks like multi-file analysis or bundling. However, it can often become a performance bottleneck. To address this, we developed oxc_resolver.

The resolver is production-ready and is currently being used in Rspack and Rolldown. Usage and examples can be found in its own repository.

🔸 Transformer (Transpiler)

A transformer is responsible for turning higher versions of ECMAScript to a lower version that can be used in older browsers. We are currently focusing on the architecture. See Milestone 1 for details.

🔸 Minifier

JavaScript minification plays a crucial role in optimizing website performance as it reduces the amount of data sent to users, resulting in faster page loads. This holds tremendous economic value, particularly for e-commerce websites, where every second can equate to millions of dollars.

However, existing minifiers typically require a trade-off between compression quality and speed. You have to choose between the slowest for the best compression or the fastest for less compression. But what if we could develop a faster minifier without compromising on compression?

We are actively working on a prototype that aims to achieve this goal, by porting all test cases from well-known minifiers such as google-closure-compiler, terser, esbuild, and tdewolff-minify.

Preliminary results indicate that we are on track to achieve our objectives. With the Oxc minifier, you can expect faster minification times without sacrificing compression quality.

🔸 Formatter

While prettier has established itself as the de facto code formatter for JavaScript, there is a significant demand in the developer community for a less opinionated alternative. Recognizing this need, our ambition is to undertake research and development to create a new JavaScript formatter that offers increased flexibility and customization options.

The prototype is currently work in progress.


✍️ Contribute

See CONTRIBUTING.md for guidance.

Check out some of the good first issues or ask us on Discord.

If you are unable to contribute by code, you can still participate by:

📚 Learning Resources

🤝 Credits

This project was incubated with the assistance of these exceptional mentors and their projects:

❤ Who's Sponsoring Oxc?

My sponsors

📖 License

Oxc is free and open-source software licensed under the MIT License.

Oxc ports or copies code from other open source projects, their licenses are listed in Third-party library licenses.