Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fs: add read(buffer[, options]) versions #42768

Merged
merged 16 commits into from
May 2, 2022

Conversation

LiviaMedeiros
Copy link
Contributor

@LiviaMedeiros LiviaMedeiros commented Apr 17, 2022

Refs: #42601 (writing counterparts)

This PR does:

  • Adding fs.read(fd, buffer[, options], callback)
  • Adding filehandle.read(buffer[, options])
  • Aligning fs.readSync code (changes in UB corner cases) 1 (offloaded due to potential breakage)

These changes would allow to:

  • Align writing methods with uniform buffer[, options] signature 2
  • Align signatures of reading methods
  • Which also means not only read-write interoperability within each of three APIs, but also between any of them
  • Achieve a bit more consistent UB behaviour, when documentation implies similarity ("For detailed information, see the documentation of the asynchronous version of this API")
  • Have it fully completed without waiting for DEP0162 EOL
  • Harden fs.readSync typechecking 3
  • (optional) Introduce params4 signatures later, if needed 5
  • (optional) Deprecate and remove params signatures later, if strongly needed 6
  • (opinionated) Maybe make usage of fs.read and fh.read less error-prone 6
Why current behaviour is questionable

Default buffer in fs.read and filehandle.read is Buffer.alloc(16384). It's a pretty reasonable value for positioned argument (i.e. if it's used only when all further arguments are unset as well), but it's a footgun when length is defined.

#!/usr/bin/env node
import {open} from 'fs/promises';
async function readSubstring(filepath, len = 0, pos = 0) {
	const fh = await open(filepath, 'r');
	const res = await fh.read({ length: Number(len), position: Number(pos) });
	const str = String(res.buffer);
	return str;
}
const substr = await readSubstring(...process.argv.slice(2));
console.log(substr);
$ echo 123456789 > /tmp/tst
$ readsubstr.mjs /tmp/tst 3 5
678
$ readsubstr.mjs /tmp/tst 3 5 | wc -c
16385

Without reading the docs properly, I'd totes assume that it allocates length + offset||0 number of bytes by default.
Because of that, buffer has to be allocated explicitly. Which makes [buffer[, options]] signature more reasonable and less misleading.

Footnotes

  1. Changes in UB are about interpreting false/null/undefined values as invalid or default. I think, the best way here is to interpret typeof offsetOrOptions === 'object' as indicator of attempt to use "named params" version. null means default values. false and undefined means offset === 0. Everything else goes to offset's integer validation.
    Exception: Callback API methods will still check the number of arguments as well, to keep callback strictly positioned.

  2. Refs: https://github.com/nodejs/node/pull/42601#discussion_r846095440

  3. Current implementation of fs.readSync interprets any value as options object. For example, passing a primitive string will use its length property without any warning.

  4. I use the following terminology here: options == { offset, length, position }, params == { buffer, ...options } == { buffer, offset, length, position }

  5. Theoretical reason to include buffer is its strong connection to offset and length. If we specify nonzero offset, we usually imply a non-arbitrary buffer. However, I don't have strong arguments nor good examples; and it can be worked around anyway.

  6. See "Why current behaviour is questionable" foldablie 2

@nodejs-github-bot nodejs-github-bot added fs Issues and PRs related to the fs subsystem / file system. needs-ci PRs that need a full CI run. labels Apr 17, 2022
@aduh95 aduh95 added the semver-major PRs that contain breaking changes and should be released in the next major version. label Apr 17, 2022
@LiviaMedeiros
Copy link
Contributor Author

Offloaded fs.readSync changes to a separate PR.

I'm still confused about offset === null and options.offset === null case.

