Skip to content

Commit

Permalink
2023-07-17, 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 #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 #46067

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

PR-URL: #48694
  • Loading branch information
danielleadams committed Jul 17, 2023
1 parent d002f9b commit 5c1428a
Show file tree
Hide file tree
Showing 14 changed files with 594 additions and 38 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ release.
</tr>
<tr>
<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
4 changes: 2 additions & 2 deletions doc/api/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,7 @@ See [customizing ESM specifier resolution][] for example usage.
<!-- YAML
added: v18.15.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/47686
description: This option can be used with `--test`.
-->
Expand All @@ -470,7 +470,7 @@ added:
- v13.3.0
- v12.16.0
changes:
- version: REPLACEME
- version: 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
2 changes: 1 addition & 1 deletion doc/api/deprecations.md
Original file line number Diff line number Diff line change
Expand Up @@ -3271,7 +3271,7 @@ Node-API callbacks.

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

<!-- YAML
added: REPLACEME
added: v18.17.0
-->

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

<!-- YAML
added: REPLACEME
added: v18.17.0
-->

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

<!-- YAML
added: REPLACEME
added: v18.17.0
-->

* `emitterOrTarget` {EventEmitter|EventTarget}
Expand Down
22 changes: 11 additions & 11 deletions doc/api/fs.md
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,7 @@ number of bytes read is zero.
<!-- YAML
added: v17.0.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/46933
description: Added option to create a 'bytes' stream.
-->
Expand Down Expand Up @@ -962,7 +962,7 @@ try {
<!-- YAML
added: v16.7.0
changes:
- version: REPLACEME
- version: 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 @@ -1214,7 +1214,7 @@ a colon, Node.js will open a file system stream, as described by
<!-- YAML
added: v12.12.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version:
Expand Down Expand Up @@ -1265,7 +1265,7 @@ closed after the iterator exits.
<!-- YAML
added: v10.0.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version: v10.11.0
Expand Down Expand Up @@ -2285,7 +2285,7 @@ copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL, callback);
<!-- YAML
added: v16.7.0
changes:
- version: REPLACEME
- version: 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 @@ -3355,7 +3355,7 @@ Functions based on `fs.open()` exhibit this behavior as well:
<!-- YAML
added: v12.12.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version: v18.0.0
Expand Down Expand Up @@ -3493,7 +3493,7 @@ above values.
<!-- YAML
added: v0.1.8
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version: v18.0.0
Expand Down Expand Up @@ -5155,7 +5155,7 @@ copyFileSync('source.txt', 'destination.txt', constants.COPYFILE_EXCL);
<!-- YAML
added: v16.7.0
changes:
- version: REPLACEME
- version: 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 @@ -5493,7 +5493,7 @@ object with an `encoding` property specifying the character encoding to use.
<!-- YAML
added: v12.12.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version:
Expand Down Expand Up @@ -5553,7 +5553,7 @@ this API: [`fs.open()`][].
<!-- YAML
added: v0.1.21
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/41439
description: Added `recursive` option.
- version: v10.10.0
Expand Down Expand Up @@ -6418,7 +6418,7 @@ value is determined by the `options.encoding` passed to [`fs.readdir()`][] or
#### `dirent.path`
<!-- YAML
added: REPLACEME
added: v18.17.0
-->
* {string}
Expand Down
2 changes: 1 addition & 1 deletion doc/api/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -3168,7 +3168,7 @@ Found'`.
<!-- YAML
added: v0.1.13
changes:
- version: REPLACEME
- version: 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
2 changes: 1 addition & 1 deletion doc/api/net.md
Original file line number Diff line number Diff line change
Expand Up @@ -1504,7 +1504,7 @@ then returns the `net.Socket` that starts the connection.
<!-- YAML
added: v0.5.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/47405
description: The `highWaterMark` option is supported now.
- version:
Expand Down
8 changes: 4 additions & 4 deletions doc/api/stream.md
Original file line number Diff line number Diff line change
Expand Up @@ -2432,7 +2432,7 @@ await Readable.from([1, 2, 3, 4]).take(2).toArray(); // [1, 2]
<!-- YAML
added: v17.5.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/48102
description: Using the `asIndexedPairs` method emits a runtime warning that
it will be removed in a future version.
Expand Down Expand Up @@ -3056,7 +3056,7 @@ added: v17.0.0
<!-- YAML
added: v16.8.0
changes:
- version: REPLACEME
- version: 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 @@ -3332,7 +3332,7 @@ reader.read().then(({ value, done }) => {
### `stream.getDefaultHighWaterMark(objectMode)`

<!-- YAML
added: REPLACEME
added: v18.17.0
-->

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

<!-- YAML
added: REPLACEME
added: v18.17.0
-->

* `objectMode` {boolean}
Expand Down
10 changes: 5 additions & 5 deletions doc/api/test.md
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ test('spies on an object method', (t) => {
<!-- YAML
added: v18.15.0
changes:
- version: REPLACEME
- version: 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 @@ -711,7 +711,7 @@ unless a destination is explicitly provided.
<!-- YAML
added: v18.9.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/47628
description: Add a testNamePatterns option.
-->
Expand Down Expand Up @@ -771,7 +771,7 @@ run({ files: [path.resolve('./tests/test.js')] })
<!-- YAML
added: v18.0.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/47909
description: Added the `skip`, `todo`, and `only` shorthands.
- version: v18.8.0
Expand Down Expand Up @@ -1504,7 +1504,7 @@ Emitted when no more tests are queued for execution in watch mode.
<!-- YAML
added: v18.0.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/47586
description: The `before` function was added to TestContext.
-->
Expand All @@ -1516,7 +1516,7 @@ exposed as part of the API.
### `context.before([fn][, options])`

<!-- YAML
added: REPLACEME
added: v18.17.0
-->

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

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

<!-- YAML
added: REPLACEME
added: v18.17.0
-->

* `input` {string} The absolute or relative input URL to parse. If `input`
Expand Down Expand Up @@ -1034,7 +1034,7 @@ added:
- v7.4.0
- v6.13.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/47339
description: ICU requirement is removed.
-->
Expand Down Expand Up @@ -1076,7 +1076,7 @@ added:
- v7.4.0
- v6.13.0
changes:
- version: REPLACEME
- version: v18.17.0
pr-url: https://github.com/nodejs/node/pull/47339
description: ICU requirement is removed.
-->
Expand Down Expand Up @@ -1254,7 +1254,7 @@ added:
- v15.7.0
- v14.18.0
changes:
- version: REPLACEME
- version: 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
2 changes: 1 addition & 1 deletion doc/api/webcrypto.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<!-- YAML
changes:
- version: REPLACEME
- version: 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 5c1428a

Please sign in to comment.