From bae56c81ed55b1183c9445e2acfa06a29537450b Mon Sep 17 00:00:00 2001 From: Danielle Adams Date: Mon, 10 Jul 2023 08:12:52 -0400 Subject: [PATCH] 2023-07-18, Version 18.17.0 'Hydrogen' (LTS) 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 https://github.com/nodejs/node/pull/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 https://github.com/nodejs/node/pull/46067 crypto: * update root certificates to NSS 3.89 (Node.js GitHub Bot) https://github.com/nodejs/node/pull/47659 dns: * (SEMVER-MINOR) expose getDefaultResultOrder (btea) https://github.com/nodejs/node/pull/46973 doc: * add ovflowd to collaborators (Claudio Wunder) https://github.com/nodejs/node/pull/47844 * add KhafraDev to collaborators (Matthew Aitken) https://github.com/nodejs/node/pull/47510 * events: * (SEMVER-MINOR) add getMaxListeners method (Matthew Aitken) https://github.com/nodejs/node/pull/47039 fs: * (SEMVER-MINOR) add support for mode flag to specify the copy behavior (Tetsuharu Ohzeki) https://github.com/nodejs/node/pull/47084 * (SEMVER-MINOR) add recursive option to readdir and opendir (Ethan Arrowood) https://github.com/nodejs/node/pull/41439 * (SEMVER-MINOR) add support for mode flag to specify the copy behavior (Tetsuharu Ohzeki) https://github.com/nodejs/node/pull/47084 * (SEMVER-MINOR) implement byob mode for readableWebStream() (Debadree Chatterjee) https://github.com/nodejs/node/pull/46933 http: * (SEMVER-MINOR) prevent writing to the body when not allowed by HTTP spec (Gerrard Lindsay) https://github.com/nodejs/node/pull/47732 * (SEMVER-MINOR) remove internal error in assignSocket (Matteo Collina) https://github.com/nodejs/node/pull/47723 * (SEMVER-MINOR) add highWaterMark opt in http.createServer (HinataKah0) https://github.com/nodejs/node/pull/47405 lib: * (SEMVER-MINOR) add webstreams to Duplex.from() (Debadree Chatterjee) https://github.com/nodejs/node/pull/46190 * (SEMVER-MINOR) implement AbortSignal.any() (Chemi Atlow) https://github.com/nodejs/node/pull/47821 module: * change default resolver to not throw on unknown scheme (Gil Tayar) https://github.com/nodejs/node/pull/47824 node-api: * (SEMVER-MINOR) define version 9 (Chengzhong Wu) https://github.com/nodejs/node/pull/48151 * (SEMVER-MINOR) deprecate napi_module_register (Vladimir Morozov) https://github.com/nodejs/node/pull/46319 stream: * (SEMVER-MINOR) preserve object mode in compose (Raz Luvaton) https://github.com/nodejs/node/pull/47413 * (SEMVER-MINOR) add setter & getter for default highWaterMark (#46929) (Robert Nagy) https://github.com/nodejs/node/pull/46929 test: * unflake test-vm-timeout-escape-nexttick (Santiago Gimeno) https://github.com/nodejs/node/pull/48078 test_runner: * (SEMVER-MINOR) add shorthands to `test` (Chemi Atlow) https://github.com/nodejs/node/pull/47909 * (SEMVER-MINOR) support combining coverage reports (Colin Ihrig) https://github.com/nodejs/node/pull/47686 * (SEMVER-MINOR) execute before hook on test (Chemi Atlow) https://github.com/nodejs/node/pull/47586 * (SEMVER-MINOR) expose reporter for use in run api (Chemi Atlow) https://github.com/nodejs/node/pull/47238 tools: * update LICENSE and license-builder.sh (Santiago Gimeno) https://github.com/nodejs/node/pull/48078 url: * (SEMVER-MINOR) implement URL.canParse (Matthew Aitken) https://github.com/nodejs/node/pull/47179 wasi: * (SEMVER-MINOR) no longer require flag to enable wasi (Michael Dawson) https://github.com/nodejs/node/pull/47286 PR-URL: https://github.com/nodejs/node/pull/48694 --- CHANGELOG.md | 3 +- doc/api/cli.md | 8 +- doc/api/deprecations.md | 4 +- doc/api/dns.md | 8 +- doc/api/events.md | 4 +- doc/api/fs.md | 44 ++- doc/api/globals.md | 4 +- doc/api/http.md | 4 +- doc/api/net.md | 4 +- doc/api/stream.md | 12 +- doc/api/test.md | 20 +- doc/api/url.md | 20 +- doc/api/webcrypto.md | 4 +- doc/changelogs/CHANGELOG_V18.md | 560 ++++++++++++++++++++++++++++++++ 14 files changed, 664 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8901baf912fd3b..bd6c27cdb4d9fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,7 +43,8 @@ release. 20.0.0
-18.16.1
+18.17.0
+18.16.1
18.16.0
18.15.0
18.14.2
diff --git a/doc/api/cli.md b/doc/api/cli.md index e8b21861d24850..a5a07619da91c2 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -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`. --> @@ -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. diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index d26d62a2c14dd0..e6cdb143cd4450 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -3295,7 +3295,9 @@ Node-API callbacks. Get the default value for `verbatim` in [`dns.lookup()`][] and @@ -1366,7 +1368,9 @@ default dns orders in workers. ### `dnsPromises.getDefaultResultOrder()` Get the value of `dnsOrder`. diff --git a/doc/api/events.md b/doc/api/events.md index c4e58442991364..d728a7aa49b8ad 100644 --- a/doc/api/events.md +++ b/doc/api/events.md @@ -1271,7 +1271,9 @@ const { getEventListeners, EventEmitter } = require('node:events'); ## `events.getMaxListeners(emitterOrTarget)` * `emitterOrTarget` {EventEmitter|EventTarget} diff --git a/doc/api/fs.md b/doc/api/fs.md index d52662a63f75cb..2eb490e8b5ce5d 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -451,7 +451,9 @@ number of bytes read is zero. @@ -976,7 +978,9 @@ try { * {string} diff --git a/doc/api/globals.md b/doc/api/globals.md index 63b15b4b7f8788..9e2e1d0761a8d1 100644 --- a/doc/api/globals.md +++ b/doc/api/globals.md @@ -124,7 +124,9 @@ Returns a new `AbortSignal` which will be aborted in `delay` milliseconds. #### Static method: `AbortSignal.any(signals)` * `signals` {AbortSignal\[]} The `AbortSignal`s of which to compose a new `AbortSignal`. diff --git a/doc/api/http.md b/doc/api/http.md index a0437f329bb148..785f154f9e2f72 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -3204,7 +3204,9 @@ Found'`. * `objectMode` {boolean} @@ -3354,7 +3358,9 @@ Defaults to `16384` (16 KiB), or `16` for `objectMode`. ### `stream.setDefaultHighWaterMark(objectMode, value)` * `objectMode` {boolean} diff --git a/doc/api/test.md b/doc/api/test.md index 3e460dd1c09228..c24615e8b8d0ee 100644 --- a/doc/api/test.md +++ b/doc/api/test.md @@ -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`. --> @@ -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. --> @@ -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: @@ -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. --> @@ -2098,7 +2106,9 @@ exposed as part of the API. ### `context.before([fn][, options])` * `fn` {Function|AsyncFunction} The hook function. The first argument diff --git a/doc/api/url.md b/doc/api/url.md index d0f325e5bde3a4..9e024da5c793b3 100644 --- a/doc/api/url.md +++ b/doc/api/url.md @@ -131,7 +131,9 @@ return `true`. @@ -669,7 +671,9 @@ ID that isn't registered will silently fail. #### `URL.canParse(input[, base])` * `input` {string} The absolute or relative input URL to parse. If `input` @@ -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. --> @@ -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. --> @@ -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. diff --git a/doc/api/webcrypto.md b/doc/api/webcrypto.md index fb33d552e4ebac..8aa8ac07b9b92d 100644 --- a/doc/api/webcrypto.md +++ b/doc/api/webcrypto.md @@ -2,7 +2,9 @@