Node v20.16.0 (LTS)
Marco Ippolito
2024-07-24, Version 20.16.0 'Iron' (LTS), @marco-ippolito
process: add process.getBuiltinModule(id)
process.getBuiltinModule(id)
provides a way to load built-in modules
in a globally available function. ES Modules that need to support
other environments can use it to conditionally load a Node.js built-in
when it is run in Node.js, without having to deal with the resolution
error that can be thrown by import
in a non-Node.js environment or
having to use dynamic import()
which either turns the module into
an asynchronous module, or turns a synchronous API into an asynchronous one.
if (globalThis.process?.getBuiltinModule) {
// Run in Node.js, use the Node.js fs module.
const fs = globalThis.process.getBuiltinModule('fs');
// If `require()` is needed to load user-modules, use createRequire()
const module = globalThis.process.getBuiltinModule('module');
const require = module.createRequire(import.meta.url);
const foo = require('foo');
}
If id
specifies a built-in module available in the current Node.js process,
process.getBuiltinModule(id)
method returns the corresponding built-in
module. If id
does not correspond to any built-in module, undefined
is returned.
process.getBuiltinModule(id)
accepts built-in module IDs that are recognized
by module.isBuiltin(id)
.
The references returned by process.getBuiltinModule(id)
always point to
the built-in module corresponding to id
even if users modify
require.cache
so that require(id)
returns something else.
Contributed by Joyee Cheung in #52762
doc: doc-only deprecate OpenSSL engine-based APIs
OpenSSL 3 deprecated support for custom engines with a recommendation to switch to its new provider model.
The clientCertEngine
option for https.request()
, tls.createSecureContext()
, and tls.createServer()
; the privateKeyEngine
and privateKeyIdentifier
for tls.createSecureContext();
and crypto.setEngine()
all depend on this functionality from OpenSSL.
Contributed by Richard Lau in #53329
inspector: fix disable async hooks on Debugger.setAsyncCallStackDepth
Debugger.setAsyncCallStackDepth
was previously calling the enable function by mistake. As a result, when profiling using Chrome DevTools, the async hooks won't be turned off properly after receiving Debugger.setAsyncCallStackDepth
with depth 0.
Contributed by Joyee Cheung in #53473
Other Notable Changes
- [
09e2191432
] - (SEMVER-MINOR) buffer: add .bytes() method to Blob (Matthew Aitken) #53221 - [
394e00f41c
] - (SEMVER-MINOR) doc: add context.assert docs (Colin Ihrig) #53169 - [
a8601efa5e
] - (SEMVER-MINOR) doc: improve explanation about built-in modules (Joyee Cheung) #52762 - [
5e76c258f7
] - doc: add StefanStojanovic to collaborators (StefanStojanovic) #53118 - [
5e694026f1
] - doc: add Marco Ippolito to TSC (Rafael Gonzaga) #53008 - [
f3ba1eb72f
] - (SEMVER-MINOR) net: add new net.server.listen tracing channel (Paolo Insogna) #53136 - [
2bcce3255b
] - (SEMVER-MINOR) src,permission: --allow-wasi & prevent WASI exec (Rafael Gonzaga) #53124 - [
a03a4c7bdd
] - (SEMVER-MINOR) test_runner: add context.fullName (Colin Ihrig) #53169 - [
69b828f5a5
] - (SEMVER-MINOR) util: support--no-
for argument with boolean type for parseArgs (Zhenwei Jin) #53107
Commits
- [
76fd0ea92e
] - assert,util: correct comparison when both contain same reference (Daniel Lemire) #53431 - [
65308b6692
] - benchmark: fix api restriction for the permission category (Ryan Tsien) #51528 - [
1e2bc2c2d0
] - benchmark: fix napi/ref addon (Michaël Zasso) #53233 - [
09e2191432
] - (SEMVER-MINOR) buffer: add .bytes() method to Blob (Matthew Aitken) #53221 - [
e1951a4804
] - build: fix spacing before NINJA_ARGS (jakecastelli) #53181 - [
76f3bb3460
] - build: generate binlog in out directories (Chengzhong Wu) #53325 - [
eded0c187b
] - build: support python 3.13 (Chengzhong Wu) #53190 - [
1e57c67fdb
] - build: update ruff to v0.4.5 (Yagiz Nizipli) #53180 - [
28e71ede63
] - build: add--skip-tests
totest-ci-js
target (Antoine du Hamel) #53105 - [
bb06778a65
] - build: fix building embedtest in GN build (Cheng) #53145 - [
117ff5f139
] - build: use broader detection for 'help' (Aviv Keller) #53045 - [
9aa896e7f5
] - build: fix -j propagation to ninja (Tobias Nießen) #53088 - [
acdbc78955
] - build: exit on unsupported host OS for Android (Mohammed Keyvanzadeh) #52882 - [
bf3d94478e
] - build: fix--enable-d8
builds (Richard Lau) #53106 - [
99da7d7237
] - build: set "clang" in config.gypi in GN build (Cheng) #53004 - [
9446278f03
] - crypto: improve GetECGroupBits signature (Tobias Nießen) #53364 - [
dc2a4af68d
] - crypto: fix propagation of "memory limit exceeded" (Tobias Nießen) #53300 - [
c5174f5e60
] - deps: update c-ares to v1.31.0 (Node.js GitHub Bot) #53554 - [
28e932dc7a
] - deps: update undici to 6.19.2 (Node.js GitHub Bot) #53468 - [
e4f9c663c4
] - deps: update undici to 6.19.1 (Node.js GitHub Bot) #53468 - [
171dc50fdc
] - deps: update undici to 6.19.1 (Node.js GitHub Bot) #53468 - [
6bb6a9100d
] - deps: update undici to 6.19.0 (Node.js GitHub Bot) #53468 - [
815d71b4cd
] - deps: update acorn-walk to 8.3.3 (Node.js GitHub Bot) #53466 - [
8b5f1d765a
] - deps: update zlib to 1.3.0.1-motley-209717d (Node.js GitHub Bot) #53156 - [
fc73da6f50
] - deps: update c-ares to v1.30.0 (Node.js GitHub Bot) #53416 - [
a6b803abd6
] - deps: update undici to 6.18.2 (Node.js GitHub Bot) #53255 - [
0f235535bb
] - deps: update ada to 2.8.0 (Node.js GitHub Bot) #53254 - [
63407269a8
] - deps: update corepack to 0.28.2 (Node.js GitHub Bot) #53253 - [
7a126e8773
] - deps: update c-ares to 1.29.0 (Node.js GitHub Bot) #53155 - [
0c8fcceefa
] - deps: upgrade npm to 10.8.1 (npm team) #53207 - [
23866979f2
] - deps: update undici to 6.18.1 (Node.js GitHub Bot) #53073 - [
4987a00142
] - deps: update undici to 6.18.0 (Node.js GitHub Bot) #53073 - [
af226d0d9c
] - deps: update undici to 6.17.0 (Node.js GitHub Bot) #53034 - [
c9c6bf8bfb
] - deps: update undici to 6.16.1 (Node.js GitHub Bot) #52948 - [
b32b62d590
] - deps: update undici to 6.15.0 (Matthew Aitken) #52763 - [
6e6641bea2
] - deps: update googletest to 33af80a (Node.js GitHub Bot) #53053 - [
aa96fbe03e
] - deps: update zlib to 1.3.0.1-motley-4f653ff (Node.js GitHub Bot) #53052 - [
ba3310ded5
] - deps: upgrade npm to 10.8.0 (npm team) #53014 - [
8537a2aecf
] - doc: recommend not using libuv node-api function (Michael Dawson) #53521 - [
c13600f0db
] - doc: add additional guidance for PRs to deps (Michael Dawson) #53499 - [
7c3edd952e
] - doc: only apply content-visibility on all.html (Filip Skokan) #53510 - [
ac5be14ed8
] - doc: update the description of the return type for options.filter (Zhenwei Jin) #52742 - [
cac300e351
] - doc: remove first timer badge (Aviv Keller) #53338 - [
feb61459fd
] - doc: add Buffer.from(string) to functions that use buffer pool (Christian Bates-White) #52801 - [
9e0a6e938b
] - doc: add initial text for ambassadors program (Michael Dawson) #52857 - [
55ac53cb0b
] - doc: define more cases for stream event emissions (Aviv Keller) #53317 - [
7128e0f9c9
] - doc: remove mentions of policy model from security info (Aviv Keller) #53249 - [
3e290433df
] - doc: fix mistakes in the moduleload
hook api (István Donkó) #53349 - [
3445c08144
] - doc: doc-only deprecate OpenSSL engine-based APIs (Richard Lau) #53329 - [
a3e8cda019
] - doc: mark --heap-prof and related flags stable (Joyee Cheung) #53343 - [
0b9daaae4d
] - doc: mark --cpu-prof and related flags stable (Joyee Cheung) #53343 - [
daf91834f6
] - doc: remove IRC from man page (Tobias Nießen) #53344 - [
4246c8fa31
] - doc: fix broken link instatic-analysis.md
(Richard Lau) #53345 - [
955b98a0e4
] - doc: remove cases for keys not containing "*" in PATTERN_KEY_COMPARE (Maarten Zuidhoorn) #53215 - [
7832b1815f
] - doc: add err param to fs.cp callback (Feng Yu) #53234 - [
01533df87f
] - doc: adderr
param to fs.copyFile callback (Feng Yu) #53234 - [
b081bc7d5e
] - doc: reserve 128 for Electron 32 (Keeley Hammond) #53203 - [
6b8460b560
] - doc: add note to ninjia build for macOS using -jn flag (jakecastelli) #53187 - [
394e00f41c
] - (SEMVER-MINOR) doc: add context.assert docs (Colin Ihrig) #53169 - [
c143d61d0e
] - doc: include ESM import for HTTP (Aviv Keller) #53165 - [
a8601efa5e
] - (SEMVER-MINOR) doc: improve explanation about built-in modules (Joyee Cheung) #52762 - [
560392de3d
] - doc: fix minor grammar and style issues in SECURITY.md (Rich Trott) #53168 - [
9f8e34323d
] - doc: mention pm is not enforced when using fd (Rafael Gonzaga) #53125 - [
3ac775b015
] - doc: fix format inesm.md
(Pop Moore) #53170 - [
41b08bdcf7
] - doc: fix wrong variable name in example oftimers.tick()
(Deokjin Kim) #53147 - [
698ea7aa5a
] - doc: fix wrong function name in example ofcontext.plan()
(Deokjin Kim) #53140 - [
a99359d79d
] - doc: add note for windows users and symlinks (Aviv Keller) #53117 - [
61ec2af292
] - doc: move all TLS-PSK documentation to its section (Alba Mendez) #35717 - [
5e76c258f7
] - doc: add StefanStojanovic to collaborators (StefanStojanovic) #53118 - [
1dc406ba62
] - doc: improve ninja build for --built-in-modules-path (jakecastelli) #53007 - [
2854585662
] - doc: avoid hiding by navigation bar in anchor jumping (Cloyd Lau) #45131 - [
3f432f829f
] - doc: remove unavailable youtube link in pull requests (Deokjin Kim) #52982 - [
5e694026f1
] - doc: add Marco Ippolito to TSC (Rafael Gonzaga) #53008 - [
231e44043e
] - doc: add missing supported timer values intimers.enable()
(Deokjin Kim) #52969 - [
b8944f6938
] - doc, http: addrejectNonStandardBodyWrites
option, clear its behaviour (jakecastelli) #53396 - [
0354584738
] - doc, meta: organize contributing to Node-API guide (Aviv Keller) #53243 - [
9ae3719c4e
] - doc, meta: use markdown rather than HTML in CONTRIBUTING.md (Aviv Keller) #53235 - [
621e073c96
] - fs: do not crash if the watched file is removed while setting up watch (Matteo Collina) #53452 - [
f00ee1c377
] - fs: fix cp dir/non-dir mismatch error messages (Mathis Wiehl) #53150 - [
655b960418
] - http2: reject failed http2.connect when used with promisify (ehsankhfr) #53475 - [
eb0b68bb29
] - inspector: fix disable async hooks on Debugger.setAsyncCallStackDepth (Joyee Cheung) #53473 - [
1c0b89be4c
] - lib: fix typo in comment (codediverdev) #53543 - [
55922d9cb0
] - lib: remove the unused code (theanarkh) #53463 - [
06374ef96b
] - lib: fix naming convention ofSymbol
(Deokjin Kim) #53387 - [
d1a780039a
] - lib: fix timer leak (theanarkh) #53337 - [
8689ce4b41
] - lib: fix misleading argument of validateUint32 (Tobias Nießen) #53307 - [
57d7bbf624
] - lib: fix the name of the fetch global function (Gabriel Bota) #53227 - [
23f086c363
] - lib: do not call callback if socket is closed (theanarkh) #52829 - [
f325c54c80
] - meta: use correct source for workflow in PR (Aviv Keller) #53490 - [
8172412dbe
] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #53480 - [
01b61d65d3
] - meta: fix typo in dependency updates (Aviv Keller) #53471 - [
12f5737cd3
] - meta: bump step-security/harden-runner from 2.7.1 to 2.8.0 (dependabot[bot]) #53245 - [
102e4eee3c
] - meta: bump ossf/scorecard-action from 2.3.1 to 2.3.3 (dependabot[bot]) #53248 - [
5ba185580d
] - meta: bump actions/checkout from 4.1.4 to 4.1.6 (dependabot[bot]) #53247 - [
9d186cce2b
] - meta: bump github/codeql-action from 3.25.3 to 3.25.7 (dependabot[bot]) #53246 - [
29ab74009e
] - meta: bump codecov/codecov-action from 4.3.1 to 4.4.1 (dependabot[bot]) #53244 - [
bd4b593f30
] - meta: removeinitializeCommand
from devcontainer (Aviv Keller) #53137 - [
61b1f573cf
] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #53065 - [
f3ba1eb72f
] - (SEMVER-MINOR) net: add new net.server.listen tracing channel (Paolo Insogna) #53136 - [
67333a5796
] - (SEMVER-MINOR) process: add process.getBuiltinModule(id) (Joyee Cheung) #52762 - [
092aa09eb3
] - repl: fix await object patterns without values (Luke Haas) #53331 - [
554d25f526
] - src: resetprocess.versions
during pre-execution (Richard Lau) #53444 - [
a0879ad628
] - src: fix dynamically linked OpenSSL version (Richard Lau) #53456 - [
91c05f34de
] - src: removeSetEncoding
from StringEncoder (Yagiz Nizipli) #53441 - [
4f49384be5
] - src: fix typo in env.cc (EhsanKhaki) #53418 - [
9730d1e186
] - src: avoid strcmp in favor of operator== (Tobias Nießen) #53439 - [
436ad8ceb9
] - src: print v8::OOMDetails::detail when it's available (Joyee Cheung) #53360 - [
f773b289eb
] - src: fix IsIPAddress for IPv6 (Hüseyin Açacak) #53400 - [
7705efd860
] - src: fix permission inspector crash (theanarkh) #53389 - [
260d8d9ae1
] - src: use __FUNCSIG__ on Windows in backtrace (Joyee Cheung) #53135 - [
3b79e9c24e
] - src: fix external module env and kDisableNodeOptionsEnv (Rafael Gonzaga) #52905 - [
32839c63cb
] - src: reduce unnecessaryGetCwd
calls (Yagiz Nizipli) #53064 - [
840dd092ce
] - src: improve node::Dotenv declarations (Tobias Nießen) #52973 - [
2bcce3255b
] - (SEMVER-MINOR) src,permission: --allow-wasi & prevent WASI exec (Rafael Gonzaga) #53124 - [
e092c62a22
] - stream: update outdated highwatermark doc (Jay Kim) #53494 - [
71af3e8172
] - stream: support dispose in writable (Benjamin Gruenbaum) #48547 - [
33a15be32f
] - stream: callback should be called when pendingcb is 0 (jakecastelli) #53438 - [
1b46ebbf69
] - stream: make sure _destroy is called (jakecastelli) #53213 - [
9f95d41947
] - stream: prevent stream unexpected pause when highWaterMark set to 0 (jakecastelli) #53261 - [
d02651c9d6
] - stream: micro-optimize writable condition (Orgad Shaneh) #53189 - [
324070c410
] - stream: fix memory usage regression in writable (Orgad Shaneh) #53188 - [
48138afd35
] - stream: fixes for webstreams (Mattias Buelens) #51168 - [
24f078a22b
] - test: marktest-benchmark-crypto
as flaky (Antoine du Hamel) #52955 - [
0d69ce3474
] - test: extend env fortest-node-output-errors
(Richard Lau) #53535 - [
1aaaad8518
] - test: update encoding web-platform tests (Yagiz Nizipli) #53477 - [
54e0ba8771
] - test: check against run-time OpenSSL version (Richard Lau) #53456 - [
059e47c320
] - test: update tests for OpenSSL 3.0.14 (Richard Lau) #53373 - [
49e6f33021
] - test: fix test-http-server-keepalive-req-gc (Etienne Pierre-doray) #53292 - [
292d13a289
] - test: update TLS tests for OpenSSL 3.2 (Richard Lau) #53384 - [
82017c90bb
] - test: fix test when compiled without engine support (Richard Lau) #53232 - [
a54090b385
] - test: update TLS trace tests for OpenSSL >= 3.2 (Richard Lau) #53229 - [
3a1693421d
] - test: fix Windows native test suites (Stefan Stojanovic) #53173 - [
2b07d01272
] - test: skiptest-setproctitle
whenps
is not available (Antoine du Hamel) #53104 - [
0051d1c83d
] - test: increase allocation so it fails for the test (Adam Majer) #53099 - [
048cbe3304
] - test: remove timers from test-tls-socket-close (Luigi Pinca) #53019 - [
8653d9223e
] - test: replace.substr
with.slice
(Antoine du Hamel) #53070 - [
d74bda4241
] - test: add AbortController to knownGlobals (Luigi Pinca) #53020 - [
f29e1e9838
] - test: skip unstable shadow realm gc tests (Chengzhong Wu) #52855 - [
dfa498697e
] - test,doc: enable running embedtest for Windows (Vladimir Morozov) #52646 - [
0381817f1d
] - test_runner: calculate executed lines using source map (Moshe Atlow) #53315 - [
9d3699b5b0
] - test_runner: handle file rename and deletion under watch mode (jakecastelli) #53114 - [
9a36258ca0
] - test_runner: refactor to use min/max ofvalidateInteger
(Deokjin Kim) #53148 - [
a03a4c7bdd
] - (SEMVER-MINOR) test_runner: add context.fullName (Colin Ihrig) #53169 - [
a72157077a
] - test_runner: fix t.assert methods (Colin Ihrig) #53049 - [
ba764db9ab
] - test_runner: avoid error when coverage line not found (Moshe Atlow) #53000 - [
3a4a0ebd06
] - test_runner,doc: align documentation with actual stdout/stderr behavior (Moshe Atlow) #53131 - [
6e6646bdd5
] - tls: check result of SSL_CTX_set_*_proto_version (Tobias Nießen) #53459 - [
2aceed4297
] - tls: avoid taking ownership of OpenSSL objects (Tobias Nießen) #53436 - [
faa5cac18c
] - tls: use SSL_get_peer_tmp_key (Tobias Nießen) #53366 - [
68fcbb635e
] - tls: fix negative sessionTimeout handling (Tobias Nießen) #53002 - [
61a1c43ef1
] - tools: fix skip detection of test runner output (Richard Lau) #53545 - [
53a7b6e1c0
] - tools: fix c-ares update script (Marco Ippolito) #53414 - [
3bd5f46a15
] - tools: update lint-md-dependencies (Node.js GitHub Bot) #53158 - [
daab9e170f
] - tools: do not run Corepack code before it's reviewed (Antoine du Hamel) #53405 - [
d18a67f937
] - tools: use Ubuntu 24.04 and Clang on GitHub actions (Michaël Zasso) #53212 - [
e9b7a52848
] - tools: add stream label on PR when related files being changed in lib (jakecastelli) #53269 - [
04d78dd56d
] - tools: remove no-goma arg from make-v8 script (Michaël Zasso) #53336 - [
37e725a500
] - tools: use sccache Github action (Moshe Atlow) #53316 - [
2a1fde7e32
] - tools: update error message for Type Error (Aviv Keller) #53047 - [
8f5fb4192d
] - Revert "tools: add --certify-safe to nci-ci" (Antoine du Hamel) #53098 - [
69b828f5a5
] - (SEMVER-MINOR) util: support--no-
for argument with boolean type for parseArgs (Zhenwei Jin) #53107 - [
1a2f3ab4f5
] - watch: fix variable naming (jakecastelli) #53101
Windows 32-bit Installer: https://nodejs.org/dist/v20.16.0/node-v20.16.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v20.16.0/node-v20.16.0-x64.msi
Windows ARM 64-bit Installer: https://nodejs.org/dist/v20.16.0/node-v20.16.0-arm64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v20.16.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v20.16.0/win-x64/node.exe
Windows ARM 64-bit Binary: https://nodejs.org/dist/v20.16.0/win-arm64/node.exe
macOS 64-bit Installer: Coming soon
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v20.16.0/node-v20.16.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v20.16.0/node-v20.16.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v20.16.0/node-v20.16.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v20.16.0/node-v20.16.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v20.16.0/node-v20.16.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v20.16.0/node-v20.16.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: Coming soon
ARMv8 64-bit Binary: https://nodejs.org/dist/v20.16.0/node-v20.16.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v20.16.0/node-v20.16.0.tar.gz
Other release files: https://nodejs.org/dist/v20.16.0/
Documentation: https://nodejs.org/docs/v20.16.0/api/
SHASUMS
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
5eb1b7ea405c86be0a21ec3850997c89df238d6e4659a0b990aa793a8cbfd9cf node-v20.16.0-aix-ppc64.tar.gz
f366fe5903dcb3b6cd495c8add77c87a32772085718a672d52ad17d9d91d2018 node-v20.16.0-arm64.msi
fc7355e778b181575153b7dea4879e8021776eeb376c43c50f65893d2ea70aa3 node-v20.16.0-darwin-arm64.tar.gz
5043e98cdf859963b1a0aff54c1f1813a2a8059e4179403171860d664ca090f2 node-v20.16.0-darwin-arm64.tar.xz
e18942cd706e4d69a4845ddacee2f1c17a72e853a229e3d2623d2edeb7efde72 node-v20.16.0-darwin-x64.tar.gz
9df751ac5edbb2181335200060dff14de25f828eaed70d8b48459d2c203aeedc node-v20.16.0-darwin-x64.tar.xz
6cc5690a67b9b1e1fa8cedaeca41f1bdb5e1af1f7948761c798d33d99f789a5c node-v20.16.0-headers.tar.gz
a1464c304980d3ab41922cda7025ebc2ec0dc2a0b89d9b9183c589560810feaa node-v20.16.0-headers.tar.xz
551588f8f5ca05c04efb53f1b2bb7d9834603327bdc82d60a944d385569866e1 node-v20.16.0-linux-arm64.tar.gz
1d9929e72f692179f884cd676b2dfabd879cb77defa7869dc8cfc802619277fb node-v20.16.0-linux-arm64.tar.xz
1c77c52ab507ddee479012f0b4bf523dd8400df4504447d623632353076e2e27 node-v20.16.0-linux-armv7l.tar.gz
a23a49029e8c7788c701eb3ace553260b7676a5a2ea9965ba92e4817008fbefe node-v20.16.0-linux-armv7l.tar.xz
80b515595e46afb9bae77f61083a4ca7c21bbdb627f69ff53fd5dca3a26773fb node-v20.16.0-linux-ppc64le.tar.gz
86cf6e8c93a9e517bfcfdfb4ad2774105312679ad21e03da75ab516ebc10e2dc node-v20.16.0-linux-ppc64le.tar.xz
ae7a9f6e631a0bede76a501d8b1d806f56b97acfa5a1d6833bab5ce90a404e5e node-v20.16.0-linux-s390x.tar.gz
6c38ac5c516a6a36ee6e0426975e6466795db30b9ced04e59f0f33fe6b3d657e node-v20.16.0-linux-s390x.tar.xz
b3f874ea84e440d69ed02ca92429d0eccd17737fde86db69c1c153d16ec654f2 node-v20.16.0-linux-x64.tar.gz
c30af7dfea46de7d8b9b370fa33b8b15440bc93f0a686af8601bbb48b82f16c0 node-v20.16.0-linux-x64.tar.xz
55852a420ca41db9f128f97e0dd8751199c23d63f5a7978432fd7c9e0c74c323 node-v20.16.0.pkg
8f24bf9abe455a09ab30f9ae8edda1e945ed678a4b1c3b07ee0f901fdc0ff4fd node-v20.16.0.tar.gz
cd6c8fc3ff2606aadbc7155db6f7e77247d2d0065ac18e2f7f049095584b8b46 node-v20.16.0.tar.xz
52e5666a379acd8533d9ccab66c2321a6ffc83766248419bfbd41ba8bc071244 node-v20.16.0-win-arm64.7z
af5a85ea299fcebd34c3c726a47a926e73171f9b657a6eaa796c011597241bf8 node-v20.16.0-win-arm64.zip
1b3961054a484476872715d9ca04bc491d797fde6336db514b6e6fcbb71fae9d node-v20.16.0-win-x64.7z
4e88373ac5ae859ad4d50cc3c5fa86eb3178d089b72e64c4dbe6eeac5d7b5979 node-v20.16.0-win-x64.zip
76f1806fde0b09ed4044f29ea140fb2bea9bce745b9892ec4aeb6537344db6f1 node-v20.16.0-win-x86.7z
1adc1f086595ecbc98da40eccb42fa1691b6c6c0658ff875dda19e4e02b1d5f0 node-v20.16.0-win-x86.zip
813306c94e6f5f061a5789f037d48f57d52240284a679e5ace4a0f73f8f2feeb node-v20.16.0-x64.msi
2bb8c3084384c95c47c4191c38098d5ecf55c0f02c1de5e0968730dec957ea15 node-v20.16.0-x86.msi
7e773fba3a19eac5ccbe85c1f87a05d7b112ecf41440076e6b6de1c7bffa0fdf win-arm64/node.exe
a4f01329c1c211082ac3ed387ff6651530040bbf7250ec419ce8f95b10d7804a win-arm64/node.lib
e1bec70ae9529cc637a21de850c070125f8016070451094d72f96408001200a2 win-arm64/node_pdb.7z
bc5b60eecd3b6c92b35755adef2e4aad01e021a3c434d46c2555a49056c5bcf7 win-arm64/node_pdb.zip
ba221658a3b68bd583e3068903eb675b5206d86a883c084ed95502e8f634b82a win-x64/node.exe
87056190b7cd06f40058f8e059efd328cdcc7600b825afa102c0aa5039865af5 win-x64/node.lib
bf2ad1e1f4e7c3853d5209fe9ef24ad7117edafc71f6401ec0121d8b681b8c3c win-x64/node_pdb.7z
5386f3c3af1af1b325b43b574043c5a7e830b3e9e7df0370ae0797ce4f39b375 win-x64/node_pdb.zip
b7b8d6b5fdd1c073b6f5f6d15bc849f4b5f92c4a66f23e77294f4bdf5f51e9f6 win-x86/node.exe
fa02ae7feca7eb6c4a0f1b929126df400719f5d18a2ec4b7d12c52fbe0b13814 win-x86/node.lib
328b2dcc91255c1c75faa8ce7eb687a8960ae09555d3bca0ae8e0dac4238c873 win-x86/node_pdb.7z
71b1e6b75c61227342ba6f1edb9014445dbee857d6cb14dce3d9b8d94c694d55 win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEzGj1oxBv9EgyLkjtJ/XjjVsKIV8FAmag7tcACgkQJ/XjjVsK
IV/hlRAAjvdBRTWPfjXzTqxQODXLZps1HREXRZAa8C8bbAoagCJ1jfm6d8yVUegH
Bl5FqDAutGfTlEhXtQqBmnbQPv4Ahj156cVYtp3dFrxPF15bP+o9q+Un5+R1zcfX
kH9W26G7IvfrtFJkDClpBlPKYE5HcDrrJBNfvALf4th17bkVHMpr04oJz5IwGV2M
petLMwqFxcqQ+15tzRW42Z6EhWHvNaMveab6SM4JEqBxvqB8K+m4nsw2ER7ycU5b
Isa0bUsxtRICtSX0yzzdzEYrFXZmb9eXZRVfJ4sBpUhw0xtBmHn3c1MZH0qez+Nm
tbc6pcgGv9cUSXauBeD8rrYMzQHcrhihd51i9a3Cen3RDy/dtuNx9jEXnxfkY+n9
wkwKb4Lask962L+yTHQCfJ+JQxgouADxqzMxhcup1iiHXCd7pSBSoeAvd5Z1AeGX
qBYrLU9mcyIuLrbtADSfnWmXWs2k1hgnP3UXMBhu/GuobQf9kJ2Gwwx5Gp0aB8z9
4EA+oUXnkM2kJF0MYVMXL+z8VcQpHgyVPujglhNn/a4WdCVTr1jKptNqqnriH9zl
bHMZuiKbAt8RL9rQ3XuFD1sN9k1z/mj8bCHES2WVta+3kCmY9u+eKXNdXJYt+5Xh
bGxwXP5T+Z8Yzc9FVmgPzZzVddCX74Yug0j8BUyE3vPaDq32H6M=
=cZH5
-----END PGP SIGNATURE-----