From ba8e95b72edbee20293fe288e2908e41f58ed948 Mon Sep 17 00:00:00 2001 From: Danielle Adams Date: Mon, 10 Jul 2023 08:12:52 -0400 Subject: [PATCH] 2023-07-17, 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 | 4 +- doc/api/deprecations.md | 2 +- doc/api/dns.md | 4 +- doc/api/events.md | 2 +- doc/api/fs.md | 22 +- doc/api/globals.md | 2 +- doc/api/http.md | 2 +- doc/api/net.md | 2 +- doc/api/stream.md | 8 +- doc/api/test.md | 10 +- doc/api/url.md | 10 +- doc/api/webcrypto.md | 2 +- doc/changelogs/CHANGELOG_V18.md | 560 ++++++++++++++++++++++++++++++++ src/node_version.h | 6 +- 15 files changed, 600 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41a9c9d9363bd4..9bc5adcaab0106 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,7 +32,8 @@ release. -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 0a83ab6087c03b..83c76711d01ffc 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -445,7 +445,7 @@ See [customizing ESM specifier resolution][] for example usage. @@ -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. diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 90b7580caee0a0..4a52b467b5df6b 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -3271,7 +3271,7 @@ Node-API callbacks. Get the default value for `verbatim` in [`dns.lookup()`][] and @@ -1366,7 +1366,7 @@ 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 50f88cdab5fb6b..e52758194b8ff3 100644 --- a/doc/api/events.md +++ b/doc/api/events.md @@ -1269,7 +1269,7 @@ 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 b850431758694f..8cc6aba48528ba 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -449,7 +449,7 @@ number of bytes read is zero. @@ -962,7 +962,7 @@ try { * {string} diff --git a/doc/api/globals.md b/doc/api/globals.md index 7b6de36a192ebc..4dd5a74d650edb 100644 --- a/doc/api/globals.md +++ b/doc/api/globals.md @@ -124,7 +124,7 @@ 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 07194ca90110d3..8a6035e537e99e 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -3168,7 +3168,7 @@ Found'`. * `objectMode` {boolean} @@ -3344,7 +3344,7 @@ 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 3da2adcd059204..23f63ba044acbd 100644 --- a/doc/api/test.md +++ b/doc/api/test.md @@ -512,7 +512,7 @@ test('spies on an object method', (t) => { @@ -711,7 +711,7 @@ unless a destination is explicitly provided. @@ -771,7 +771,7 @@ run({ files: [path.resolve('./tests/test.js')] }) @@ -1516,7 +1516,7 @@ 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 b82f9e1dd38452..fc3ffd87e76c46 100644 --- a/doc/api/url.md +++ b/doc/api/url.md @@ -131,7 +131,7 @@ return `true`. @@ -669,7 +669,7 @@ ID that isn't registered will silently fail. #### `URL.canParse(input[, base])` * `input` {string} The absolute or relative input URL to parse. If `input` @@ -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. --> @@ -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. --> @@ -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. diff --git a/doc/api/webcrypto.md b/doc/api/webcrypto.md index 564fe9d11c00c4..68f81570d70c11 100644 --- a/doc/api/webcrypto.md +++ b/doc/api/webcrypto.md @@ -2,7 +2,7 @@