Notable Changes

Experimental command-line argument parser API

Adds

1
util.parseArgs

helper for higher level command-line argument parsing.

Contributed by Benjamin Coe, John Gee, Darcy Clarke, Joe Sepi, Kevin Gibbons, Aaron Casanova, Jessica Nahulan, and Jordan Harband – #42675

Experimental ESM Loader Hooks API

Node.js ESM Loader hooks now support multiple custom loaders, and composition is
achieved via “chaining”:

1
foo-loader

calls

1
bar-loader

calls

1
qux-loader

(a custom loader must now signal a short circuit when intentionally not
calling the next). See the ESM docs for details.

Real-world use-cases are laid out for end-users with working examples in the
article Custom ESM loaders: Who, what, when, where, why, how.

Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias – #42623

Experimental test runner

The

1
node:test

module, which was initially introduced in Node.js v18.0.0,
is now available with all the changes done to it up to Node.js v18.7.0.

Improved interoperability of the Web Crypto API

To better align Node.js’ experimental implementation of the Web Crypto API with other runtimes, several changes were made:

  • Support for CFRG curves was added, with the
    1
    'Ed25519'

    ,

    1
    'Ed448'

    ,

    1
    'X25519'

    , and

    1
    'X448'

    algorithms.

  • The proprietary
    1
    'NODE-DSA'

    ,

    1
    'NODE-DH'

    ,

    1
    'NODE-SCRYPT'

    ,

    1
    'NODE-ED25519'

    ,

    1
    'NODE-ED448'

    ,

    1
    'NODE-X25519'

    , and

    1
    'NODE-X448'

    algorithms were removed.

  • The proprietary
    1
    'node.keyObject'

    import/export format was removed.

Contributed by Filip Skokan – #42507, #43310

Dependency updates

  • Updated Corepack to 0.12.1 – #43965
  • Updated ICU to 71.1 – #42655
  • Updated npm to 8.15.0 – #43917
  • Updated Undici to 5.8.0 – #43886