I believe that the intention behind original test was purely about default params (so, for example, it won't override position it default value for it was 0).
Is there something else, and should or not offset === null throw?

My personal preference in a context of this PR is to prohibit it to avoid any intersection with options object, purely because typeof null === 'object'.
However, if supporting nullable offset is the desired behaviour, it can be worked around to avoid any breaking changes here.

@LiviaMedeiros
Copy link
Contributor Author

In current state or this PR, breaking changes for fs.readSync are reverted, and handling of offset === null cases should be compatible with master branch. I'm doing brief rechecks with this.

If there are still any signs of breaking changes, please do not hesitate to point them out.
I believe that it can be kept within semver-minor PRs that contain new features and should be released in the next minor version. without functionality loss.

test/parallel/test-fs-read-optional-params.js Outdated Show resolved Hide resolved
test/parallel/test-fs-read-offset-null.js Outdated Show resolved Hide resolved
test/parallel/test-fs-read-offset-null.js Show resolved Hide resolved
@aduh95 aduh95 added semver-minor PRs that contain new features and should be released in the next minor version. author ready PRs that have at least one approval, no pending requests for changes, and a CI started. request-ci Add this label to start a Jenkins CI on a PR. and removed semver-major PRs that contain breaking changes and should be released in the next major version. labels Apr 22, 2022
@nodejs-github-bot
Copy link
Collaborator

Commit Queue failed
- Loading data for nodejs/node/pull/42768
✔  Done loading data for nodejs/node/pull/42768
----------------------------------- PR info ------------------------------------
Title      fs: add read(buffer[, options]) versions (#42768)
   ⚠  Could not retrieve the email or name of the PR author's from user's GitHub profile!
Branch     LiviaMedeiros:optional-read-signature -> nodejs:master
Labels     fs, semver-minor, author ready, needs-ci, commit-queue-squash
Commits    16
 - fs: add read(buffer, options) signatures
 - squash: make offsetOrOptions more consistent
 - squash: add doc entries
 - squash: fix fs.read()
 - squash: expand fs-read-optional test
 - squash: expand fs-read-promises-optional test
 - squash: improve tests
 - squash: fixup
 - squash: fixup
 - squash: inline null coalescing
 - squash: revert changes in fs.readSync()
 - squash: disallow offset === false
 - squash: fixup
 - squash: allow offset === null
 - squash: fix tests being other way round
 - squash: adjust tests
Committers 1
 - LiviaMedeiros 
PR-URL: https://github.com/nodejs/node/pull/42768
Refs: https://github.com/nodejs/node/pull/42601
Reviewed-By: Antoine du Hamel 
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/42768
Refs: https://github.com/nodejs/node/pull/42601
Reviewed-By: Antoine du Hamel 
--------------------------------------------------------------------------------
   ℹ  This PR was created on Sun, 17 Apr 2022 17:15:02 GMT
   ✔  Approvals: 1
   ✔  - Antoine du Hamel (@aduh95) (TSC): https://github.com/nodejs/node/pull/42768#pullrequestreview-950452626
   ✔  Last GitHub CI successful
   ℹ  Last Full PR CI on 2022-04-29T02:55:25Z: https://ci.nodejs.org/job/node-test-pull-request/43764/
- Querying data for job/node-test-pull-request/43764/
   ✔  Last Jenkins CI successful
--------------------------------------------------------------------------------
   ✔  No git cherry-pick in progress
   ✔  No git am in progress
   ✔  No git rebase in progress
--------------------------------------------------------------------------------
- Bringing origin/master up to date...
From https://github.com/nodejs/node
 * branch                  master     -> FETCH_HEAD
✔  origin/master is now up-to-date
- Downloading patch for 42768
From https://github.com/nodejs/node
 * branch                  refs/pull/42768/merge -> FETCH_HEAD
✔  Fetched commits as 916a13a8a36d..ab0b534874af
--------------------------------------------------------------------------------
Auto-merging lib/fs.js
[master 4b272000d4] fs: add read(buffer, options) signatures
 Author: LiviaMedeiros 
 Date: Fri Apr 15 22:01:15 2022 +0800
 3 files changed, 37 insertions(+), 30 deletions(-)
Auto-merging lib/fs.js
CONFLICT (content): Merge conflict in lib/fs.js
error: could not apply aec64cae9d... squash: make offsetOrOptions more consistent
hint: After resolving the conflicts, mark them with
hint: "git add/rm ", then run
hint: "git cherry-pick --continue".
hint: You can instead skip this commit with "git cherry-pick --skip".
hint: To abort and get back to the state before "git cherry-pick",
hint: run "git cherry-pick --abort".
   ✖  Failed to apply patches
https://github.com/nodejs/node/actions/runs/2259461302

@LiviaMedeiros
Copy link
Contributor Author

Rebasing this atm

@aduh95 aduh95 merged commit 57678e5 into nodejs:master May 2, 2022
@aduh95
Copy link
Contributor

aduh95 commented May 2, 2022

Landed in 57678e5

@LiviaMedeiros
Copy link
Contributor Author

Oh, thanks! 😄

RafaelGSS pushed a commit that referenced this pull request May 10, 2022
This adds the following:
- `fs.read(fd, buffer[, options], callback)`.
- `filehandle.read(buffer[, options])`.

PR-URL: #42768
Refs: #42601
Reviewed-By: Antoine du Hamel <[email protected]>
RafaelGSS added a commit that referenced this pull request May 10, 2022
Notable changes:

* Revert_ "deps: add template for generated headers" (Daniel Bevenius) #42978
* deps: upgrade npm to 8.9.0 (npm team) #42968
* (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (Livia Medeiros) #42768
* (SEMVER-MINOR) http: added connection closing methods (Shogun) #42812

PR-URL: TBD
@RafaelGSS RafaelGSS mentioned this pull request May 10, 2022
RafaelGSS added a commit that referenced this pull request May 10, 2022
Notable changes:

* Revert_ "deps: add template for generated headers" (Daniel Bevenius) #42978
* deps: upgrade npm to 8.9.0 (npm team) #42968
* (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (Livia Medeiros) #42768
* (SEMVER-MINOR) http: added connection closing methods (Shogun) #42812

PR-URL: TBD
RafaelGSS added a commit that referenced this pull request May 10, 2022
Notable changes:

* Revert_ "deps: add template for generated headers" (Daniel Bevenius) #42978
* deps: upgrade npm to 8.9.0 (npm team) #42968
* (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (Livia Medeiros) #42768
* (SEMVER-MINOR) http: added connection closing methods (Shogun) #42812

PR-URL: #43036
RafaelGSS added a commit that referenced this pull request May 16, 2022
Notable changes:

* Revert_ "deps: add template for generated headers" (Daniel Bevenius) #42978
* deps: upgrade npm to 8.9.0 (npm team) #42968
* (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (Livia Medeiros) #42768
* (SEMVER-MINOR) http: added connection closing methods (Shogun) #42812

PR-URL: #43036
RafaelGSS added a commit that referenced this pull request May 16, 2022
Notable changes:

* This release updates OpenSSL to 3.0.3.
This update can be treated as a security release as the issues addressed in OpenSSL 3.0.3 slightly affect Node.js 18.
See https://nodejs.org/en/blog/vulnerability/openssl-fixes-in-regular-releases-may2022/ for more information on how the May 2022 OpenSSL releases affect other Node.js release lines.

* *Revert*_ "deps: add template for generated headers" (Daniel Bevenius) #42978
* deps: update archs files for quictls/openssl-3.0.3+quic (RafaelGSS) #43022
* deps: update undici to 5.2.0 (Node.js GitHub Bot) #43059
* deps: upgrade npm to 8.9.0 (npm team) #42968
* (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) #42768
* (SEMVER-MINOR) http: added connection closing methods (Shogun) #42812
* deps: upgrade openssl sources to quictls/openssl-3.0.3 (RafaelGSS) #43022
* doc: add LiviaMedeiros to collaborators (LiviaMedeiros) #43039
* doc: add release key for Juan Arboleda (Juan José) #42961
* (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) #42768
* (SEMVER-MINOR) http: added connection closing methods (Paolo Insogna) #42812
* perf_hooks: add PerformanceResourceTiming (RafaelGSS) #42725

PR-URL: #43036
RafaelGSS added a commit that referenced this pull request May 16, 2022
OpenSSL

This update can be treated as a security release as the issues addressed in OpenSSL 3.0.3 slightly affect Node.js 18.
See https://nodejs.org/en/blog/vulnerability/openssl-fixes-in-regular-releases-may2022/ for more information on how the May 2022 OpenSSL releases affect other Node.js release lines.

* deps: update archs files for quictls/openssl-3.0.3+quic (RafaelGSS) #43022
* deps: upgrade openssl sources to quictls/openssl-3.0.3 (RafaelGSS) #43022

Other Notable changes

* *Revert*_ "deps: add template for generated headers" (Daniel Bevenius) #42978
* deps: update undici to 5.2.0 (Node.js GitHub Bot) #43059
* deps: upgrade npm to 8.9.0 (npm team) #42968
* (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) #42768
* (SEMVER-MINOR) http: added connection closing methods (Shogun) #42812
* doc: add LiviaMedeiros to collaborators (LiviaMedeiros) #43039
* doc: add release key for Juan Arboleda (Juan José) #42961
* (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) #42768
* (SEMVER-MINOR) http: added connection closing methods (Paolo Insogna) #42812
* perf_hooks: add PerformanceResourceTiming (RafaelGSS) #42725

PR-URL: #43036
RafaelGSS added a commit that referenced this pull request May 16, 2022
OpenSSL

This update can be treated as a security release as the issues addressed in OpenSSL 3.0.3 slightly affect Node.js 18.
See https://nodejs.org/en/blog/vulnerability/openssl-fixes-in-regular-releases-may2022/ for more information on how the May 2022 OpenSSL releases affect other Node.js release lines.

* deps: update archs files for quictls/openssl-3.0.3+quic (RafaelGSS) #43022
* deps: upgrade openssl sources to quictls/openssl-3.0.3 (RafaelGSS) #43022

Other Notable Changes

* *Revert*_ "deps: add template for generated headers" (Daniel Bevenius) #42978
* deps: update undici to 5.2.0 (Node.js GitHub Bot) #43059
* deps: upgrade npm to 8.9.0 (npm team) #42968
* (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) #42768
* (SEMVER-MINOR) http: added connection closing methods (Shogun) #42812
* doc: add LiviaMedeiros to collaborators (LiviaMedeiros) #43039
* doc: add release key for Juan Arboleda (Juan José) #42961
* (SEMVER-MINOR) fs: add `read(buffer[, options])` versions (LiviaMedeiros) #42768
* (SEMVER-MINOR) http: added connection closing methods (Paolo Insogna) #42812
* perf_hooks: add PerformanceResourceTiming (RafaelGSS) #42725

PR-URL: #43036
RafaelGSS added a commit that referenced this pull request May 16, 2022
Notable changes:

OpenSSL 3.0.3

This update can be treated as a security release as the issues addressed
in OpenSSL 3.0.3 slightly affect Node.js 18. See https://nodejs.org/en/blog/vulnerability/openssl-fixes-in-regular-releases-may2022/
for more information on how the May 2022 OpenSSL releases affect other
Node.js release lines.

- deps: update archs files for quictls/openssl-3.0.3+quic
  (RafaelGSS) #43022
- deps: upgrade openssl sources to quictls/openssl-3.0.3
  (RafaelGSS) #43022

Other notable changes:

- _Revert_ "deps: add template for generated headers"
  (Daniel Bevenius) #42978
- deps: update undici to 5.2.0
  (Node.js GitHub Bot) #43059
- deps: upgrade npm to 8.9.0
  (npm team) #42968
- (SEMVER-MINOR) fs: add `read(buffer[, options])` versions
  (LiviaMedeiros) #42768
- (SEMVER-MINOR) http: added connection closing methods
  (Shogun) #42812
- doc: add LiviaMedeiros to collaborators
  (LiviaMedeiros) #43039
- doc: add release key for Juan Arboleda
  (Juan José) #42961
- (SEMVER-MINOR) fs: add `read(buffer[, options])` versions
  (LiviaMedeiros) #42768
- (SEMVER-MINOR) http: added connection closing methods
  (Paolo Insogna) #42812
- (SEMVER-MINOR) perf_hooks: add PerformanceResourceTiming
  (RafaelGSS) #42725

PR-URL: #43036
RafaelGSS added a commit that referenced this pull request May 17, 2022
Notable changes:

OpenSSL 3.0.3

This update can be treated as a security release as the issues addressed
in OpenSSL 3.0.3 slightly affect Node.js 18. See https://nodejs.org/en/blog/vulnerability/openssl-fixes-in-regular-releases-may2022/
for more information on how the May 2022 OpenSSL releases affect other
Node.js release lines.

- deps: update archs files for quictls/openssl-3.0.3+quic
  (RafaelGSS) #43022
- deps: upgrade openssl sources to quictls/openssl-3.0.3
  (RafaelGSS) #43022

Other notable changes:

- _Revert_ "deps: add template for generated headers"
  (Daniel Bevenius) #42978
- deps: update undici to 5.2.0
  (Node.js GitHub Bot) #43059
- deps: upgrade npm to 8.9.0
  (npm team) #42968
- (SEMVER-MINOR) fs: add `read(buffer[, options])` versions
  (LiviaMedeiros) #42768
- (SEMVER-MINOR) http: added connection closing methods
  (Shogun) #42812
- doc: add LiviaMedeiros to collaborators
  (LiviaMedeiros) #43039
- doc: add release key for Juan Arboleda
  (Juan José) #42961
- (SEMVER-MINOR) fs: add `read(buffer[, options])` versions
  (LiviaMedeiros) #42768
- (SEMVER-MINOR) http: added connection closing methods
  (Paolo Insogna) #42812
- (SEMVER-MINOR) perf_hooks: add PerformanceResourceTiming
  (RafaelGSS) #42725

PR-URL: #43036
juanarbol pushed a commit that referenced this pull request May 31, 2022
This adds the following:
- `fs.read(fd, buffer[, options], callback)`.
- `filehandle.read(buffer[, options])`.

PR-URL: #42768
Refs: #42601
Reviewed-By: Antoine du Hamel <[email protected]>
targos pushed a commit that referenced this pull request Jul 12, 2022
This adds the following:
- `fs.read(fd, buffer[, options], callback)`.
- `filehandle.read(buffer[, options])`.

PR-URL: #42768
Refs: #42601
Reviewed-By: Antoine du Hamel <[email protected]>
targos pushed a commit that referenced this pull request Jul 31, 2022
This adds the following:
- `fs.read(fd, buffer[, options], callback)`.
- `filehandle.read(buffer[, options])`.

PR-URL: #42768
Refs: #42601
Reviewed-By: Antoine du Hamel <[email protected]>
targos added a commit that referenced this pull request Aug 2, 2022
Notable changes:

crypto:
  * (SEMVER-MINOR) remove Node.js-specific webcrypto extensions (Filip Skokan) #43310
  * (SEMVER-MINOR) add CFRG curves to Web Crypto API (Filip Skokan) #42507
  * (SEMVER-MINOR) make authTagLength optional for CC20P1305 (Tobias Nießen) #42427
  * (SEMVER-MINOR) align webcrypto RSA key import/export with other implementations (Filip Skokan) #42816
deps:
  * update undici to 5.4.0 (Node.js GitHub Bot) #43262
  * update undici to 5.3.0 (Node.js GitHub Bot) #43197
dns:
  * (SEMVER-MINOR) export error code constants from `dns/promises` (Feng Yu) #43176
doc:
  * add F3n67u to collaborators (Feng Yu) #43953
  * deprecate coercion to integer in process.exit (Daeyeon Jeong) #43738
  * (SEMVER-MINOR) deprecate diagnostics_channel object subscribe method (Stephen Belanger) #42714
  * add LiviaMedeiros to collaborators (LiviaMedeiros) #43039
  * add @kuriyosh to collaborators (Yoshiki Kurihara) #42824
  * add RafaelGSS to collaborators (RafaelGSS) #42718
  * add @meixg to collaborators (Xuguang Mei) #42576
errors:
  * (SEMVER-MINOR) add support for cause in aborterror (James M Snell) #41008
esm:
  * (SEMVER-MINOR) add chaining to loaders (Jacob Smith) #42623
events:
  * (SEMVER-MINOR) expose CustomEvent on global with CLI flag (Daeyeon Jeong) #43885
  * (SEMVER-MINOR) add `CustomEvent` (Daeyeon Jeong) #43514
  * (SEMVER-MINOR) propagate abortsignal reason in new AbortError ctor in events (James M Snell) #41008
fs:
  * (SEMVER-MINOR) propagate abortsignal reason in new AbortSignal constructors (James M Snell) #41008
  * (SEMVER-MINOR) make params in writing methods optional (LiviaMedeiros) #42601
  * (SEMVER-MINOR) add `read(buffer[, options])` versions (LiviaMedeiros) #42768
http:
  * (SEMVER-MINOR) add drop request event for http server (theanarkh) #43806
  * (SEMVER-MINOR) add diagnostics channel for http client (theanarkh) #43580
  * (SEMVER-MINOR) add perf_hooks detail for http request and client (theanarkh) #43361
  * (SEMVER-MINOR) add uniqueHeaders option to request and createServer (Paolo Insogna) #41397
http2:
  * (SEMVER-MINOR) propagate abortsignal reason in new AbortError constructor (James M Snell) #41008
  * (SEMVER-MINOR) compat support for array headers (OneNail) #42901
lib:
  * (SEMVER-MINOR) propagate abortsignal reason in new AbortError constructor in blob (James M Snell) #41008
  * (SEMVER-MINOR) add abortSignal.throwIfAborted() (James M Snell) #40951
  * (SEMVER-MINOR) improved diagnostics_channel subscribe/unsubscribe (Stephen Belanger) #42714
module:
  * (SEMVER-MINOR) add isBuiltIn method (hemanth.hm) #43396
module,repl:
  * (SEMVER-MINOR) support 'node:'-only core modules (Colin Ihrig) #42325
net:
  * (SEMVER-MINOR) add drop event for net server (theanarkh) #43582
  * (SEMVER-MINOR) add ability to reset a tcp socket (pupilTong) #43112
node-api:
  * (SEMVER-MINOR) emit uncaught-exception on unhandled tsfn callbacks (Chengzhong Wu) #36510
perf_hooks:
  * (SEMVER-MINOR) add PerformanceResourceTiming (RafaelGSS) #42725
report:
  * (SEMVER-MINOR) add more heap infos in process report (theanarkh) #43116
src:
  * (SEMVER-MINOR) add --openssl-legacy-provider option (Daniel Bevenius) #40478
  * (SEMVER-MINOR) define fs.constants.S_IWUSR & S_IRUSR for Win (Liviu Ionescu) #42757
src,doc,test:
  * (SEMVER-MAJOR) add --openssl-shared-config option (Daniel Bevenius) #43124
stream:
  * (SEMVER-MINOR) use cause options in AbortError constructors (James M Snell) #41008
  * (SEMVER-MINOR) add iterator helper find (Nitzan Uziely) #41849
  * (SEMVER-MINOR) add writableAborted (Robert Nagy) #40802
test:
  * (SEMVER-MINOR) add initial test module (Colin Ihrig) #42325
test_runner:
  * (SEMVER-MINOR) expose `describe` and `it` (Moshe Atlow) #43420
  * (SEMVER-MINOR) add initial CLI runner (Colin Ihrig) #42658
  * (SEMVER-MINOR) support 'only' tests (Colin Ihrig) #42514
timers:
  * (SEMVER-MINOR) propagate signal.reason in awaitable timers (James M Snell) #41008
util:
  * (SEMVER-MINOR) add tokens to parseArgs (John Gee) #43459
  * (SEMVER-MINOR) add parseArgs module (Benjamin Coe) #42675
v8:
  * (SEMVER-MINOR) add v8.startupSnapshot utils (Joyee Cheung) #43329
  * (SEMVER-MINOR) export more fields in getHeapStatistics (theanarkh) #42784
worker:
  * (SEMVER-MINOR) add hasRef() to MessagePort (Darshan Sen) #42849

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

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

PR-URL: #44098
targos added a commit that referenced this pull request Aug 15, 2022
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
targos added a commit that referenced this pull request Aug 16, 2022
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
Fyko pushed a commit to Fyko/node that referenced this pull request Sep 15, 2022
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.
nodejs#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.
nodejs#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.
nodejs#42507
nodejs#43310

Updated Corepack to 0.12.1 - nodejs#43965
Updated ICU to 71.1 - nodejs#42655
Updated npm to 8.15.0 - nodejs#43917
Updated Undici to 5.8.0 - nodejs#43886

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

PR-URL: nodejs#44098
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
This adds the following:
- `fs.read(fd, buffer[, options], callback)`.
- `filehandle.read(buffer[, options])`.

PR-URL: nodejs/node#42768
Refs: nodejs/node#42601
Reviewed-By: Antoine du Hamel <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this pull request Oct 10, 2022
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.
nodejs/node#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.
nodejs/node#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.
nodejs/node#42507
nodejs/node#43310

Updated Corepack to 0.12.1 - nodejs/node#43965
Updated ICU to 71.1 - nodejs/node#42655
Updated npm to 8.15.0 - nodejs/node#43917
Updated Undici to 5.8.0 - nodejs/node#43886

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

PR-URL: nodejs/node#44098
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. commit-queue-failed An error occurred while landing this pull request using GitHub Actions. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. fs Issues and PRs related to the fs subsystem / file system. needs-ci PRs that need a full CI run. semver-minor PRs that contain new features and should be released in the next minor version.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants