Node.js v22.5.0 (Current)
Antoine du Hamel
2024-07-17, Version 22.5.0 (Current), @RafaelGSS prepared by @aduh95
Notable Changes
- [1367c5558e] - (SEMVER-MINOR) http: expose websockets (Natalia Venditto) #53721
- [b31394920d] - (SEMVER-MINOR) lib: addnode:sqlitemodule (Colin Ihrig) #53752
- [aa7df9551d] - module: add__esModuletorequire()'d ESM (Joyee Cheung) #52166
- [8743c4d65a] - (SEMVER-MINOR) path: addmatchesGlobmethod (Aviv Keller) #52881
- [77936c3d24] - (SEMVER-MINOR) process: port on-exit-leak-free to core (Vinicius Lourenço) #53239
- [82d88a83f8] - (SEMVER-MINOR) stream: pipeline wait for close before calling the callback (jakecastelli) #53462
- [3a0fcbb17a] - test_runner: support glob matching coverage files (Aviv Keller) #53553
- [22ca334090] - (SEMVER-MINOR) worker: addpostMessageToThread(Paolo Insogna) #53682
Commits
- [eb4e370933] - benchmark: add require-esm benchmark (Joyee Cheung) #52166
- [4d4a8338db] - benchmark: add cpSync benchmark (Yagiz Nizipli) #53612
- [3d60b38afa] - build: fix build warning of c-ares under GN build (Cheng) #53750
- [a45c801048] - build: fix build error in sqlite under GN build (Cheng) #53686
- [40032eb623] - build: add gn files for deps/nbytes (Cheng) #53685
- [082799debb] - build: fix mac build error of c-ares under GN (Cheng) #53687
- [b05394ea6a] - build: add version-specific library path for AIX (Richard Lau) #53585
- [6237172eaf] - cli: updatenode.1to reflect Atom's sunset (Aviv Keller) #53734
- [5697938cb7] - crypto: avoid std::function (Tobias Nießen) #53683
- [3cc01aa314] - crypto: make deriveBits length parameter optional and nullable (Filip Skokan) #53601
- [f82e20fdea] - crypto: avoid taking ownership of OpenSSL objects (Tobias Nießen) #53460
- [ad1e5610ec] - deps: update googletest to 4b21f1a (Node.js GitHub Bot) #53842
- [d285d610a0] - deps: update minimatch to 10.0.1 (Node.js GitHub Bot) #53841
- [70f5209c9f] - deps: update corepack to 0.29.2 (Node.js GitHub Bot) #53838
- [4930e12a45] - deps: update simdutf to 5.3.0 (Node.js GitHub Bot) #53837
- [d346833364] - deps: update ada to 2.9.0 (Node.js GitHub Bot) #53748
- [ab8abb5367] - deps: upgrade npm to 10.8.2 (npm team) #53799
- [1ad664905a] - deps: update nbytes and add update script (Yagiz Nizipli) #53790
- [a66f11e798] - deps: update googletest to 34ad51b (Node.js GitHub Bot) #53157
- [9bf61d6a0d] - deps: update googletest to 305e5a2 (Node.js GitHub Bot) #53157
- [8542ace488] - deps: V8: cherry-pick 9ebca66a5740 (Chengzhong Wu) #53755
- [29a734c21d] - deps: V8: cherry-pick e061cf9970d9 (Joyee Cheung) #53755
- [c7624af44a] - deps: update c-ares to v1.32.1 (Node.js GitHub Bot) #53753
- [bbcec9e129] - deps: update minimatch to 9.0.5 (Node.js GitHub Bot) #53646
- [76032fd980] - deps: update c-ares to v1.32.0 (Node.js GitHub Bot) #53722
- [26386046ad] - doc: move MylesBorins to emeritus (Myles Borins) #53760
- [362875bda0] - doc: add Rafael to the last security release (Rafael Gonzaga) #53769
- [a1a5ad848d] - doc: use mock.callCount() in examples (Sébastien Règne) #53754
- [bb960c5471] - doc: clarify authenticity of plaintexts in update (Tobias Nießen) #53784
- [5dd3018eb4] - doc: add option to have support me link (Michael Dawson) #53312
- [0f95ad3d7d] - doc: add OpenSSL security level to TLS docs (Afanasii Kurakin) #53647
- [2d92ec2831] - doc: updatescroll-padding-topto 4rem (Cloyd Lau) #53662
- [933359a786] - doc: mention v8.setFlagsFromString to pm (Rafael Gonzaga) #53731
- [e17c2618e3] - doc: remove the last <pre> tag (Claudio W) #53741
- [7f18a5f47a] - doc: exclude voting and regular TSC from spotlight (Michael Dawson) #53694
- [df3dcd1bd1] - doc: fix releases guide for recent Git versions (Michaël Zasso) #53709
- [50987ea833] - doc: requirenode:processin assert doc examples (Alfredo González) #53702
- [fa58d01497] - doc: add additional explanation to the wildcard section in permissions (jakecastelli) #53664
- [28bf1e48ef] - doc: mark NODE_MODULE_VERSION for Node.js 22.0.0 (Michaël Zasso) #53650
- [1cc0b41f00] - doc: include node.module_timer on available categories (Vinicius Lourenço) #53638
- [d224e9eab5] - doc: fix module customization hook examples (Elliot Goodrich) #53637
- [2cf60964e6] - doc: fix doc for correct usage with plan & TestContext (Emil Tayeb) #53615
- [6df86ae056] - doc: remove some news issues that are no longer (Michael Dawson) #53608
- [42b9408f3e] - doc: add issue for news from ambassadors (Michael Dawson) #53607
- [2d1ff91953] - doc: add esm example for os (Leonardo Peixoto) #53604
- [de99d69d75] - doc: clarify usage of coverage reporters (Eliphaz Bouye) #53523
- [519c328dcf] - doc: document addition testing options (Aviv Keller) #53569
- [c6166cdfe4] - doc: clarify that fs.exists() may return false for existing symlink (Tobias Nießen) #53566
- [9139ab2848] - doc: note http.closeAllConnections excludes upgraded sockets (Rob Hogan) #53560
- [19b3718ee1] - doc, meta: add PTAL to glossary (Aviv Keller) #53770
- [80c1f5ce8a] - doc, typings: events.once accepts symbol event type (René) #53542
- [1a21e0f61e] - esm: improvedefaultResolveperformance (Yagiz Nizipli) #53711
- [262f2cb3b6] - esm: remove unnecessary toNamespacedPath calls (Yagiz Nizipli) #53656
- [e29c9453a9] - esm: move hooks test with others (Geoffrey Booth) #53558
- [8368555289] - fs: add v8 fast api to closeSync (Yagiz Nizipli) #53627
- [628a539810] - fs: reduce throwing unnecessary errors on glob (Yagiz Nizipli) #53632
- [076e82ca40] - fs: moveToNamespacedPathdir calls to c++ (Yagiz Nizipli) #53630
- [128e514d81] - fs: improve error performance offs.dir(Yagiz Nizipli) #53667
- [603c2c5c08] - fs: fix typings (Yagiz Nizipli) #53626
- [1367c5558e] - (SEMVER-MINOR) http: expose websockets (Natalia Venditto) #53721
- [7debb6c36e] - http: remove prototype primordials (Antoine du Hamel) #53698
- [b13aea5698] - http, readline: replace sort with toSorted (Benjamin Gruenbaum) #53623
- [1397f5d9f4] - http2: remove prototype primordials (Antoine du Hamel) #53696
- [f57d3cee2c] - lib: make navigator not runtime-lookup process.version/arch/platform (Jordan Harband) #53765
- [0a01abbd45] - lib: refactorplatformutility methods (Daniel Bayley) #53817
- [afe7f4f819] - lib: remove path.resolve from permissions.js (Rafael Gonzaga) #53729
- [cbe77b30ca] - lib: moveToNamespacedPathcall to c++ (Yagiz Nizipli) #53654
- [0f146aac2c] - lib: make navigator properties lazy (James M Snell) #53649
- [0540308bd7] - lib: add toJSON to PerformanceMeasure (theanarkh) #53603
- [b31394920d] - (SEMVER-MINOR) lib,src,test,doc: add node:sqlite module (Colin Ihrig) #53752
- [1a7c2dc5ea] - meta: remove redudant logging from dep updaters (Aviv Keller) #53783
- [ac5d7b709d] - meta: change email address of anonrig (Yagiz Nizipli) #53829
- [085ec5533c] - meta: addnode_sqlite.cto PR label config (Aviv Keller) #53797
- [c68d873e99] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #53758
- [5ae8ea489d] - meta: use HTML entities in commit-queue comment (Aviv Keller) #53744
- [ecd8fceb68] - meta: move regular TSC member to emeritus (Michael Dawson) #53693
- [05058f9809] - meta: bump codecov/codecov-action from 4.4.1 to 4.5.0 (dependabot[bot]) #53675
- [e272ffa3d6] - meta: bump mozilla-actions/sccache-action from 0.0.4 to 0.0.5 (dependabot[bot]) #53674
- [a39407560c] - meta: bump github/codeql-action from 3.25.7 to 3.25.11 (dependabot[bot]) #53673
- [e4ce92ee31] - meta: bump actions/checkout from 4.1.6 to 4.1.7 (dependabot[bot]) #53672
- [4cf98febe7] - meta: bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 (dependabot[bot]) #53671
- [c28af95bf5] - meta: bump step-security/harden-runner from 2.8.0 to 2.8.1 (dependabot[bot]) #53670
- [dd2157bc83] - meta: move member from TSC regular to emeriti (Michael Dawson) #53599
- [508abfe178] - meta: warnings bypass deprecation cycle (Benjamin Gruenbaum) #53513
- [3c5ec839e3] - meta: prevent constant references to issues in versioning (Aviv Keller) #53564
- [aa7df9551d] - module: add __esModule to require()'d ESM (Joyee Cheung) #52166
- [8743c4d65a] - (SEMVER-MINOR) path: addmatchesGlobmethod (Aviv Keller) #52881
- [77936c3d24] - (SEMVER-MINOR) process: port on-exit-leak-free to core (Vinicius Lourenço) #53239
- [5e4ca9fbb6] - src: update outdated references to spec sections (Tobias Nießen) #53832
- [c22d9d5167] - src: use Maybe<void> in ManagedEVPPKey (Tobias Nießen) #53811
- [d41ed44f49] - src: moveloadEnvFiletoNamespacedPath call (Yagiz Nizipli) #53658
- [dc99dd391f] - src: fix error handling in ExportJWKAsymmetricKey (Tobias Nießen) #53767
- [ab1e03e8cd] - src: use Maybe<void> in node::crypto::error (Tobias Nießen) #53766
- [9bde9b254d] - src: fix implementation ofPropertySetterCallback(Igor Sheludko) #53576
- [021e2cf40f] - src: remove unused ContextifyContext::WeakCallback (Chengzhong Wu) #53517
- [87121a17c4] - src: fix typo in node.h (Daeyeon Jeong) #53759
- [94c7054c8d] - src: document the Node.js context embedder data (Joyee Cheung) #53611
- [c181940e83] - src: zero-initialize data that are copied into the snapshot (Joyee Cheung) #53563
- [8cda2db64c] - Revert "src: make sure that memcpy-ed structs in snapshot have no padding" (Joyee Cheung) #53563
- [81767f6089] - src: fix Worker termination when '--inspect-brk' is passed (Daeyeon Jeong) #53724
- [a9db553935] - src: refactor embedded entrypoint loading (Joyee Cheung) #53573
- [3ab8aba478] - src: do not get string_view from temp string (Cheng) #53688
- [664bf6c28f] - src: replacekPathSeparatorwith std::filesystem (Yagiz Nizipli) #53063
- [cc1f49751a] - src: moveFromNamespacedPathto path.cc (Yagiz Nizipli) #53540
- [e43a4e07ec] - src: usestarts_within node_dotenv.cc (Yagiz Nizipli) #53539
- [19488fd4ce] - src,test: further cleanup references to osx (Daniel Bayley) #53820
- [4bf62f6cbd] - stream: improve inspector ergonomics (Benjamin Gruenbaum) #53800
- [82d88a83f8] - (SEMVER-MINOR) stream: pipeline wait for close before calling the callback (jakecastelli) #53462
- [53a7dd7790] - test: update wpt test (Mert Can Altin) #53814
- [bc480902ab] - test: update WPT WebIDL interfaces (Filip Skokan) #53720
- [d13153d90f] - test: un-set inspector-async-hook-setup-at-inspect-brk as flaky (Abdirahim Musse) #53692
- [ac9c2e6bf2] - test: use python3 instead of python in pummel test (Mathis Wiehl) #53057
- [bac28678e6] - test: do not assume cwd in snapshot tests (Antoine du Hamel) #53146
- [41e106c0c6] - test: useSet.difference()(Richard Lau) #53597
- [8aab680f66] - test: fix OpenSSL version checks (Richard Lau) #53503
- [6aa4f0f266] - test: refactor, add assertion to http-request-end (jakecastelli) #53411
- [fbc5cbb617] - test_runner: remove plan option from run() (Colin Ihrig) #53834
- [c590828ad8] - test_runner: fix escaping in snapshot tests (Julian Kniephoff) #53833
- [3a0fcbb17a] - test_runner: support glob matching coverage files (Aviv Keller) #53553
- [e6a1eeb73d] - test_runner: support module detection in module mocks (Geoffrey Booth) #53642
- [4d777de7d4] - tls: add setKeyCert() to tls.Socket (Brian White) #53636
- [ab9adfc42a] - tls: remove prototype primordials (Antoine du Hamel) #53699
- [03d378ffb9] - tools: update lint-md-dependencies (Node.js GitHub Bot) #53840
- [06377b1b11] - tools: update eslint to 9.7.0 (Node.js GitHub Bot) #53839
- [d6629a2d84] - tools: use v8_features.json to populate config.gypi (Cheng) #53749
- [d3653fe8ac] - tools: update eslint to 9.6.0 (Node.js GitHub Bot) #53645
- [1e930e93d4] - tools: update lint-md-dependencies to unified@11.0.5 (Node.js GitHub Bot) #53555
- [317a13b30f] - tools: replace reference to NodeMainInstance with SnapshotBuilder (codediverdev) #53544
- [0e25faea0a] - typings: addfs_dirtypes (Yagiz Nizipli) #53631
- [7637f291be] - url: fix typo (KAYYY) #53827
- [2c6548afd1] - url: reduce unnecessary string copies (Yagiz Nizipli) #53628
- [0f2b57d1bc] - url: make URL.parse enumerable (Filip Skokan) #53720
- [1300169f80] - url: add missing documentation forURL.parse()(Yagiz Nizipli) #53733
- [c55e72ed8b] - util: fix crashing when emitting new Buffer() deprecation warning #53075 (Aras Abbasi) #53089
- [5aa216320e] - v8: moveToNamespacedPathto c++ (Yagiz Nizipli) #53655
- [9fd976b09d] - vm,src: add property query interceptors (Chengzhong Wu) #53517
- [22ca334090] - (SEMVER-MINOR) worker: add postMessageToThread (Paolo Insogna) #53682
- [5aecbefbd5] - worker: allow copied NODE_OPTIONS in the env setting (Joyee Cheung) #53596
Windows 32-bit Installer: https://nodejs.org/dist/v22.5.0/node-v22.5.0-x86.msi 
Windows 64-bit Installer: https://nodejs.org/dist/v22.5.0/node-v22.5.0-x64.msi 
Windows ARM 64-bit Installer: https://nodejs.org/dist/v22.5.0/node-v22.5.0-arm64.msi 
Windows 32-bit Binary: https://nodejs.org/dist/v22.5.0/win-x86/node.exe 
Windows 64-bit Binary: https://nodejs.org/dist/v22.5.0/win-x64/node.exe 
Windows ARM 64-bit Binary: https://nodejs.org/dist/v22.5.0/win-arm64/node.exe 
macOS 64-bit Installer: https://nodejs.org/dist/v22.5.0/node-v22.5.0.pkg 
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-darwin-arm64.tar.gz 
macOS Intel 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-darwin-x64.tar.gz 
Linux 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-linux-x64.tar.xz 
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-linux-ppc64le.tar.xz 
Linux s390x 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-linux-s390x.tar.xz 
AIX 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-aix-ppc64.tar.gz 
ARMv7 32-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-linux-armv7l.tar.xz 
ARMv8 64-bit Binary: https://nodejs.org/dist/v22.5.0/node-v22.5.0-linux-arm64.tar.xz 
Source Code: https://nodejs.org/dist/v22.5.0/node-v22.5.0.tar.gz 
Other release files: https://nodejs.org/dist/v22.5.0/ 
Documentation: https://nodejs.org/docs/v22.5.0/api/
SHASUMS
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
e55511ccce9e25789d80135882fe10301f5f4cf018c3ab48bd3b6b7dcfb80a71  node-v22.5.0-aix-ppc64.tar.gz
173bc126eb7ce24c4a1b2fdafd32221894358a854fa73f94fcf772094d156ef9  node-v22.5.0-arm64.msi
dd484dc9b461aa78cfea3f48d540b4ae600efb07c7482893ee9d260dd3686614  node-v22.5.0-darwin-arm64.tar.gz
2550d7feb00e7e0a569d43a43c4827b038f5eeff3645e88660023fa177a763e2  node-v22.5.0-darwin-arm64.tar.xz
a4409511fd1008a75f16b42a2d5694f3622f361eafa59bec5bab1928389754a2  node-v22.5.0-darwin-x64.tar.gz
64841cfd0a8e9dfb4425442d1336c076b4d5248de974dfa762bdb932c81d421c  node-v22.5.0-darwin-x64.tar.xz
713f6a77ada0577a2ae6aff3ff7986874706efbc0d4e6c1c3082208eafac1479  node-v22.5.0-headers.tar.gz
29c11bd809890de264b1100264ecf6f2022952553fed5420f0a2c6a7ece9259b  node-v22.5.0-headers.tar.xz
f64000dcdb279f056dc574db13494d61fd85f2928c99ffa2e6dd2e5843ce6299  node-v22.5.0-linux-arm64.tar.gz
67c8c3b243e90a8cb8a47fe87bdc8f787fd842df33dc6132e484893bdb635e75  node-v22.5.0-linux-arm64.tar.xz
73b4d63ca3fc958910a6a7155ad7f584c60d26998ef36ebadcde7f0fae5c97fc  node-v22.5.0-linux-armv7l.tar.gz
1d7245aff4942f47cd949858362ea1b5f138900d86989308c510b957e5d065eb  node-v22.5.0-linux-armv7l.tar.xz
8e0bde5839c81cd2c6e536fe5e2f4de58ee644c92e1cddd4f5e29365b716d798  node-v22.5.0-linux-ppc64le.tar.gz
c7978108c925acfd420a4f67dcc856b43fcabc4b1d0b9f1ddbe7f9746f8488f7  node-v22.5.0-linux-ppc64le.tar.xz
73af14a5da0eda93abe1beb8b30278ca88f49ba3699bacb218a062d19a6de0aa  node-v22.5.0-linux-s390x.tar.gz
1022bd1d761da80444d173653e1e6576a7d46a48c031c69b3444f01629b277d5  node-v22.5.0-linux-s390x.tar.xz
f1a2eadec1f7ae92a98252eda0579b581d9a592792a1a3c391a073b38d5f036c  node-v22.5.0-linux-x64.tar.gz
1b8b7db45ff5ef9ac82a9d92c276408b0fcfdb44f322360bdb02d156b5442b46  node-v22.5.0-linux-x64.tar.xz
63ebc337186168a1474838efeaa1bbe3ed5ca2d8a6d64dc6b2f433a5614686e8  node-v22.5.0-win-arm64.7z
a2cb4dd4cb49a8bcddc9c51574b82615816205a3e074f254c2e3bfa5045aca4d  node-v22.5.0-win-arm64.zip
00a8043372ed1a8565f3772337690421b64904ecee7347d9c31d7cf3663fbde8  node-v22.5.0-win-x64.7z
9523ca091931a50c4fb93e001c9d11033e5440e92122c93008e6e16ff15660e5  node-v22.5.0-win-x64.zip
72756432d58cfa863f5dfe7f92d180c7fee1608859af436948e4c2c4738163cd  node-v22.5.0-win-x86.7z
43b1b6afc62ecb6fbd9518b3173aa92348c1aa3c8ec059ca505c00da7ea5bac2  node-v22.5.0-win-x86.zip
f273c7e2e013ebd1e9f3498ca5608af857eb385426e6179e9a889b065b63686c  node-v22.5.0-x64.msi
4fa9542aba7098c33c2244b728ec0fa67d71e52dee2a7a4bc9e10218f8cf5cea  node-v22.5.0-x86.msi
71c80417cdffc34ec4a5b8f2814513d7cf0ff6eceaee5d3ecd5470ceb0d55194  node-v22.5.0.pkg
8327234c161abd9d8768537404258389adb4c7da02cda7d055d457ceb3ff9bc1  node-v22.5.0.tar.gz
5a86238f00393716a03cd304f7c63f4c27144889d05a3938bb0f242c8d29d62f  node-v22.5.0.tar.xz
076e3728466fe9275f2169ecd434561a83625181f51517f345661158e853d754  win-arm64/node.exe
30e63a6726cda6539eeb37c311adf915bccd5c1462723b97a6c07ac91e8ae728  win-arm64/node.lib
f0e6767bce59e516c4bbb47b8cfec7afe78de9ac32a386f368b9f5aed1ca05f1  win-arm64/node_pdb.7z
3e65d7873316d209c3bb0d50d6cc770cbec305382293b8a65bd8c76351e888d9  win-arm64/node_pdb.zip
26e7ac93a231cc04a2c93821d99455bd5ab5682ce0db3930ee4e33228b4750b5  win-x64/node.exe
c4d08d45267da3625a30730bf5c8e41518f25d9809179feb267f1b393f5c5f05  win-x64/node.lib
4d4f62c9a811a0f35c507fd447432e020f03a951055aec331e7fbf7fd80204ef  win-x64/node_pdb.7z
3d86182574d020069b0ad5576c9974364d37365505ca1128cbfd764c24a5aa73  win-x64/node_pdb.zip
c572a54a3acf1bee443744b917ed7bab34664325083a4204cbbf98e2feb35160  win-x86/node.exe
fc3bf3c1e561da1e1c152be9aa5ed1bce8d263a5124841a4ba41ebc37c727f3e  win-x86/node.lib
700a57520d462dc03c1399e1b6912805fbc6d54678853dca1f725c5c59bfab6e  win-x86/node_pdb.7z
0750c7973c03513fc7658f9fc784ac80472853e24a48582558d170a0ae37cc7b  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----
iQGzBAEBCAAdFiEEiQwI24V5Fi/uDfnbi+q0389VXvQFAmaX67UACgkQi+q0389V
XvTKGAv/fY/yKxULLdeRomBN3KmU1WwGFLtxdx5RhAWMMcFBZWtfrkpbAdNszvP2
Ig3I7vFE4i9bWkEExm6sJEz+8eTdmGsi0P8oQxG9GZcV6PfkH9GAP1XK+QxWIbmz
dNR9IYkQzl3k9zDfTLGBGb5JbPvUYW1iIYPtO77UEm6Yv253u8oAMUcObPGfAaRK
Ho8S+o5CtI0dztISUxOKQn9tn+UBwJBhekCRZLz/0aZzQd7Orktl4AIwUXul6xpf
R/2H8ofHz6RtZ0Ne1MIizradcw8pGdC4bLEeIHEMT64L+bQXmV0VDtV9ehefAkvz
cP8hGnrPuLuDNnhdbplnM7W9+OuRbrJYg5oxymmsrV8oJHMUi4LuxEutXoIXBOCb
z8JNEg4fd2tD0xX7tybLiJIg8uWM1CJutzt+vHs5HtWHvjL+OiL3X5VDLZQdHB88
xq6mns91saFtQI4P4zmzxwL5K+0o0KCQhfmBpEoDnQfDkXjCI0cP+GocLonx2Lz1
JJHsOztu
=9PDN
-----END PGP SIGNATURE-----