Other notable changes

  • [
    1
    5f1e9e2030

    ] – (SEMVER-MINOR) crypto: make authTagLength optional for CC20P1305 (Tobias Nießen) #42427

  • [
    1
    934077a137

    ] – (SEMVER-MINOR) crypto: align webcrypto RSA key import/export with other implementations (Filip Skokan) #42816

  • [
    1
    7683e9623c

    ] – (SEMVER-MINOR) dns: export error code constants from

    1
    dns/promises

    (Feng Yu) #43176

  • [
    1
    302a134b83

    ] – doc: deprecate coercion to integer in process.exit (Daeyeon Jeong) #43738

  • [
    1
    4884f18ce5

    ] – (SEMVER-MINOR) doc: deprecate diagnostics_channel object subscribe method (Stephen Belanger) #42714

  • [
    1
    90f395dda9

    ] – (SEMVER-MINOR) errors: add support for cause in aborterror (James M Snell) #41008

  • [
    1
    7a5de2cc0c

    ] – (SEMVER-MINOR) events: expose CustomEvent on global with CLI flag (Daeyeon Jeong) #43885

  • [
    1
    087adbb7a3

    ] – (SEMVER-MINOR) events: add

    1
    CustomEvent

    (Daeyeon Jeong) #43514

  • [
    1
    979c98a3cb

    ] – (SEMVER-MINOR) events: propagate abortsignal reason in new AbortError ctor in events (James M Snell) #41008

  • [
    1
    e04c8a4921

    ] – (SEMVER-MINOR) fs: propagate abortsignal reason in new AbortSignal constructors (James M Snell) #41008

  • [
    1
    464830993e

    ] – (SEMVER-MINOR) fs: make params in writing methods optional (LiviaMedeiros) #42601

  • [
    1
    3d7808ec3f

    ] – (SEMVER-MINOR) fs: add

    1
    read(buffer[, options])

    versions (LiviaMedeiros) #42768

  • [
    1
    082a2630fd

    ] – (SEMVER-MINOR) http: add drop request event for http server (theanarkh) #43806

  • [
    1
    5a74939770

    ] – (SEMVER-MINOR) http: add diagnostics channel for http client (theanarkh) #43580

  • [
    1
    f05fd1a423

    ] – (SEMVER-MINOR) http: add perf_hooks detail for http request and client (theanarkh) #43361

  • [
    1
    9d1b4b7e29

    ] – (SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) #41397

  • [
    1
    fa5ac5a2eb

    ] – (SEMVER-MINOR) http2: propagate abortsignal reason in new AbortError constructor (James M Snell) #41008

  • [
    1
    94070f152e

    ] – (SEMVER-MINOR) http2: compat support for array headers (OneNail) #42901

  • [
    1
    36dd39dec0

    ] – (SEMVER-MINOR) lib: propagate abortsignal reason in new AbortError constructor in blob (James M Snell) #41008

  • [
    1
    8adf7d5e91

    ] – (SEMVER-MINOR) lib: add abortSignal.throwIfAborted() (James M Snell) #40951

  • [
    1
    3c1ed86840

    ] – (SEMVER-MINOR) lib: improved diagnostics_channel subscribe/unsubscribe (Stephen Belanger) #42714

  • [
    1
    e6186af5cc

    ] – (SEMVER-MINOR) module: add isBuiltIn method (hemanth.hm) #43396

  • [
    1
    3d851d6d6b

    ] – (SEMVER-MINOR) module,repl: support ‘node:’-only core modules (Colin Ihrig) #42325

  • [
    1
    303bd08d88

    ] – (SEMVER-MINOR) net: add drop event for net server (theanarkh) #43582

  • [
    1
    da03e9f484

    ] – (SEMVER-MINOR) net: add ability to reset a tcp socket (pupilTong) #43112

  • [
    1
    73f852e1e3

    ] – (SEMVER-MINOR) node-api: emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) #36510

  • [
    1
    6dcdcd7f50

    ] – (SEMVER-MINOR) perf_hooks: add PerformanceResourceTiming (RafaelGSS) #42725

  • [
    1
    5750358872

    ] – (SEMVER-MINOR) report: add more heap infos in process report (theanarkh) #43116

  • [
    1
    e7b99e8c8d

    ] – (SEMVER-MINOR) src: add –openssl-legacy-provider option (Daniel Bevenius) #40478

  • [
    1
    1281a48b89

    ] – (SEMVER-MINOR) src: define fs.constants.S_IWUSR & S_IRUSR for Win (Liviu Ionescu) #42757

  • [
    1
    9ea9797d34

    ] – (SEMVER-MINOR) src,doc,test: add –openssl-shared-config option (Daniel Bevenius) #43124

  • [
    1
    046debaee0

    ] – (SEMVER-MINOR) stream: use cause options in AbortError constructors (James M Snell) #41008

  • [
    1
    6641fda10a

    ] – (SEMVER-MINOR) stream: add iterator helper find (Nitzan Uziely) #41849

  • [
    1
    edec73032c

    ] – (SEMVER-MINOR) stream: add writableAborted (Robert Nagy) #40802

  • [
    1
    2aae868fa2

    ] – (SEMVER-MINOR) timers: propagate signal.reason in awaitable timers (James M Snell) #41008

  • [
    1
    513f52445b

    ] – (SEMVER-MINOR) v8: add v8.startupSnapshot utils (Joyee Cheung) #43329

  • [
    1
    a8eca74450

    ] – (SEMVER-MINOR) v8: export more fields in getHeapStatistics (theanarkh) #42784

  • [
    1
    845279e331

    ] – (SEMVER-MINOR) worker: add hasRef() to MessagePort (Darshan Sen) #42849

Commits

