node-linux-arm64 23.0.0 → 23.1.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,7 @@
8
8
  </tr>
9
9
  <tr>
10
10
  <td>
11
+ <a href="#23.1.0">23.1.0</a><br/>
11
12
  <a href="#23.0.0">23.0.0</a><br/>
12
13
  </td>
13
14
  </tr>
@@ -38,6 +39,157 @@
38
39
  * [io.js](CHANGELOG_IOJS.md)
39
40
  * [Archive](CHANGELOG_ARCHIVE.md)
40
41
 
42
+ <a id="23.1.0"></a>
43
+
44
+ ## 2024-10-24, Version 23.1.0 (Current), @aduh95
45
+
46
+ ### Notable Changes
47
+
48
+ #### `Buffer` now work with resizable `ArrayBuffer`
49
+
50
+ When a `Buffer` is created using a resizable `ArrayBuffer`, the `Buffer` length
51
+ will now correctly change as the underlying `ArrayBuffer` size is changed.
52
+
53
+ ```js
54
+ const ab = new ArrayBuffer(10, { maxByteLength: 20 });
55
+ const buffer = Buffer.from(ab);
56
+ console.log(buffer.byteLength); 10
57
+ ab.resize(15);
58
+ console.log(buffer.byteLength); 15
59
+ ab.resize(5);
60
+ console.log(buffer.byteLength); 5
61
+ ```
62
+
63
+ Contributed by James M Snell in [#55377](https://github.com/nodejs/node/pull/55377).
64
+
65
+ #### `MockTimers` test runner API is now stable
66
+
67
+ `MockTimers`, introduced in April 2023, has just reached **stable status**. This
68
+ API provides comprehensive support for mocking `Date` and all major timers in
69
+ Node.js, including `setTimeout`, `setInterval`, and `setImmediate`, both from
70
+ the `node:timers`, `node:timers/promises` modules and global objects. After
71
+ months of refinement, developers can now fully rely on `MockTimers` for testing
72
+ time-based operations with confidence, ensuring better control over asynchronous
73
+ behavior in their Node.js applications.
74
+
75
+ Example usage with initial `Date` object as time set:
76
+
77
+ ```mjs
78
+ import { mock } from 'node:test';
79
+ mock.timers.enable({ apis: ['Date'], now: new Date('1970-01-01') });
80
+ ```
81
+
82
+ Contributed by Erick Wendel in [#55398](https://github.com/nodejs/node/pull/55398).
83
+
84
+ #### JSON modules and import attributes are now stable
85
+
86
+ The two proposals reached stage 4 of the TC39 process, at the October 2024
87
+ meeting. The Node.js implementation already matches exactly the semantics
88
+ required by the proposals.
89
+
90
+ Contributed by Nicolò Ribaudo by [#55333](https://github.com/nodejs/node/pull/55333).
91
+
92
+ #### Other Notable Changes
93
+
94
+ * \[[`4ba31b7f20`](https://github.com/nodejs/node/commit/4ba31b7f20)] - **(SEMVER-MINOR)** **assert**: make `assertion_error` use Myers diff algorithm (Giovanni Bucci) [#54862](https://github.com/nodejs/node/pull/54862)
95
+ * \[[`dcbc5fbe65`](https://github.com/nodejs/node/commit/dcbc5fbe65)] - **(SEMVER-MINOR)** **lib**: add `UV_UDP_REUSEPORT` for udp (theanarkh) [#55403](https://github.com/nodejs/node/pull/55403)
96
+ * \[[`ec867ac7ce`](https://github.com/nodejs/node/commit/ec867ac7ce)] - **(SEMVER-MINOR)** **net**: add `UV_TCP_REUSEPORT` for tcp (theanarkh) [#55408](https://github.com/nodejs/node/pull/55408)
97
+
98
+ ### Commits
99
+
100
+ * \[[`4ba31b7f20`](https://github.com/nodejs/node/commit/4ba31b7f20)] - **(SEMVER-MINOR)** **assert**: make assertion\_error use Myers diff algorithm (Giovanni Bucci) [#54862](https://github.com/nodejs/node/pull/54862)
101
+ * \[[`fe667bea28`](https://github.com/nodejs/node/commit/fe667bea28)] - **assert**: fix deepEqual always return true on URL (Xuguang Mei) [#50853](https://github.com/nodejs/node/pull/50853)
102
+ * \[[`aca03d9083`](https://github.com/nodejs/node/commit/aca03d9083)] - **benchmark**: add --runs support to run.js (Rafael Gonzaga) [#55158](https://github.com/nodejs/node/pull/55158)
103
+ * \[[`c5abf50692`](https://github.com/nodejs/node/commit/c5abf50692)] - **benchmark**: adjust byte size for buffer-copy (Rafael Gonzaga) [#55295](https://github.com/nodejs/node/pull/55295)
104
+ * \[[`d3618b2334`](https://github.com/nodejs/node/commit/d3618b2334)] - **benchmark**: adjust config for deepEqual object (Rafael Gonzaga) [#55254](https://github.com/nodejs/node/pull/55254)
105
+ * \[[`c05582da3d`](https://github.com/nodejs/node/commit/c05582da3d)] - **(SEMVER-MINOR)** **buffer**: make Buffer work with resizable ArrayBuffer (James M Snell) [#55377](https://github.com/nodejs/node/pull/55377)
106
+ * \[[`194bb0fca5`](https://github.com/nodejs/node/commit/194bb0fca5)] - **build**: fix GN build for cares/uv deps (Cheng) [#55477](https://github.com/nodejs/node/pull/55477)
107
+ * \[[`8eb5359592`](https://github.com/nodejs/node/commit/8eb5359592)] - **build**: fix uninstall script for AIX 7.1 (Cloorc) [#55438](https://github.com/nodejs/node/pull/55438)
108
+ * \[[`32f7d5ad1c`](https://github.com/nodejs/node/commit/32f7d5ad1c)] - **build**: conditionally compile bundled sqlite (Richard Lau) [#55409](https://github.com/nodejs/node/pull/55409)
109
+ * \[[`2147e496e7`](https://github.com/nodejs/node/commit/2147e496e7)] - **build**: tidy up cares.gyp (Richard Lau) [#55445](https://github.com/nodejs/node/pull/55445)
110
+ * \[[`2beae50c77`](https://github.com/nodejs/node/commit/2beae50c77)] - **build**: synchronize list of c-ares source files (Richard Lau) [#55445](https://github.com/nodejs/node/pull/55445)
111
+ * \[[`f48d30eb9f`](https://github.com/nodejs/node/commit/f48d30eb9f)] - **build**: fix path concatenation (Mohammed Keyvanzadeh) [#55387](https://github.com/nodejs/node/pull/55387)
112
+ * \[[`d42522eec5`](https://github.com/nodejs/node/commit/d42522eec5)] - **build**: fix make errors that occur in Makefile (minkyu\_kim) [#55287](https://github.com/nodejs/node/pull/55287)
113
+ * \[[`52da293471`](https://github.com/nodejs/node/commit/52da293471)] - **cli**: add `--heap-prof` flag available to `NODE_OPTIONS` (Juan José) [#54259](https://github.com/nodejs/node/pull/54259)
114
+ * \[[`adead26815`](https://github.com/nodejs/node/commit/adead26815)] - **crypto**: include openssl/rand.h explicitly (Shelley Vohr) [#55425](https://github.com/nodejs/node/pull/55425)
115
+ * \[[`df2f1adf9e`](https://github.com/nodejs/node/commit/df2f1adf9e)] - **deps**: V8: cherry-pick f915fa4c9f41 (Chengzhong Wu) [#55484](https://github.com/nodejs/node/pull/55484)
116
+ * \[[`bfc10a975f`](https://github.com/nodejs/node/commit/bfc10a975f)] - **deps**: update googletest to df1544b (Node.js GitHub Bot) [#55465](https://github.com/nodejs/node/pull/55465)
117
+ * \[[`45ef1809bd`](https://github.com/nodejs/node/commit/45ef1809bd)] - **deps**: update c-ares to v1.34.2 (Node.js GitHub Bot) [#55463](https://github.com/nodejs/node/pull/55463)
118
+ * \[[`c2b5ebfeca`](https://github.com/nodejs/node/commit/c2b5ebfeca)] - **deps**: update ada to 2.9.1 (Node.js GitHub Bot) [#54679](https://github.com/nodejs/node/pull/54679)
119
+ * \[[`903863cafa`](https://github.com/nodejs/node/commit/903863cafa)] - **deps**: update simdutf to 5.6.0 (Node.js GitHub Bot) [#55379](https://github.com/nodejs/node/pull/55379)
120
+ * \[[`008fb5f7f4`](https://github.com/nodejs/node/commit/008fb5f7f4)] - **deps**: patch V8 to 12.9.202.28 (Node.js GitHub Bot) [#55371](https://github.com/nodejs/node/pull/55371)
121
+ * \[[`8b282228ae`](https://github.com/nodejs/node/commit/8b282228ae)] - **deps**: update c-ares to v1.34.1 (Node.js GitHub Bot) [#55369](https://github.com/nodejs/node/pull/55369)
122
+ * \[[`54d55f2337`](https://github.com/nodejs/node/commit/54d55f2337)] - _**Revert**_ "**deps**: disable io\_uring support in libuv by default" (Santiago Gimeno) [#55114](https://github.com/nodejs/node/pull/55114)
123
+ * \[[`bfb3c621c4`](https://github.com/nodejs/node/commit/bfb3c621c4)] - **deps**: update libuv to 1.49.1 (Santiago Gimeno) [#55114](https://github.com/nodejs/node/pull/55114)
124
+ * \[[`055d2b8919`](https://github.com/nodejs/node/commit/055d2b8919)] - **deps**: update amaro to 0.1.9 (Node.js GitHub Bot) [#55348](https://github.com/nodejs/node/pull/55348)
125
+ * \[[`c028d21b44`](https://github.com/nodejs/node/commit/c028d21b44)] - **diagnostics\_channel**: fix unsubscribe during publish (simon-id) [#55116](https://github.com/nodejs/node/pull/55116)
126
+ * \[[`b4b6ddb777`](https://github.com/nodejs/node/commit/b4b6ddb777)] - **dns**: honor the order option (Luigi Pinca) [#55392](https://github.com/nodejs/node/pull/55392)
127
+ * \[[`37352cef7f`](https://github.com/nodejs/node/commit/37352cef7f)] - **doc**: changed the command used to verify SHASUMS256 (adriancuadrado) [#55420](https://github.com/nodejs/node/pull/55420)
128
+ * \[[`66bcf4c065`](https://github.com/nodejs/node/commit/66bcf4c065)] - **doc**: move dual package shipping docs to separate repo (Joyee Cheung) [#55444](https://github.com/nodejs/node/pull/55444)
129
+ * \[[`04b41bda03`](https://github.com/nodejs/node/commit/04b41bda03)] - **doc**: add note about stdio streams in child\_process (Ederin (Ed) Igharoro) [#55322](https://github.com/nodejs/node/pull/55322)
130
+ * \[[`689d3a3e41`](https://github.com/nodejs/node/commit/689d3a3e41)] - **doc**: add `isBigIntObject` to documentation (leviscar) [#55450](https://github.com/nodejs/node/pull/55450)
131
+ * \[[`784c825a27`](https://github.com/nodejs/node/commit/784c825a27)] - **doc**: remove outdated remarks about `highWaterMark` in fs (Ian Kerins) [#55462](https://github.com/nodejs/node/pull/55462)
132
+ * \[[`1ec25e8573`](https://github.com/nodejs/node/commit/1ec25e8573)] - **doc**: move Danielle Adams key to old gpg keys (RafaelGSS) [#55399](https://github.com/nodejs/node/pull/55399)
133
+ * \[[`7d5bb097eb`](https://github.com/nodejs/node/commit/7d5bb097eb)] - **doc**: move Bryan English key to old gpg keys (RafaelGSS) [#55399](https://github.com/nodejs/node/pull/55399)
134
+ * \[[`2967471f67`](https://github.com/nodejs/node/commit/2967471f67)] - **doc**: move Beth Griggs keys to old gpg keys (RafaelGSS) [#55399](https://github.com/nodejs/node/pull/55399)
135
+ * \[[`0be3a7505f`](https://github.com/nodejs/node/commit/0be3a7505f)] - **doc**: add changelog for mocktimers (Erick Wendel) [#55398](https://github.com/nodejs/node/pull/55398)
136
+ * \[[`e15f779794`](https://github.com/nodejs/node/commit/e15f779794)] - **doc**: spell out condition restrictions (Jan Martin) [#55187](https://github.com/nodejs/node/pull/55187)
137
+ * \[[`c3f2216a7d`](https://github.com/nodejs/node/commit/c3f2216a7d)] - **doc**: add instructions for WinGet build (Hüseyin Açacak) [#55356](https://github.com/nodejs/node/pull/55356)
138
+ * \[[`bdc2c3bb94`](https://github.com/nodejs/node/commit/bdc2c3bb94)] - **doc**: add missing return values in buffer docs (Karl Horky) [#55273](https://github.com/nodejs/node/pull/55273)
139
+ * \[[`41f68f59af`](https://github.com/nodejs/node/commit/41f68f59af)] - **doc**: fix ambasador markdown list (Rafael Gonzaga) [#55361](https://github.com/nodejs/node/pull/55361)
140
+ * \[[`bbd5318729`](https://github.com/nodejs/node/commit/bbd5318729)] - **esm**: add a fallback when importer in not a file (Antoine du Hamel) [#55471](https://github.com/nodejs/node/pull/55471)
141
+ * \[[`22d77773fd`](https://github.com/nodejs/node/commit/22d77773fd)] - **esm**: fix inconsistency with `importAssertion` in `resolve` hook (Wei Zhu) [#55365](https://github.com/nodejs/node/pull/55365)
142
+ * \[[`48bb87b059`](https://github.com/nodejs/node/commit/48bb87b059)] - **esm**: mark import attributes and JSON module as stable (Nicolò Ribaudo) [#55333](https://github.com/nodejs/node/pull/55333)
143
+ * \[[`8ceefebaf2`](https://github.com/nodejs/node/commit/8ceefebaf2)] - **events**: optimize EventTarget.addEventListener (Robert Nagy) [#55312](https://github.com/nodejs/node/pull/55312)
144
+ * \[[`45f960cab6`](https://github.com/nodejs/node/commit/45f960cab6)] - **fs**: pass correct path to `DirentFromStats` during `glob` (Aviv Keller) [#55071](https://github.com/nodejs/node/pull/55071)
145
+ * \[[`d9494a7641`](https://github.com/nodejs/node/commit/d9494a7641)] - **fs**: use `wstring` on Windows paths (jazelly) [#55171](https://github.com/nodejs/node/pull/55171)
146
+ * \[[`0f1d13e359`](https://github.com/nodejs/node/commit/0f1d13e359)] - **lib**: ensure FORCE\_COLOR forces color output in non-TTY environments (Pietro Marchini) [#55404](https://github.com/nodejs/node/pull/55404)
147
+ * \[[`dcbc5fbe65`](https://github.com/nodejs/node/commit/dcbc5fbe65)] - **(SEMVER-MINOR)** **lib**: add UV\_UDP\_REUSEPORT for udp (theanarkh) [#55403](https://github.com/nodejs/node/pull/55403)
148
+ * \[[`714f272423`](https://github.com/nodejs/node/commit/714f272423)] - **lib**: remove startsWith/endsWith primordials for char checks (Gürgün Dayıoğlu) [#55407](https://github.com/nodejs/node/pull/55407)
149
+ * \[[`4e5c90bb41`](https://github.com/nodejs/node/commit/4e5c90bb41)] - **lib**: replace `createDeferredPromise` util with `Promise.withResolvers` (Yagiz Nizipli) [#54836](https://github.com/nodejs/node/pull/54836)
150
+ * \[[`db18aca47a`](https://github.com/nodejs/node/commit/db18aca47a)] - **lib**: add flag to drop connection when running in cluster mode (theanarkh) [#54927](https://github.com/nodejs/node/pull/54927)
151
+ * \[[`dd848f2d1e`](https://github.com/nodejs/node/commit/dd848f2d1e)] - **lib**: test\_runner#mock:timers respeced timeout\_max behaviour (BadKey) [#55375](https://github.com/nodejs/node/pull/55375)
152
+ * \[[`a9473bb8e3`](https://github.com/nodejs/node/commit/a9473bb8e3)] - **lib**: remove settled dependant signals when they are GCed (Edigleysson Silva (Edy)) [#55354](https://github.com/nodejs/node/pull/55354)
153
+ * \[[`07ad987aa1`](https://github.com/nodejs/node/commit/07ad987aa1)] - **lib**: convert transfer sequence to array in js (Jason Zhang) [#55317](https://github.com/nodejs/node/pull/55317)
154
+ * \[[`d54d3b24c3`](https://github.com/nodejs/node/commit/d54d3b24c3)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#55381](https://github.com/nodejs/node/pull/55381)
155
+ * \[[`12d709bd27`](https://github.com/nodejs/node/commit/12d709bd27)] - **meta**: assign CODEOWNERS for /deps/ncrypto/\* (Filip Skokan) [#55426](https://github.com/nodejs/node/pull/55426)
156
+ * \[[`0130780eec`](https://github.com/nodejs/node/commit/0130780eec)] - **meta**: change color to blue notify review-wanted (Rafael Gonzaga) [#55423](https://github.com/nodejs/node/pull/55423)
157
+ * \[[`335a507027`](https://github.com/nodejs/node/commit/335a507027)] - **meta**: bump codecov/codecov-action from 4.5.0 to 4.6.0 (dependabot\[bot]) [#55222](https://github.com/nodejs/node/pull/55222)
158
+ * \[[`5ffc721d09`](https://github.com/nodejs/node/commit/5ffc721d09)] - **meta**: bump github/codeql-action from 3.26.6 to 3.26.10 (dependabot\[bot]) [#55221](https://github.com/nodejs/node/pull/55221)
159
+ * \[[`d9fde2c45b`](https://github.com/nodejs/node/commit/d9fde2c45b)] - **meta**: bump step-security/harden-runner from 2.9.1 to 2.10.1 (dependabot\[bot]) [#55220](https://github.com/nodejs/node/pull/55220)
160
+ * \[[`2c960a212e`](https://github.com/nodejs/node/commit/2c960a212e)] - **module**: include module information in require(esm) warning (Joyee Cheung) [#55397](https://github.com/nodejs/node/pull/55397)
161
+ * \[[`a12dbf03d9`](https://github.com/nodejs/node/commit/a12dbf03d9)] - **module**: simplify ts under node\_modules check (Marco Ippolito) [#55440](https://github.com/nodejs/node/pull/55440)
162
+ * \[[`ec867ac7ce`](https://github.com/nodejs/node/commit/ec867ac7ce)] - **(SEMVER-MINOR)** **net**: add UV\_TCP\_REUSEPORT for tcp (theanarkh) [#55408](https://github.com/nodejs/node/pull/55408)
163
+ * \[[`9e320279a2`](https://github.com/nodejs/node/commit/9e320279a2)] - _**Revert**_ "**path**: fix bugs and inconsistencies" (Aviv Keller) [#55414](https://github.com/nodejs/node/pull/55414)
164
+ * \[[`1ce8928db3`](https://github.com/nodejs/node/commit/1ce8928db3)] - **sqlite**: cache column names in stmt.all() (Fedor Indutny) [#55373](https://github.com/nodejs/node/pull/55373)
165
+ * \[[`cc775d314a`](https://github.com/nodejs/node/commit/cc775d314a)] - **src**: switch from `Get/SetPrototype` to `Get/SetPrototypeV2` (Aviv Keller) [#55453](https://github.com/nodejs/node/pull/55453)
166
+ * \[[`89c96ade53`](https://github.com/nodejs/node/commit/89c96ade53)] - **src**: remove icu based `ToASCII` and `ToUnicode` (Yagiz Nizipli) [#55156](https://github.com/nodejs/node/pull/55156)
167
+ * \[[`57dbbf8402`](https://github.com/nodejs/node/commit/57dbbf8402)] - **src**: fix winapi\_strerror error string (Hüseyin Açacak) [#55207](https://github.com/nodejs/node/pull/55207)
168
+ * \[[`a490bb8745`](https://github.com/nodejs/node/commit/a490bb8745)] - **src**: remove uv\_\_node\_patch\_is\_using\_io\_uring (Santiago Gimeno) [#55114](https://github.com/nodejs/node/pull/55114)
169
+ * \[[`0da1632937`](https://github.com/nodejs/node/commit/0da1632937)] - **src,lib**: introduce `util.getSystemErrorMessage(err)` (Juan José) [#54075](https://github.com/nodejs/node/pull/54075)
170
+ * \[[`6764273127`](https://github.com/nodejs/node/commit/6764273127)] - **stream**: propagate AbortSignal reason (Marvin ROGER) [#55473](https://github.com/nodejs/node/pull/55473)
171
+ * \[[`4dc2791cdd`](https://github.com/nodejs/node/commit/4dc2791cdd)] - **test**: add repl preview timeout test (Chengzhong Wu) [#55484](https://github.com/nodejs/node/pull/55484)
172
+ * \[[`8634e054d4`](https://github.com/nodejs/node/commit/8634e054d4)] - **test**: make test-node-output-v8-warning more flexible (Shelley Vohr) [#55401](https://github.com/nodejs/node/pull/55401)
173
+ * \[[`6c8564b55d`](https://github.com/nodejs/node/commit/6c8564b55d)] - **test**: fix addons and node-api test assumptions (Antoine du Hamel) [#55441](https://github.com/nodejs/node/pull/55441)
174
+ * \[[`94e863cdb7`](https://github.com/nodejs/node/commit/94e863cdb7)] - **test**: update wpt test for webmessaging/broadcastchannel (devstone) [#55205](https://github.com/nodejs/node/pull/55205)
175
+ * \[[`c10c6715cd`](https://github.com/nodejs/node/commit/c10c6715cd)] - **test**: deflake `test-cluster-shared-handle-bind-privileged-port` (Aviv Keller) [#55378](https://github.com/nodejs/node/pull/55378)
176
+ * \[[`6f7379a048`](https://github.com/nodejs/node/commit/6f7379a048)] - **test**: fix invalid `file:` URL in `test-fs-path-dir` (Antoine du Hamel) [#55454](https://github.com/nodejs/node/pull/55454)
177
+ * \[[`dd5a08d022`](https://github.com/nodejs/node/commit/dd5a08d022)] - **test**: update `console` wpt (Aviv Keller) [#55192](https://github.com/nodejs/node/pull/55192)
178
+ * \[[`9b7b4a6b25`](https://github.com/nodejs/node/commit/9b7b4a6b25)] - **test**: remove duplicate tests (Luigi Pinca) [#55393](https://github.com/nodejs/node/pull/55393)
179
+ * \[[`eb2fab3da1`](https://github.com/nodejs/node/commit/eb2fab3da1)] - **test**: update test\_util.cc for coverage (minkyu\_kim) [#55291](https://github.com/nodejs/node/pull/55291)
180
+ * \[[`59923d137e`](https://github.com/nodejs/node/commit/59923d137e)] - **test**: update `compression` wpt (Aviv Keller) [#55191](https://github.com/nodejs/node/pull/55191)
181
+ * \[[`1b63a822ac`](https://github.com/nodejs/node/commit/1b63a822ac)] - **test,crypto**: update WebCryptoAPI WPT (Filip Skokan) [#55427](https://github.com/nodejs/node/pull/55427)
182
+ * \[[`97c6448f63`](https://github.com/nodejs/node/commit/97c6448f63)] - **test\_runner**: mark mockTimers as stable (Erick Wendel) [#55398](https://github.com/nodejs/node/pull/55398)
183
+ * \[[`69ee56aacd`](https://github.com/nodejs/node/commit/69ee56aacd)] - **test\_runner**: add support for scheduler.wait on mock timers (Erick Wendel) [#55244](https://github.com/nodejs/node/pull/55244)
184
+ * \[[`d9f0407cf6`](https://github.com/nodejs/node/commit/d9f0407cf6)] - **test\_runner**: require `--enable-source-maps` for sourcemap coverage (Aviv Keller) [#55359](https://github.com/nodejs/node/pull/55359)
185
+ * \[[`2ac2c5a7e7`](https://github.com/nodejs/node/commit/2ac2c5a7e7)] - **tools**: update lint-md-dependencies (Node.js GitHub Bot) [#55470](https://github.com/nodejs/node/pull/55470)
186
+ * \[[`10f6b90f7d`](https://github.com/nodejs/node/commit/10f6b90f7d)] - **tools**: update gyp-next to 0.18.3 (Node.js GitHub Bot) [#55464](https://github.com/nodejs/node/pull/55464)
187
+ * \[[`65936a8bb6`](https://github.com/nodejs/node/commit/65936a8bb6)] - **tools**: add script to synch c-ares source lists (Richard Lau) [#55445](https://github.com/nodejs/node/pull/55445)
188
+ * \[[`1da4168486`](https://github.com/nodejs/node/commit/1da4168486)] - **tools**: add `polyfilled` option to `prefer-primordials` rule (Antoine du Hamel) [#55318](https://github.com/nodejs/node/pull/55318)
189
+ * \[[`3b2b3a8df2`](https://github.com/nodejs/node/commit/3b2b3a8df2)] - **tools**: fix typos (Nathan Baulch) [#55061](https://github.com/nodejs/node/pull/55061)
190
+ * \[[`736c085a5d`](https://github.com/nodejs/node/commit/736c085a5d)] - **typings**: add missing type of `ArrayBufferPrototypeGetByteLength` (Wuli Zuo) [#55439](https://github.com/nodejs/node/pull/55439)
191
+ * \[[`7b3e38b855`](https://github.com/nodejs/node/commit/7b3e38b855)] - **url**: handle "unsafe" characters properly in `pathToFileURL` (Antoine du Hamel) [#54545](https://github.com/nodejs/node/pull/54545)
192
+
41
193
  <a id="23.0.0"></a>
42
194
 
43
195
  ## 2024-10-16, Version 23.0.0 (Current), @RafaelGSS
package/README.md CHANGED
@@ -104,11 +104,10 @@ To download `SHASUMS256.txt` using `curl`:
104
104
  curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt
105
105
  ```
106
106
 
107
- To check that a downloaded file matches the checksum, run
108
- it through `sha256sum` with a command such as:
107
+ To check that downloaded files match the checksum, use `sha256sum`:
109
108
 
110
109
  ```bash
111
- grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c -
110
+ sha256sum -c SHASUMS256.txt --ignore-missing
112
111
  ```
113
112
 
114
113
  For Current and LTS, the GPG detached signature of `SHASUMS256.txt` is in
@@ -320,8 +319,6 @@ For information about the governance of the Node.js project, see
320
319
  **Kohei Ueno** <<kohei.ueno119@gmail.com>> (he/him)
321
320
  * [daeyeon](https://github.com/daeyeon) -
322
321
  **Daeyeon Jeong** <<daeyeon.dev@gmail.com>> (he/him)
323
- * [danielleadams](https://github.com/danielleadams) -
324
- **Danielle Adams** <<adamzdanielle@gmail.com>> (she/her)
325
322
  * [debadree25](https://github.com/debadree25) -
326
323
  **Debadree Chatterjee** <<debadree333@gmail.com>> (he/him)
327
324
  * [deokjinkim](https://github.com/deokjinkim) -
@@ -502,6 +499,8 @@ For information about the governance of the Node.js project, see
502
499
  **Claudio Rodriguez** <<cjrodr@yahoo.com>>
503
500
  * [danbev](https://github.com/danbev) -
504
501
  **Daniel Bevenius** <<daniel.bevenius@gmail.com>> (he/him)
502
+ * [danielleadams](https://github.com/danielleadams) -
503
+ **Danielle Adams** <<adamzdanielle@gmail.com>> (she/her)
505
504
  * [DavidCai1993](https://github.com/DavidCai1993) -
506
505
  **David Cai** <<davidcai1993@yahoo.com>> (he/him)
507
506
  * [davisjam](https://github.com/davisjam) -
@@ -770,12 +769,6 @@ Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys):
770
769
 
771
770
  * **Antoine du Hamel** <<duhamelantoine1995@gmail.com>>
772
771
  `C0D6248439F1D5604AAFFB4021D900FFDB233756`
773
- * **Beth Griggs** <<bethanyngriggs@gmail.com>>
774
- `4ED778F539E3634C779C87C6D7062848A1AB005C`
775
- * **Bryan English** <<bryan@bryanenglish.com>>
776
- `141F07595B7B3FFE74309A937405533BE57C7D57`
777
- * **Danielle Adams** <<adamzdanielle@gmail.com>>
778
- `74F12602B6F1C4E913FAA37AD3A89613643B6201`
779
772
  * **Juan José Arboleda** <<soyjuanarbol@gmail.com>>
780
773
  `DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7`
781
774
  * **Marco Ippolito** <<marcoippolito54@gmail.com>>
@@ -796,9 +789,6 @@ to sign releases):
796
789
 
797
790
  ```bash
798
791
  gpg --keyserver hkps://keys.openpgp.org --recv-keys C0D6248439F1D5604AAFFB4021D900FFDB233756 # Antoine du Hamel
799
- gpg --keyserver hkps://keys.openpgp.org --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C # Beth Griggs
800
- gpg --keyserver hkps://keys.openpgp.org --recv-keys 141F07595B7B3FFE74309A937405533BE57C7D57 # Bryan English
801
- gpg --keyserver hkps://keys.openpgp.org --recv-keys 74F12602B6F1C4E913FAA37AD3A89613643B6201 # Danielle Adams
802
792
  gpg --keyserver hkps://keys.openpgp.org --recv-keys DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 # Juan José Arboleda
803
793
  gpg --keyserver hkps://keys.openpgp.org --recv-keys CC68F5A3106FF448322E48ED27F5E38D5B0A215F # Marco Ippolito
804
794
  gpg --keyserver hkps://keys.openpgp.org --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 # Michaël Zasso
@@ -815,12 +805,17 @@ verify a downloaded file.
815
805
 
816
806
  <summary>Other keys used to sign some previous releases</summary>
817
807
 
808
+ * **Beth Griggs** <<bethanyngriggs@gmail.com>>
809
+ `4ED778F539E3634C779C87C6D7062848A1AB005C`
810
+ * **Bryan English** <<bryan@bryanenglish.com>>
811
+ `141F07595B7B3FFE74309A937405533BE57C7D57`
818
812
  * **Chris Dickinson** <<christopher.s.dickinson@gmail.com>>
819
813
  `9554F04D7259F04124DE6B476D5A82AC7E37093B`
820
814
  * **Colin Ihrig** <<cjihrig@gmail.com>>
821
815
  `94AE36675C464D64BAFA68DD7434390BDBE9B9C5`
822
816
  * **Danielle Adams** <<adamzdanielle@gmail.com>>
823
817
  `1C050899334244A8AF75E53792EF661D867B9DFA`
818
+ `74F12602B6F1C4E913FAA37AD3A89613643B6201`
824
819
  * **Evan Lucas** <<evanlucas@me.com>>
825
820
  `B9AE9905FFD7803F25714661B63B535A4C206CA9`
826
821
  * **Gibson Fahnestock** <<gibfahn@gmail.com>>
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.10',
39
+ 'v8_embedder_string': '-node.11',
40
40
 
41
41
  ##### V8 defaults for Node.js #####
42
42
 
@@ -80,6 +80,7 @@
80
80
  'lib/internal/assert.js',
81
81
  'lib/internal/assert/assertion_error.js',
82
82
  'lib/internal/assert/calltracker.js',
83
+ 'lib/internal/assert/myers_diff.js',
83
84
  'lib/internal/assert/utils.js',
84
85
  'lib/internal/async_context_frame.js',
85
86
  'lib/internal/async_hooks.js',
@@ -23,7 +23,7 @@
23
23
  #define SRC_NODE_VERSION_H_
24
24
 
25
25
  #define NODE_MAJOR_VERSION 23
26
- #define NODE_MINOR_VERSION 0
26
+ #define NODE_MINOR_VERSION 1
27
27
  #define NODE_PATCH_VERSION 0
28
28
 
29
29
  #define NODE_VERSION_IS_LTS 0
@@ -35,21 +35,7 @@
35
35
  #endif
36
36
 
37
37
  /*
38
- * This file defines data structures for different types of trees:
39
- * splay trees and red-black trees.
40
- *
41
- * A splay tree is a self-organizing data structure. Every operation
42
- * on the tree causes a splay to happen. The splay moves the requested
43
- * node to the root of the tree and partly rebalances it.
44
- *
45
- * This has the benefit that request locality causes faster lookups as
46
- * the requested nodes move to the top of the tree. On the other hand,
47
- * every lookup causes memory writes.
48
- *
49
- * The Balance Theorem bounds the total access time for m operations
50
- * and n inserts on an initially empty tree as O((m + n)lg n). The
51
- * amortized cost for a sequence of m accesses to a splay tree is O(lg n);
52
- *
38
+ * This file defines data structures for red-black trees.
53
39
  * A red-black tree is a binary search tree with the node color as an
54
40
  * extra attribute. It fulfills a set of conditions:
55
41
  * - every search path from the root to a leaf consists of the
@@ -61,239 +47,6 @@
61
47
  * The maximum height of a red-black tree is 2lg (n+1).
62
48
  */
63
49
 
64
- #define SPLAY_HEAD(name, type) \
65
- struct name { \
66
- struct type *sph_root; /* root of the tree */ \
67
- }
68
-
69
- #define SPLAY_INITIALIZER(root) \
70
- { NULL }
71
-
72
- #define SPLAY_INIT(root) do { \
73
- (root)->sph_root = NULL; \
74
- } while (/*CONSTCOND*/ 0)
75
-
76
- #define SPLAY_ENTRY(type) \
77
- struct { \
78
- struct type *spe_left; /* left element */ \
79
- struct type *spe_right; /* right element */ \
80
- }
81
-
82
- #define SPLAY_LEFT(elm, field) (elm)->field.spe_left
83
- #define SPLAY_RIGHT(elm, field) (elm)->field.spe_right
84
- #define SPLAY_ROOT(head) (head)->sph_root
85
- #define SPLAY_EMPTY(head) (SPLAY_ROOT(head) == NULL)
86
-
87
- /* SPLAY_ROTATE_{LEFT,RIGHT} expect that tmp hold SPLAY_{RIGHT,LEFT} */
88
- #define SPLAY_ROTATE_RIGHT(head, tmp, field) do { \
89
- SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(tmp, field); \
90
- SPLAY_RIGHT(tmp, field) = (head)->sph_root; \
91
- (head)->sph_root = tmp; \
92
- } while (/*CONSTCOND*/ 0)
93
-
94
- #define SPLAY_ROTATE_LEFT(head, tmp, field) do { \
95
- SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(tmp, field); \
96
- SPLAY_LEFT(tmp, field) = (head)->sph_root; \
97
- (head)->sph_root = tmp; \
98
- } while (/*CONSTCOND*/ 0)
99
-
100
- #define SPLAY_LINKLEFT(head, tmp, field) do { \
101
- SPLAY_LEFT(tmp, field) = (head)->sph_root; \
102
- tmp = (head)->sph_root; \
103
- (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \
104
- } while (/*CONSTCOND*/ 0)
105
-
106
- #define SPLAY_LINKRIGHT(head, tmp, field) do { \
107
- SPLAY_RIGHT(tmp, field) = (head)->sph_root; \
108
- tmp = (head)->sph_root; \
109
- (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \
110
- } while (/*CONSTCOND*/ 0)
111
-
112
- #define SPLAY_ASSEMBLE(head, node, left, right, field) do { \
113
- SPLAY_RIGHT(left, field) = SPLAY_LEFT((head)->sph_root, field); \
114
- SPLAY_LEFT(right, field) = SPLAY_RIGHT((head)->sph_root, field); \
115
- SPLAY_LEFT((head)->sph_root, field) = SPLAY_RIGHT(node, field); \
116
- SPLAY_RIGHT((head)->sph_root, field) = SPLAY_LEFT(node, field); \
117
- } while (/*CONSTCOND*/ 0)
118
-
119
- /* Generates prototypes and inline functions */
120
-
121
- #define SPLAY_PROTOTYPE(name, type, field, cmp) \
122
- void name##_SPLAY(struct name *, struct type *); \
123
- void name##_SPLAY_MINMAX(struct name *, int); \
124
- struct type *name##_SPLAY_INSERT(struct name *, struct type *); \
125
- struct type *name##_SPLAY_REMOVE(struct name *, struct type *); \
126
- \
127
- /* Finds the node with the same key as elm */ \
128
- static __inline struct type * \
129
- name##_SPLAY_FIND(struct name *head, struct type *elm) \
130
- { \
131
- if (SPLAY_EMPTY(head)) \
132
- return(NULL); \
133
- name##_SPLAY(head, elm); \
134
- if ((cmp)(elm, (head)->sph_root) == 0) \
135
- return (head->sph_root); \
136
- return (NULL); \
137
- } \
138
- \
139
- static __inline struct type * \
140
- name##_SPLAY_NEXT(struct name *head, struct type *elm) \
141
- { \
142
- name##_SPLAY(head, elm); \
143
- if (SPLAY_RIGHT(elm, field) != NULL) { \
144
- elm = SPLAY_RIGHT(elm, field); \
145
- while (SPLAY_LEFT(elm, field) != NULL) { \
146
- elm = SPLAY_LEFT(elm, field); \
147
- } \
148
- } else \
149
- elm = NULL; \
150
- return (elm); \
151
- } \
152
- \
153
- static __inline struct type * \
154
- name##_SPLAY_MIN_MAX(struct name *head, int val) \
155
- { \
156
- name##_SPLAY_MINMAX(head, val); \
157
- return (SPLAY_ROOT(head)); \
158
- }
159
-
160
- /* Main splay operation.
161
- * Moves node close to the key of elm to top
162
- */
163
- #define SPLAY_GENERATE(name, type, field, cmp) \
164
- struct type * \
165
- name##_SPLAY_INSERT(struct name *head, struct type *elm) \
166
- { \
167
- if (SPLAY_EMPTY(head)) { \
168
- SPLAY_LEFT(elm, field) = SPLAY_RIGHT(elm, field) = NULL; \
169
- } else { \
170
- int __comp; \
171
- name##_SPLAY(head, elm); \
172
- __comp = (cmp)(elm, (head)->sph_root); \
173
- if(__comp < 0) { \
174
- SPLAY_LEFT(elm, field) = SPLAY_LEFT((head)->sph_root, field); \
175
- SPLAY_RIGHT(elm, field) = (head)->sph_root; \
176
- SPLAY_LEFT((head)->sph_root, field) = NULL; \
177
- } else if (__comp > 0) { \
178
- SPLAY_RIGHT(elm, field) = SPLAY_RIGHT((head)->sph_root, field); \
179
- SPLAY_LEFT(elm, field) = (head)->sph_root; \
180
- SPLAY_RIGHT((head)->sph_root, field) = NULL; \
181
- } else \
182
- return ((head)->sph_root); \
183
- } \
184
- (head)->sph_root = (elm); \
185
- return (NULL); \
186
- } \
187
- \
188
- struct type * \
189
- name##_SPLAY_REMOVE(struct name *head, struct type *elm) \
190
- { \
191
- struct type *__tmp; \
192
- if (SPLAY_EMPTY(head)) \
193
- return (NULL); \
194
- name##_SPLAY(head, elm); \
195
- if ((cmp)(elm, (head)->sph_root) == 0) { \
196
- if (SPLAY_LEFT((head)->sph_root, field) == NULL) { \
197
- (head)->sph_root = SPLAY_RIGHT((head)->sph_root, field); \
198
- } else { \
199
- __tmp = SPLAY_RIGHT((head)->sph_root, field); \
200
- (head)->sph_root = SPLAY_LEFT((head)->sph_root, field); \
201
- name##_SPLAY(head, elm); \
202
- SPLAY_RIGHT((head)->sph_root, field) = __tmp; \
203
- } \
204
- return (elm); \
205
- } \
206
- return (NULL); \
207
- } \
208
- \
209
- void \
210
- name##_SPLAY(struct name *head, struct type *elm) \
211
- { \
212
- struct type __node, *__left, *__right, *__tmp; \
213
- int __comp; \
214
- \
215
- SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL; \
216
- __left = __right = &__node; \
217
- \
218
- while ((__comp = (cmp)(elm, (head)->sph_root)) != 0) { \
219
- if (__comp < 0) { \
220
- __tmp = SPLAY_LEFT((head)->sph_root, field); \
221
- if (__tmp == NULL) \
222
- break; \
223
- if ((cmp)(elm, __tmp) < 0){ \
224
- SPLAY_ROTATE_RIGHT(head, __tmp, field); \
225
- if (SPLAY_LEFT((head)->sph_root, field) == NULL) \
226
- break; \
227
- } \
228
- SPLAY_LINKLEFT(head, __right, field); \
229
- } else if (__comp > 0) { \
230
- __tmp = SPLAY_RIGHT((head)->sph_root, field); \
231
- if (__tmp == NULL) \
232
- break; \
233
- if ((cmp)(elm, __tmp) > 0){ \
234
- SPLAY_ROTATE_LEFT(head, __tmp, field); \
235
- if (SPLAY_RIGHT((head)->sph_root, field) == NULL) \
236
- break; \
237
- } \
238
- SPLAY_LINKRIGHT(head, __left, field); \
239
- } \
240
- } \
241
- SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \
242
- } \
243
- \
244
- /* Splay with either the minimum or the maximum element \
245
- * Used to find minimum or maximum element in tree. \
246
- */ \
247
- void name##_SPLAY_MINMAX(struct name *head, int __comp) \
248
- { \
249
- struct type __node, *__left, *__right, *__tmp; \
250
- \
251
- SPLAY_LEFT(&__node, field) = SPLAY_RIGHT(&__node, field) = NULL; \
252
- __left = __right = &__node; \
253
- \
254
- for (;;) { \
255
- if (__comp < 0) { \
256
- __tmp = SPLAY_LEFT((head)->sph_root, field); \
257
- if (__tmp == NULL) \
258
- break; \
259
- if (__comp < 0){ \
260
- SPLAY_ROTATE_RIGHT(head, __tmp, field); \
261
- if (SPLAY_LEFT((head)->sph_root, field) == NULL) \
262
- break; \
263
- } \
264
- SPLAY_LINKLEFT(head, __right, field); \
265
- } else if (__comp > 0) { \
266
- __tmp = SPLAY_RIGHT((head)->sph_root, field); \
267
- if (__tmp == NULL) \
268
- break; \
269
- if (__comp > 0) { \
270
- SPLAY_ROTATE_LEFT(head, __tmp, field); \
271
- if (SPLAY_RIGHT((head)->sph_root, field) == NULL) \
272
- break; \
273
- } \
274
- SPLAY_LINKRIGHT(head, __left, field); \
275
- } \
276
- } \
277
- SPLAY_ASSEMBLE(head, &__node, __left, __right, field); \
278
- }
279
-
280
- #define SPLAY_NEGINF -1
281
- #define SPLAY_INF 1
282
-
283
- #define SPLAY_INSERT(name, x, y) name##_SPLAY_INSERT(x, y)
284
- #define SPLAY_REMOVE(name, x, y) name##_SPLAY_REMOVE(x, y)
285
- #define SPLAY_FIND(name, x, y) name##_SPLAY_FIND(x, y)
286
- #define SPLAY_NEXT(name, x, y) name##_SPLAY_NEXT(x, y)
287
- #define SPLAY_MIN(name, x) (SPLAY_EMPTY(x) ? NULL \
288
- : name##_SPLAY_MIN_MAX(x, SPLAY_NEGINF))
289
- #define SPLAY_MAX(name, x) (SPLAY_EMPTY(x) ? NULL \
290
- : name##_SPLAY_MIN_MAX(x, SPLAY_INF))
291
-
292
- #define SPLAY_FOREACH(x, name, head) \
293
- for ((x) = SPLAY_MIN(name, head); \
294
- (x) != NULL; \
295
- (x) = SPLAY_NEXT(name, head, x))
296
-
297
50
  /* Macros that define a red-black tree */
298
51
  #define RB_HEAD(name, type) \
299
52
  struct name { \
@@ -730,8 +483,8 @@ name##_RB_MINMAX(struct name *head, int val) \
730
483
  #define RB_REMOVE(name, x, y) name##_RB_REMOVE(x, y)
731
484
  #define RB_FIND(name, x, y) name##_RB_FIND(x, y)
732
485
  #define RB_NFIND(name, x, y) name##_RB_NFIND(x, y)
733
- #define RB_NEXT(name, x, y) name##_RB_NEXT(y)
734
- #define RB_PREV(name, x, y) name##_RB_PREV(y)
486
+ #define RB_NEXT(name, x) name##_RB_NEXT(x)
487
+ #define RB_PREV(name, x) name##_RB_PREV(x)
735
488
  #define RB_MIN(name, x) name##_RB_MINMAX(x, RB_NEGINF)
736
489
  #define RB_MAX(name, x) name##_RB_MINMAX(x, RB_INF)
737
490
 
@@ -31,8 +31,8 @@
31
31
  */
32
32
 
33
33
  #define UV_VERSION_MAJOR 1
34
- #define UV_VERSION_MINOR 48
35
- #define UV_VERSION_PATCH 0
34
+ #define UV_VERSION_MINOR 49
35
+ #define UV_VERSION_PATCH 1
36
36
  #define UV_VERSION_IS_RELEASE 1
37
37
  #define UV_VERSION_SUFFIX ""
38
38
 
@@ -290,8 +290,8 @@ typedef struct {
290
290
  #define UV_ONCE_INIT { 0, NULL }
291
291
 
292
292
  typedef struct uv_once_s {
293
- unsigned char ran;
294
- HANDLE event;
293
+ unsigned char unused;
294
+ INIT_ONCE init_once;
295
295
  } uv_once_t;
296
296
 
297
297
  /* Platform-specific definitions for uv_spawn support. */
package/include/node/uv.h CHANGED
@@ -260,7 +260,9 @@ typedef struct uv_metrics_s uv_metrics_t;
260
260
 
261
261
  typedef enum {
262
262
  UV_LOOP_BLOCK_SIGNAL = 0,
263
- UV_METRICS_IDLE_TIME
263
+ UV_METRICS_IDLE_TIME,
264
+ UV_LOOP_USE_IO_URING_SQPOLL
265
+ #define UV_LOOP_USE_IO_URING_SQPOLL UV_LOOP_USE_IO_URING_SQPOLL
264
266
  } uv_loop_option;
265
267
 
266
268
  typedef enum {
@@ -604,7 +606,18 @@ UV_EXTERN int uv_tcp_simultaneous_accepts(uv_tcp_t* handle, int enable);
604
606
 
605
607
  enum uv_tcp_flags {
606
608
  /* Used with uv_tcp_bind, when an IPv6 address is used. */
607
- UV_TCP_IPV6ONLY = 1
609
+ UV_TCP_IPV6ONLY = 1,
610
+
611
+ /* Enable SO_REUSEPORT socket option when binding the handle.
612
+ * This allows completely duplicate bindings by multiple processes
613
+ * or threads if they all set SO_REUSEPORT before binding the port.
614
+ * Incoming connections are distributed across the participating
615
+ * listener sockets.
616
+ *
617
+ * This flag is available only on Linux 3.9+, DragonFlyBSD 3.6+,
618
+ * FreeBSD 12.0+, Solaris 11.4, and AIX 7.2.5+ for now.
619
+ */
620
+ UV_TCP_REUSEPORT = 2,
608
621
  };
609
622
 
610
623
  UV_EXTERN int uv_tcp_bind(uv_tcp_t* handle,
@@ -645,10 +658,13 @@ enum uv_udp_flags {
645
658
  UV_UDP_PARTIAL = 2,
646
659
  /*
647
660
  * Indicates if SO_REUSEADDR will be set when binding the handle.
648
- * This sets the SO_REUSEPORT socket flag on the BSDs and OS X. On other
649
- * Unix platforms, it sets the SO_REUSEADDR flag. What that means is that
650
- * multiple threads or processes can bind to the same address without error
651
- * (provided they all set the flag) but only the last one to bind will receive
661
+ * This sets the SO_REUSEPORT socket flag on the BSDs (except for
662
+ * DragonFlyBSD), OS X, and other platforms where SO_REUSEPORTs don't
663
+ * have the capability of load balancing, as the opposite of what
664
+ * UV_UDP_REUSEPORT would do. On other Unix platforms, it sets the
665
+ * SO_REUSEADDR flag. What that means is that multiple threads or
666
+ * processes can bind to the same address without error (provided
667
+ * they all set the flag) but only the last one to bind will receive
652
668
  * any traffic, in effect "stealing" the port from the previous listener.
653
669
  */
654
670
  UV_UDP_REUSEADDR = 4,
@@ -671,6 +687,18 @@ enum uv_udp_flags {
671
687
  * This flag is no-op on platforms other than Linux.
672
688
  */
673
689
  UV_UDP_LINUX_RECVERR = 32,
690
+ /*
691
+ * Indicates if SO_REUSEPORT will be set when binding the handle.
692
+ * This sets the SO_REUSEPORT socket option on supported platforms.
693
+ * Unlike UV_UDP_REUSEADDR, this flag will make multiple threads or
694
+ * processes that are binding to the same address and port "share"
695
+ * the port, which means incoming datagrams are distributed across
696
+ * the receiving sockets among threads or processes.
697
+ *
698
+ * This flag is available only on Linux 3.9+, DragonFlyBSD 3.6+,
699
+ * FreeBSD 12.0+, Solaris 11.4, and AIX 7.2.5+ for now.
700
+ */
701
+ UV_UDP_REUSEPORT = 64,
674
702
  /*
675
703
  * Indicates that recvmmsg should be used, if available.
676
704
  */
@@ -1903,17 +1931,17 @@ struct uv_loop_s {
1903
1931
  UV_EXTERN void* uv_loop_get_data(const uv_loop_t*);
1904
1932
  UV_EXTERN void uv_loop_set_data(uv_loop_t*, void* data);
1905
1933
 
1906
- /* String utilities needed internally for dealing with Windows. */
1907
- size_t uv_utf16_length_as_wtf8(const uint16_t* utf16,
1908
- ssize_t utf16_len);
1909
- int uv_utf16_to_wtf8(const uint16_t* utf16,
1910
- ssize_t utf16_len,
1911
- char** wtf8_ptr,
1912
- size_t* wtf8_len_ptr);
1913
- ssize_t uv_wtf8_length_as_utf16(const char* wtf8);
1914
- void uv_wtf8_to_utf16(const char* wtf8,
1915
- uint16_t* utf16,
1916
- size_t utf16_len);
1934
+ /* Unicode utilities needed for dealing with Windows. */
1935
+ UV_EXTERN size_t uv_utf16_length_as_wtf8(const uint16_t* utf16,
1936
+ ssize_t utf16_len);
1937
+ UV_EXTERN int uv_utf16_to_wtf8(const uint16_t* utf16,
1938
+ ssize_t utf16_len,
1939
+ char** wtf8_ptr,
1940
+ size_t* wtf8_len_ptr);
1941
+ UV_EXTERN ssize_t uv_wtf8_length_as_utf16(const char* wtf8);
1942
+ UV_EXTERN void uv_wtf8_to_utf16(const char* wtf8,
1943
+ uint16_t* utf16,
1944
+ size_t utf16_len);
1917
1945
 
1918
1946
  /* Don't export the private CPP symbols. */
1919
1947
  #undef UV_HANDLE_TYPE_PRIVATE
@@ -11,7 +11,7 @@
11
11
  #define V8_MAJOR_VERSION 12
12
12
  #define V8_MINOR_VERSION 9
13
13
  #define V8_BUILD_NUMBER 202
14
- #define V8_PATCH_LEVEL 26
14
+ #define V8_PATCH_LEVEL 28
15
15
 
16
16
  // Use 1 for candidates and 0 otherwise.
17
17
  // (Boolean macro values are not supported by all preprocessors.)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-linux-arm64",
3
- "version": "v23.0.0",
3
+ "version": "v23.1.0",
4
4
  "description": "node",
5
5
  "bin": {
6
6
  "node": "bin/node"