Skip to content

Commit

Permalink
2022-08-16, Version 16.17.0 'Gallium' (LTS)
Browse files Browse the repository at this point in the history
Notable changes:

Adds `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

Node.js ESM Loader hooks now support multiple custom loaders, and
composition is achieved via "chaining": `foo-loader` calls `bar-loader`
calls `qux-loader` (a custom loader _must_ now signal a short circuit
when intentionally not calling the next). See the ESM docs
(https://nodejs.org/dist/latest-v16.x/docs/api/esm.html) for details.
Contributed by Jacob Smith, Geoffrey Booth, and Bradley Farias.
#42623

The `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.

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 `'Ed25519'`, `'Ed448'`,
  `'X25519'`, and `'X448'` algorithms.
* The proprietary `'NODE-DSA'`, `'NODE-DH'`, `'NODE-SCRYPT'`,
  `'NODE-ED25519'`, `'NODE-ED448'`, `'NODE-X25519'`, and `'NODE-X448'`
  algorithms were removed.
* The proprietary `'node.keyObject'` import/export format was removed.
Contributed by Filip Skokan.
#42507
#43310

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

(SEMVER-MINOR) crypto: make authTagLength optional for CC20P1305 (Tobias Nießen) #42427
(SEMVER-MINOR) crypto: align webcrypto RSA key import/export with other implementations (Filip Skokan) #42816
(SEMVER-MINOR) dns: export error code constants from `dns/promises` (Feng Yu) #43176
doc: deprecate coercion to integer in process.exit (Daeyeon Jeong) #43738
(SEMVER-MINOR) doc: deprecate diagnostics_channel object subscribe method (Stephen Belanger) #42714
(SEMVER-MINOR) errors: add support for cause in aborterror (James M Snell) #41008
(SEMVER-MINOR) events: expose CustomEvent on global with CLI flag (Daeyeon Jeong) #43885
(SEMVER-MINOR) events: add `CustomEvent` (Daeyeon Jeong) #43514
(SEMVER-MINOR) events: propagate abortsignal reason in new AbortError ctor in events (James M Snell) #41008
(SEMVER-MINOR) fs: propagate abortsignal reason in new AbortSignal constructors (James M Snell) #41008
(SEMVER-MINOR) fs: make params in writing methods optional (LiviaMedeiros) #42601
(SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) #42768
(SEMVER-MINOR) http: add drop request event for http server (theanarkh) #43806
(SEMVER-MINOR) http: add diagnostics channel for http client (theanarkh) #43580
(SEMVER-MINOR) http: add perf_hooks detail for http request and client (theanarkh) #43361
(SEMVER-MINOR) http: add uniqueHeaders option to request and createServer (Paolo Insogna) #41397
(SEMVER-MINOR) http2: propagate abortsignal reason in new AbortError constructor (James M Snell) #41008
(SEMVER-MINOR) http2: compat support for array headers (OneNail) #42901
(SEMVER-MINOR) lib: propagate abortsignal reason in new AbortError constructor in blob (James M Snell) #41008
(SEMVER-MINOR) lib: add abortSignal.throwIfAborted() (James M Snell) #40951
(SEMVER-MINOR) lib: improved diagnostics_channel subscribe/unsubscribe (Stephen Belanger) #42714
(SEMVER-MINOR) module: add isBuiltIn method (hemanth.hm) #43396
(SEMVER-MINOR) module,repl: support 'node:'-only core modules (Colin Ihrig) #42325
(SEMVER-MINOR) net: add drop event for net server (theanarkh) #43582
(SEMVER-MINOR) net: add ability to reset a tcp socket (pupilTong) #43112
(SEMVER-MINOR) node-api: emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) #36510
(SEMVER-MINOR) perf_hooks: add PerformanceResourceTiming (RafaelGSS) #42725
(SEMVER-MINOR) report: add more heap infos in process report (theanarkh) #43116
(SEMVER-MINOR) src: add --openssl-legacy-provider option (Daniel Bevenius) #40478
(SEMVER-MINOR) src: define fs.constants.S_IWUSR & S_IRUSR for Win (Liviu Ionescu) #42757
(SEMVER-MINOR) src,doc,test: add --openssl-shared-config option (Daniel Bevenius) #43124
(SEMVER-MINOR) stream: use cause options in AbortError constructors (James M Snell) #41008
(SEMVER-MINOR) stream: add iterator helper find (Nitzan Uziely) #41849
(SEMVER-MINOR) stream: add writableAborted (Robert Nagy) #40802
(SEMVER-MINOR) timers: propagate signal.reason in awaitable timers (James M Snell) #41008
(SEMVER-MINOR) v8: add v8.startupSnapshot utils (Joyee Cheung) #43329
(SEMVER-MINOR) v8: export more fields in getHeapStatistics (theanarkh) #42784
(SEMVER-MINOR) worker: add hasRef() to MessagePort (Darshan Sen) #42849

PR-URL: #44098
  • Loading branch information
targos committed Aug 16, 2022
1 parent 5cd1f35 commit 5e5fb82
Show file tree
Hide file tree
Showing 22 changed files with 1,088 additions and 95 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Expand Up @@ -62,7 +62,8 @@ release.
<a href="doc/changelogs/CHANGELOG_V17.md#17.0.0">17.0.0</a><br/>
</td>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V16.md#16.16.0">16.16.0</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V16.md#16.17.0">16.17.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V16.md#16.16.0">16.16.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V16.md#16.15.1">16.15.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V16.md#16.15.0">16.15.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V16.md#16.14.2">16.14.2</a><br/>
Expand Down
4 changes: 3 additions & 1 deletion doc/api/buffer.md
Expand Up @@ -457,7 +457,9 @@ added:
- v15.7.0
- v14.18.0
changes:
- version: v18.0.0
- version:
- v18.0.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/41270
description: No longer experimental.
-->
Expand Down
24 changes: 18 additions & 6 deletions doc/api/cli.md
Expand Up @@ -344,7 +344,9 @@ of `--enable-source-maps`.
### `--experimental-global-customevent`

<!-- YAML
added: v18.7.0
added:
- v18.7.0
- v16.17.0
-->

Expose the [CustomEvent Web API][] on the global scope.
Expand Down Expand Up @@ -512,7 +514,9 @@ To allow polyfills to be added,
### `--force-node-api-uncaught-exceptions-policy`

<!-- YAML
added: v18.3.0
added:
- v18.3.0
- v16.17.0
-->

Enforces `uncaughtException` event on Node-API asynchronous callbacks.
Expand Down Expand Up @@ -872,7 +876,9 @@ against FIPS-enabled OpenSSL.
### `--openssl-shared-config`

<!-- YAML
added: v18.5.0
added:
- v18.5.0
- v16.17.0
-->

Enable OpenSSL default configuration section, `openssl_conf` to be read from
Expand All @@ -887,7 +893,9 @@ Node.js which is `nodejs_conf` and is default when this option is not used.
### `--openssl-legacy-provider`

<!-- YAML
added: v17.0.0
added:
- v17.0.0
- v16.17.0
-->

Enable OpenSSL 3.0 legacy provider. For more information please see
Expand Down Expand Up @@ -1210,7 +1218,9 @@ If they don't match, Node.js would refuse to load the snapshot and exit with 1.
### `--test`

<!-- YAML
added: v18.1.0
added:
- v18.1.0
- v16.17.0
-->

Starts the Node.js command line test runner. This flag cannot be combined with
Expand All @@ -1220,7 +1230,9 @@ on [running tests from the command line][] for more details.
### `--test-only`

<!-- YAML
added: v18.0.0
added:
- v18.0.0
- v16.17.0
-->

Configures the test runner to only execute top level tests that have the `only`
Expand Down
16 changes: 12 additions & 4 deletions doc/api/crypto.md
Expand Up @@ -2966,7 +2966,9 @@ Checks the primality of the `candidate`.
added: v0.1.94
deprecated: v10.0.0
changes:
- version: v17.9.0
- version:
- v17.9.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/42427
description: The `authTagLength` option is now optional when using the
`chacha20-poly1305` cipher and defaults to 16 bytes.
Expand Down Expand Up @@ -3030,7 +3032,9 @@ Adversaries][] for details.
<!-- YAML
added: v0.1.94
changes:
- version: v17.9.0
- version:
- v17.9.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/42427
description: The `authTagLength` option is now optional when using the
`chacha20-poly1305` cipher and defaults to 16 bytes.
Expand Down Expand Up @@ -3103,7 +3107,9 @@ given IV will be.
added: v0.1.94
deprecated: v10.0.0
changes:
- version: v17.9.0
- version:
- v17.9.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/42427
description: The `authTagLength` option is now optional when using the
`chacha20-poly1305` cipher and defaults to 16 bytes.
Expand Down Expand Up @@ -3145,7 +3151,9 @@ to create the `Decipher` object.
<!-- YAML
added: v0.1.94
changes:
- version: v17.9.0
- version:
- v17.9.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/42427
description: The `authTagLength` option is now optional when using the
`chacha20-poly1305` cipher and defaults to 16 bytes.
Expand Down
8 changes: 6 additions & 2 deletions doc/api/deprecations.md
Expand Up @@ -3149,7 +3149,9 @@ Convert them to primitive strings.

<!-- YAML
changes:
- version: v18.7.0
- version:
- v18.7.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/42714
description: Documentation-only deprecation.
-->
Expand All @@ -3167,7 +3169,9 @@ thing instead.

<!-- YAML
changes:
- version: v18.7.0
- version:
- v18.7.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/43738
description: Documentation-only deprecation.
-->
Expand Down
10 changes: 8 additions & 2 deletions doc/api/diagnostics_channel.md
Expand Up @@ -152,6 +152,7 @@ const channel = diagnostics_channel.channel('my-channel');
<!-- YAML
added:
- v18.7.0
- v16.17.0
-->

