node-linux-s390x 21.4.0 → 21.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -8,6 +8,8 @@
8
8
  </tr>
9
9
  <tr>
10
10
  <td>
11
+ <a href="#21.6.0">21.6.0</a><br/>
12
+ <a href="#21.5.0">21.5.0</a><br/>
11
13
  <a href="#21.4.0">21.4.0</a><br/>
12
14
  <a href="#21.3.0">21.3.0</a><br/>
13
15
  <a href="#21.2.0">21.2.0</a><br/>
@@ -40,6 +42,260 @@
40
42
  * [io.js](CHANGELOG_IOJS.md)
41
43
  * [Archive](CHANGELOG_ARCHIVE.md)
42
44
 
45
+ <a id="21.6.0"></a>
46
+
47
+ ## 2024-01-15, Version 21.6.0 (Current), @RafaelGSS
48
+
49
+ ### New connection attempt events
50
+
51
+ Three new events were added in the `net.createConnection` flow:
52
+
53
+ * `connectionAttempt`: Emitted when a new connection attempt is established. In case of Happy Eyeballs, this might emitted multiple times.
54
+ * `connectionAttemptFailed`: Emitted when a connection attempt failed. In case of Happy Eyeballs, this might emitted multiple times.
55
+ * `connectionAttemptTimeout`: Emitted when a connection attempt timed out. In case of Happy Eyeballs, this will not be emitted for the last attempt. This is not emitted at all if Happy Eyeballs is not used.
56
+
57
+ Additionally, a previous bug has been fixed where a new connection attempt could have been started after a previous one failed and after the connection was destroyed by the user.
58
+ This led to a failed assertion.
59
+
60
+ Contributed by Paolo Insogna in [#51045](https://github.com/nodejs/node/pull/51045).
61
+
62
+ ### Changes to the Permission Model
63
+
64
+ Node.js 21.6.0 comes with several fixes for the experimental permission model and two new semver-minor commits.
65
+ We're adding a new flag `--allow-addons` to enable addon usage when using the Permission Model.
66
+
67
+ ```console
68
+ $ node --experimental-permission --allow-addons
69
+ ```
70
+
71
+ Contributed by Rafael Gonzaga in [#51183](https://github.com/nodejs/node/pull/51183)
72
+
73
+ And relative paths are now supported through the `--allow-fs-*` flags.
74
+ Therefore, with this release one can use:
75
+
76
+ ```console
77
+ $ node --experimental-permission --allow-fs-read=./index.js
78
+ ```
79
+
80
+ To give only read access to the entrypoint of the application.
81
+
82
+ Contributed by Rafael Gonzaga and Carlos Espa in [#50758](https://github.com/nodejs/node/pull/50758)
83
+
84
+ ### Support configurable snapshot through `--build-snapshot-config` flag
85
+
86
+ We are adding a new flag `--build-snapshot-config` to configure snapshots through a custom JSON configuration file.
87
+
88
+ ```console
89
+ $ node --build-snapshot-config=/path/to/myconfig.json
90
+ ```
91
+
92
+ When using this flag, additional script files provided on the command line will
93
+ not be executed and instead be interpreted as regular command line arguments.
94
+
95
+ These changes were contributed by Joyee Cheung and Anna Henningsen in [#50453](https://github.com/nodejs/node/pull/50453)
96
+
97
+ ### Other Notable Changes
98
+
99
+ * \[[`c31ed51373`](https://github.com/nodejs/node/commit/c31ed51373)] - **(SEMVER-MINOR)** **timers**: export timers.promises (Marco Ippolito) [#51246](https://github.com/nodejs/node/pull/51246)
100
+
101
+ ### Commits
102
+
103
+ * \[[`13a1241b83`](https://github.com/nodejs/node/commit/13a1241b83)] - **assert,crypto**: make KeyObject and CryptoKey testable for equality (Filip Skokan) [#50897](https://github.com/nodejs/node/pull/50897)
104
+ * \[[`4dcc5114aa`](https://github.com/nodejs/node/commit/4dcc5114aa)] - **benchmark**: remove dependency on unshipped tools (Adam Majer) [#51146](https://github.com/nodejs/node/pull/51146)
105
+ * \[[`2eb41f86b3`](https://github.com/nodejs/node/commit/2eb41f86b3)] - **build**: fix for VScode "Reopen in Container" (Serg Kryvonos) [#51271](https://github.com/nodejs/node/pull/51271)
106
+ * \[[`e03ac83c19`](https://github.com/nodejs/node/commit/e03ac83c19)] - **build**: fix arm64 cross-compilation (Michaël Zasso) [#51256](https://github.com/nodejs/node/pull/51256)
107
+ * \[[`cd61fce34e`](https://github.com/nodejs/node/commit/cd61fce34e)] - **build**: add `-flax-vector-conversions` to V8 build (Michaël Zasso) [#51257](https://github.com/nodejs/node/pull/51257)
108
+ * \[[`e5017a522e`](https://github.com/nodejs/node/commit/e5017a522e)] - **crypto**: update CryptoKey symbol properties (Filip Skokan) [#50897](https://github.com/nodejs/node/pull/50897)
109
+ * \[[`c0d2e8be11`](https://github.com/nodejs/node/commit/c0d2e8be11)] - **deps**: update corepack to 0.24.0 (Node.js GitHub Bot) [#51318](https://github.com/nodejs/node/pull/51318)
110
+ * \[[`24a9a72492`](https://github.com/nodejs/node/commit/24a9a72492)] - **deps**: update acorn to 8.11.3 (Node.js GitHub Bot) [#51317](https://github.com/nodejs/node/pull/51317)
111
+ * \[[`e53cbb22c2`](https://github.com/nodejs/node/commit/e53cbb22c2)] - **deps**: update ngtcp2 and nghttp3 (James M Snell) [#51291](https://github.com/nodejs/node/pull/51291)
112
+ * \[[`f00f1204f1`](https://github.com/nodejs/node/commit/f00f1204f1)] - **deps**: update brotli to 1.1.0 (Node.js GitHub Bot) [#50804](https://github.com/nodejs/node/pull/50804)
113
+ * \[[`a41dca0c51`](https://github.com/nodejs/node/commit/a41dca0c51)] - **deps**: update zlib to 1.3.0.1-motley-40e35a7 (Node.js GitHub Bot) [#51274](https://github.com/nodejs/node/pull/51274)
114
+ * \[[`efa12a89c6`](https://github.com/nodejs/node/commit/efa12a89c6)] - **deps**: update simdutf to 4.0.8 (Node.js GitHub Bot) [#51000](https://github.com/nodejs/node/pull/51000)
115
+ * \[[`25eba3d20b`](https://github.com/nodejs/node/commit/25eba3d20b)] - **deps**: V8: cherry-pick de611e69ad51 (Keyhan Vakil) [#51200](https://github.com/nodejs/node/pull/51200)
116
+ * \[[`a07d6e23e4`](https://github.com/nodejs/node/commit/a07d6e23e4)] - **deps**: update simdjson to 3.6.3 (Node.js GitHub Bot) [#51104](https://github.com/nodejs/node/pull/51104)
117
+ * \[[`6d1bfcb2dd`](https://github.com/nodejs/node/commit/6d1bfcb2dd)] - **deps**: update googletest to 530d5c8 (Node.js GitHub Bot) [#51191](https://github.com/nodejs/node/pull/51191)
118
+ * \[[`75e5615c43`](https://github.com/nodejs/node/commit/75e5615c43)] - **deps**: update acorn-walk to 8.3.1 (Node.js GitHub Bot) [#50457](https://github.com/nodejs/node/pull/50457)
119
+ * \[[`3ecc7dcc00`](https://github.com/nodejs/node/commit/3ecc7dcc00)] - **deps**: update acorn-walk to 8.3.0 (Node.js GitHub Bot) [#50457](https://github.com/nodejs/node/pull/50457)
120
+ * \[[`e2f8d741c8`](https://github.com/nodejs/node/commit/e2f8d741c8)] - **deps**: update zlib to 1.3.0.1-motley-dd5fc13 (Node.js GitHub Bot) [#51105](https://github.com/nodejs/node/pull/51105)
121
+ * \[[`4a5d3bda72`](https://github.com/nodejs/node/commit/4a5d3bda72)] - **doc**: the GN files should use Node's license (Cheng Zhao) [#50694](https://github.com/nodejs/node/pull/50694)
122
+ * \[[`84127514ba`](https://github.com/nodejs/node/commit/84127514ba)] - **doc**: improve localWindowSize event descriptions (Davy Landman) [#51071](https://github.com/nodejs/node/pull/51071)
123
+ * \[[`8ee882a49c`](https://github.com/nodejs/node/commit/8ee882a49c)] - **doc**: mark `--jitless` as experimental (Antoine du Hamel) [#51247](https://github.com/nodejs/node/pull/51247)
124
+ * \[[`876743ece1`](https://github.com/nodejs/node/commit/876743ece1)] - **doc**: run license-builder (github-actions\[bot]) [#51199](https://github.com/nodejs/node/pull/51199)
125
+ * \[[`ec6fcff009`](https://github.com/nodejs/node/commit/ec6fcff009)] - **doc**: fix limitations and known issues in pm (Rafael Gonzaga) [#51184](https://github.com/nodejs/node/pull/51184)
126
+ * \[[`c13a5c0373`](https://github.com/nodejs/node/commit/c13a5c0373)] - **doc**: mention node:wasi in the Threat Model (Rafael Gonzaga) [#51211](https://github.com/nodejs/node/pull/51211)
127
+ * \[[`4b19e62444`](https://github.com/nodejs/node/commit/4b19e62444)] - **doc**: remove ambiguous 'considered' (Rich Trott) [#51207](https://github.com/nodejs/node/pull/51207)
128
+ * \[[`5453abd6ad`](https://github.com/nodejs/node/commit/5453abd6ad)] - **doc**: set exit code in custom test runner example (Matteo Collina) [#51056](https://github.com/nodejs/node/pull/51056)
129
+ * \[[`f9d4e07faf`](https://github.com/nodejs/node/commit/f9d4e07faf)] - **doc**: remove version from `maintaining-dependencies.md` (Antoine du Hamel) [#51195](https://github.com/nodejs/node/pull/51195)
130
+ * \[[`df8927a073`](https://github.com/nodejs/node/commit/df8927a073)] - **doc**: mention native addons are restricted in pm (Rafael Gonzaga) [#51185](https://github.com/nodejs/node/pull/51185)
131
+ * \[[`e636d83914`](https://github.com/nodejs/node/commit/e636d83914)] - **doc**: correct note on behavior of stats.isDirectory (Nick Reilingh) [#50946](https://github.com/nodejs/node/pull/50946)
132
+ * \[[`1c71435c2a`](https://github.com/nodejs/node/commit/1c71435c2a)] - **doc**: fix `TestsStream` parent class (Jungku Lee) [#51181](https://github.com/nodejs/node/pull/51181)
133
+ * \[[`2c227b0d64`](https://github.com/nodejs/node/commit/2c227b0d64)] - **doc**: fix simdjson wrong link (Marco Ippolito) [#51177](https://github.com/nodejs/node/pull/51177)
134
+ * \[[`efa13e1943`](https://github.com/nodejs/node/commit/efa13e1943)] - **(SEMVER-MINOR)** **doc**: add documentation for --build-snapshot-config (Anna Henningsen) [#50453](https://github.com/nodejs/node/pull/50453)
135
+ * \[[`941aedc6fc`](https://github.com/nodejs/node/commit/941aedc6fc)] - **errors**: fix stacktrace of SystemError (uzlopak) [#49956](https://github.com/nodejs/node/pull/49956)
136
+ * \[[`47548d9e61`](https://github.com/nodejs/node/commit/47548d9e61)] - **esm**: fix hint on invalid module specifier (Antoine du Hamel) [#51223](https://github.com/nodejs/node/pull/51223)
137
+ * \[[`091098f40a`](https://github.com/nodejs/node/commit/091098f40a)] - **fs**: fix fs.promises.realpath for long paths on Windows (翠 / green) [#51032](https://github.com/nodejs/node/pull/51032)
138
+ * \[[`e5a8fa01aa`](https://github.com/nodejs/node/commit/e5a8fa01aa)] - **fs**: make offset, position & length args in fh.read() optional (Pulkit Gupta) [#51087](https://github.com/nodejs/node/pull/51087)
139
+ * \[[`c87e5d51cc`](https://github.com/nodejs/node/commit/c87e5d51cc)] - **fs**: add missing jsdoc parameters to `readSync` (Yagiz Nizipli) [#51225](https://github.com/nodejs/node/pull/51225)
140
+ * \[[`e24249cf37`](https://github.com/nodejs/node/commit/e24249cf37)] - **fs**: remove `internalModuleReadJSON` binding (Yagiz Nizipli) [#51224](https://github.com/nodejs/node/pull/51224)
141
+ * \[[`7421467812`](https://github.com/nodejs/node/commit/7421467812)] - **fs**: improve mkdtemp performance for buffer prefix (Yagiz Nizipli) [#51078](https://github.com/nodejs/node/pull/51078)
142
+ * \[[`5b229d775f`](https://github.com/nodejs/node/commit/5b229d775f)] - **fs**: validate fd synchronously on c++ (Yagiz Nizipli) [#51027](https://github.com/nodejs/node/pull/51027)
143
+ * \[[`c7a135962d`](https://github.com/nodejs/node/commit/c7a135962d)] - **http**: remove misleading warning (Luigi Pinca) [#51204](https://github.com/nodejs/node/pull/51204)
144
+ * \[[`a325746ff4`](https://github.com/nodejs/node/commit/a325746ff4)] - **http**: do not override user-provided options object (KuthorX) [#33633](https://github.com/nodejs/node/pull/33633)
145
+ * \[[`89eee7763f`](https://github.com/nodejs/node/commit/89eee7763f)] - **http2**: addtl http/2 settings (Marten Richter) [#49025](https://github.com/nodejs/node/pull/49025)
146
+ * \[[`624142947f`](https://github.com/nodejs/node/commit/624142947f)] - **lib**: fix use of `--frozen-intrinsics` with `--jitless` (Antoine du Hamel) [#51248](https://github.com/nodejs/node/pull/51248)
147
+ * \[[`8f845eb001`](https://github.com/nodejs/node/commit/8f845eb001)] - **lib**: move function declaration outside of loop (Sanjaiyan Parthipan) [#51242](https://github.com/nodejs/node/pull/51242)
148
+ * \[[`ed7305e49b`](https://github.com/nodejs/node/commit/ed7305e49b)] - **lib**: reduce overhead of `SafePromiseAllSettledReturnVoid` calls (Antoine du Hamel) [#51243](https://github.com/nodejs/node/pull/51243)
149
+ * \[[`291265ce27`](https://github.com/nodejs/node/commit/291265ce27)] - **lib**: expose default prepareStackTrace (Chengzhong Wu) [#50827](https://github.com/nodejs/node/pull/50827)
150
+ * \[[`8ff6bc45ca`](https://github.com/nodejs/node/commit/8ff6bc45ca)] - **lib,permission**: handle buffer on fs.symlink (Rafael Gonzaga) [#51212](https://github.com/nodejs/node/pull/51212)
151
+ * \[[`416b4f8063`](https://github.com/nodejs/node/commit/416b4f8063)] - **(SEMVER-MINOR)** **lib,src,permission**: port path.resolve to C++ (Rafael Gonzaga) [#50758](https://github.com/nodejs/node/pull/50758)
152
+ * \[[`6648a5c576`](https://github.com/nodejs/node/commit/6648a5c576)] - **meta**: notify tsc on changes in SECURITY.md (Rafael Gonzaga) [#51259](https://github.com/nodejs/node/pull/51259)
153
+ * \[[`83a99ccedd`](https://github.com/nodejs/node/commit/83a99ccedd)] - **meta**: update artifact actions to v4 (Michaël Zasso) [#51219](https://github.com/nodejs/node/pull/51219)
154
+ * \[[`b621ada69a`](https://github.com/nodejs/node/commit/b621ada69a)] - **module**: move the CJS exports cache to internal/modules/cjs/loader (Joyee Cheung) [#51157](https://github.com/nodejs/node/pull/51157)
155
+ * \[[`e4be5b60f0`](https://github.com/nodejs/node/commit/e4be5b60f0)] - **(SEMVER-MINOR)** **net**: add connection attempt events (Paolo Insogna) [#51045](https://github.com/nodejs/node/pull/51045)
156
+ * \[[`3a492056e2`](https://github.com/nodejs/node/commit/3a492056e2)] - **node-api**: type tag external values without v8::Private (Chengzhong Wu) [#51149](https://github.com/nodejs/node/pull/51149)
157
+ * \[[`b2135ae7dc`](https://github.com/nodejs/node/commit/b2135ae7dc)] - **node-api**: segregate nogc APIs from rest via type system (Gabriel Schulhof) [#50060](https://github.com/nodejs/node/pull/50060)
158
+ * \[[`8f4325dcd5`](https://github.com/nodejs/node/commit/8f4325dcd5)] - **permission**: fix wildcard when children > 1 (Rafael Gonzaga) [#51209](https://github.com/nodejs/node/pull/51209)
159
+ * \[[`7ecf99404e`](https://github.com/nodejs/node/commit/7ecf99404e)] - **quic**: update quic impl to use latest ngtcp2/nghttp3 (James M Snell) [#51291](https://github.com/nodejs/node/pull/51291)
160
+ * \[[`5b32e21f3b`](https://github.com/nodejs/node/commit/5b32e21f3b)] - **quic**: add quic internalBinding, refine Endpoint, add types (James M Snell) [#51112](https://github.com/nodejs/node/pull/51112)
161
+ * \[[`3310095bea`](https://github.com/nodejs/node/commit/3310095bea)] - **repl**: fix prepareStackTrace frames array order (Chengzhong Wu) [#50827](https://github.com/nodejs/node/pull/50827)
162
+ * \[[`a0ff00b526`](https://github.com/nodejs/node/commit/a0ff00b526)] - **src**: avoid draining platform tasks at FreeEnvironment (Chengzhong Wu) [#51290](https://github.com/nodejs/node/pull/51290)
163
+ * \[[`115e0585cd`](https://github.com/nodejs/node/commit/115e0585cd)] - **src**: add fast api for Histogram (James M Snell) [#51296](https://github.com/nodejs/node/pull/51296)
164
+ * \[[`29b81576c6`](https://github.com/nodejs/node/commit/29b81576c6)] - **src**: refactor `GetCreationContext` calls (Yagiz Nizipli) [#51287](https://github.com/nodejs/node/pull/51287)
165
+ * \[[`54dd978400`](https://github.com/nodejs/node/commit/54dd978400)] - **src**: enter isolate before destructing IsolateData (Ben Noordhuis) [#51138](https://github.com/nodejs/node/pull/51138)
166
+ * \[[`864ecb0dfa`](https://github.com/nodejs/node/commit/864ecb0dfa)] - **src**: do not treat all paths ending with node\_modules as such (Michaël Zasso) [#51269](https://github.com/nodejs/node/pull/51269)
167
+ * \[[`df31c8114c`](https://github.com/nodejs/node/commit/df31c8114c)] - **src**: eliminate duplicate code in histogram.cc (James M Snell) [#51263](https://github.com/nodejs/node/pull/51263)
168
+ * \[[`17c73e6d0c`](https://github.com/nodejs/node/commit/17c73e6d0c)] - **src**: fix unix abstract socket path for trace event (theanarkh) [#50858](https://github.com/nodejs/node/pull/50858)
169
+ * \[[`96d64edc94`](https://github.com/nodejs/node/commit/96d64edc94)] - **src**: use BignumPointer and use BN\_clear\_free (James M Snell) [#50454](https://github.com/nodejs/node/pull/50454)
170
+ * \[[`8a2dd93a14`](https://github.com/nodejs/node/commit/8a2dd93a14)] - **src**: implement FastByteLengthUtf8 with simdutf::utf8\_length\_from\_latin1 (Daniel Lemire) [#50840](https://github.com/nodejs/node/pull/50840)
171
+ * \[[`e54ddf898f`](https://github.com/nodejs/node/commit/e54ddf898f)] - **(SEMVER-MINOR)** **src**: support configurable snapshot (Joyee Cheung) [#50453](https://github.com/nodejs/node/pull/50453)
172
+ * \[[`a69c7d7bc3`](https://github.com/nodejs/node/commit/a69c7d7bc3)] - **(SEMVER-MINOR)** **src,permission**: add --allow-addon flag (Rafael Gonzaga) [#51183](https://github.com/nodejs/node/pull/51183)
173
+ * \[[`e7925e66fc`](https://github.com/nodejs/node/commit/e7925e66fc)] - **src,stream**: improve WriteString (ywave620) [#51155](https://github.com/nodejs/node/pull/51155)
174
+ * \[[`82de6603af`](https://github.com/nodejs/node/commit/82de6603af)] - **stream**: fix code style (Mattias Buelens) [#51168](https://github.com/nodejs/node/pull/51168)
175
+ * \[[`e443953656`](https://github.com/nodejs/node/commit/e443953656)] - **stream**: fix cloned webstreams not being unref'd (James M Snell) [#51255](https://github.com/nodejs/node/pull/51255)
176
+ * \[[`757a84c9ea`](https://github.com/nodejs/node/commit/757a84c9ea)] - **test**: fix flaky conditions for ppc64 SEA tests (Richard Lau) [#51422](https://github.com/nodejs/node/pull/51422)
177
+ * \[[`85ee2f7255`](https://github.com/nodejs/node/commit/85ee2f7255)] - **test**: replace forEach() with for...of (Alexander Jones) [#50608](https://github.com/nodejs/node/pull/50608)
178
+ * \[[`549e4b4142`](https://github.com/nodejs/node/commit/549e4b4142)] - **test**: replace forEach with for...of (Ospite Privilegiato) [#50787](https://github.com/nodejs/node/pull/50787)
179
+ * \[[`ef44f9bef2`](https://github.com/nodejs/node/commit/ef44f9bef2)] - **test**: replace foreach with for of (lucacapocci94-dev) [#50790](https://github.com/nodejs/node/pull/50790)
180
+ * \[[`652af45485`](https://github.com/nodejs/node/commit/652af45485)] - **test**: replace forEach() with for...of (Jia) [#50610](https://github.com/nodejs/node/pull/50610)
181
+ * \[[`684dd9db2f`](https://github.com/nodejs/node/commit/684dd9db2f)] - **test**: fix inconsistency write size in `test-fs-readfile-tostring-fail` (Jungku Lee) [#51141](https://github.com/nodejs/node/pull/51141)
182
+ * \[[`aaf710f535`](https://github.com/nodejs/node/commit/aaf710f535)] - **test**: replace forEach test-http-server-multiheaders2 (Marco Mac) [#50794](https://github.com/nodejs/node/pull/50794)
183
+ * \[[`57c64550cc`](https://github.com/nodejs/node/commit/57c64550cc)] - **test**: replace forEach with for-of in test-webcrypto-export-import-ec (Chiara Ricciardi) [#51249](https://github.com/nodejs/node/pull/51249)
184
+ * \[[`88e865181b`](https://github.com/nodejs/node/commit/88e865181b)] - **test**: move to for of loop in test-http-hostname-typechecking.js (Luca Del Puppo) [#50782](https://github.com/nodejs/node/pull/50782)
185
+ * \[[`3db376f67a`](https://github.com/nodejs/node/commit/3db376f67a)] - **test**: skip test-watch-mode-inspect on arm (Michael Dawson) [#51210](https://github.com/nodejs/node/pull/51210)
186
+ * \[[`38232d1c52`](https://github.com/nodejs/node/commit/38232d1c52)] - **test**: replace forEach with for of in file test-trace-events-net.js (Ianna83) [#50789](https://github.com/nodejs/node/pull/50789)
187
+ * \[[`f1cb58355a`](https://github.com/nodejs/node/commit/f1cb58355a)] - **test**: replace forEach() with for...of in test/parallel/test-util-log.js (Edoardo Dusi) [#50783](https://github.com/nodejs/node/pull/50783)
188
+ * \[[`9bfd84c117`](https://github.com/nodejs/node/commit/9bfd84c117)] - **test**: replace forEach with for of in test-trace-events-api.js (Andrea Pavone) [#50784](https://github.com/nodejs/node/pull/50784)
189
+ * \[[`7e9834915a`](https://github.com/nodejs/node/commit/7e9834915a)] - **test**: replace forEach with for-of in test-v8-serders.js (Mattia Iannone) [#50791](https://github.com/nodejs/node/pull/50791)
190
+ * \[[`b6f232e841`](https://github.com/nodejs/node/commit/b6f232e841)] - **test**: add URL tests to fs-read in pm (Rafael Gonzaga) [#51213](https://github.com/nodejs/node/pull/51213)
191
+ * \[[`8a2178c5f5`](https://github.com/nodejs/node/commit/8a2178c5f5)] - **test**: use tmpdir.refresh() in test-esm-loader-resolve-type.mjs (Luigi Pinca) [#51206](https://github.com/nodejs/node/pull/51206)
192
+ * \[[`7e9a0b192a`](https://github.com/nodejs/node/commit/7e9a0b192a)] - **test**: use tmpdir.refresh() in test-esm-json.mjs (Luigi Pinca) [#51205](https://github.com/nodejs/node/pull/51205)
193
+ * \[[`d7c2572fe0`](https://github.com/nodejs/node/commit/d7c2572fe0)] - **test**: fix flakiness in worker\*.test-free-called (Jithil P Ponnan) [#51013](https://github.com/nodejs/node/pull/51013)
194
+ * \[[`979cebc955`](https://github.com/nodejs/node/commit/979cebc955)] - **test\_runner**: fixed test object is incorrectly passed to setup() (Pulkit Gupta) [#50982](https://github.com/nodejs/node/pull/50982)
195
+ * \[[`63db82abe6`](https://github.com/nodejs/node/commit/63db82abe6)] - **test\_runner**: fixed to run after hook if before throws an error (Pulkit Gupta) [#51062](https://github.com/nodejs/node/pull/51062)
196
+ * \[[`c31ed51373`](https://github.com/nodejs/node/commit/c31ed51373)] - **(SEMVER-MINOR)** **timers**: export timers.promises (Marco Ippolito) [#51246](https://github.com/nodejs/node/pull/51246)
197
+ * \[[`fc10f889eb`](https://github.com/nodejs/node/commit/fc10f889eb)] - **tools**: update lint-md-dependencies to rollup\@4.9.2 (Node.js GitHub Bot) [#51320](https://github.com/nodejs/node/pull/51320)
198
+ * \[[`d5a5f12d15`](https://github.com/nodejs/node/commit/d5a5f12d15)] - **tools**: fix dep\_updaters dir updates (Michaël Zasso) [#51294](https://github.com/nodejs/node/pull/51294)
199
+ * \[[`bdcb5ed510`](https://github.com/nodejs/node/commit/bdcb5ed510)] - **tools**: update inspector\_protocol to c488ba2 (cola119) [#51293](https://github.com/nodejs/node/pull/51293)
200
+ * \[[`69a46add77`](https://github.com/nodejs/node/commit/69a46add77)] - **tools**: update inspector\_protocol to 9b4a4aa (cola119) [#51293](https://github.com/nodejs/node/pull/51293)
201
+ * \[[`e325f49d19`](https://github.com/nodejs/node/commit/e325f49d19)] - **tools**: update inspector\_protocol to 2f51e05 (cola119) [#51293](https://github.com/nodejs/node/pull/51293)
202
+ * \[[`60d804851b`](https://github.com/nodejs/node/commit/60d804851b)] - **tools**: update inspector\_protocol to d7b099b (cola119) [#51293](https://github.com/nodejs/node/pull/51293)
203
+ * \[[`d18168489f`](https://github.com/nodejs/node/commit/d18168489f)] - **tools**: update inspector\_protocol to 912eb68 (cola119) [#51293](https://github.com/nodejs/node/pull/51293)
204
+ * \[[`ef4f46fc39`](https://github.com/nodejs/node/commit/ef4f46fc39)] - **tools**: update inspector\_protocol to 547c5b8 (cola119) [#51293](https://github.com/nodejs/node/pull/51293)
205
+ * \[[`c3126fc016`](https://github.com/nodejs/node/commit/c3126fc016)] - **tools**: update inspector\_protocol to ca525fc (cola119) [#51293](https://github.com/nodejs/node/pull/51293)
206
+ * \[[`917d887dde`](https://github.com/nodejs/node/commit/917d887dde)] - **tools**: update lint-md-dependencies to rollup\@4.9.1 (Node.js GitHub Bot) [#51276](https://github.com/nodejs/node/pull/51276)
207
+ * \[[`37594918e0`](https://github.com/nodejs/node/commit/37594918e0)] - **tools**: check timezone current version (Marco Ippolito) [#51178](https://github.com/nodejs/node/pull/51178)
208
+ * \[[`d0d2faf899`](https://github.com/nodejs/node/commit/d0d2faf899)] - **tools**: update lint-md-dependencies to rollup\@4.9.0 (Node.js GitHub Bot) [#51193](https://github.com/nodejs/node/pull/51193)
209
+ * \[[`c96ef6533c`](https://github.com/nodejs/node/commit/c96ef6533c)] - **tools**: update eslint to 8.56.0 (Node.js GitHub Bot) [#51194](https://github.com/nodejs/node/pull/51194)
210
+ * \[[`f4f781d493`](https://github.com/nodejs/node/commit/f4f781d493)] - **util**: pass invalidSubtypeIndex instead of trimmedSubtype to error (Gaurish Sethia) [#51264](https://github.com/nodejs/node/pull/51264)
211
+ * \[[`867b484429`](https://github.com/nodejs/node/commit/867b484429)] - **watch**: clarify that the fileName parameter can be null (Luigi Pinca) [#51305](https://github.com/nodejs/node/pull/51305)
212
+ * \[[`56e8969b65`](https://github.com/nodejs/node/commit/56e8969b65)] - **watch**: fix null `fileName` on windows systems (vnc5) [#49891](https://github.com/nodejs/node/pull/49891)
213
+ * \[[`3f4fd6efbb`](https://github.com/nodejs/node/commit/3f4fd6efbb)] - **watch**: fix infinite loop when passing --watch=true flag (Pulkit Gupta) [#51160](https://github.com/nodejs/node/pull/51160)
214
+
215
+ <a id="21.5.0"></a>
216
+
217
+ ## 2023-12-19, Version 21.5.0 (Current), @RafaelGSS
218
+
219
+ ### Notable Changes
220
+
221
+ * \[[`0dd53da722`](https://github.com/nodejs/node/commit/0dd53da722)] - **(SEMVER-MINOR)** **deps**: add simdjson (Yagiz Nizipli) [#50322](https://github.com/nodejs/node/pull/50322)
222
+ * \[[`9f54987fbc`](https://github.com/nodejs/node/commit/9f54987fbc)] - **module**: merge config with `package_json_reader` (Yagiz Nizipli) [#50322](https://github.com/nodejs/node/pull/50322)
223
+ * \[[`45e4f82912`](https://github.com/nodejs/node/commit/45e4f82912)] - **src**: move package resolver to c++ (Yagiz Nizipli) [#50322](https://github.com/nodejs/node/pull/50322)
224
+
225
+ #### Deprecations
226
+
227
+ * \[[`26ed4ad01f`](https://github.com/nodejs/node/commit/26ed4ad01f)] - **doc**: deprecate hash constructor (Marco Ippolito) [#51077](https://github.com/nodejs/node/pull/51077)
228
+ * \[[`58ca66a1a7`](https://github.com/nodejs/node/commit/58ca66a1a7)] - **doc**: deprecate `dirent.path` (Antoine du Hamel) [#51020](https://github.com/nodejs/node/pull/51020)
229
+
230
+ ### Commits
231
+
232
+ * \[[`1bbdbdfbeb`](https://github.com/nodejs/node/commit/1bbdbdfbeb)] - **benchmark**: update iterations in benchmark/perf\_hooks (Lei Shi) [#50869](https://github.com/nodejs/node/pull/50869)
233
+ * \[[`087fb0908e`](https://github.com/nodejs/node/commit/087fb0908e)] - **benchmark**: update iterations in benchmark/crypto/aes-gcm-throughput.js (Lei Shi) [#50929](https://github.com/nodejs/node/pull/50929)
234
+ * \[[`53b16c71fb`](https://github.com/nodejs/node/commit/53b16c71fb)] - **benchmark**: update iteration and size in benchmark/crypto/randomBytes.js (Lei Shi) [#50868](https://github.com/nodejs/node/pull/50868)
235
+ * \[[`38fd0ca753`](https://github.com/nodejs/node/commit/38fd0ca753)] - **benchmark**: add undici websocket benchmark (Chenyu Yang) [#50586](https://github.com/nodejs/node/pull/50586)
236
+ * \[[`b148c43244`](https://github.com/nodejs/node/commit/b148c43244)] - **benchmark**: add create-hash benchmark (Joyee Cheung) [#51026](https://github.com/nodejs/node/pull/51026)
237
+ * \[[`fdd8c18f96`](https://github.com/nodejs/node/commit/fdd8c18f96)] - **benchmark**: update interations and len in benchmark/util/text-decoder.js (Lei Shi) [#50938](https://github.com/nodejs/node/pull/50938)
238
+ * \[[`a9972057ac`](https://github.com/nodejs/node/commit/a9972057ac)] - **benchmark**: update iterations of benchmark/util/type-check.js (Lei Shi) [#50937](https://github.com/nodejs/node/pull/50937)
239
+ * \[[`b80bb1329b`](https://github.com/nodejs/node/commit/b80bb1329b)] - **benchmark**: update iterations in benchmark/util/normalize-encoding.js (Lei Shi) [#50934](https://github.com/nodejs/node/pull/50934)
240
+ * \[[`dbee03d646`](https://github.com/nodejs/node/commit/dbee03d646)] - **benchmark**: update iterations in benchmark/util/inspect-array.js (Lei Shi) [#50933](https://github.com/nodejs/node/pull/50933)
241
+ * \[[`f2d83a3a84`](https://github.com/nodejs/node/commit/f2d83a3a84)] - **benchmark**: update iterations in benchmark/util/format.js (Lei Shi) [#50932](https://github.com/nodejs/node/pull/50932)
242
+ * \[[`2581fce553`](https://github.com/nodejs/node/commit/2581fce553)] - **bootstrap**: improve snapshot unsupported builtin warnings (Joyee Cheung) [#50944](https://github.com/nodejs/node/pull/50944)
243
+ * \[[`735bad3694`](https://github.com/nodejs/node/commit/735bad3694)] - **build**: fix warnings from uv for gn build (Cheng Zhao) [#51069](https://github.com/nodejs/node/pull/51069)
244
+ * \[[`8da9d969f9`](https://github.com/nodejs/node/commit/8da9d969f9)] - **deps**: V8: cherry-pick 0fd478bcdabd (Joyee Cheung) [#50572](https://github.com/nodejs/node/pull/50572)
245
+ * \[[`429fbb37c1`](https://github.com/nodejs/node/commit/429fbb37c1)] - **deps**: update simdjson to v3.6.2 (Yagiz Nizipli) [#50986](https://github.com/nodejs/node/pull/50986)
246
+ * \[[`9950103253`](https://github.com/nodejs/node/commit/9950103253)] - **deps**: update zlib to 1.3-22124f5 (Node.js GitHub Bot) [#50910](https://github.com/nodejs/node/pull/50910)
247
+ * \[[`0b61823e8b`](https://github.com/nodejs/node/commit/0b61823e8b)] - **deps**: update undici to 5.28.2 (Node.js GitHub Bot) [#51024](https://github.com/nodejs/node/pull/51024)
248
+ * \[[`95d8a273cc`](https://github.com/nodejs/node/commit/95d8a273cc)] - **deps**: cherry-pick bfbe4e38d7 from libuv upstream (Abdirahim Musse) [#50650](https://github.com/nodejs/node/pull/50650)
249
+ * \[[`06038a489e`](https://github.com/nodejs/node/commit/06038a489e)] - **deps**: update libuv to 1.47.0 (Node.js GitHub Bot) [#50650](https://github.com/nodejs/node/pull/50650)
250
+ * \[[`0dd53da722`](https://github.com/nodejs/node/commit/0dd53da722)] - **(SEMVER-MINOR)** **deps**: add simdjson (Yagiz Nizipli) [#50322](https://github.com/nodejs/node/pull/50322)
251
+ * \[[`04eaa5cdd7`](https://github.com/nodejs/node/commit/04eaa5cdd7)] - **doc**: run license-builder (github-actions\[bot]) [#51111](https://github.com/nodejs/node/pull/51111)
252
+ * \[[`26ed4ad01f`](https://github.com/nodejs/node/commit/26ed4ad01f)] - **doc**: deprecate hash constructor (Marco Ippolito) [#51077](https://github.com/nodejs/node/pull/51077)
253
+ * \[[`637ffce4c4`](https://github.com/nodejs/node/commit/637ffce4c4)] - **doc**: add note regarding `--experimental-detect-module` (Shubherthi Mitra) [#51089](https://github.com/nodejs/node/pull/51089)
254
+ * \[[`838179b096`](https://github.com/nodejs/node/commit/838179b096)] - **doc**: correct tracingChannel.traceCallback() (Gerhard Stöbich) [#51068](https://github.com/nodejs/node/pull/51068)
255
+ * \[[`539bee4f0a`](https://github.com/nodejs/node/commit/539bee4f0a)] - **doc**: use length argument in pbkdf2Key (Tobias Nießen) [#51066](https://github.com/nodejs/node/pull/51066)
256
+ * \[[`c45a9a3187`](https://github.com/nodejs/node/commit/c45a9a3187)] - **doc**: add deprecation notice to `dirent.path` (Antoine du Hamel) [#51059](https://github.com/nodejs/node/pull/51059)
257
+ * \[[`58ca66a1a7`](https://github.com/nodejs/node/commit/58ca66a1a7)] - **doc**: deprecate `dirent.path` (Antoine du Hamel) [#51020](https://github.com/nodejs/node/pull/51020)
258
+ * \[[`c2b6edf9ab`](https://github.com/nodejs/node/commit/c2b6edf9ab)] - **esm**: fix hook name in error message (Bruce MacNaughton) [#50466](https://github.com/nodejs/node/pull/50466)
259
+ * \[[`35e8f26f07`](https://github.com/nodejs/node/commit/35e8f26f07)] - **fs**: throw fchownSync error from c++ (Yagiz Nizipli) [#51075](https://github.com/nodejs/node/pull/51075)
260
+ * \[[`c3c8237089`](https://github.com/nodejs/node/commit/c3c8237089)] - **fs**: update params in jsdoc for createReadStream and createWriteStream (Jungku Lee) [#51063](https://github.com/nodejs/node/pull/51063)
261
+ * \[[`3f7f3ce8c9`](https://github.com/nodejs/node/commit/3f7f3ce8c9)] - **fs**: improve error performance of readvSync (IlyasShabi) [#50100](https://github.com/nodejs/node/pull/50100)
262
+ * \[[`7f95926f17`](https://github.com/nodejs/node/commit/7f95926f17)] - **http**: handle multi-value content-disposition header (Arsalan Ahmad) [#50977](https://github.com/nodejs/node/pull/50977)
263
+ * \[[`7a8a2d5632`](https://github.com/nodejs/node/commit/7a8a2d5632)] - **lib**: don't parse windows drive letters as schemes (华) [#50580](https://github.com/nodejs/node/pull/50580)
264
+ * \[[`aa2be4bb76`](https://github.com/nodejs/node/commit/aa2be4bb76)] - **module**: load source maps in `commonjs` translator (Hiroki Osame) [#51033](https://github.com/nodejs/node/pull/51033)
265
+ * \[[`c0e5e74876`](https://github.com/nodejs/node/commit/c0e5e74876)] - **module**: document `parentURL` in register options (Hiroki Osame) [#51039](https://github.com/nodejs/node/pull/51039)
266
+ * \[[`4eedf5e694`](https://github.com/nodejs/node/commit/4eedf5e694)] - **module**: fix recently introduced coverity warning (Michael Dawson) [#50843](https://github.com/nodejs/node/pull/50843)
267
+ * \[[`9f54987fbc`](https://github.com/nodejs/node/commit/9f54987fbc)] - **module**: merge config with `package_json_reader` (Yagiz Nizipli) [#50322](https://github.com/nodejs/node/pull/50322)
268
+ * \[[`5f95dca638`](https://github.com/nodejs/node/commit/5f95dca638)] - **node-api**: introduce experimental feature flags (Gabriel Schulhof) [#50991](https://github.com/nodejs/node/pull/50991)
269
+ * \[[`3fb7fc909e`](https://github.com/nodejs/node/commit/3fb7fc909e)] - **quic**: further implementation details (James M Snell) [#48244](https://github.com/nodejs/node/pull/48244)
270
+ * \[[`fa25e069fc`](https://github.com/nodejs/node/commit/fa25e069fc)] - **src**: implement countObjectsWithPrototype (Joyee Cheung) [#50572](https://github.com/nodejs/node/pull/50572)
271
+ * \[[`abe90527e4`](https://github.com/nodejs/node/commit/abe90527e4)] - **src**: register udp\_wrap external references (Joyee Cheung) [#50943](https://github.com/nodejs/node/pull/50943)
272
+ * \[[`84e2f51d14`](https://github.com/nodejs/node/commit/84e2f51d14)] - **src**: register spawn\_sync external references (Joyee Cheung) [#50943](https://github.com/nodejs/node/pull/50943)
273
+ * \[[`2cfee53d7b`](https://github.com/nodejs/node/commit/2cfee53d7b)] - **src**: register process\_wrap external references (Joyee Cheung) [#50943](https://github.com/nodejs/node/pull/50943)
274
+ * \[[`9b7f79a8bd`](https://github.com/nodejs/node/commit/9b7f79a8bd)] - **src**: fix double free reported by coverity (Michael Dawson) [#51046](https://github.com/nodejs/node/pull/51046)
275
+ * \[[`fc5503246e`](https://github.com/nodejs/node/commit/fc5503246e)] - **src**: remove unused headers in `node_file.cc` (Jungku Lee) [#50927](https://github.com/nodejs/node/pull/50927)
276
+ * \[[`c3abdc58af`](https://github.com/nodejs/node/commit/c3abdc58af)] - **src**: implement --trace-promises (Joyee Cheung) [#50899](https://github.com/nodejs/node/pull/50899)
277
+ * \[[`f90fc83e97`](https://github.com/nodejs/node/commit/f90fc83e97)] - **src**: fix dynamically linked zlib version (Richard Lau) [#51007](https://github.com/nodejs/node/pull/51007)
278
+ * \[[`9bf144379f`](https://github.com/nodejs/node/commit/9bf144379f)] - **src**: omit bool values of package.json main field (Yagiz Nizipli) [#50965](https://github.com/nodejs/node/pull/50965)
279
+ * \[[`45e4f82912`](https://github.com/nodejs/node/commit/45e4f82912)] - **src**: move package resolver to c++ (Yagiz Nizipli) [#50322](https://github.com/nodejs/node/pull/50322)
280
+ * \[[`71acd36778`](https://github.com/nodejs/node/commit/71acd36778)] - **stream**: implement TransformStream cleanup using "transformer.cancel" (Debadree Chatterjee) [#50126](https://github.com/nodejs/node/pull/50126)
281
+ * \[[`5112306064`](https://github.com/nodejs/node/commit/5112306064)] - **stream**: fix fd is null when calling clearBuffer (kylo5aby) [#50994](https://github.com/nodejs/node/pull/50994)
282
+ * \[[`ed070755ec`](https://github.com/nodejs/node/commit/ed070755ec)] - **test**: deflake test-diagnostics-channel-memory-leak (Joyee Cheung) [#50572](https://github.com/nodejs/node/pull/50572)
283
+ * \[[`aee01ff1b4`](https://github.com/nodejs/node/commit/aee01ff1b4)] - **test**: test syncrhnous methods of child\_process in snapshot (Joyee Cheung) [#50943](https://github.com/nodejs/node/pull/50943)
284
+ * \[[`cc949869a3`](https://github.com/nodejs/node/commit/cc949869a3)] - **test**: handle relative https redirect (Richard Lau) [#51121](https://github.com/nodejs/node/pull/51121)
285
+ * \[[`048349ed4c`](https://github.com/nodejs/node/commit/048349ed4c)] - **test**: fix test runner colored output test (Moshe Atlow) [#51064](https://github.com/nodejs/node/pull/51064)
286
+ * \[[`7f5291d783`](https://github.com/nodejs/node/commit/7f5291d783)] - **test**: resolve path of embedtest binary correctly (Cheng Zhao) [#50276](https://github.com/nodejs/node/pull/50276)
287
+ * \[[`4ddd0daf5f`](https://github.com/nodejs/node/commit/4ddd0daf5f)] - **test**: escape cwd in regexp (Jérémy Lal) [#50980](https://github.com/nodejs/node/pull/50980)
288
+ * \[[`3ccd5faabb`](https://github.com/nodejs/node/commit/3ccd5faabb)] - **test\_runner**: format coverage report for tap reporter (Pulkit Gupta) [#51119](https://github.com/nodejs/node/pull/51119)
289
+ * \[[`d5c9adf3df`](https://github.com/nodejs/node/commit/d5c9adf3df)] - **test\_runner**: fix infinite loop when files are undefined in test runner (Pulkit Gupta) [#51047](https://github.com/nodejs/node/pull/51047)
290
+ * \[[`328a41701c`](https://github.com/nodejs/node/commit/328a41701c)] - **tools**: update lint-md-dependencies to rollup\@4.7.0 (Node.js GitHub Bot) [#51106](https://github.com/nodejs/node/pull/51106)
291
+ * \[[`297cb6f5c2`](https://github.com/nodejs/node/commit/297cb6f5c2)] - **tools**: update doc to highlight.js\@11.9.0 unified\@11.0.4 (Node.js GitHub Bot) [#50459](https://github.com/nodejs/node/pull/50459)
292
+ * \[[`4705023343`](https://github.com/nodejs/node/commit/4705023343)] - **tools**: fix simdjson updater (Yagiz Nizipli) [#50986](https://github.com/nodejs/node/pull/50986)
293
+ * \[[`c9841583db`](https://github.com/nodejs/node/commit/c9841583db)] - **tools**: update eslint to 8.55.0 (Node.js GitHub Bot) [#51025](https://github.com/nodejs/node/pull/51025)
294
+ * \[[`2b4671125e`](https://github.com/nodejs/node/commit/2b4671125e)] - **tools**: update lint-md-dependencies to rollup\@4.6.1 (Node.js GitHub Bot) [#51022](https://github.com/nodejs/node/pull/51022)
295
+ * \[[`cd891b37f6`](https://github.com/nodejs/node/commit/cd891b37f6)] - **util**: improve performance of function areSimilarFloatArrays (Liu Jia) [#51040](https://github.com/nodejs/node/pull/51040)
296
+ * \[[`e178a43509`](https://github.com/nodejs/node/commit/e178a43509)] - **vm**: use v8::DeserializeInternalFieldsCallback explicitly (Joyee Cheung) [#50984](https://github.com/nodejs/node/pull/50984)
297
+ * \[[`fd028e146f`](https://github.com/nodejs/node/commit/fd028e146f)] - **win,tools**: upgrade Windows signing to smctl (Stefan Stojanovic) [#50956](https://github.com/nodejs/node/pull/50956)
298
+
43
299
  <a id="21.4.0"></a>
44
300
 
45
301
  ## 2023-12-05, Version 21.4.0 (Current), @targos
package/LICENSE CHANGED
@@ -1285,9 +1285,9 @@ The externally maintained libraries used by Node.js are:
1285
1285
  - zlib, located at deps/zlib, is licensed as follows:
1286
1286
  """
1287
1287
  zlib.h -- interface of the 'zlib' general purpose compression library
1288
- version 1.2.13.1, October xxth, 2022
1288
+ version 1.3.0.1, August xxth, 2023
1289
1289
 
1290
- Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler
1290
+ Copyright (C) 1995-2023 Jean-loup Gailly and Mark Adler
1291
1291
 
1292
1292
  This software is provided 'as-is', without any express or implied
1293
1293
  warranty. In no event will the authors be held liable for any damages
@@ -1309,6 +1309,211 @@ The externally maintained libraries used by Node.js are:
1309
1309
  jloup@gzip.org madler@alumni.caltech.edu
1310
1310
  """
1311
1311
 
1312
+ - simdjson, located at deps/simdjson, is licensed as follows:
1313
+ """
1314
+ Apache License
1315
+ Version 2.0, January 2004
1316
+ http://www.apache.org/licenses/
1317
+
1318
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1319
+
1320
+ 1. Definitions.
1321
+
1322
+ "License" shall mean the terms and conditions for use, reproduction,
1323
+ and distribution as defined by Sections 1 through 9 of this document.
1324
+
1325
+ "Licensor" shall mean the copyright owner or entity authorized by
1326
+ the copyright owner that is granting the License.
1327
+
1328
+ "Legal Entity" shall mean the union of the acting entity and all
1329
+ other entities that control, are controlled by, or are under common
1330
+ control with that entity. For the purposes of this definition,
1331
+ "control" means (i) the power, direct or indirect, to cause the
1332
+ direction or management of such entity, whether by contract or
1333
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
1334
+ outstanding shares, or (iii) beneficial ownership of such entity.
1335
+
1336
+ "You" (or "Your") shall mean an individual or Legal Entity
1337
+ exercising permissions granted by this License.
1338
+
1339
+ "Source" form shall mean the preferred form for making modifications,
1340
+ including but not limited to software source code, documentation
1341
+ source, and configuration files.
1342
+
1343
+ "Object" form shall mean any form resulting from mechanical
1344
+ transformation or translation of a Source form, including but
1345
+ not limited to compiled object code, generated documentation,
1346
+ and conversions to other media types.
1347
+
1348
+ "Work" shall mean the work of authorship, whether in Source or
1349
+ Object form, made available under the License, as indicated by a
1350
+ copyright notice that is included in or attached to the work
1351
+ (an example is provided in the Appendix below).
1352
+
1353
+ "Derivative Works" shall mean any work, whether in Source or Object
1354
+ form, that is based on (or derived from) the Work and for which the
1355
+ editorial revisions, annotations, elaborations, or other modifications
1356
+ represent, as a whole, an original work of authorship. For the purposes
1357
+ of this License, Derivative Works shall not include works that remain
1358
+ separable from, or merely link (or bind by name) to the interfaces of,
1359
+ the Work and Derivative Works thereof.
1360
+
1361
+ "Contribution" shall mean any work of authorship, including
1362
+ the original version of the Work and any modifications or additions
1363
+ to that Work or Derivative Works thereof, that is intentionally
1364
+ submitted to Licensor for inclusion in the Work by the copyright owner
1365
+ or by an individual or Legal Entity authorized to submit on behalf of
1366
+ the copyright owner. For the purposes of this definition, "submitted"
1367
+ means any form of electronic, verbal, or written communication sent
1368
+ to the Licensor or its representatives, including but not limited to
1369
+ communication on electronic mailing lists, source code control systems,
1370
+ and issue tracking systems that are managed by, or on behalf of, the
1371
+ Licensor for the purpose of discussing and improving the Work, but
1372
+ excluding communication that is conspicuously marked or otherwise
1373
+ designated in writing by the copyright owner as "Not a Contribution."
1374
+
1375
+ "Contributor" shall mean Licensor and any individual or Legal Entity
1376
+ on behalf of whom a Contribution has been received by Licensor and
1377
+ subsequently incorporated within the Work.
1378
+
1379
+ 2. Grant of Copyright License. Subject to the terms and conditions of
1380
+ this License, each Contributor hereby grants to You a perpetual,
1381
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
1382
+ copyright license to reproduce, prepare Derivative Works of,
1383
+ publicly display, publicly perform, sublicense, and distribute the
1384
+ Work and such Derivative Works in Source or Object form.
1385
+
1386
+ 3. Grant of Patent License. Subject to the terms and conditions of
1387
+ this License, each Contributor hereby grants to You a perpetual,
1388
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
1389
+ (except as stated in this section) patent license to make, have made,
1390
+ use, offer to sell, sell, import, and otherwise transfer the Work,
1391
+ where such license applies only to those patent claims licensable
1392
+ by such Contributor that are necessarily infringed by their
1393
+ Contribution(s) alone or by combination of their Contribution(s)
1394
+ with the Work to which such Contribution(s) was submitted. If You
1395
+ institute patent litigation against any entity (including a
1396
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
1397
+ or a Contribution incorporated within the Work constitutes direct
1398
+ or contributory patent infringement, then any patent licenses
1399
+ granted to You under this License for that Work shall terminate
1400
+ as of the date such litigation is filed.
1401
+
1402
+ 4. Redistribution. You may reproduce and distribute copies of the
1403
+ Work or Derivative Works thereof in any medium, with or without
1404
+ modifications, and in Source or Object form, provided that You
1405
+ meet the following conditions:
1406
+
1407
+ (a) You must give any other recipients of the Work or
1408
+ Derivative Works a copy of this License; and
1409
+
1410
+ (b) You must cause any modified files to carry prominent notices
1411
+ stating that You changed the files; and
1412
+
1413
+ (c) You must retain, in the Source form of any Derivative Works
1414
+ that You distribute, all copyright, patent, trademark, and
1415
+ attribution notices from the Source form of the Work,
1416
+ excluding those notices that do not pertain to any part of
1417
+ the Derivative Works; and
1418
+
1419
+ (d) If the Work includes a "NOTICE" text file as part of its
1420
+ distribution, then any Derivative Works that You distribute must
1421
+ include a readable copy of the attribution notices contained
1422
+ within such NOTICE file, excluding those notices that do not
1423
+ pertain to any part of the Derivative Works, in at least one
1424
+ of the following places: within a NOTICE text file distributed
1425
+ as part of the Derivative Works; within the Source form or
1426
+ documentation, if provided along with the Derivative Works; or,
1427
+ within a display generated by the Derivative Works, if and
1428
+ wherever such third-party notices normally appear. The contents
1429
+ of the NOTICE file are for informational purposes only and
1430
+ do not modify the License. You may add Your own attribution
1431
+ notices within Derivative Works that You distribute, alongside
1432
+ or as an addendum to the NOTICE text from the Work, provided
1433
+ that such additional attribution notices cannot be construed
1434
+ as modifying the License.
1435
+
1436
+ You may add Your own copyright statement to Your modifications and
1437
+ may provide additional or different license terms and conditions
1438
+ for use, reproduction, or distribution of Your modifications, or
1439
+ for any such Derivative Works as a whole, provided Your use,
1440
+ reproduction, and distribution of the Work otherwise complies with
1441
+ the conditions stated in this License.
1442
+
1443
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
1444
+ any Contribution intentionally submitted for inclusion in the Work
1445
+ by You to the Licensor shall be under the terms and conditions of
1446
+ this License, without any additional terms or conditions.
1447
+ Notwithstanding the above, nothing herein shall supersede or modify
1448
+ the terms of any separate license agreement you may have executed
1449
+ with Licensor regarding such Contributions.
1450
+
1451
+ 6. Trademarks. This License does not grant permission to use the trade
1452
+ names, trademarks, service marks, or product names of the Licensor,
1453
+ except as required for reasonable and customary use in describing the
1454
+ origin of the Work and reproducing the content of the NOTICE file.
1455
+
1456
+ 7. Disclaimer of Warranty. Unless required by applicable law or
1457
+ agreed to in writing, Licensor provides the Work (and each
1458
+ Contributor provides its Contributions) on an "AS IS" BASIS,
1459
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
1460
+ implied, including, without limitation, any warranties or conditions
1461
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
1462
+ PARTICULAR PURPOSE. You are solely responsible for determining the
1463
+ appropriateness of using or redistributing the Work and assume any
1464
+ risks associated with Your exercise of permissions under this License.
1465
+
1466
+ 8. Limitation of Liability. In no event and under no legal theory,
1467
+ whether in tort (including negligence), contract, or otherwise,
1468
+ unless required by applicable law (such as deliberate and grossly
1469
+ negligent acts) or agreed to in writing, shall any Contributor be
1470
+ liable to You for damages, including any direct, indirect, special,
1471
+ incidental, or consequential damages of any character arising as a
1472
+ result of this License or out of the use or inability to use the
1473
+ Work (including but not limited to damages for loss of goodwill,
1474
+ work stoppage, computer failure or malfunction, or any and all
1475
+ other commercial damages or losses), even if such Contributor
1476
+ has been advised of the possibility of such damages.
1477
+
1478
+ 9. Accepting Warranty or Additional Liability. While redistributing
1479
+ the Work or Derivative Works thereof, You may choose to offer,
1480
+ and charge a fee for, acceptance of support, warranty, indemnity,
1481
+ or other liability obligations and/or rights consistent with this
1482
+ License. However, in accepting such obligations, You may act only
1483
+ on Your own behalf and on Your sole responsibility, not on behalf
1484
+ of any other Contributor, and only if You agree to indemnify,
1485
+ defend, and hold each Contributor harmless for any liability
1486
+ incurred by, or claims asserted against, such Contributor by reason
1487
+ of your accepting any such warranty or additional liability.
1488
+
1489
+ END OF TERMS AND CONDITIONS
1490
+
1491
+ APPENDIX: How to apply the Apache License to your work.
1492
+
1493
+ To apply the Apache License to your work, attach the following
1494
+ boilerplate notice, with the fields enclosed by brackets "{}"
1495
+ replaced with your own identifying information. (Don't include
1496
+ the brackets!) The text should be enclosed in the appropriate
1497
+ comment syntax for the file format. We also recommend that a
1498
+ file or class name and description of purpose be included on the
1499
+ same "printed page" as the copyright notice for easier
1500
+ identification within third-party archives.
1501
+
1502
+ Copyright 2018-2023 The simdjson authors
1503
+
1504
+ Licensed under the Apache License, Version 2.0 (the "License");
1505
+ you may not use this file except in compliance with the License.
1506
+ You may obtain a copy of the License at
1507
+
1508
+ http://www.apache.org/licenses/LICENSE-2.0
1509
+
1510
+ Unless required by applicable law or agreed to in writing, software
1511
+ distributed under the License is distributed on an "AS IS" BASIS,
1512
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1513
+ See the License for the specific language governing permissions and
1514
+ limitations under the License.
1515
+ """
1516
+
1312
1517
  - simdutf, located at deps/simdutf, is licensed as follows:
1313
1518
  """
1314
1519
  Copyright 2021 The simdutf authors
@@ -1767,6 +1972,35 @@ The externally maintained libraries used by Node.js are:
1767
1972
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1768
1973
  """
1769
1974
 
1975
+ - gypi_to_gn.py, located at tools/gypi_to_gn.py, is licensed as follows:
1976
+ """
1977
+ Redistribution and use in source and binary forms, with or without
1978
+ modification, are permitted provided that the following conditions are
1979
+ met:
1980
+
1981
+ * Redistributions of source code must retain the above copyright
1982
+ notice, this list of conditions and the following disclaimer.
1983
+ * Redistributions in binary form must reproduce the above
1984
+ copyright notice, this list of conditions and the following disclaimer
1985
+ in the documentation and/or other materials provided with the
1986
+ distribution.
1987
+ * Neither the name of Google LLC nor the names of its
1988
+ contributors may be used to endorse or promote products derived from
1989
+ this software without specific prior written permission.
1990
+
1991
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1992
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1993
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1994
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1995
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1996
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1997
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1998
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1999
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2000
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2001
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2002
+ """
2003
+
1770
2004
  - ESLint, located at tools/node_modules/eslint, is licensed as follows:
1771
2005
  """
1772
2006
  Copyright OpenJS Foundation and other contributors, <www.openjsf.org>
package/bin/node CHANGED
Binary file
@@ -36,7 +36,7 @@
36
36
 
37
37
  # Reset this number to 0 on major V8 upgrades.
38
38
  # Increment by one for each non-official patch applied to deps/v8.
39
- 'v8_embedder_string': '-node.17',
39
+ 'v8_embedder_string': '-node.19',
40
40
 
41
41
  ##### V8 defaults for Node.js #####
42
42
 
@@ -182,7 +182,6 @@
182
182
  'lib/internal/modules/esm/loader.js',
183
183
  'lib/internal/modules/esm/module_job.js',
184
184
  'lib/internal/modules/esm/module_map.js',
185
- 'lib/internal/modules/esm/package_config.js',
186
185
  'lib/internal/modules/esm/resolve.js',
187
186
  'lib/internal/modules/esm/shared_constants.js',
188
187
  'lib/internal/modules/esm/translators.js',
@@ -49,8 +49,8 @@
49
49
 
50
50
  EXTERN_C_START
51
51
 
52
- NAPI_EXTERN napi_status NAPI_CDECL
53
- napi_get_last_error_info(napi_env env, const napi_extended_error_info** result);
52
+ NAPI_EXTERN napi_status NAPI_CDECL napi_get_last_error_info(
53
+ node_api_nogc_env env, const napi_extended_error_info** result);
54
54
 
55
55
  // Getters for defined singletons
56
56
  NAPI_EXTERN napi_status NAPI_CDECL napi_get_undefined(napi_env env,
@@ -93,11 +93,12 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_create_string_utf16(napi_env env,
93
93
  size_t length,
94
94
  napi_value* result);
95
95
  #ifdef NAPI_EXPERIMENTAL
96
+ #define NODE_API_EXPERIMENTAL_HAS_EXTERNAL_STRINGS
96
97
  NAPI_EXTERN napi_status NAPI_CDECL
97
98
  node_api_create_external_string_latin1(napi_env env,
98
99
  char* str,
99
100
  size_t length,
100
- napi_finalize finalize_callback,
101
+ node_api_nogc_finalize finalize_callback,
101
102
  void* finalize_hint,
102
103
  napi_value* result,
103
104
  bool* copied);
@@ -105,7 +106,7 @@ NAPI_EXTERN napi_status NAPI_CDECL
105
106
  node_api_create_external_string_utf16(napi_env env,
106
107
  char16_t* str,
107
108
  size_t length,
108
- napi_finalize finalize_callback,
109
+ node_api_nogc_finalize finalize_callback,
109
110
  void* finalize_hint,
110
111
  napi_value* result,
111
112
  bool* copied);
@@ -289,7 +290,7 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_instanceof(napi_env env,
289
290
 
290
291
  // Gets all callback info in a single call. (Ugly, but faster.)
291
292
  NAPI_EXTERN napi_status NAPI_CDECL napi_get_cb_info(
292
- napi_env env, // [in] NAPI environment handle
293
+ napi_env env, // [in] Node-API environment handle
293
294
  napi_callback_info cbinfo, // [in] Opaque callback-info handle
294
295
  size_t* argc, // [in-out] Specifies the size of the provided argv array
295
296
  // and receives the actual count of args.
@@ -313,7 +314,7 @@ napi_define_class(napi_env env,
313
314
  NAPI_EXTERN napi_status NAPI_CDECL napi_wrap(napi_env env,
314
315
  napi_value js_object,
315
316
  void* native_object,
316
- napi_finalize finalize_cb,
317
+ node_api_nogc_finalize finalize_cb,
317
318
  void* finalize_hint,
318
319
  napi_ref* result);
319
320
  NAPI_EXTERN napi_status NAPI_CDECL napi_unwrap(napi_env env,
@@ -325,7 +326,7 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_remove_wrap(napi_env env,
325
326
  NAPI_EXTERN napi_status NAPI_CDECL
326
327
  napi_create_external(napi_env env,
327
328
  void* data,
328
- napi_finalize finalize_cb,
329
+ node_api_nogc_finalize finalize_cb,
329
330
  void* finalize_hint,
330
331
  napi_value* result);
331
332
  NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_external(napi_env env,
@@ -424,7 +425,7 @@ NAPI_EXTERN napi_status NAPI_CDECL
424
425
  napi_create_external_arraybuffer(napi_env env,
425
426
  void* external_data,
426
427
  size_t byte_length,
427
- napi_finalize finalize_cb,
428
+ node_api_nogc_finalize finalize_cb,
428
429
  void* finalize_hint,
429
430
  napi_value* result);
430
431
  #endif // NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED
@@ -466,7 +467,7 @@ napi_get_dataview_info(napi_env env,
466
467
  size_t* byte_offset);
467
468
 
468
469
  // version management
469
- NAPI_EXTERN napi_status NAPI_CDECL napi_get_version(napi_env env,
470
+ NAPI_EXTERN napi_status NAPI_CDECL napi_get_version(node_api_nogc_env env,
470
471
  uint32_t* result);
471
472
 
472
473
  // Promises
@@ -490,7 +491,7 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_run_script(napi_env env,
490
491
 
491
492
  // Memory management
492
493
  NAPI_EXTERN napi_status NAPI_CDECL napi_adjust_external_memory(
493
- napi_env env, int64_t change_in_bytes, int64_t* adjusted_value);
494
+ node_api_nogc_env env, int64_t change_in_bytes, int64_t* adjusted_value);
494
495
 
495
496
  #if NAPI_VERSION >= 5
496
497
 
@@ -508,19 +509,21 @@ NAPI_EXTERN napi_status NAPI_CDECL napi_get_date_value(napi_env env,
508
509
  double* result);
509
510
 
510
511
  // Add finalizer for pointer
511
- NAPI_EXTERN napi_status NAPI_CDECL napi_add_finalizer(napi_env env,
512
- napi_value js_object,
513
- void* finalize_data,
514
- napi_finalize finalize_cb,
515
- void* finalize_hint,
516
- napi_ref* result);
512
+ NAPI_EXTERN napi_status NAPI_CDECL
513
+ napi_add_finalizer(napi_env env,
514
+ napi_value js_object,
515
+ void* finalize_data,
516
+ node_api_nogc_finalize finalize_cb,
517
+ void* finalize_hint,
518
+ napi_ref* result);
517
519
 
518
520
  #endif // NAPI_VERSION >= 5
519
521
 
520
522
  #ifdef NAPI_EXPERIMENTAL
523
+ #define NODE_API_EXPERIMENTAL_HAS_POST_FINALIZER
521
524
 
522
525
  NAPI_EXTERN napi_status NAPI_CDECL
523
- node_api_post_finalizer(napi_env env,
526
+ node_api_post_finalizer(node_api_nogc_env env,
524
527
  napi_finalize finalize_cb,
525
528
  void* finalize_data,
526
529
  void* finalize_hint);
@@ -564,10 +567,13 @@ napi_get_all_property_names(napi_env env,
564
567
  napi_value* result);
565
568
 
566
569
  // Instance data
567
- NAPI_EXTERN napi_status NAPI_CDECL napi_set_instance_data(
568
- napi_env env, void* data, napi_finalize finalize_cb, void* finalize_hint);
570
+ NAPI_EXTERN napi_status NAPI_CDECL
571
+ napi_set_instance_data(node_api_nogc_env env,
572
+ void* data,
573
+ napi_finalize finalize_cb,
574
+ void* finalize_hint);
569
575
 
570
- NAPI_EXTERN napi_status NAPI_CDECL napi_get_instance_data(napi_env env,
576
+ NAPI_EXTERN napi_status NAPI_CDECL napi_get_instance_data(node_api_nogc_env env,
571
577
  void** data);
572
578
  #endif // NAPI_VERSION >= 6
573
579
 
@@ -22,6 +22,35 @@ typedef uint16_t char16_t;
22
22
  // JSVM API types are all opaque pointers for ABI stability
23
23
  // typedef undefined structs instead of void* for compile time type safety
24
24
  typedef struct napi_env__* napi_env;
25
+
26
+ // We need to mark APIs which can be called during garbage collection (GC),
27
+ // meaning that they do not affect the state of the JS engine, and can
28
+ // therefore be called synchronously from a finalizer that itself runs
29
+ // synchronously during GC. Such APIs can receive either a `napi_env` or a
30
+ // `node_api_nogc_env` as their first parameter, because we should be able to
31
+ // also call them during normal, non-garbage-collecting operations, whereas
32
+ // APIs that affect the state of the JS engine can only receive a `napi_env` as
33
+ // their first parameter, because we must not call them during GC. In lieu of
34
+ // inheritance, we use the properties of the const qualifier to accomplish
35
+ // this, because both a const and a non-const value can be passed to an API
36
+ // expecting a const value, but only a non-const value can be passed to an API
37
+ // expecting a non-const value.
38
+ //
39
+ // In conjunction with appropriate CFLAGS to warn us if we're passing a const
40
+ // (nogc) environment into an API that expects a non-const environment, and the
41
+ // definition of nogc finalizer function pointer types below, which receive a
42
+ // nogc environment as their first parameter, and can thus only call nogc APIs
43
+ // (unless the user explicitly casts the environment), we achieve the ability
44
+ // to ensure at compile time that we do not call APIs that affect the state of
45
+ // the JS engine from a synchronous (nogc) finalizer.
46
+ #if !defined(NAPI_EXPERIMENTAL) || \
47
+ (defined(NAPI_EXPERIMENTAL) && \
48
+ defined(NODE_API_EXPERIMENTAL_NOGC_ENV_OPT_OUT))
49
+ typedef struct napi_env__* node_api_nogc_env;
50
+ #else
51
+ typedef const struct napi_env__* node_api_nogc_env;
52
+ #endif
53
+
25
54
  typedef struct napi_value__* napi_value;
26
55
  typedef struct napi_ref__* napi_ref;
27
56
  typedef struct napi_handle_scope__* napi_handle_scope;
@@ -116,6 +145,16 @@ typedef void(NAPI_CDECL* napi_finalize)(napi_env env,
116
145
  void* finalize_data,
117
146
  void* finalize_hint);
118
147
 
148
+ #if !defined(NAPI_EXPERIMENTAL) || \
149
+ (defined(NAPI_EXPERIMENTAL) && \
150
+ defined(NODE_API_EXPERIMENTAL_NOGC_ENV_OPT_OUT))
151
+ typedef napi_finalize node_api_nogc_finalize;
152
+ #else
153
+ typedef void(NAPI_CDECL* node_api_nogc_finalize)(node_api_nogc_env env,
154
+ void* finalize_data,
155
+ void* finalize_hint);
156
+ #endif
157
+
119
158
  typedef struct {
120
159
  // One of utf8name or name should be NULL.
121
160
  const char* utf8name;
@@ -80,6 +80,7 @@
80
80
 
81
81
  #include <functional>
82
82
  #include <memory>
83
+ #include <optional>
83
84
  #include <ostream>
84
85
 
85
86
  // We cannot use __POSIX__ in this header because that's only defined when
@@ -659,6 +660,33 @@ enum Flags : uint64_t {
659
660
  };
660
661
  } // namespace EnvironmentFlags
661
662
 
663
+ enum class SnapshotFlags : uint32_t {
664
+ kDefault = 0,
665
+ // Whether code cache should be generated as part of the snapshot.
666
+ // Code cache reduces the time spent on compiling functions included
667
+ // in the snapshot at the expense of a bigger snapshot size and
668
+ // potentially breaking portability of the snapshot.
669
+ kWithoutCodeCache = 1 << 0,
670
+ };
671
+
672
+ struct SnapshotConfig {
673
+ SnapshotFlags flags = SnapshotFlags::kDefault;
674
+
675
+ // When builder_script_path is std::nullopt, the snapshot is generated as a
676
+ // built-in snapshot instead of a custom one, and it's expected that the
677
+ // built-in snapshot only contains states that reproduce in every run of the
678
+ // application. The event loop won't be run when generating a built-in
679
+ // snapshot, so asynchronous operations should be avoided.
680
+ //
681
+ // When builder_script_path is an std::string, it should match args[1]
682
+ // passed to CreateForSnapshotting(). The embedder is also expected to use
683
+ // LoadEnvironment() to run a script matching this path. In that case the
684
+ // snapshot is generated as a custom snapshot and the event loop is run, so
685
+ // the snapshot builder can execute asynchronous operations as long as they
686
+ // are run to completion when the snapshot is taken.
687
+ std::optional<std::string> builder_script_path;
688
+ };
689
+
662
690
  struct InspectorParentHandle {
663
691
  virtual ~InspectorParentHandle() = default;
664
692
  };
@@ -870,7 +898,8 @@ class NODE_EXTERN CommonEnvironmentSetup {
870
898
  MultiIsolatePlatform* platform,
871
899
  std::vector<std::string>* errors,
872
900
  const std::vector<std::string>& args = {},
873
- const std::vector<std::string>& exec_args = {});
901
+ const std::vector<std::string>& exec_args = {},
902
+ const SnapshotConfig& snapshot_config = {});
874
903
  EmbedderSnapshotData::Pointer CreateSnapshot();
875
904
 
876
905
  struct uv_loop_s* event_loop() const;
@@ -905,7 +934,8 @@ class NODE_EXTERN CommonEnvironmentSetup {
905
934
  std::vector<std::string>*,
906
935
  const EmbedderSnapshotData*,
907
936
  uint32_t flags,
908
- std::function<Environment*(const CommonEnvironmentSetup*)>);
937
+ std::function<Environment*(const CommonEnvironmentSetup*)>,
938
+ const SnapshotConfig* config = nullptr);
909
939
  };
910
940
 
911
941
  // Implementation for CommonEnvironmentSetup::Create
@@ -131,7 +131,7 @@ NAPI_EXTERN napi_status NAPI_CDECL
131
131
  napi_create_external_buffer(napi_env env,
132
132
  size_t length,
133
133
  void* data,
134
- napi_finalize finalize_cb,
134
+ node_api_nogc_finalize finalize_cb,
135
135
  void* finalize_hint,
136
136
  napi_value* result);
137
137
  #endif // NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED
@@ -159,20 +159,20 @@ napi_create_async_work(napi_env env,
159
159
  napi_async_work* result);
160
160
  NAPI_EXTERN napi_status NAPI_CDECL napi_delete_async_work(napi_env env,
161
161
  napi_async_work work);
162
- NAPI_EXTERN napi_status NAPI_CDECL napi_queue_async_work(napi_env env,
162
+ NAPI_EXTERN napi_status NAPI_CDECL napi_queue_async_work(node_api_nogc_env env,
163
163
  napi_async_work work);
164
- NAPI_EXTERN napi_status NAPI_CDECL napi_cancel_async_work(napi_env env,
164
+ NAPI_EXTERN napi_status NAPI_CDECL napi_cancel_async_work(node_api_nogc_env env,
165
165
  napi_async_work work);
166
166
 
167
167
  // version management
168
168
  NAPI_EXTERN napi_status NAPI_CDECL
169
- napi_get_node_version(napi_env env, const napi_node_version** version);
169
+ napi_get_node_version(node_api_nogc_env env, const napi_node_version** version);
170
170
 
171
171
  #if NAPI_VERSION >= 2
172
172
 
173
173
  // Return the current libuv event loop for a given environment
174
174
  NAPI_EXTERN napi_status NAPI_CDECL
175
- napi_get_uv_event_loop(napi_env env, struct uv_loop_s** loop);
175
+ napi_get_uv_event_loop(node_api_nogc_env env, struct uv_loop_s** loop);
176
176
 
177
177
  #endif // NAPI_VERSION >= 2
178
178
 
@@ -181,11 +181,11 @@ napi_get_uv_event_loop(napi_env env, struct uv_loop_s** loop);
181
181
  NAPI_EXTERN napi_status NAPI_CDECL napi_fatal_exception(napi_env env,
182
182
  napi_value err);
183
183
 
184
- NAPI_EXTERN napi_status NAPI_CDECL
185
- napi_add_env_cleanup_hook(napi_env env, napi_cleanup_hook fun, void* arg);
184
+ NAPI_EXTERN napi_status NAPI_CDECL napi_add_env_cleanup_hook(
185
+ node_api_nogc_env env, napi_cleanup_hook fun, void* arg);
186
186
 
187
- NAPI_EXTERN napi_status NAPI_CDECL
188
- napi_remove_env_cleanup_hook(napi_env env, napi_cleanup_hook fun, void* arg);
187
+ NAPI_EXTERN napi_status NAPI_CDECL napi_remove_env_cleanup_hook(
188
+ node_api_nogc_env env, napi_cleanup_hook fun, void* arg);
189
189
 
190
190
  NAPI_EXTERN napi_status NAPI_CDECL
191
191
  napi_open_callback_scope(napi_env env,
@@ -209,7 +209,7 @@ napi_create_threadsafe_function(napi_env env,
209
209
  size_t max_queue_size,
210
210
  size_t initial_thread_count,
211
211
  void* thread_finalize_data,
212
- napi_finalize thread_finalize_cb,
212
+ node_api_nogc_finalize thread_finalize_cb,
213
213
  void* context,
214
214
  napi_threadsafe_function_call_js call_js_cb,
215
215
  napi_threadsafe_function* result);
@@ -228,18 +228,18 @@ napi_acquire_threadsafe_function(napi_threadsafe_function func);
228
228
  NAPI_EXTERN napi_status NAPI_CDECL napi_release_threadsafe_function(
229
229
  napi_threadsafe_function func, napi_threadsafe_function_release_mode mode);
230
230
 
231
- NAPI_EXTERN napi_status NAPI_CDECL
232
- napi_unref_threadsafe_function(napi_env env, napi_threadsafe_function func);
231
+ NAPI_EXTERN napi_status NAPI_CDECL napi_unref_threadsafe_function(
232
+ node_api_nogc_env env, napi_threadsafe_function func);
233
233
 
234
- NAPI_EXTERN napi_status NAPI_CDECL
235
- napi_ref_threadsafe_function(napi_env env, napi_threadsafe_function func);
234
+ NAPI_EXTERN napi_status NAPI_CDECL napi_ref_threadsafe_function(
235
+ node_api_nogc_env env, napi_threadsafe_function func);
236
236
 
237
237
  #endif // NAPI_VERSION >= 4
238
238
 
239
239
  #if NAPI_VERSION >= 8
240
240
 
241
241
  NAPI_EXTERN napi_status NAPI_CDECL
242
- napi_add_async_cleanup_hook(napi_env env,
242
+ napi_add_async_cleanup_hook(node_api_nogc_env env,
243
243
  napi_async_cleanup_hook hook,
244
244
  void* arg,
245
245
  napi_async_cleanup_hook_handle* remove_handle);
@@ -252,7 +252,7 @@ napi_remove_async_cleanup_hook(napi_async_cleanup_hook_handle remove_handle);
252
252
  #if NAPI_VERSION >= 9
253
253
 
254
254
  NAPI_EXTERN napi_status NAPI_CDECL
255
- node_api_get_module_file_name(napi_env env, const char** result);
255
+ node_api_get_module_file_name(node_api_nogc_env env, const char** result);
256
256
 
257
257
  #endif // NAPI_VERSION >= 9
258
258
 
@@ -23,7 +23,7 @@
23
23
  #define SRC_NODE_VERSION_H_
24
24
 
25
25
  #define NODE_MAJOR_VERSION 21
26
- #define NODE_MINOR_VERSION 4
26
+ #define NODE_MINOR_VERSION 6
27
27
  #define NODE_PATCH_VERSION 0
28
28
 
29
29
  #define NODE_VERSION_IS_LTS 0
@@ -31,7 +31,7 @@
31
31
  */
32
32
 
33
33
  #define UV_VERSION_MAJOR 1
34
- #define UV_VERSION_MINOR 46
34
+ #define UV_VERSION_MINOR 47
35
35
  #define UV_VERSION_PATCH 0
36
36
  #define UV_VERSION_IS_RELEASE 1
37
37
  #define UV_VERSION_SUFFIX ""
package/include/node/uv.h CHANGED
@@ -1885,6 +1885,18 @@ struct uv_loop_s {
1885
1885
  UV_EXTERN void* uv_loop_get_data(const uv_loop_t*);
1886
1886
  UV_EXTERN void uv_loop_set_data(uv_loop_t*, void* data);
1887
1887
 
1888
+ /* String utilities needed internally for dealing with Windows. */
1889
+ size_t uv_utf16_length_as_wtf8(const uint16_t* utf16,
1890
+ ssize_t utf16_len);
1891
+ int uv_utf16_to_wtf8(const uint16_t* utf16,
1892
+ ssize_t utf16_len,
1893
+ char** wtf8_ptr,
1894
+ size_t* wtf8_len_ptr);
1895
+ ssize_t uv_wtf8_length_as_utf16(const char* wtf8);
1896
+ void uv_wtf8_to_utf16(const char* wtf8,
1897
+ uint16_t* utf16,
1898
+ size_t utf16_len);
1899
+
1888
1900
  /* Don't export the private CPP symbols. */
1889
1901
  #undef UV_HANDLE_TYPE_PRIVATE
1890
1902
  #undef UV_REQ_TYPE_PRIVATE
@@ -921,12 +921,22 @@ class V8_EXPORT EmbedderGraph {
921
921
  virtual ~EmbedderGraph() = default;
922
922
  };
923
923
 
924
+ class QueryObjectPredicate {
925
+ public:
926
+ virtual ~QueryObjectPredicate() = default;
927
+ virtual bool Filter(v8::Local<v8::Object> object) = 0;
928
+ };
929
+
924
930
  /**
925
931
  * Interface for controlling heap profiling. Instance of the
926
932
  * profiler can be retrieved using v8::Isolate::GetHeapProfiler.
927
933
  */
928
934
  class V8_EXPORT HeapProfiler {
929
935
  public:
936
+ void QueryObjects(v8::Local<v8::Context> context,
937
+ QueryObjectPredicate* predicate,
938
+ std::vector<v8::Global<v8::Object>>* objects);
939
+
930
940
  enum SamplingFlags {
931
941
  kSamplingNoFlags = 0,
932
942
  kSamplingForceGC = 1 << 0,
@@ -1,7 +1,7 @@
1
1
  /* zlib.h -- interface of the 'zlib' general purpose compression library
2
- version 1.2.13.1, October xxth, 2022
2
+ version 1.3.0.1, August xxth, 2023
3
3
 
4
- Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler
4
+ Copyright (C) 1995-2023 Jean-loup Gailly and Mark Adler
5
5
 
6
6
  This software is provided 'as-is', without any express or implied
7
7
  warranty. In no event will the authors be held liable for any damages
@@ -37,11 +37,11 @@
37
37
  extern "C" {
38
38
  #endif
39
39
 
40
- #define ZLIB_VERSION "1.2.13.1-motley"
41
- #define ZLIB_VERNUM 0x12d1
40
+ #define ZLIB_VERSION "1.3.0.1-motley"
41
+ #define ZLIB_VERNUM 0x1301
42
42
  #define ZLIB_VER_MAJOR 1
43
- #define ZLIB_VER_MINOR 2
44
- #define ZLIB_VER_REVISION 13
43
+ #define ZLIB_VER_MINOR 3
44
+ #define ZLIB_VER_REVISION 0
45
45
  #define ZLIB_VER_SUBREVISION 1
46
46
 
47
47
  /*
@@ -320,8 +320,8 @@ ZEXTERN int ZEXPORT deflate(z_streamp strm, int flush);
320
320
  with the same value of the flush parameter and more output space (updated
321
321
  avail_out), until the flush is complete (deflate returns with non-zero
322
322
  avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that
323
- avail_out is greater than six to avoid repeated flush markers due to
324
- avail_out == 0 on return.
323
+ avail_out is greater than six when the flush marker begins, in order to avoid
324
+ repeated flush markers upon calling deflate() again when avail_out == 0.
325
325
 
326
326
  If the parameter flush is set to Z_FINISH, pending input is processed,
327
327
  pending output is flushed and deflate returns with Z_STREAM_END if there was
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-linux-s390x",
3
- "version": "v21.4.0",
3
+ "version": "v21.6.0",
4
4
  "description": "node",
5
5
  "bin": {
6
6
  "node": "bin/node"
@@ -82,6 +82,9 @@ Allow file system read access when using the permission model.
82
82
  .It Fl -allow-fs-write
83
83
  Allow file system write access when using the permission model.
84
84
  .
85
+ .It Fl -allow-addons
86
+ Allow using native addons when using the permission model.
87
+ .
85
88
  .It Fl -allow-child-process
86
89
  Allow spawning process when using the permission model.
87
90
  .