Semver-minor commits

  • [
    1
    58279d5b76

    ] – (SEMVER-MINOR) buffer: graduate Blob from experimental (James M Snell) #41270

  • [
    1
    72a0c5c743

    ] – (SEMVER-MINOR) crypto: remove Node.js-specific webcrypto extensions (Filip Skokan) #43310

  • [
    1
    2e3a69a2ba

    ] – (SEMVER-MINOR) crypto: add CFRG curves to Web Crypto API (Filip Skokan) #42507

  • [
    1
    5f1e9e2030

    ] – (SEMVER-MINOR) crypto: make authTagLength optional for CC20P1305 (Tobias Nießen) #42427

  • [
    1
    934077a137

    ] – (SEMVER-MINOR) crypto: align webcrypto RSA key import/export with other implementations (Filip Skokan) #42816

  • [
    1
    7683e9623c

    ] – (SEMVER-MINOR) dns: export error code constants from

    1
    dns/promises

    (Feng Yu) #43176

  • [
    1
    4884f18ce5

    ] – (SEMVER-MINOR) doc: deprecate diagnostics_channel object subscribe method (Stephen Belanger) #42714

  • [
    1
    90f395dda9

    ] – (SEMVER-MINOR) errors: add support for cause in aborterror (James M Snell) #41008

  • [
    1
    247a6f6e85

    ] – (SEMVER-MINOR) esm: add chaining to loaders (Jacob Smith) #42623

  • [
    1
    7a5de2cc0c

    ] – (SEMVER-MINOR) events: expose CustomEvent on global with CLI flag (Daeyeon Jeong) #43885

  • [
    1
    087adbb7a3

    ] – (SEMVER-MINOR) events: add

    1
    CustomEvent

    (Daeyeon Jeong) #43514

  • [
    1
    979c98a3cb

    ] – (SEMVER-MINOR) events: propagate abortsignal reason in new AbortError ctor in events (James M Snell) #41008

  • [
    1
    e04c8a4921

    ] – (SEMVER-MINOR) fs: propagate abortsignal reason in new AbortSignal constructors (James M Snell) #41008

  • [
    1
    464830993e

    ] – (SEMVER-MINOR) fs: make params in writing methods optional (LiviaMedeiros) #42601

  • [
    1
    3d7808ec3f

    ] – (SEMVER-MINOR) fs: add

    1
    read(buffer[, options])

    versions (LiviaMedeiros) #42768

  • [
    1
    082a2630fd

    ] – (SEMVER-MINOR) http: add drop request event for http server (theanarkh) #43806

  • [
    1
    5a74939770

    ] – (SEMVER-MINOR) http: add diagnostics channel for http client (theanarkh) #43580

  • [
    1
    f05fd1a423

    ] – (SEMVER-MINOR) http: add perf_hooks detail for http request and client (theanarkh) #43361

  • [
    1
    9d1b4b7e29

    ] – (SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) #41397

  • [
    1
    fa5ac5a2eb

    ] – (SEMVER-MINOR) http2: propagate abortsignal reason in new AbortError constructor (James M Snell) #41008

  • [
    1
    94070f152e

    ] – (SEMVER-MINOR) http2: compat support for array headers (OneNail) #42901

  • [
    1
    36dd39dec0

    ] – (SEMVER-MINOR) lib: propagate abortsignal reason in new AbortError constructor in blob (James M Snell) #41008

  • [
    1
    8adf7d5e91

    ] – (SEMVER-MINOR) lib: add abortSignal.throwIfAborted() (James M Snell) #40951

  • [
    1
    3c1ed86840

    ] – (SEMVER-MINOR) lib: improved diagnostics_channel subscribe/unsubscribe (Stephen Belanger) #42714

  • [
    1
    e6186af5cc

    ] – (SEMVER-MINOR) module: add isBuiltIn method (hemanth.hm) #43396

  • [
    1
    3d851d6d6b

    ] – (SEMVER-MINOR) module,repl: support ‘node:’-only core modules (Colin Ihrig) #42325

  • [
    1
    303bd08d88

    ] – (SEMVER-MINOR) net: add drop event for net server (theanarkh) #43582

  • [
    1
    da03e9f484

    ] – (SEMVER-MINOR) net: add ability to reset a tcp socket (pupilTong) #43112

  • [
    1
    73f852e1e3

    ] – (SEMVER-MINOR) node-api: emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) #36510

  • [
    1
    6dcdcd7f50

    ] – (SEMVER-MINOR) perf_hooks: add PerformanceResourceTiming (RafaelGSS) #42725

  • [
    1
    5750358872

    ] – (SEMVER-MINOR) report: add more heap infos in process report (theanarkh) #43116

  • [
    1
    e7b99e8c8d

    ] – (SEMVER-MINOR) src: add –openssl-legacy-provider option (Daniel Bevenius) #40478

  • [
    1
    1281a48b89

    ] – (SEMVER-MINOR) src: define fs.constants.S_IWUSR & S_IRUSR for Win (Liviu Ionescu) #42757

  • [
    1
    9ea9797d34

    ] – (SEMVER-MINOR) src,doc,test: add –openssl-shared-config option (Daniel Bevenius) #43124

  • [
    1
    046debaee0

    ] – (SEMVER-MINOR) stream: use cause options in AbortError constructors (James M Snell) #41008

  • [
    1
    6641fda10a

    ] – (SEMVER-MINOR) stream: add iterator helper find (Nitzan Uziely) #41849

  • [
    1
    edec73032c

    ] – (SEMVER-MINOR) stream: add writableAborted (Robert Nagy) #40802

  • [
    1
    9a530832cb

    ] – (SEMVER-MINOR) test: add initial test module (Colin Ihrig) #42325

  • [
    1
    61a2ddc597

    ] – (SEMVER-MINOR) test_runner: expose

    1
    describe

    and

    1
    it

    (Moshe Atlow) #43420

  • [
    1
    cd6f24be4c

    ] – (SEMVER-MINOR) test_runner: add initial CLI runner (Colin Ihrig) #42658

  • [
    1
    a4b277cb4d

    ] – (SEMVER-MINOR) test_runner: support ‘only’ tests (Colin Ihrig) #42514

  • [
    1
    2aae868fa2

    ] – (SEMVER-MINOR) timers: propagate signal.reason in awaitable timers (James M Snell) #41008

  • [
    1
    432e3054be

    ] – (SEMVER-MINOR) util: add tokens to parseArgs (John Gee) #43459

  • [
    1
    a1e122be62

    ] – (SEMVER-MINOR) util: add parseArgs module (Benjamin Coe) #42675

  • [
    1
    513f52445b

    ] – (SEMVER-MINOR) v8: add v8.startupSnapshot utils (Joyee Cheung) #43329

  • [
    1
    a8eca74450

    ] – (SEMVER-MINOR) v8: export more fields in getHeapStatistics (theanarkh) #42784

  • [
    1
    845279e331

    ] – (SEMVER-MINOR) worker: add hasRef() to MessagePort (Darshan Sen) #42849

