8198 Commits

Author SHA1 Message Date
Phil Nash
3a6a80a4e1
test_runner: report covered lines, functions and branches to reporters
This is a breaking change for the format of test:coverage events. But
the test coverage is still experimental, so I don't believe it requires
a semver-major bump.

Fixes https://github.com/nodejs/node/issues/49303

PR-URL: https://github.com/nodejs/node/pull/49320
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2023-08-30 20:22:45 +00:00
Rafael Gonzaga
9eb84febf0
doc: clarify policy expectations
PR-URL: https://github.com/nodejs/node/pull/48947
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2023-08-28 21:41:57 +00:00
Jungku Lee
b9153af4cc
doc: add print results for examples in StringDecoder
PR-URL: https://github.com/nodejs/node/pull/49326
Refs: https://github.com/nodejs/node/pull/49143
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-08-27 15:32:47 +00:00
Tobias Nießen
56c3263049
doc: update outdated reference to NIST SP 800-131A
NIST SP 800-131A Rev. 1 has been withdrawn. Replace the reference with a
link to NIST SP 800-131A Rev. 2.

PR-URL: https://github.com/nodejs/node/pull/49316
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
2023-08-26 21:11:21 +00:00
Deokjin Kim
fee0601674
doc: use cjs as block code's type in MockTimers
Use `cjs` instead of `js` to show toggle button between
CJS and ESM because corresponding example using `mjs`
exists.

PR-URL: https://github.com/nodejs/node/pull/49309
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Raz Luvaton <rluvaton@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-08-26 14:57:18 +00:00
Shubham Pandey
4178683a26
doc: update options.filter description for fs.cp
PR-URL: https://github.com/nodejs/node/pull/49289
Fixes: https://github.com/nodejs/node/issues/49092
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: LiviaMedeiros <livia@cirno.name>
2023-08-26 07:53:46 +02:00
Stewart X Addison
3d0a317763
doc: add riscv64 to list of architectures
PR-URL: https://github.com/nodejs/node/pull/49284

Signed-off-by: Stewart X Addison <sxa@redhat.com>
Fixes: https://github.com/nodejs/node/issues/49278
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-08-26 07:48:16 +02:00
Tobias Nießen
460c19f226
doc: avoid "not currently recommended"
Compromised algorithms will never again be recommended, so remove the
qualifier "currently".

PR-URL: https://github.com/nodejs/node/pull/49300
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
2023-08-25 20:08:17 +00:00
Deokjin Kim
c5cad08476
fs: remove redundant code in readableWebStream()
Remove redundant code by moving it to outside of `if/else`. Plus,
make `options` optional in doc.

PR-URL: https://github.com/nodejs/node/pull/49298
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-08-25 15:23:15 +00:00
Geoffrey Booth
33710e7e7d
doc: update module hooks docs
PR-URL: https://github.com/nodejs/node/pull/49265
Reviewed-By: Jacob Smith <jacob@frende.me>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-08-24 19:27:23 +00:00
Jungku Lee
a494ef68f3
doc: modify param description for end(),write() in StringDecoder
PR-URL: https://github.com/nodejs/node/pull/49285
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
2023-08-24 16:00:28 +00:00
Raz Luvaton
b0f423390f
stream: add highWaterMark for the map operator
this is done so we don't wait for the first items to
finish before starting new ones

Fixes: https://github.com/nodejs/node/issues/46132

Co-authored-by: Robert Nagy <ronagy@icloud.com>
PR-URL: https://github.com/nodejs/node/pull/49249
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
2023-08-24 12:11:21 +00:00
Antoine du Hamel
e74d1b8db9
doc: fix typo in stream.finished documentation
PR-URL: https://github.com/nodejs/node/pull/49271
Refs: https://nodejs.org/api/stream.html#streamfinishedstream-options
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Qingyu Deng <i@ayase-lab.com>
2023-08-23 09:17:31 +00:00
Jungku Lee
56a2a2e399
doc: update description for percent_encode sets in WHATWG API
PR-URL: https://github.com/nodejs/node/pull/49258
Refs: https://url.spec.whatwg.org/#percent-encoded-bytes
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-08-23 01:13:46 +00:00
Geoffrey Booth
164c57d4c5
doc: move and rename loaders section
PR-URL: https://github.com/nodejs/node/pull/49261
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Jacob Smith <jacob@frende.me>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
2023-08-22 21:53:40 +00:00
Fedor Indutny
62b2cf30f2
doc: clarify use of Uint8Array for n-api
`napi_get_buffer_info` always supported receiving `Uint8Array` as a
`value` argument because `node::Buffer` is a subclass of `Uint8Array`
and the underlying V8 APIs don't distinguish between two. With this
change we mark both types as supported by the API so that the user code
doesn't have to unknowingly use oficially unsupported type of the
`value` argument.

PR-URL: https://github.com/nodejs/node/pull/48742
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Gabriel Schulhof <gabrielschulhof@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
2023-08-21 18:12:09 +00:00
Geoffrey Booth
484ad83358
doc: add signature for module.register
PR-URL: https://github.com/nodejs/node/pull/49251
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Jacob Smith <jacob@frende.me>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-08-20 20:52:41 +00:00
Jacob Smith
41a3a1daa2
doc: caveat unavailability of import.meta.resolve in custom loaders
PR-URL: https://github.com/nodejs/node/pull/49242
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
2023-08-19 16:45:02 +00:00
Hyunjin Kim
cb4a6fafe6
doc: use same name in the doc as in the code
Refs: https://streams.spec.whatwg.org/#bytelengthqueuingstrategy
PR-URL: https://github.com/nodejs/node/pull/49216
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-08-19 16:15:22 +00:00
Tobias Nießen
c4bbf0a094
doc: fix wording in napi_async_init
Refs: https://github.com/nodejs/node/pull/32930
PR-URL: https://github.com/nodejs/node/pull/49180
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-08-17 19:05:44 +00:00
Carlos Espa
413c16e490
src,permission: add multiple allow-fs-* flags
Support for a single comma separates list for allow-fs-* flags is
removed. Instead now multiple flags can be passed to allow multiple
paths.

Fixes: https://github.com/nodejs/security-wg/issues/1039
PR-URL: https://github.com/nodejs/node/pull/49047
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2023-08-17 18:39:04 +00:00
Yagiz Nizipli
769823e57c
src: add built-in .env file support
PR-URL: https://github.com/nodejs/node/pull/48890
Refs: https://github.com/orgs/nodejs/discussions/44975
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
2023-08-17 14:08:05 +00:00
翠 / green
6bb400f8ec
lib: add api to detect whether source-maps are enabled
Add `process.sourceMapsEnabled` to detect
whether source-maps are enabled.

Fixes: https://github.com/nodejs/node/issues/46304
PR-URL: https://github.com/nodejs/node/pull/46391
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
2023-08-17 08:42:12 +00:00
Jungku Lee
9a2e6bca4f
doc: add print results for examples in WebStreams
PR-URL: https://github.com/nodejs/node/pull/49143
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-08-15 16:41:14 +00:00
Deokjin Kim
4b486e5e28
doc: fix Type notation in webstreams
Replace `type` with `Type: {Promise}`. Plus, fix incorrect
verb(`creates` -> `returns`) in description.

PR-URL: https://github.com/nodejs/node/pull/49121
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
2023-08-14 22:40:02 +00:00
Antoine du Hamel
52b3007f89
doc: fix name of the flag in initialize() docs
PR-URL: https://github.com/nodejs/node/pull/49158
Reviewed-By: Debadree Chatterjee <debadree333@gmail.com>
Reviewed-By: Jacob Smith <jacob@frende.me>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2023-08-14 11:42:30 +00:00
Guy Bedford
ee8b7f1f18
esm: unflag import.meta.resolve
PR-URL: https://github.com/nodejs/node/pull/49028
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Reviewed-By: Jacob Smith <jacob@frende.me>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
2023-08-13 05:42:25 +00:00
Antoine du Hamel
3d20582c0f
module: make CJS load from ESM loader
PR-URL: https://github.com/nodejs/node/pull/47999
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Reviewed-By: Jacob Smith <jacob@frende.me>
2023-08-13 04:23:05 +00:00
Tobias Nießen
e117f16e09
doc: update process.binding deprecation text
As part of the recent security release, 4aa0eff7 updated the
documentation but bd7443ad did not.

PR-URL: https://github.com/nodejs/node/pull/49086
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2023-08-11 19:13:59 +00:00
cjihrig
4e61c22699
test_runner: expose location of tests
This commit adds each test's line and column number to the reporter
output. This will aid in debugging test suite failures when error
stacks are not helpful, test suites are large, or tests have the
same name. This data is also exposed on the spec reporter.

This commit also replaces the filename that was previously being
reported, with the filename where the test actually exists. These
are normally correct, but could be wrong if tests were run from
a file other than the user's entrypoint.

PR-URL: https://github.com/nodejs/node/pull/48975
Fixes: https://github.com/nodejs/node/issues/48457
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2023-08-11 09:12:49 -04:00
Rich Trott
f1b3ade948
doc: add missing period
PR-URL: https://github.com/nodejs/node/pull/49094
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
2023-08-10 15:37:10 +00:00
btea
48c613e5a7 doc: add ESM examples in http.md
PR-URL: https://github.com/nodejs/node/pull/47763
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-08-10 14:44:32 +02:00
Tobias Nießen
4aa0eff787 policy: disable process.binding() when enabled
process.binding() can be used to trivially bypass restrictions imposed
through a policy. Since the function is deprecated already, simply
replace it with a stub when a policy is being enabled.

Fixes: https://hackerone.com/bugs?report_id=1946470
PR-URL: https://github.com/nodejs-private/node-private/pull/397
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
CVE-ID: CVE-2023-32559
2023-08-09 14:29:06 -03:00
Ray
6432060c7c
doc: detailed description of keystrokes Ctrl-Y and Meta-Y
PR-URL: https://github.com/nodejs/node/pull/43529
Reviewed-By: James M Snell <jasnell@gmail.com>
2023-08-08 19:51:43 +00:00
Phil Nash
1cfd61b632
doc: add "type" to test runner event details
In version 20.0.0 (and backported to 19.9.0 and 18.7.0) the test runner
started reporting on whether a test was a suite. This was exposed to
reporters in the `details` object of a `test:pass` or `test:fail` event
but this hasn't been documented. This adds the `type` property to both
event's `details` object.

PR-URL: https://github.com/nodejs/node/pull/49014
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
2023-08-08 18:43:42 +00:00
Daeyeon Jeong
d150316a8e
doc: clarify use of process.env in worker threads on Windows
Signed-off-by: Daeyeon Jeong <daeyeon.dev@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/49008
Fixes: https://github.com/nodejs/node/issues/48955
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Deokjin Kim <deokjin81.kim@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2023-08-05 15:26:19 +00:00
Izaak Schroeder
6ad8318373
esm: add initialize hook, integrate with register
Follows @giltayar's proposed API:

> `register` can pass any data it wants to the loader, which will be
passed to the exported `initialize` function of the loader.
Additionally, if the user of `register` wants to communicate with the
loader, it can just create a `MessageChannel` and pass the port to the
loader as data.

The `register` API is now:

```ts
interface Options {
  parentUrl?: string;
  data?: any;
  transferList?: any[];
}

function register(loader: string, parentUrl?: string): any;
function register(loader: string, options?: Options): any;
```

This API is backwards compatible with the old one (new arguments are
optional and at the end) and allows for passing data into the new
`initialize` hook. If this hook returns data it is passed back to
`register`:

```ts
function initialize(data: any): Promise<any>;
```

**NOTE**: Currently there is no mechanism for a loader to exchange
ownership of something back to the caller.

Refs: https://github.com/nodejs/loaders/issues/147
PR-URL: https://github.com/nodejs/node/pull/48842
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
2023-08-03 05:10:59 +00:00
Matteo Bianchi
8f0f17e1e3
doc: improved joinDuplicateHeaders definition
PR-URL: https://github.com/nodejs/node/pull/48859
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-07-28 10:47:29 +00:00
Deokjin Kim
761f5681c8
doc: fix second parameter name of events.addAbortListener
Second parameter name is described as `listener`(not resource)
in below line.

PR-URL: https://github.com/nodejs/node/pull/48922
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Akhil Marsonya <akhil.marsonya27@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
2023-07-27 15:10:48 +00:00
Chemi Atlow
857774029c
doc: add new reporter events to custom reporter examples
Fixes: https://github.com/nodejs/node/issues/48894
PR-URL: https://github.com/nodejs/node/pull/48903
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-07-26 13:15:24 +00:00
LiviaMedeiros
6bef80a50b
fs: make mkdtemp accept buffers and URL
PR-URL: https://github.com/nodejs/node/pull/48828
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-07-26 19:32:31 +08:00
Darshan Sen
6cd678965f
sea: add support for V8 bytecode-only caching
Refs: https://github.com/nodejs/single-executable/issues/73
Signed-off-by: Darshan Sen <raisinten@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/48191
Fixes: https://github.com/nodejs/single-executable/issues/73
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
2023-07-26 10:10:35 +00:00
Ardi_Nugraha
71165e111a
doc: change duration to duration_ms on test documentation
PR-URL: https://github.com/nodejs/node/pull/48892
Fixes: https://github.com/nodejs/node/issues/48887
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
2023-07-25 13:34:16 +00:00
Guido Penta
36c72c8b2f
doc: improve requireHostHeader
PR-URL: https://github.com/nodejs/node/pull/48860
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-07-25 07:19:44 +00:00
Michael Dawson
5cbf73ec9c
doc: add ver of 18.x where Node-api 9 is supported
Signed-off-by: Michael Dawson <mdawson@devrus.com>
PR-URL: https://github.com/nodejs/node/pull/48876
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
2023-07-24 19:44:26 +00:00
Ethan Arrowood
6c08b1fc02
test_runner: fix test_runner test:fail event type
PR-URL: https://github.com/nodejs/node/pull/48854
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
2023-07-22 16:02:40 +00:00
Joyee Cheung
ac34e7561a
src: support snapshot in single executable applications
This patch adds snapshot support to single executable applications.
To build a snapshot from the main script when preparing the
blob that will be injected into the single executable application,
add `"useSnapshot": true` to the configuration passed to
`--experimental-sea-config`. For example:

```
{
    "main": "snapshot.js",
    "output": "sea-prep.blob",
    "useSnapshot": true
}
```

The main script used to build the snapshot must invoke
`v8.startupSnapshot.setDeserializeMainFunction()` to configure the
entry point. The generated startup snapshot would be part of the
preparation blob and get injected into the final executable.

When the single executable application is launched, instead of running
the `main` script from scratch, Node.js would instead deserialize the
snapshot to get to the state initialized during build-time directly.

PR-URL: https://github.com/nodejs/node/pull/46824
Refs: https://github.com/nodejs/single-executable/discussions/57
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
2023-07-20 22:57:00 +00:00
Juan José Arboleda
d5761a4f8e 2023-07-18, Version 20.5.0 (Current)
Notable changes:

doc:
  * add atlowChemi to collaborators (atlowChemi) https://github.com/nodejs/node/pull/48757
events:
  * (SEMVER-MINOR) allow safely adding listener to abortSignal (Chemi Atlow) https://github.com/nodejs/node/pull/48596
fs:
  * add a fast-path for readFileSync utf-8 (Yagiz Nizipli) https://github.com/nodejs/node/pull/48658
test_runner:
  * (SEMVER-MINOR) add shards support (Raz Luvaton) https://github.com/nodejs/node/pull/48639

PR-URL: https://github.com/nodejs/node/pull/48761
2023-07-20 16:28:46 -05:00
Izaak Schroeder
a2fc4a383e
esm: unflag Module.register and allow nested loader import()
Major functional changes:

- Allow `import()` to work within loaders that require other loaders,
- Unflag the use of `Module.register`.

A new interface `Customizations` has been created in order to unify
`ModuleLoader` (previously `DefaultModuleLoader`), `Hooks` and
`CustomizedModuleLoader` all of which now implement it:

```ts
interface LoadResult {
  format: ModuleFormat;
  source: ModuleSource;
}

interface ResolveResult {
  format: string;
  url: URL['href'];
}

interface Customizations {
  allowImportMetaResolve: boolean;
  load(url: string, context: object): Promise<LoadResult>
  resolve(
    originalSpecifier:
    string, parentURL: string,
    importAssertions: Record<string, string>
  ): Promise<ResolveResult>
  resolveSync(
    originalSpecifier:
    string, parentURL: string,
    importAssertions: Record<string, string>
  ) ResolveResult;
  register(specifier: string, parentUrl: string): any;
  forceLoadHooks(): void;
  importMetaInitialize(meta, context, loader): void;
}
```

The `ModuleLoader` class now has `setCustomizations` which takes an
object of this shape and delegates its responsibilities to this object
if present.

Note that two properties `allowImportMetaResolve` and `resolveSync`
exist now as a mechanism for `import.meta.resolve` – since `Hooks`
does not implement `resolveSync` other loaders cannot use
`import.meta.resolve`; `allowImportMetaResolve` is a way of checking
for that case instead of invoking `resolveSync` and erroring.

Fixes https://github.com/nodejs/node/issues/48515
Closes https://github.com/nodejs/node/pull/48439

PR-URL: https://github.com/nodejs/node/pull/48559
Reviewed-By: Jacob Smith <jacob@frende.me>
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
2023-07-19 10:33:47 +00:00
Michael Dawson
38cc538453
doc: refactor node-api support matrix
- refactor table so that it does not grow for
  every new version of Node.js
- refer to latest version of table as the canonical
  reference
- add info for Node-API v9

Refs: https://github.com/nodejs/node/issues/48277

Signed-off-by: Michael Dawson <mdawson@devrus.com>
PR-URL: https://github.com/nodejs/node/pull/48774
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2023-07-19 00:06:45 +00:00