Skip to content

Commit

Permalink
2023-07-18, Version 18.17.0 'Hydrogen' (LTS)
Browse files Browse the repository at this point in the history
Notable changes:

Ada 2.0
Node.js v18.17.0 comes with the latest version of the URL parser, Ada. This
update brings significant performance improvements to URL parsing, including
enhancements to the url.domainToASCII and url.domainToUnicode functions
in node:url.

Ada 2.0 has been integrated into the Node.js codebase, ensuring that all
parts of the application can benefit from the improved performance. Additionally,
Ada 2.0 features a significant performance boost over its predecessor, Ada 1.0.4,
while also eliminating the need for the ICU requirement for URL hostname parsing.

Contributed by Yagiz Nizipli and Daniel Lemire in nodejs#47339

Web Crypto API
Web Crypto API functions' arguments are now coerced and validated as per
their WebIDL definitions like in other Web Crypto API implementations. This
further improves interoperability with other implementations of Web Crypto API.

Contributed by Filip Skokan in nodejs#46067

crypto:
  * update root certificates to NSS 3.89 (Node.js GitHub Bot) nodejs#47659
dns:
  * (SEMVER-MINOR) expose getDefaultResultOrder (btea) nodejs#46973
doc:
  * add ovflowd to collaborators (Claudio Wunder) nodejs#47844
  * add KhafraDev to collaborators (Matthew Aitken) nodejs#47510
* events:
  * (SEMVER-MINOR) add getMaxListeners method (Matthew Aitken) nodejs#47039
fs:
  * (SEMVER-MINOR) add support for mode flag to specify the copy behavior (Tetsuharu Ohzeki) nodejs#47084
  * (SEMVER-MINOR) add recursive option to readdir and opendir (Ethan Arrowood) nodejs#41439
  * (SEMVER-MINOR) add support for mode flag to specify the copy behavior (Tetsuharu Ohzeki) nodejs#47084
  * (SEMVER-MINOR) implement byob mode for readableWebStream() (Debadree Chatterjee) nodejs#46933
http:
  * (SEMVER-MINOR) prevent writing to the body when not allowed by HTTP spec (Gerrard Lindsay) nodejs#47732
  * (SEMVER-MINOR) remove internal error in assignSocket (Matteo Collina) nodejs#47723
  * (SEMVER-MINOR) add highWaterMark opt in http.createServer (HinataKah0) nodejs#47405
lib:
  * (SEMVER-MINOR) add webstreams to Duplex.from() (Debadree Chatterjee) nodejs#46190
  * (SEMVER-MINOR) implement AbortSignal.any() (Chemi Atlow) nodejs#47821
module:
  * change default resolver to not throw on unknown scheme (Gil Tayar) nodejs#47824
node-api:
  * (SEMVER-MINOR) define version 9 (Chengzhong Wu) nodejs#48151
  * (SEMVER-MINOR) deprecate napi_module_register (Vladimir Morozov) nodejs#46319
stream:
  * (SEMVER-MINOR) preserve object mode in compose (Raz Luvaton) nodejs#47413
  * (SEMVER-MINOR) add setter & getter for default highWaterMark (nodejs#46929) (Robert Nagy) nodejs#46929
test:
  * unflake test-vm-timeout-escape-nexttick (Santiago Gimeno) nodejs#48078
test_runner:
  * (SEMVER-MINOR) add shorthands to `test` (Chemi Atlow) nodejs#47909
  * (SEMVER-MINOR) support combining coverage reports (Colin Ihrig) nodejs#47686
  * (SEMVER-MINOR) execute before hook on test (Chemi Atlow) nodejs#47586
  * (SEMVER-MINOR) expose reporter for use in run api (Chemi Atlow) nodejs#47238
tools:
  * update LICENSE and license-builder.sh (Santiago Gimeno) nodejs#48078
url:
  * (SEMVER-MINOR) implement URL.canParse (Matthew Aitken) nodejs#47179
wasi:
  * (SEMVER-MINOR) no longer require flag to enable wasi (Michael Dawson) nodejs#47286

PR-URL: nodejs#48694
  • Loading branch information
danielleadams authored and Ceres6 committed Aug 14, 2023
1 parent 68dc20a commit 1934336
Show file tree
Hide file tree
Showing 14 changed files with 664 additions and 35 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ release.
<a href="doc/changelogs/CHANGELOG_V20.md#20.0.0">20.0.0</a><br/>
</td>
<td valign="top">
<b><a href="doc/changelogs/CHANGELOG_V18.md#18.16.1">18.16.1</a></b><br/>
<b><a href="doc/changelogs/CHANGELOG_V18.md#18.17.0">18.17.0</a></b><br/>
<a href="doc/changelogs/CHANGELOG_V18.md#18.16.1">18.16.1</a><br/>
<a href="doc/changelogs/CHANGELOG_V18.md#18.16.0">18.16.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V18.md#18.15.0">18.15.0</a><br/>
<a href="doc/changelogs/CHANGELOG_V18.md#18.14.2">18.14.2</a><br/>
Expand Down
8 changes: 6 additions & 2 deletions doc/api/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -627,7 +627,9 @@ added:
- v19.7.0
- v18.15.0
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47686
description: This option can be used with `--test`.
-->
Expand All @@ -652,7 +654,9 @@ added:
- v13.3.0
- v12.16.0
changes:
- version: v20.0.0
- version:
- v20.0.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47286
description: This option is no longer required as WASI is
enabled by default, but can still be passed.
Expand Down
4 changes: 3 additions & 1 deletion doc/api/deprecations.md
Original file line number Diff line number Diff line change
Expand Up @@ -3295,7 +3295,9 @@ Node-API callbacks.

<!-- YAML
changes:
- version: v19.9.0
- version:
- v19.9.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47203
description: Added support for `--pending-deprecation`.
- version:
Expand Down
8 changes: 6 additions & 2 deletions doc/api/dns.md
Original file line number Diff line number Diff line change
Expand Up @@ -795,7 +795,9 @@ dns orders in workers.
## `dns.getDefaultResultOrder()`

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

Get the default value for `verbatim` in [`dns.lookup()`][] and
Expand Down Expand Up @@ -1366,7 +1368,9 @@ default dns orders in workers.
### `dnsPromises.getDefaultResultOrder()`

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

Get the value of `dnsOrder`.
Expand Down
4 changes: 3 additions & 1 deletion doc/api/events.md
Original file line number Diff line number Diff line change
Expand Up @@ -1271,7 +1271,9 @@ const { getEventListeners, EventEmitter } = require('node:events');
## `events.getMaxListeners(emitterOrTarget)`

<!-- YAML
added: v19.9.0
added:
- v19.9.0
- v18.17.0
-->

* `emitterOrTarget` {EventEmitter|EventTarget}
Expand Down
44 changes: 33 additions & 11 deletions doc/api/fs.md
Original file line number Diff line number Diff line change
Expand Up @@ -451,7 +451,9 @@ number of bytes read is zero.
<!-- YAML
added: v17.0.0
changes:
- version: v20.0.0
- version:
- v20.0.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/46933
description: Added option to create a 'bytes' stream.
-->
Expand Down Expand Up @@ -976,7 +978,9 @@ try {
<!-- YAML
added: v16.7.0
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47084
description: Accept an additional `mode` option to specify
the copy behavior as the `mode` argument of `fs.copyFile()`.
Expand Down Expand Up @@ -1230,7 +1234,9 @@ a colon, Node.js will open a file system stream, as described by
<!-- YAML
added: v12.12.0
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version:
Expand Down Expand Up @@ -1281,7 +1287,9 @@ closed after the iterator exits.
<!-- YAML
added: v10.0.0
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version: v10.11.0
Expand Down Expand Up @@ -2312,7 +2320,9 @@ copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL, callback);
<!-- YAML
added: v16.7.0
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47084
description: Accept an additional `mode` option to specify
the copy behavior as the `mode` argument of `fs.copyFile()`.
Expand Down Expand Up @@ -3422,7 +3432,9 @@ const { openAsBlob } = require('node:fs');
<!-- YAML
added: v12.12.0
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version: v18.0.0
Expand Down Expand Up @@ -3562,7 +3574,9 @@ above values.
<!-- YAML
added: v0.1.8
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version: v18.0.0
Expand Down Expand Up @@ -5235,7 +5249,9 @@ copyFileSync('source.txt', 'destination.txt', constants.COPYFILE_EXCL);
<!-- YAML
added: v16.7.0
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47084
description: Accept an additional `mode` option to specify
the copy behavior as the `mode` argument of `fs.copyFile()`.
Expand Down Expand Up @@ -5575,7 +5591,9 @@ object with an `encoding` property specifying the character encoding to use.
<!-- YAML
added: v12.12.0
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version:
Expand Down Expand Up @@ -5635,7 +5653,9 @@ this API: [`fs.open()`][].
<!-- YAML
added: v0.1.21
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version: v10.10.0
Expand Down Expand Up @@ -6508,7 +6528,9 @@ value is determined by the `options.encoding` passed to [`fs.readdir()`][] or
#### `dirent.path`
<!-- YAML
added: v20.1.0
added:
- v20.1.0
- v18.17.0
-->
* {string}
Expand Down
4 changes: 3 additions & 1 deletion doc/api/globals.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,9 @@ Returns a new `AbortSignal` which will be aborted in `delay` milliseconds.
#### Static method: `AbortSignal.any(signals)`

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

* `signals` {AbortSignal\[]} The `AbortSignal`s of which to compose a new `AbortSignal`.
Expand Down
4 changes: 3 additions & 1 deletion doc/api/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -3204,7 +3204,9 @@ Found'`.
<!-- YAML
added: v0.1.13
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47405
description: The `highWaterMark` option is supported now.
- version: v18.0.0
Expand Down
4 changes: 3 additions & 1 deletion doc/api/net.md
Original file line number Diff line number Diff line change
Expand Up @@ -1557,7 +1557,9 @@ then returns the `net.Socket` that starts the connection.
<!-- YAML
added: v0.5.0
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47405
description: The `highWaterMark` option is supported now.
- version:
Expand Down
12 changes: 9 additions & 3 deletions doc/api/stream.md
Original file line number Diff line number Diff line change
Expand Up @@ -3064,7 +3064,9 @@ added: v17.0.0
<!-- YAML
added: v16.8.0
changes:
- version: v19.5.0
- version:
- v19.5.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/46190
description: The `src` argument can now be a `ReadableStream` or
`WritableStream`.
Expand Down Expand Up @@ -3342,7 +3344,9 @@ reader.read().then(({ value, done }) => {
### `stream.getDefaultHighWaterMark(objectMode)`

<!-- YAML
added: v19.9.0
added:
- v19.9.0
- v18.17.0
-->

* `objectMode` {boolean}
Expand All @@ -3354,7 +3358,9 @@ Defaults to `16384` (16 KiB), or `16` for `objectMode`.
### `stream.setDefaultHighWaterMark(objectMode, value)`

<!-- YAML
added: v19.9.0
added:
- v19.9.0
- v18.17.0
-->

* `objectMode` {boolean}
Expand Down
20 changes: 15 additions & 5 deletions doc/api/test.md
Original file line number Diff line number Diff line change
Expand Up @@ -609,7 +609,9 @@ added:
- v19.6.0
- v18.15.0
changes:
- version: v19.9.0
- version:
- v19.9.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47238
description: Reporters are now exposed at `node:test/reporters`.
-->
Expand Down Expand Up @@ -815,7 +817,9 @@ added:
- v18.9.0
- v16.19.0
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47628
description: Add a testNamePatterns option.
-->
Expand Down Expand Up @@ -882,7 +886,9 @@ added:
- v18.0.0
- v16.17.0
changes:
- version: v20.2.0
- version:
- v20.2.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47909
description: Added the `skip`, `todo`, and `only` shorthands.
- version:
Expand Down Expand Up @@ -2086,7 +2092,9 @@ added:
- v18.0.0
- v16.17.0
changes:
- version: v20.1.0
- version:
- v20.1.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47586
description: The `before` function was added to TestContext.
-->
Expand All @@ -2098,7 +2106,9 @@ exposed as part of the API.
### `context.before([fn][, options])`

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

* `fn` {Function|AsyncFunction} The hook function. The first argument
Expand Down
20 changes: 15 additions & 5 deletions doc/api/url.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,9 @@ return `true`.

<!--
changes:
- version: v20.0.0
- version:
- v20.0.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47339
description: ICU requirement is removed.
-->
Expand Down Expand Up @@ -669,7 +671,9 @@ ID that isn't registered will silently fail.
#### `URL.canParse(input[, base])`

<!-- YAML
added: v19.9.0
added:
- v19.9.0
- v18.17.0
-->

* `input` {string} The absolute or relative input URL to parse. If `input`
Expand Down Expand Up @@ -1062,7 +1066,9 @@ added:
- v7.4.0
- v6.13.0
changes:
- version: v20.0.0
- version:
- v20.0.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47339
description: ICU requirement is removed.
-->
Expand Down Expand Up @@ -1104,7 +1110,9 @@ added:
- v7.4.0
- v6.13.0
changes:
- version: v20.0.0
- version:
- v20.0.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/47339
description: ICU requirement is removed.
-->
Expand Down Expand Up @@ -1282,7 +1290,9 @@ added:
- v15.7.0
- v14.18.0
changes:
- version: v19.9.0
- version:
- v19.9.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/46989
description: The returned object will also contain all the own enumerable
properties of the `url` argument.
Expand Down
4 changes: 3 additions & 1 deletion doc/api/webcrypto.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

<!-- YAML
changes:
- version: v20.0.0
- version:
- v20.0.0
- v18.17.0
pr-url: https://github.com/nodejs/node/pull/46067
description: Arguments are now coerced and validated as per their WebIDL
definitions like in other Web Crypto API implementations.
Expand Down
Loading

0 comments on commit 1934336

Please sign in to comment.