Semver-patch commits

Documentation commits

Other commits

Windows 32-bit Installer: https://nodejs.org/dist/v16.17.0/node-v16.17.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v16.17.0/node-v16.17.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v16.17.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v16.17.0/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v16.17.0/node-v16.17.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v16.17.0/node-v16.17.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v16.17.0/node-v16.17.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v16.17.0/node-v16.17.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v16.17.0/node-v16.17.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v16.17.0/node-v16.17.0.tar.gz
Other release files: https://nodejs.org/dist/v16.17.0/
Documentation: https://nodejs.org/docs/v16.17.0/api/

SHASUMS


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

19d8bd771213d4f55b4aa5f661212f4bc5aeb4bd53928eb922af3a5538df75c7  node-v16.17.0-aix-ppc64.tar.gz
96eefac1e168ec1bf39c5ae1e7b2760522624adfbe2e0c92875cd33ef9a07792  node-v16.17.0-darwin-arm64.tar.gz
a3f73e1b63b1c624a5f057ffe989ac60839122c09ce1028ec84e77b8e2322e8a  node-v16.17.0-darwin-arm64.tar.xz
b85eaa537f9d60a68c704e23839db65b5a75f14b37d6855c5d4e31a6bcef26c6  node-v16.17.0-darwin-x64.tar.gz
0e9b7240b90694f384547280dc4704c9f49ff3201709bf74fd2711766533497c  node-v16.17.0-darwin-x64.tar.xz
70c73723492a27d2c448df39082845045a3fd346d2f7ea1aa42e4e55daceb6b2  node-v16.17.0-headers.tar.gz
d315efae866c859c8b9269e849bff31914247fff01a78285030369b0cf8ce910  node-v16.17.0-headers.tar.xz
0e83e93bd3658f4ae516b5f1f174190bd87aaae3d691eb91a8945eed04dc8491  node-v16.17.0-linux-arm64.tar.gz
a43100595e7960b9e8364bff5641e0956a9929feee2759e70cbb396a1d827b7c  node-v16.17.0-linux-arm64.tar.xz
916f0bb4f44dbef5b13ddb0fccd178871e1a3d1198cd4ad4a19464f69ef79198  node-v16.17.0-linux-armv7l.tar.gz
1dcbca56c0c44c3f3482176f73150b8ad15c71936724f8ca44328d6e51c790b3  node-v16.17.0-linux-armv7l.tar.xz
28f81b1b57eb4e050e67d1b095f274d5748c48eb1ac90064af80282606d79c2f  node-v16.17.0-linux-ppc64le.tar.gz
372b847f0d8d27a96e7d06054882d9bef18be2a0b2e90ae9662c20f063b5223a  node-v16.17.0-linux-ppc64le.tar.xz
3f67a969d4b42874b55ed881df8816e1dd6d0b96f6e7f175b63823110b671447  node-v16.17.0-linux-s390x.tar.gz
982b36beda88cd10cfe5ca3ef832fe6a3e3b605c39de0a04420cdeab31a39420  node-v16.17.0-linux-s390x.tar.xz
4827808e50b8ee42b4dadf056835287dac267b9cff56cea56e70843bf8cecb79  node-v16.17.0-linux-x64.tar.gz
f0867d7a17a4d0df7dbb7df9ac3f9126c2b58f75450647146749ef296b31b49b  node-v16.17.0-linux-x64.tar.xz
3b9f8b71ce66808ec530581bd59c2c1c2bf74ac2bc64249850fb84023614aac3  node-v16.17.0.pkg
2a2e6262739741f98ab81648a50891861dbf66f12413b93f1a97b4c71570611e  node-v16.17.0.tar.gz
1d28c285685e446985921bc963565ca9c0c5f4fda9755e489c06808ea9795645  node-v16.17.0.tar.xz
cec3fe26869f28c5e54fda6d97a4ed5a53a68f28cd9b17e78961cb723177235c  node-v16.17.0-win-x64.7z
c1a3be05342166cb9304d01da7ff8b23df6d4b16f9c98ae33b9b4fff79d8d0e2  node-v16.17.0-win-x64.zip
3b4ac1a62b3bc58d057b13ae237646ebfd609475766668611728aad0c3679af5  node-v16.17.0-win-x86.7z
ece8820f33e6a513bc035fc4be905aa8fcf4976ee6d1633c5d4ec2cafcfd9c64  node-v16.17.0-win-x86.zip
ff2ffaf555e11311b3381e85d660d870dfc28dbb78ae9fb7b472250b5b0dff4f  node-v16.17.0-x64.msi
4e8f5bb4a76aa7fb164b20362fa51b27f3113c7225f18123929df2d9b5eaa1aa  node-v16.17.0-x86.msi
66ea3b0d70938870e751ba3738407ea932ff6787b1adb0929d14668b9abd3677  win-x64/node.exe
2f459a64647db493da63c790ce368ad54f59f086d9f22f59c5018680420197b3  win-x64/node.lib
13192a9f004cb1ee8fe96dd2e2adbd3366434556e2348a16ea359acb84235ca4  win-x64/node_pdb.7z
24d853b3b7926724f513cebda842a3e36ba431371b038fdfa179a77a58ca8dcc  win-x64/node_pdb.zip
6e2ab243c7895f4bf76da4e30970c8284cbaf12951d5447596e57dd7d4935313  win-x86/node.exe
5018c3d42f3fbacbd06cb943b3f2696c8e67ca9bdf6864d0e263d6d6911dffd2  win-x86/node.lib
32574b4ffa0c89b7b30ea4c79cbcb3d9d403764980c3d0c43d62611f010856c3  win-x86/node_pdb.7z
c6613e784d97e2831d1cf69cc6cfa341deb11d766afed819adc42d9535def060  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEj8yhP+8dDC6RAI4Jdw96mlrhVgAFAmL7eZQACgkQdw96mlrh
VgBbuA/+ILCSbqQIiVjE+yBzbOy3TcLEDX5VUQgiCxvPULnuy1Jkc15nH3BRkiB2
/jxZ3C2E/nGIbYZ/RXy4WZ+1ukLh+Sr4i6CmjiTHibWgw4bxD0gfaxenHLd/yoFg
FJeHEHEpQPHVp8AsbaWhoCg8TT7yy8eYUOSsbJ7+8yZgVsV6wV3NOoizNSUttIUQ
Q+B1SK6PW8AnsUbdmE3EkBGwOzihvrtvPNNFSLV/YP2BPAlFFbHMCXeyOmiQOpix
5rRfiOOSKKszOXY/aCiM/tnWEW70YvROwVlL8stzdth9XvvHSHREngiU/Somyxnl
O/gDmiJeT2gnNGuyWAHM4rSUTtgb1/5/m3fchSn6J/ksNFwDPq2FfGqjyANDMXjy
D+UjN9myxn2BkxXbPX3Ta/NpAjyiphHPo9rf4eMY03qLEZ6GdHTYGHMMH4XClonf
R6NLM5FmV/FiOlrex/jV798m1wxK6L0rlUnZ1qUGjqckAOtkfXN4ZvDHGrJjksMS
OqupCPfM8cU/wH9zJAnUxl6f13O5qfXF3rpSbicvF3wIOYtmdki+cIzlhGEeP+pB
IG3Q9v/uJpf6G+4517YA0TUOfGDi5gfZkOAp15eqWCAbobv44pgFSvz6o/a5F4iV
KOSXuvpt/1lqcBRAvMSvSkPy+ORMsPrm4mkkNlmFBnZifw8Uxr8=
=9BLA
-----END PGP SIGNATURE-----
Categories: NewsReleases

0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *