皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Node v16.14.0 (LTS) 发布

Node v16.14.0 (LTS) 发布

Importing JSON modules now requires experimental import assertions syntax

This release adds experimental support for the import assertions stage 3 proposal.

To keep Node.js ESM implementation as compatible as possible with the HTML spec, import assertions are now required to import JSON modules (still behind the --experimental-json-modules CLI flag):

import info from `./package.json` assert { type: `json` };

Or use dynamic import:

const info = await import(`./package.json`, { assert: { type: `json` } });

Contributed by Antoine du Hamel and Geoffrey Booth #40250

Other notable changes

  • async_hooks:
    • (SEMVER-MINOR) expose async_wrap providers (Rafael Gonzaga) #40760
  • child_process:
    • (SEMVER-MINOR) add support for URL to cp.fork (Antoine du Hamel) #41225
  • doc:
    • add @Mesteery to collaborators (Mestery) #41543
    • add @bnb as a collaborator (Tierney Cyren) #41100
  • esm:
    • (SEMVER-MINOR) graduate capturerejections to supported (James M Snell) #41267
    • (SEMVER-MINOR) add EventEmitterAsyncResource to core (James M Snell) #41246
  • events:
    • (SEMVER-MINOR) propagate weak option for kNewListener (James M Snell) #40899
  • fs:
    • (SEMVER-MINOR) accept URL as argument for fs.rm and fs.rmSync (Antoine du Hamel) #41132
  • lib:
    • (SEMVER-MINOR) make AbortSignal cloneable/transferable (James M Snell) #41050
    • (SEMVER-MINOR) add AbortSignal.timeout (James M Snell) #40899
    • (SEMVER-MINOR) add reason to AbortSignal (James M Snell) #40807
    • (SEMVER-MINOR) add unsubscribe method to non-active DC channels (simon-id) #40433
    • (SEMVER-MINOR) add return value for DC channel.unsubscribe (simon-id) #40433
  • loader:
    • (SEMVER-MINOR) return package format from defaultResolve if known (Gabriel Bota) #40980
  • perf_hooks:
    • (SEMVER-MINOR) multiple fixes for Histogram (James M Snell) #41153
  • process:
    • (SEMVER-MINOR) add getActiveResourcesInfo() (Darshan Sen) #40813
  • src:
    • (SEMVER-MINOR) add x509.fingerprint512 to crypto module (3nprob) #39809
    • (SEMVER-MINOR) add flags for controlling process behavior (Cheng Zhao) #40339
  • stream:
    • (SEMVER-MINOR) add filter method to readable (Benjamin Gruenbaum) #41354
    • (SEMVER-MINOR) add isReadable helper (Robert Nagy) #41199
    • (SEMVER-MINOR) add map method to Readable (Benjamin Gruenbaum) #40815
    • deprecate thenable support (Antoine du Hamel) #40860
  • util:
    • (SEMVER-MINOR) pass through the inspect function to custom inspect functions (Ruben Bridgewater) #41019
    • (SEMVER-MINOR) add numericSeparator to util.inspect (Ruben Bridgewater) #41003
    • (SEMVER-MINOR) always visualize cause property in errors during inspection (Ruben Bridgewater) #41002
  • timers:
    • (SEMVER-MINOR) add experimental scheduler api (James M Snell) #40909
  • v8:
    • (SEMVER-MINOR) multi-tenant promise hook api (Stephen Belanger) #39283

Commits

  • [336010341f] – assert: prefer reference comparison over string comparison (Darshan Sen) #41015
  • [2d471e47a0] – assert: use stricter stack frame detection in .ifError() (Ruben Bridgewater) #41006
  • [f788a47b8b] – async_hooks: add missing initialization (Michael Dawson) #41288
  • [b688f201df] – async_hooks: fix AsyncLocalStorage in unhandledRejection cases (Bradley Farias) #41202
  • [6af3e34b6b] – _Revert_ “async_hooks: merge resource_symbol with owner_symbol” (Darshan Sen) #40741
  • [85a02ec979] – async_hooks: eliminate require side effects (Stephen Belanger) #40782
  • [078a0c996f] – (SEMVER-MINOR) async_hooks: expose async_wrap providers (Rafael Gonzaga) #40760
  • [4a09904d05] – benchmark: simplify http benchmarker regular expression (Rich Trott) #38206
  • [bc48ed2834] – benchmark: fix benchmark/run.js handling of –set (Rich Trott) #41334
  • [e68bf84e31] – benchmark,test: use Object.hasOwn() where applicable (Rich Trott) #41229
  • [799cf57581] – buffer: fix Blob constructor on various TypedArrays (Irakli Gozalishvili) #40706
  • [5c1dc5f307] – build: fix npm version detection (Michaël Zasso) #41575
  • [3e4d977c28] – build: fix node build failures in WSL Ubuntu (MrJithil) #41476
  • [6ffb1e878c] – build: fix workflow access to git history (Rich Trott) #41472
  • [c49a651e67] – build: start build on z/OS (alexcfyung) #41273
  • [c65ac72b6c] – build: use list for mutable retval rather than tuple (Rich Trott) #41372
  • [ff48705372] – build: remove Python 2 workaround (Rich Trott) #41357
  • [c10fcb1f05] – build: improve readability of texts in workflows (Mestery) #40988
  • [93450e5e8e] – build: use ‘<(python)’ instead of ‘python’ (Cheng Zhao) #41146
  • [0b411c436a] – build: fix comment-labeled workflow (Mestery) #41176
  • [7756e1c692] – build: use gh cli in workflows file (Mestery) #40985
  • [d3289b2506] – build: fix commit-queue-rebase functionality (Rich Trott) #41140
  • [860d552431] – build: skip documentation generation if no ICU (Rich Trott) #41091
  • [c8625d18ba] – build: re-enable V8 concurrent marking (Michaël Zasso) #41013
  • [74557c3ac1] – build: add --without-corepack (Jonah Snider) #41060
  • [f826c866e9] – build: fail early in test-macos.yml (Rich Trott) #41035
  • [535bb5fb6b] – build: add tools/doc to tools.yml updates (Rich Trott) #41036
  • [20c4c6aa72] – build: update Actions versions (Mestery) #40987
  • [70fd4a15fc] – build: set persist-credentials: false on workflows (Rich Trott) #40972
  • [b72e50e5ef] – build: add OpenSSL gyp artifacts to .gitignore (Luigi Pinca) #40967
  • [066e0d6b44] – build: remove legacy -J test.py option from Makefile/vcbuild (Rich Trott) #40945
  • [f5233b004a] – build: ignore unrelated workflow changes in slow Actions tests (Rich Trott) #40928
  • [a905dfe8d5] – build: remove extraneous quotation marks from commit body (Rich Trott) #40963
  • [6971e5720b] – build: fix branch name for lint-md-dependencies update (Rich Trott) #40924
  • [a09bc8bf1d] – build: fix make invocation in tools.yml (Rich Trott) #40890
  • [323c058fed] – build: fix tools.yml errors (Rich Trott) #40870
  • [e354464c3e] – build: add GitHub Action to update tools modules (Rich Trott) #40644
  • [bfbb7fc24a] – build,tools: automate enforcement of emeritus criteria (Rich Trott) #41155
  • [fc38d15483] – build,tools,win: trim unused VCBUILD_PYTHON_LOCATION variable (David Sanders) #41235
  • [9086338549] – child_process: queue pending messages (Erick Wendel) #41221
  • [d25b17279f] – child_process: revise argument processing (Rich Trott) #41280
  • [15e5d7acf4] – (SEMVER-MINOR) child_process: add support for URL to cp.fork (Antoine du Hamel) #41225
  • [06b775cd5c] – cluster: use linkedlist for round_robin_handle (twchn) #40615
  • [a40989faea] – crypto: fix error capture when loading engine (Tobias Nießen) #41187
  • [3055edec2f] – crypto: add missing null check (Michael Dawson) #40598
  • [cf3423d8b6] – crypto: trim input for NETSCAPE_SPKI_b64_decode (Shelley Vohr) #40757
  • [e60841b598] – crypto: throw errors in SignTraits::DeriveBits (Tobias Nießen) #40796
  • [00fd7d28ef] – crypto: fix build without scrypt (Martin Jansa) #40613
  • [ebc370cac8] – deps: V8: cherry-pick cc9a8a37445e (Gus Caplan) #41825
  • [a59ade62cf] – deps: upgrade npm to 8.3.1 (npm-robot) #41503
  • [9dd097325a] – deps: V8: cherry-pick 3b6b21f595f6 (Michaël Zasso) #41457
  • [af6f1d512d] – deps: upgrade to libuv 1.43.0 (Colin Ihrig) #41398
  • [875fa40960] – deps: upgrade npm to 8.3.0 (npm team) #41127
  • [3c13bbd8aa] – deps: upgrade npm to 8.2.0 (npm team) #41065
  • [6c7088890e] – deps: update Acorn to v8.6.0 (Michaël Zasso) #40993
  • [e092fdebea] – deps: upgrade npm to 8.1.4 (npm team) #40865
  • [3e388ef28d] – deps: V8: cherry-pick cced52a97ee9 (Ray Wang) #40656
  • [58889e2463] – deps: V8: cherry-pick 7ae0b77628f6 (Ray Wang) #40882
  • [7cbbe0d982] – deps: V8: cherry-pick cced52a97ee9 (Ray Wang) #40656
  • [f260bbc0ab] – deps: V8: cherry-pick 7ae0b77628f6 (Ray Wang) #40882
  • [a3aa9bcaf8] – deps: update to uvwasi 0.0.12 (Colin Ihrig) #40847
  • [c0200e20a0] – deps: upgrade npm to 8.1.3 (npm team) #40726
  • [036650e046] – deps: V8: backport 77599ffe0a74 (Lu Yahan) #41566
  • [0b27486895] – deps: V8: cherry-pick e74d6918fb9f (Lu Yahan) #41566
  • [77ad5dd0ff] – deps: V8: cherry-pick 471f862954f3 (Lu Yahan) #41566
  • [dc6843cabe] – deps: V8: cherry-pick 3cab84c24723 (Lu Yahan) #41566
  • [e391da45cf] – deps: V8: cherry-pick d8dc66f92169 (Lu Yahan) #41566
  • [5aa45ae757] – deps: update ICU to 70.1 (Michaël Zasso) #40658
  • [0466400d7a] – deps: update archs files for OpenSSL-1.1.1m+quic (Richard Lau) #41175
  • [553246c1e4] – deps: upgrade openssl sources to OpenSSL_1_1_1m+quic (Richard Lau) #41175
  • [95c19c36a9] – deps: add -fno-strict-aliasing flag to libuv (Daniel Bevenius) #40631
  • [ce525e9661] – doc: align links in table to top (nikoladev) #41396
  • [1db154fa96] – doc: remove statement about client private keys (Tobias Nießen) #41505
  • [7ba53103a5] – doc: fix typo in onboarding.md (Antoine du Hamel) #41544
  • [0d009aebd5] – doc: add Mesteery to collaborators (Mestery) #41543
  • [2bea4bd9ee] – doc: add missing word in readable.read() text (Rich Trott) #41524
  • [d5ad2b7fcd] – doc: add missing YAML tag in esm.md (Antoine du Hamel) #41516
  • [c914d95494] – doc: expand fs.access() mode parameter docs (Colin Ihrig) #41484
  • [d4458162a4] – doc: correct checkHost behavior with wildcards etc (Tobias Nießen) #41468
  • [dea8895091] – doc: remove extraneous colon in legacy subject (Tobias Nießen) #41477
  • [e425f369ea] – doc: remove SameValue comparison reference (Rich Trott) #41460
  • [30cb6948f1] – doc: update mailmap entries for mhdawson (Michael Dawson) #41437
  • [2586f098ac] – doc: add guidance on order vulns are listed in (Michael Dawson) #41429
  • [790898eaae] – doc: update output in inspector examples (David Sanders) #41390
  • [00333fe737] – doc: add note regarding unfinished TLA (Antoine du Hamel) #41434
  • [fe24cb2cd9] – doc: add reference for === operator in assert.md (Rich Trott) #41442
  • [52a988bfb8] – doc: clarify uncaughtException origin for ESM (Antoine du Hamel) #41339
  • [91c3e28018] – doc: revise HTTPRequestOptions text (Rich Trott) #41407
  • [b281bf59ff] – doc: add reference for == and != operators (Rich Trott) #41413
  • [66b90f9d02] – doc: add @RaisinTen to the TSC (Michael Dawson) #41419
  • [14068f8728] – doc: update Abstract Equality Comparison text in assert.md (Rich Trott) #41375
  • [c95151247a] – doc: fix example commands for REPLACEME updates (Richard Lau) #41269
  • [04a81b3e21] – doc: document that require.main may be undefined (Antoine du Hamel) #41384
  • [71bc352328] – doc: clarify entry point behavior when using loader hooks (Antoine du Hamel) #41304
  • [add1184b74] – doc: clarify require behavior with non .js extensions (Antoine du Hamel) #41345
  • [7618b551dc] – doc: revise frozen-intrinsics text (Rich Trott) #41342
  • [41cfc32602] – doc: fix example description for worker_threads (Dmitry Petrov) #41341
  • [46c38eb5fc] – doc: make pull-request guide default branch agnostic (Antoine du Hamel) #41299
  • [1c0c140ae5] – doc: fix sync comment in observer snippet (Eric Jacobson) #41262
  • [081f72e4c0] – doc: remove section about amending commits in PR guide (Thiago Santos) #41287
  • [720fad8876] – doc: remove legacy in-page links in v8.md (Rich Trott) #41291
  • [9eb8233bf6] – doc: include stack trace difference in ES modules (Marcos Bérgamo) #41157
  • [f3b0dfc325] – doc: fix example in node-api docs (Michael Dawson) #41264
  • [aa04a2c562] – doc: add usage recommendation for writable._destroy (Rafael Gonzaga) #41040
  • [a6e7cf5bd4] – doc: make function signature comply with JSDoc comment (Rich Trott) #41242
  • [e7d57ac2cc] – doc: align maxHeaderSize default with current value (Gil Pedersen) #41183
  • [ad06e3d3e0] – doc: add unhandledRejection to strict mode (Colin Ihrig) #41194
  • [11a5f7a81f] – doc: adding estimated execution time (mawaregetsuka) #41142
  • [ba85147a33] – doc: fix syntax error in nested conditions example (Mateusz Burzyński) #41205
  • [8be5b66201] – doc: fix closing parenthesis (AlphaDio) #41190
  • [f0693cb5f9] – doc: add security steward on/offboarding steps (Michael Dawson) #41129
  • [ac025f17b2] – doc: align module resolve algorithm with implementation (Qingyu Deng) #38837
  • [f6bf74748d] – doc: update nodejs-sec managers (Michael Dawson) #41128
  • [c4a5db6e2c] – doc: move style guide to findable location (Rich Trott) #41119
  • [35d0a4eb92] – doc: fix comments in test-fs-watch.js (jakub-g) #41046
  • [22970c67fc] – doc: document support building with Python 3.10 on Windows (Christian Clauss) #41098
  • [f35bd5223f] – doc: add note about pip being required (Piotr Rybak) #40669
  • [179886fa1d] – doc: remove OpenJSF Slack nodejs from support doc (Rich Trott) #41108
  • [e401e6c1af] – doc: simplify major release preparation (Bethany Nicolle Griggs) #40816
  • [ecc086cc7f] – doc: clarify escaping for ES modules (notroid5) #41074
  • [7930725014] – doc: add @bnb as a collaborator (Tierney Cyren) #41100
  • [6a9db2ebdb] – doc: add explicit declaration of fd with null val (Henadzi) #40704
  • [084decdcf8] – doc: expand entries for isIP(), isIPv4(), and isIPv6() (Rich Trott) #41028
  • [3f6106c538] – doc: link to commit queue guide (Geoffrey Booth) #41030
  • [c52ce19c80] – doc: specify that message.socket can be nulled (Luigi Pinca) #41014
  • [341a999fdb] – doc: fix JSDoc in ESM loaders examples (Mestery) #40984
  • [268771c85b] – doc: remove legacy -J test.py option from BUILDING.md (Rich Trott) #40945
  • [90ac3dc85e] – doc: add information on suppressing initial break in debugger (Rich Trott) #40960
  • [d9fc06b158] – doc: improve grammar in API description (Tobias Nießen) #40959
  • [02e9c2e7fe] – doc: update BUILDING.md section on running tests (Rich Trott) #40933
  • [9f14f66009] – doc: remove experimental abortcontroller flag (FrankQiu) #38968
  • [d217809fba] – doc: clarify more optional parameters in node-api (Michael Dawson) #40888
  • [dead21c68c] – doc: define “types”, “deno” community conditions (Guy Bedford) #40708
  • [019b25fa5d] – doc: document optional params in napi_get_cb_info (Michael Dawson) #40821
  • [38f02dc4c1] – doc: improve README.md lede section (Rich Trott) #40837
  • [1a2c80957b] – doc: add pref to using draft PR versus WIP label (Michael Dawson) #40824
  • [e70c3616c8] – doc: tweak guidance for modules in core (Michael Dawson) #40601
  • [c10b01e857] – doc: claim ABI version for Electron 18 (Keeley Hammond) #40768
  • [7fba4e5819] – doc: fix transform stream example (Evan Lucas) #40777
  • [a74673fc7c] – doc: fix linter-enforced formatting in crypto.md (Mohammed Keyvanzadeh) #40780
  • [d9ae43ef0e] – doc: fix corepack grammar for --force flag (Steven) #40762
  • [7f9bf21241] – doc: clarify getAuthTag with authTagLength (Tobias Nießen) #40713
  • [fbf732de4f] – doc: fix order of announce work (Michael Dawson) #40725
  • [ac56a114ad] – doc: add initial list of technical priorities (Michael Dawson) #40235
  • [f47d6a37f5] – doc: fix lint re-enabling comment in README.md (Rich Trott) #40647
  • [a9adbb680b] – doc: fix spelling of ‘WebAssembly’ (Geoffrey Booth) #40785
  • [9e68c00d8e] – doc: format v8.md in preparation for stricter linting (Rich Trott) #40647
  • [82facfbe3e] – doc: final round of markdown format changes (Rich Trott) #40645
  • [fe1b6fb0b5] – doc: simplify CHANGELOG.md (Rich Trott) #40475
  • [5c90975275] – doc: correct esm spec scope lookup definition (Guy Bedford) #40592
  • [ce2dc48588] – doc: use GFM footnotes in BUILDING.md (Rich Trott) #40474
  • [ab28dc5e7f] – doc: update maintaining ICU guide (Michaël Zasso) #40658
  • [f4493c1691] – doc: format changelog for v16.13.2 (Danielle Adams) #41483
  • [59d159f6c3] – doc,lib,tools: align multiline comments (Rich Trott) #41109
  • [3cfe85615c] – esm: make process.exit() default to exit code 0 (Gang Chen) #41388
  • [a0a8f4de58] – esm: reconcile JSDoc vs. actual parameter name (Rich Trott) #41238
  • [a554821f67] – (SEMVER-MINOR) esm: working mock test (Bradley Farias) #39240
  • [4e0502625b] – esm: refactor esm tests out of test/message (Geoffrey Booth) #41352
  • [1b8169a842] – (SEMVER-MINOR) esm: add support for JSON import assertion (Antoine du Hamel) #40250
  • [1280e191e2] – events: clarify JSDoc entries (Rich Trott) #41311
  • [24b40b3b05] – (SEMVER-MINOR) events: graduate capturerejections to supported (James M Snell) #41267
  • [3185772b66] – events: add jsdoc details for Event and EventTarget (James M Snell) #41274
  • [b79fdd5775] – (SEMVER-MINOR) events: add EventEmitterAsyncResource to core (James M Snell) #41246
  • [78a8c1b0bd] – (SEMVER-MINOR) events: propagate weak option for kNewListener (James M Snell) #40899
  • [b671194b85] – (SEMVER-MINOR) fs: accept URL as argument for fs.rm and fs.rmSync (Antoine du Hamel) #41132
  • [66556b39e0] – fs: use async directory processing in cp() (Colin Ihrig) #41351
  • [f4cef533c3] – fs: correct param names in JSDoc comments (Rich Trott) #41237
  • [eaab8d0498] – fs: fix error codes for fs.cp (Antoine du Hamel) #41106
  • [67c6170dc7] – fs: fix length option being ignored during read() (Shinho Ahn) #40906
  • [0377edcceb] – fs: nullish coalescing to respect zero positional reads (Omar El-Mihilmy) #40716
  • [d3839041f5] – http: remove duplicate code (Shaw) #39239
  • [0bf829192a] – http: don’t write empty data on req/res end() (Santiago Gimeno) #41116
  • [86bbb427ce] – http: add missing initialization (Michael Dawson) #40555
  • [be53296a1d] – http: change totalSocketCount only on socket creation/close (Subhi Al Hasan) #40572
  • [3c99a4d7c0] – http2: handle existing socket data when creating HTTP/2 server sessions (Tim Perry) #41185
  • [5356dfd296] – inspector: add missing initialization (Michael Dawson) #41022
  • [283f1e8721] – lib: fix linting warnings and errors (Danielle Adams) #41805
  • [c776c7c531] – lib: include return types in JSDoc (Rich Trott) #41130
  • [f6cf39a2d5] – lib: remove spurious JSDoc entry (Rich Trott) #41240
  • [a47fc90c1a] – lib: fix checking syntax of esm module (Qingyu Deng) #41198
  • [438b9cfe02] – (SEMVER-MINOR) lib: make AbortSignal cloneable/transferable (James M Snell) #41050
  • [eda57a9160] – lib: use consistent types in JSDoc @returns (Rich Trott) #41089
  • [f40e099e35] – lib: do not lazy load EOL in blob (Ruben Bridgewater) #41004
  • [157753bf26] – (SEMVER-MINOR) lib: add AbortSignal.timeout (James M Snell) #40899
  • [e08df49d7a] – (SEMVER-MINOR) lib: add reason to AbortSignal (James M Snell) #40807
  • [4bcff4c5f8] – _Revert_ “lib: use helper for readability” (Darshan Sen) #40741
  • [4cb1e7c9c2] – lib: fix typos in lib code comments (Yoshiki) #40792
  • [5e606b54b7] – (SEMVER-MINOR) lib: add unsubscribe method to non-active DC channels (simon-id) #40433
  • [594fe5502d] – (SEMVER-MINOR) lib: add return value for DC channel.unsubscribe (simon-id) #40433
  • [cf6379a543] – lib,test,tools: use consistent JSDoc types (Rich Trott) #40989
  • [4814667189] – lib,tools: remove empty lines between JSDoc tags (Rich Trott) #41147
  • [d422e585c8] – loader: fix package resolution for edge case (Gabriel Bota) #41218
  • [694dc12fab] – (SEMVER-MINOR) loader: return package format from defaultResolve if known (Gabriel Bota) #40980
  • [121199f971] – meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #41456
  • [9467aa9bcf] – meta: update AUTHORS (Node.js GitHub Bot) #41475
  • [e83e41634a] – meta: correct my name in AUTHORS (Jacob Smith) #41444
  • [8dfc1434c2] – meta: update AUTHORS (Node.js GitHub Bot) #41449
  • [dc536f4d14] – meta: add required fields in issue templates (Rich Trott) #41378
  • [5d5c52fa67] – meta: update AUTHORS (Node.js GitHub Bot) #41374
  • [970de5331c] – meta: replace API docs issue template with form (Rich Trott) #41348
  • [08f5c8d131] – meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #41336
  • [51e6ed014a] – meta: replace feature request template with form (Rich Trott) #41317
  • [bb997ff494] – meta: update AUTHORS (Node.js GitHub Bot) #41322
  • [9319fa3394] – meta: update node-api team name (Richard Lau) #41268
  • [93b5a2781b] – meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #41248
  • [d3444a55aa] – meta: update AUTHORS (Node.js GitHub Bot) #41234
  • [115775fd12] – meta: remove community-committee from CODEOWNERS (Rich Trott) #41169
  • [5ac60276d6] – meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #41154
  • [f8c6055af0] – meta: move to emeritus automatically after 18 months (Rich Trott) #41155
  • [7f3604aa5d] – meta: move silverwind to emeriti (Roman Reiss) #41171
  • [d8dbced939] – meta: update AUTHORS (Node.js GitHub Bot) #41144
  • [25d3103f38] – meta: update AUTHORS (Node.js GitHub Bot) #41088
  • [714efe431c] – meta: move one or more TSC members to emeritus (Node.js GitHub Bot) #40908
  • [f51ce33836] – meta: increase security policy response targets (Matteo Collina) #40968
  • [23e925e1fb] – meta: add feature request label for issue template (Mestery) #40970
  • [ad1056d29e] – meta: update AUTHORS (Node.js GitHub Bot) #40900
  • [317cd3fc2b] – meta: update name and email (Viero Fernando) #40848
  • [eb0106d61d] – meta: update AUTHORS (Node.js GitHub Bot) #40809
  • [3a435a3328] – meta: edit GOVERNANCE.md for minor updates (Rich Trott) #40798
  • [1626d17cbe] – meta: update AUTHORS (Node.js GitHub Bot) #40748
  • [442ad8d787] – module: import assertions improvements (Geoffrey Booth) #40785
  • [e7391ea1b3] – module: resolver & spec hardening /w refactoring (Guy Bedford) #40510
  • [03490cb311] – node-api: add missing initialization of last error (Michael Dawson) #41290
  • [375d04a455] – node-api,doc: document parms which can be optional (Michael Dawson) #41021
  • [c021b385c8] – (SEMVER-MINOR) perf_hooks: multiple fixes for Histogram (James M Snell) #41153
  • [7b6db6df39] – policy: add missing JSDoc @param entry (Rich Trott) #41239
  • [c60cff9091] – (SEMVER-MINOR) process: add getActiveResourcesInfo() (Darshan Sen) #40813
  • [f0860bc3c8] – process: support hrtime in the snapshot (Joyee Cheung) #40649
  • [ef337294cc] – readline: skip escaping characters again (Ruben Bridgewater) #41005
  • [370bfda154] – repl: fix and extend require/import tab complete (Mestery) #40216
  • [3c4e3c03ce] – src: gracefully handle errors in GetX509NameObject (Tobias Nießen) #41490
  • [b4d245446f] – src: fix out-of-bounds check of serialization indices (JoostK) #41452
  • [cb30038447] – src: do IWYU for some STL includes (David Sanders) #41236
  • [fe4158aa4e] – src: split out async stack corruption detection from inline fn (Anna Henningsen) #41331
  • [72921f4b31] – src: store native async execution resources as v8::Local (Anna Henningsen) #41331
  • [59625f70ad] – src: guard slightly costly check in MakeCallback more strongly (Anna Henningsen) #41331
  • [2ca37149ad] – src: fix limit calculation (Michael Dawson) #41026
  • [5f01d03acc] – src: use a higher limit in the NearHeapLimitCallback (Joyee Cheung) #41041
  • [7237bcc2d9] – src: reset error struct if error code is napi_ok (JckXia) #40552
  • [9cc2bb75e5] – src: prevent extra copies of TimerWrap::TimerCb (Darshan Sen) #40665
  • [bd9a6a0194] – (SEMVER-MINOR) src: add x509.fingerprint512 to crypto module (3nprob) #39809
  • [7681fdfd7d] – src: add and fix some preprocessor comments (Tobias Nießen) #40701
  • [a9826b09d4] – (SEMVER-MINOR) src: add flags for controlling process behavior (Cheng Zhao) #40339
  • [b1f785cd72] – src,crypto: remove uses of AllocatedBuffer from crypto_sig (Darshan Sen) #40895
  • [807536c541] – src,crypto: use ByteSource::ToBuffer() in crypto_dh (Darshan Sen) #40903
  • [51b86550ae] – src,crypto: remove AllocatedBuffers from crypto_spkac (Darshan Sen) #40752
  • [cebf40396f] – src,crypto: refactor crypto_tls.* (Darshan Sen) #40675
  • [df574f3109] – src,doc: add SyntaxError napi support (Idan Attias) #40736
  • [5e890be360] – stream: remove always-false condition check (Rich Trott) #41488
  • [ae30b391c2] – stream: fix error-path function call (Rich Trott) #41433
  • [5d27f4acbb] – stream: remove unused function argument (Rich Trott) #41403
  • [77c18680ae] – (SEMVER-MINOR) stream: add filter method to readable (Benjamin Gruenbaum) #41354
  • [7cef7699e3] – (SEMVER-MINOR) stream: add isReadable helper (Robert Nagy) #41199
  • [9c718f8af0] – (SEMVER-MINOR) stream: add map method to Readable (Benjamin Gruenbaum) #40815
  • [8cf507abf1] – stream: fix enqueue race condition on esm modules (Rafael Gonzaga) #40901
  • [4522216660] – stream: add isErrored helper (Robert Nagy) #41121
  • [2251bbae0d] – stream: remove whatwg streams experimental warning (James M Snell) #40971
  • [3b1c01216c] – stream: drain Transform with 0 highWaterMark (Robert Nagy) #40947
  • [436e07b36e] – stream: deprecate thenable support (Antoine du Hamel) #40860
  • [9811617b18] – stream: fix the ReadableStreamBYOBReader error message (James M Snell) #40846
  • [e110c96f48] – stream: pipeline with end option (Robert Nagy) #40886
  • [c9f1398faf] – stream: pipeline should drain empty readable (Robert Nagy) #40654
  • [55c9349afa] – stream: fix non readable Duplex readableAborted (Robert Nagy) #40801
  • [1f722a1c77] – stream: allow calling callback before promise (Robert Nagy) #40772
  • [1de552caeb] – test: add ignore for regex space rule (Danielle Adams) #41805
  • [40c09600fd] – test: improve test coverage of dns/promises (Yoshiki Kurihara) #41425
  • [fa425a1aa2] – test: remove broken wiki link from test/common doc (Yoshiki Kurihara) #41426
  • [9242c1900c] – test: do not OR F_OK in fs.access() test (Colin Ihrig) #41484
  • [3bd8e92bbb] – test: mark test-performance-eventloopdelay flaky (Michael Dawson) #41409
  • [874000ff6b] – test: mark test-repl-sigint-nested-eval as flaky (Michael Dawson) #41302
  • [404c8f5501] – test: use spawnSync() full name in test-stdio-pipe-stderr (Rich Trott) #41332
  • [256bf9e6b6] – test: improve expectWarning error message (Rich Trott) #41326
  • [b1e4387c92] – test: use spawnSync() full name (Rich Trott) #41327
  • [8d15bacf2b] – test: add comments explaining _setSimultaneousAccepts deprecation tests (Yoshiki Kurihara) #41307
  • [a53399edbb] – test: mark test-worker-take-heapsnapshot flaky (Michael Dawson) #41253
  • [e444b41093] – test: mark wpt/test-user-timing test flaky (Michael Dawson) #41203
  • [8926d956c1] – test: correct param name in JSDoc comment (Rich Trott) #41241
  • [2e133d5555] – test: mark test-crypto-keygen slow on windows (Michael Dawson) #41207
  • [28c52f60f6] – test: skip ESLint tests if no Intl (Rich Trott) #41105
  • [d6b15424da] – test: add missing JSDoc parameter name (Rich Trott) #41057
  • [3450227ba2] – test: deflake test-trace-atomics-wait (Luigi Pinca) #41018
  • [b9567d99fc] – test: add auth option case for url.format (Hirotaka Tagawa / wafuwafu13) #40516
  • [38fd30f34b] – _Revert_ “test: skip different params test for OpenSSL 3.x” (Daniel Bevenius) #40640
  • [28a216a6dc] – test: mark test-fs-watch-non-recursive flaky on Windows (Luigi Pinca) #40916
  • [ab398b6c80] – test: deflake cluster-concurrent-disconnect (Luigi Pinca) #40877
  • [9e2e4437b9] – test: deflake fs-promises-watch (Luigi Pinca) #40863
  • [55678af57d] – test: fix argument order in assertion (Luigi Pinca) #40842
  • [4978689713] – test: deflake http2-pipe-named-pipe (Luigi Pinca) #40842
  • [f17789addf] – test: use descriptive name for destination file (Luigi Pinca) #40842
  • [48e2b60c44] – test: add AsyncLocalStorage tests using udp, tcp and tls sockets (Darshan Sen) #40741
  • [c002930a62] – test: add tests for invalid UTF-8 (git-srinivas) #40351
  • [25a166dd25] – test: fix flaky test-policy-integrity (Rich Trott) #40763
  • [25b3187021] – test: add semicolons for linter update (Rich Trott) #40720
  • [b4fea14cc3] – test: disable warnings to fix flaky test (Antoine du Hamel) #40739
  • [2c84c3eee8] – test: do not load absolute path crypto engines twice (Richard Lau) #41175
  • [b5b3750678] – timers: use ref counts to count timers (Darshan Sen) #41231
  • [c5f9e96ac4] – (SEMVER-MINOR) timers: add experimental scheduler api (James M Snell) #40909
  • [00abb811ac] – tls: use optional chaining to simplify checks (Antoine du Hamel) #41337
  • [ffca1a71ce] – tls: permit null as a pfx value (CallMeLaNN) #41170
  • [3b5b893abb] – tls: improve handling of shutdown (Jameson Nash) #36111
  • [99a90dbd4a] – tools: enable jsdoc/require-returns-type ESLint rule (Rich Trott) #41130
  • [66feaf429c] – tools: fix small not-quite-a-bug in find-inactive-tsc.mjs (Rich Trott) #41469
  • [7d5686dc9c] – tools: enable ESLint recommended configuration (Rich Trott) #41463
  • [ecf3b6db44] – tools: enable ESLint no-constant-condition rule (Rich Trott) #41463
  • [12ea18ded9] – tools: enable ESLint require-yield rule (Rich Trott) #41463
  • [609a310e2a] – tools: enable ESLint no-sparse-arrays rule (Rich Trott) #41463
  • [063abe52aa] – tools: enable ESLint no-loss-of-precision rule (Rich Trott) #41463
  • [86ece9843f] – tools: replace for loop with map() (Rich Trott) #41451
  • [70ea7462a6] – tools: use GITHUB_ACTIONS env var in inactivity scripts (Rich Trott) #41422
  • [62450d38a8] – tools: replace while+exec() with matchAll() (Rich Trott) #41406
  • [2bc381ee55] – tools: fix argv bug in find-inactive-tsc.mjs (Rich Trott) #41394
  • [3ecc964a29] – tools: remove conditional assignment in custom ESLint rule (Rich Trott) #41325
  • [a136d56aa6] – tools: update lint-md-dependencies to @rollup/plugin-node-resolve@13.1.2 (Node.js GitHub Bot) #41369
  • [003dd37717] – tools: update doc to rehype-raw@6.1.1 (Node.js GitHub Bot) #41367
  • [e8f00fd2ff] – tools: remove last of error-masking in commit-queue.sh (Rich Trott) #41356
  • [530c1275a0] – tools: update eslint to 8.6.0 (Node.js GitHub Bot) #41368
  • [9f2365c4e1] – tools: do not mask errors on multiple commit retrieval (Rich Trott) #41340
  • [f31a3a27bf] – tools: enable jsdoc/check-param-names lint rule (Rich Trott) #41311
  • [1d2e676f8d] – tools: improve section tag additions in HTML doc generator (Rich Trott) #41318
  • [12c5333546] – tools: simplify commit-queue.sh merge command (Rich Trott) #41314
  • [85438e367e] – tools: update lint-md-dependencies to rollup@2.62.0 (Node.js GitHub Bot) #41315
  • [f890582760] – tools: use Object.hasOwn() in alljson.mjs (Rich Trott) #41306
  • [b6a0afc99e] – tools: avoid generating duplicate id attributes (Rich Trott) #41291
  • [7815fbd751] – tools: be intentional about masking possible error in start-ci.sh (Rich Trott) #41284
  • [4011be0d19] – tools: use {N} for spaces in regex (Rich Trott) #41295
  • [599c119de8] – tools: consolidate update-authors.js logic (Rich Trott) #41255
  • [0f728e0825] – tools: update doc dependency mdast-util-gfm-table to 1.0.2 (Rich Trott) #41260
  • [ae32af308a] – tools: make license-builder.sh comply with shellcheck 0.8.0 (Rich Trott) #41258
  • [d51e8ffb22] – tools: use arrow function for callback in lint-sh.js (Rich Trott) #41256
  • [1523aa5a02] – tools: add double-quotes to make-v8.sh (Rich Trott) #41257
  • [49dc1f278e] – tools: enable prefer-object-has-own lint rule (Rich Trott) #41245
  • [f926a490e5] – tools: update eslint to 8.5.0 (Node.js GitHub Bot) #41228
  • [91fc85ae1b] – tools: enable jsdoc/tag-lines ESLint rule (Rich Trott) #41147
  • [de2140d851] – tools: update lint-md-dependencies to @rollup/plugin-node-resolve@13.1.1 (Node.js GitHub Bot) #41227
  • [433274ac2c] – tools: fix CQ and auto-start-ci jobs (Antoine du Hamel) #41230
  • [95568dc877] – tools: fix GitHub Actions status when CQ is empty (Antoine du Hamel) #41193
  • [719c39d230] – tools: update doc to remark-rehype@10.1.0 (Node.js GitHub Bot) #41149
  • [0b2144028f] – tools: update lint-md-dependencies to rollup@2.61.1 vfile-reporter@7.0.3 (Node.js GitHub Bot) #41150
  • [3dc8483345] – tools: update ESLint to 8.4.1 (Rich Trott) #41114
  • [33be3e8451] – tools: enable JSDoc check-alignment lint rule (Rich Trott) #41109
  • [2c28f86eb9] – tools: strip comments from lint-md rollup output (Rich Trott) #41092
  • [1ff152120e] – tools: update highlight.js to 11.3.1 (Rich Trott) #41091
  • [2c009ccc24] – tools: enable jsdoc/require-returns-check lint rule (Rich Trott) #41089
  • [4aae04bb1a] – tools: update ESLint to 8.4.0 (Luigi Pinca) #41085
  • [50420c654c] – tools: enable jsdoc/require-param-name lint rule (Rich Trott) #41057
  • [0983f6b29b] – tools: use jsdoc recommended rules (Rich Trott) #41057
  • [f9cf50f543] – tools: rollback highlight.js (Richard Lau) #41078
  • [5bfa0ea9c4] – tools: remove Babel from license-builder.sh (Rich Trott) #41049
  • [f74d8b56b8] – tools: udpate packages in tools/doc (Rich Trott) #41036
  • [af9b05fc11] – tools: install and enable JSDoc linting in ESLint (Rich Trott) #41027
  • [45e7affa9c] – tools: include JSDoc in ESLint updating tool (Rich Trott) #41027
  • [9e770d4cfd] – tools: ignore unrelated workflow changes in slow Actions tests (Antoine du Hamel) #40990
  • [e5cccdfd74] – tools: remove unneeded tool in update-eslint.sh (Rich Trott) #40995
  • [017cdcd76a] – tools: consolidate ESLint dependencies (Rich Trott) #40995
  • [83f946855f] – tools: update ESLint update script to consolidate dependencies (Rich Trott) #40995
  • [0ed4775069] – tools: run ESLint update to minimize diff on subsequent update (Rich Trott) #40995
  • [5527e9bfac] – tools: update gyp-next to v0.10.1 (Michaël Zasso) #40934
  • [307dd76a90] – tools: fix commit-lint GH Actions CI (Antoine du Hamel) #40845
  • [da35d4fc4b] – tools: ping TSC members identified as inactive (Rich Trott) #40915
  • [2ffe08dc3e] – tools: update lint-md-dependencies to rollup@2.60.1 (Node.js GitHub Bot) #40929
  • [5336e488f1] – tools: update lint-md dependencies (Rich Trott) #40894
  • [96cfab14d0] – tools: update ESLint to 8.3.0 (Luigi Pinca) #40917
  • [b54d53b9dd] – tools: add find-inactive-tsc (Rich Trott) #40884
  • [4ffbff25f3] – tools: update @babel/eslint-parser to 7.16.3 (Node.js GitHub Bot) #40889
  • [c5d0b3cf84] – tools: only validate first commit message of a PR (Antoine du Hamel) #40740
  • [6b6fb83673] – tools: improve update scripts (Rich Trott) #40644
  • [e915cec505] – tools: notify user if format-md needs to be run (Rich Trott) #40647
  • [ea75ef5fbd] – tools: update babel-eslint-parser to 7.16.0 (Rich Trott) #40720
  • [3580286818] – tools: avoid unnecessary escaping in markdown formatter (Rich Trott) #40645
  • [362f5edf8c] – tools,benchmark,lib,test: enable no-case-declarations lint rule (Rich Trott) #41385
  • [5d70195d56] – tools,lib,test: enable ESLint no-regex-spaces rule (Rich Trott) #41463
  • [53570a8a7a] – tools,test: make -J behavior default for test.py (Rich Trott) #40945
  • [5380de725c] – typings: add types for symbol and accessor properties on primordials (ExE Boss) #40992
  • [782dbbd38c] – typings: add JSDoc for string_decoder (Qingyu Deng) #38229
  • [08c2512bbf] – url: detect hostname more reliably in url.parse() (Rich Trott) #41031
  • [2c7f17c72c] – util: do not reduce to a single line if not appropriate using inspect (Ruben Bridgewater) #41083
  • [7b6c71ab1c] – util: display a present-but-undefined error cause (Jordan Harband) #41247
  • [2602c0ca62] – util: serialize falsy cause values while inspecting errors (Ruben Bridgewater) #41097
  • [89d955658b] – util: make sure error causes of any type may be inspected (Ruben Bridgewater) #41097
  • [8ce85882bd] – (SEMVER-MINOR) util: pass through the inspect function to custom inspect functions (Ruben Bridgewater) #41019
  • [4f300a5b00] – util: escape lone surrogate code points using .inspect() (Ruben Bridgewater) #41001
  • [45a3e2454d] – (SEMVER-MINOR) util: add numericSeparator to util.inspect (Ruben Bridgewater) #41003
  • [b15f5e48fa] – (SEMVER-MINOR) util: always visualize cause property in errors during inspection (Ruben Bridgewater) #41002
  • [e29bd4699d] – (SEMVER-MINOR) v8: multi-tenant promise hook api (Stephen Belanger) #39283

Windows 32-bit Installer: https://nodejs.org/dist/v16.14.0/node-v16.14.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v16.14.0/node-v16.14.0-x64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v16.14.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v16.14.0/win-x64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v16.14.0/node-v16.14.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v16.14.0/node-v16.14.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v16.14.0/node-v16.14.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v16.14.0/node-v16.14.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v16.14.0/node-v16.14.0.tar.gz
Other release files: https://nodejs.org/dist/v16.14.0/
Documentation: https://nodejs.org/docs/v16.14.0/api/

SHASUMS

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

e31a1478b50814848089bc11fb58d463c180ac5e08ec95f6bd314b2a7209d23a  node-v16.14.0-aix-ppc64.tar.gz
56e547d22bc7be8aa40c8cfd604c156a5bcf8692f643ec1801c1fa2390498542  node-v16.14.0-darwin-arm64.tar.gz
42eb3b1dc00b44a1e2cb70ddbf5e5e838354dafb969bb54db8b3b287f8df862f  node-v16.14.0-darwin-arm64.tar.xz
26702ab17903ad1ea4e13133bd423c1176db3384b8cf08559d385817c9ca58dc  node-v16.14.0-darwin-x64.tar.gz
8c0ad2f0c890385242e4f8886e7ddf7cfa14868415113ada5a08130d5a83fc9e  node-v16.14.0-darwin-x64.tar.xz
0cb39adcabb513d2651fa25ea39c88cebd76200ea922e619e3b9799fa599ca81  node-v16.14.0-headers.tar.gz
aee577d58e8dd6d1a54f3e37f046db8a7233b8d41abfafe45ce366b020d0675d  node-v16.14.0-headers.tar.xz
82d71968c82eb391f463df62ba277563a3bd01ce43bba0e7e1c533991567b8fe  node-v16.14.0-linux-arm64.tar.gz
5a6e818c302527a4b1cdf61d3188408c8a3e4a1bbca1e3f836c93ea8469826ce  node-v16.14.0-linux-arm64.tar.xz
2df94404f4dd22aee67370cd24b2c802f82409434e5ed26061c7aaec74a8ebc2  node-v16.14.0-linux-armv7l.tar.gz
a27a5866445cbe70e086d1a2b6cda27f1127b0b8c5eced31204e4e524790727a  node-v16.14.0-linux-armv7l.tar.xz
247cbaa1e3376913ae565f2dfa6dd16f973f72b05786896236b16d92aac4ee7a  node-v16.14.0-linux-ppc64le.tar.gz
d1012696cacb3833b8b33748905e716f2524766b29a2a4c405f34ed2f3e5fdb4  node-v16.14.0-linux-ppc64le.tar.xz
e31023ffaa61ee0e6182e9c21c31dab1a9fbc80975aaedb421ca1261debc0f9a  node-v16.14.0-linux-s390x.tar.gz
1c98494bc097547bcadb972780aec58bb40b9c094f0daed75debfee4cb980fd9  node-v16.14.0-linux-s390x.tar.xz
2c69e7b040c208b61ebf9735c63d2e5bcabfed32ef05a9b8dd5823489ea50d6b  node-v16.14.0-linux-x64.tar.gz
0570b9354959f651b814e56a4ce98d4a067bf2385b9a0e6be075739bc65b0fae  node-v16.14.0-linux-x64.tar.xz
cde4f7535328263e96b6b027cd26ee9b9ddccd1e4c4e33fbcabea5118a8c1ba0  node-v16.14.0.pkg
29dfce13650f063ff009d18349636333fa4305468b6a8965d442c2e88b1dd60f  node-v16.14.0.tar.gz
05eb64193e391fa8a2c159c0f60c171824715165f80c67fcab9dbc944e30c623  node-v16.14.0.tar.xz
936a7096244591f044232b6c023b59301d0d2d3819df0310701d3e9d2be0d7ff  node-v16.14.0-win-x64.7z
c783f32aa22758e9fdcabb23daf348cc52f876fbd679d54edc2c4921ccd6d6c5  node-v16.14.0-win-x64.zip
509f2b68d13fde1808c933840e2b1e15fc48a137153496f4bac52f875ad7eeac  node-v16.14.0-win-x86.7z
552535c00d30b55257e7436d34ea18fd80848f7fefe5d4edfb9a068033e48c08  node-v16.14.0-win-x86.zip
4d2adf5b11877a9017a0eef735dcc344ceb849bf3bb02da4f5dc1e756cfc9300  node-v16.14.0-x64.msi
7f59dcf386d8386ceab18426381cebbdc17d437209c72a1694acfa1511c1844e  node-v16.14.0-x86.msi
4a9a110c6569503ed83069d19d1c2c604f831cc35c47850fd474c1870b76682e  win-x64/node.exe
b3cd2185d41c52a9db8d172b9fb78305798db6efc56a71a0677a33d0000ec9de  win-x64/node.lib
2ecc02154165f14bf8b5fe9961ff51d98d18199b6cca0af2392445a24189282a  win-x64/node_pdb.7z
c199d6ae1992e54885acd17810dc96e9ff9ec4c72c9be41ff143c068b810187a  win-x64/node_pdb.zip
b512a47fb2f8aaa43cad3f489ad76aa76071d572f45436414208fd67cc849c37  win-x86/node.exe
0f1312661ce6d91d315779ba9b378c2a8ebe17cb2f855773eddea4158c14f2d8  win-x86/node.lib
19fd911408283f7a4c6dd6b20450f2c185fd17091bcbe2fbe5209c63e89ec65e  win-x86/node_pdb.7z
a594a4108a7d99ca109072297bb555655951d2e2cbc467ceacadc88890a74d26  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEdPEmArbxxOkT+qN606iWE2Q7YgEFAmICxXUACgkQ06iWE2Q7
YgEHrw//TpMMwRLiRQ6IJIuFkhJjpd6e7KicZxau1eaajtUako9OVEriJrzIItcw
2dhxh5TU9qZvmhm7D86sQaF2Zuhuh1/XPS4lUeF33zM5+DaRyVO0HwYIWWrbEWzK
LN7BSr0waqBxMP9vwxJklDFk7t2SuxU4kyz3yHws1GdamNNWE21qG6FCD0EnJC/m
kJrku3L6WjM5BChqqY5FJ0/YqfSe8P1tyWqCuEXEfJ+IpbCbrdNFLpRJ4pPwR7DO
GCcD9rRAsigR+fWF73J1XYfYr+MciH5EZjCjSinXb7jCsyQ9OIY7BvfhcEqg18N4
9n1C54sbsvYFkhubt9qgTuqvFXFQFQ1mxlwl6EDfxZSiKF9CYPnavvGHHBf/LEbp
fqPR54c+As6Q/lCHgRsNXlwlbWBmd4n+9NKqiWSiELwukwj5e8sTWEB6OhWUkqJk
NZ4wolPCSJnzVokjB4aOlTLRg7IyC1e2KMZdpahGWKpfhO7HSqVF7YvoolpbbD4C
rhfvoIAmLNxI0EhMnTk68PMvsOpKJt9MPhle6xgSwIMxMSDMOCyuPBisBiCzDien
99zoDZ49FF5R/ri+UU+cEFzqHhZtA20Demmu7apF7tY27ajqxYCC9iqZzhE9eYdr
o9k4b5NMKuNJgR7ohMl4X439J+OY9ivAYieu7Z+eSnV4DELLQXY=
=+i0z
-----END PGP SIGNATURE-----

转自 https://nodejs.org/en/blog/release/v16.14.0/