* `name` {string|symbol} The channel name
Expand Down Expand Up @@ -184,6 +185,7 @@ diagnostics_channel.subscribe('my-channel', (message, name) => {
<!-- YAML
added:
- v18.7.0
- v16.17.0
-->

* `name` {string|symbol} The channel name
Expand Down Expand Up @@ -308,7 +310,9 @@ channel.publish({
added:
- v15.1.0
- v14.17.0
deprecated: v18.7.0
deprecated:
- v18.7.0
- v16.17.0
-->

> Stability: 0 - Deprecated: Use [`diagnostics_channel.subscribe(name, onMessage)`][]
Expand Down Expand Up @@ -347,7 +351,9 @@ channel.subscribe((message, name) => {
added:
- v15.1.0
- v14.17.0
deprecated: v18.7.0
deprecated:
- v18.7.0
- v16.17.0
changes:
- version:
- v17.1.0
Expand Down
20 changes: 15 additions & 5 deletions doc/api/errors.md
Expand Up @@ -2157,7 +2157,9 @@ for more information.
### `ERR_LOADER_CHAIN_INCOMPLETE`

<!-- YAML
added: v18.6.0
added:
- v18.6.0
- v16.17.0
-->

An ESM loader hook returned without calling `next()` and without explicitly
Expand Down Expand Up @@ -2427,7 +2429,9 @@ cannot be imported through the package resolution, unless using an absolute URL.
### `ERR_PARSE_ARGS_INVALID_OPTION_VALUE`

<!-- YAML
added: v18.3.0
added:
- v18.3.0
- v16.17.0
-->

When `strict` set to `true`, thrown by [`util.parseArgs()`][] if a {boolean}
Expand All @@ -2439,7 +2443,9 @@ value is provided for an option of type {boolean}.
### `ERR_PARSE_ARGS_UNEXPECTED_POSITIONAL`

<!-- YAML
added: v18.3.0
added:
- v18.3.0
- v16.17.0
-->

Thrown by [`util.parseArgs()`][], when a positional argument is provided and
Expand All @@ -2450,7 +2456,9 @@ Thrown by [`util.parseArgs()`][], when a positional argument is provided and
### `ERR_PARSE_ARGS_UNKNOWN_OPTION`

<!-- YAML
added: v18.3.0
added:
- v18.3.0
- v16.17.0
-->

When `strict` set to `true`, thrown by [`util.parseArgs()`][] if an argument
Expand Down Expand Up @@ -3456,7 +3464,9 @@ The module must be successfully linked before instantiation.

<!-- YAML
added: v10.0.0
removed: v18.1.0
removed:
- v18.1.0
- v16.17.0
-->

The linker function returned a module for which linking has failed.
Expand Down
14 changes: 11 additions & 3 deletions doc/api/esm.md
Expand Up @@ -9,6 +9,7 @@ added: v8.5.0
changes:
- version:
- v18.6.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/42623
description: Add support for chaining loaders.
- version:
Expand Down Expand Up @@ -682,6 +683,7 @@ added: v8.8.0
changes:
- version:
- v18.6.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/42623
description: Add support for chaining loaders.
- version: v16.12.0
Expand Down Expand Up @@ -731,7 +733,9 @@ prevent unintentional breaks in the chain.
<!-- YAML
changes:
- version: v18.6.0
- version:
- v18.6.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/42623
description: Add support for chaining resolve hooks. Each hook must either
call `nextResolve()` or include a `shortCircuit` property set to `true`
Expand Down Expand Up @@ -823,7 +827,9 @@ export async function resolve(specifier, context, nextResolve) {
<!-- YAML
changes:
- version: v18.6.0
- version:
- v18.6.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/42623
description: Add support for chaining load hooks. Each hook must either
call `nextLoad()` or include a `shortCircuit` property set to `true` in
Expand Down Expand Up @@ -921,7 +927,9 @@ source to a supported one (see [Examples](#examples) below).
<!-- YAML
changes:
- version: v18.6.0
- version:
- v18.6.0
- v16.17.0
pr-url: https://github.com/nodejs/node/pull/42623
description: Add support for chaining globalPreload hooks.
-->
Expand Down
8 changes: 6 additions & 2 deletions doc/api/events.md
Expand Up @@ -1990,7 +1990,9 @@ Removes the `listener` from the list of handlers for event `type`.
### Class: `CustomEvent`

<!-- YAML
added: v18.7.0
added:
- v18.7.0
- v16.17.0
-->

> Stability: 1 - Experimental.
Expand All @@ -2003,7 +2005,9 @@ Instances are created internally by Node.js.
#### `event.detail`

<!-- YAML
added: v18.7.0
added:
- v18.7.0
- v16.17.0
-->

> Stability: 1 - Experimental.
Expand Down
20 changes: 15 additions & 5 deletions doc/api/fs.md
Expand Up @@ -420,7 +420,9 @@ number of bytes read is zero.
#### `filehandle.read(buffer[, options])`
<!-- YAML
added: v18.2.0
added:
- v18.2.0
- v16.17.0
-->
* `buffer` {Buffer|TypedArray|DataView} A buffer that will be filled with the
Expand Down Expand Up @@ -649,7 +651,9 @@ the end of the file.
#### `filehandle.write(buffer[, options])`
<!-- YAML
added: v18.3.0
added:
- v18.3.0
- v16.17.0
-->
* `buffer` {Buffer|TypedArray|DataView}
Expand Down Expand Up @@ -3332,7 +3336,9 @@ above values.
### `fs.read(fd, buffer[, options], callback)`
<!-- YAML
added: v18.2.0
added:
- v18.2.0
- v16.17.0
-->
* `fd` {integer}
Expand Down Expand Up @@ -4501,7 +4507,9 @@ the end of the file.
### `fs.write(fd, buffer[, options], callback)`
<!-- YAML
added: v18.3.0
added:
- v18.3.0
- v16.17.0
-->
* `fd` {integer}
Expand Down Expand Up @@ -5905,7 +5913,9 @@ this API: [`fs.write(fd, buffer...)`][].
### `fs.writeSync(fd, buffer[, options])`

<!-- YAML
added: v18.3.0
added:
- v18.3.0
- v16.17.0
-->

* `fd` {integer}
Expand Down
8 changes: 6 additions & 2 deletions doc/api/globals.md
Expand Up @@ -202,7 +202,9 @@ console.log(ac.signal.reason); // Error('boom!');
#### `abortSignal.throwIfAborted()`

<!-- YAML
added: v17.3.0
added:
- v17.3.0
- v16.17.0
-->

If `abortSignal.aborted` is `true`, throws `abortSignal.reason`.
Expand Down Expand Up @@ -383,7 +385,9 @@ only if the Node.js binary was compiled with including support for the
## `CustomEvent`

<!-- YAML
added: v18.7.0
added:
- v18.7.0
- v16.17.0
-->

> Stability: 1 - Experimental. Enable this API with the
Expand Down

0 comments on commit 5e5fb82

Please sign in to comment.